(57)【特許請求の範囲】
【請求項１】
データの消去単位である複数のブロックに分割され、ブロック単位で一括消去が行われる書き換え可能な不揮発性の記憶手段を備える記憶装置において、
上記記憶手段を構成する各ブロックは、データと該データの論理アドレスと該データが記憶される領域の状態を管理するための領域管理情報とを記憶し、
上記領域管理情報は、該領域管理情報の各符号に対して、該各符号と同一符号の所定量の冗長データが付加されてなる領域管理フラグとして上記記憶手段に格納され、該領域管理フラグのビット情報の数を比較することによって訂正可能なエラーがあるか判断され、訂正可能なエラーがある場合にはエラーが訂正され、
上記データは、該データを対象としたエラー訂正符号とともに上記記憶手段に格納され、該データ用のエラー訂正符号に基づいてエラーが訂正され、
上記論理アドレスは、論理アドレスを対象としたエラー訂正符号とともに上記記憶手段に格納され、該論理アドレス用のエラー訂正符号に基づいてエラーが訂正されることを特徴とする記憶装置。
【請求項２】
入力された上記領域管理情報を、該領域管理情報の符号と同一符号の所定量の冗長データが付加されてなる上記領域管理フラグに変換し、又は上記記憶手段から読み出された上記領域管理フラグを元の領域管理情報に変換する変換手段と、
上記変換手段によって変換された領域管理フラグを上記記憶手段に書き込み、又は上記記憶手段から上記領域管理フラグを読み出して上記変換手段に供給し、この変換手段によって変換された元の領域管理情報を出力する制御を行う制御手段とを備えることを特徴とする請求項１記載の記憶装置。
【請求項３】
上記変換手段は、上記領域管理情報と上記領域管理フラグとが対応記録された変換テーブルを備え、この変換テーブルを参照して、上記領域管理情報を上記領域管理フラグに変換することを特徴とする請求項２記載の記憶装置。
【請求項４】
上記変換手段は、上記記憶手段から読み出された領域管理フラグのパターンから元の領域管理情報を判断するフラグ判別回路を備え、このフラグ判別回路を用いて、上記記憶手段から読み出された領域管理フラグを上記領域管理情報に変換することを特徴とする請求項２記載の記憶装置。
【請求項５】
上記記憶手段はフラッシュメモリからなり、上記変換手段は、上記領域管理情報を、１ビットの情報につき少なくとも３ビットの領域管理フラグに変換し、
上記制御手段は、上記領域管理フラグを上記フラッシュメモリの少なくとも３つのセルに分散させて書き込むことを特徴とする請求項２記載の記憶装置。
【請求項６】
上記記憶手段は、多値型のフラッシュメモリからなり、上記変換手段は、上記領域管理情報を、１ビットの情報につき少なくとも５ビットの領域管理フラグに変換し、
上記制御手段は、上記領域管理フラグを上記フラッシュメモリの少なくとも３つのセルに分散させて書き込むことを特徴とする請求項２記載の記憶装置。
【請求項７】
上記領域管理フラグは、エラーが生じた場合であっても、当該フラグの符号の数を比較することにより元の領域管理情報が認識されることを特徴とする請求項１記載の記憶装置。
【請求項８】
上記領域管理フラグにエラーが生じた場合には、当該フラグの符号の数を比較することにより、数の多い方の符号を元の領域管理情報と判断することを特徴とする請求項１記載の記憶装置。
【請求項９】
データの消去単位である複数のブロックに分割され、ブロック単位で一括消去が行われる書き換え可能な不揮発性の記憶手段を備え、上記記憶手段を構成する各ブロックは、データと該データの論理アドレスと該データが記憶される領域の状態を管理するための領域管理情報とを記憶し、上記領域管理情報は、該領域管理情報の各符号に対して、該各符号と同一符号の所定量の冗長データが付加されてなる領域管理フラグとして上記記憶手段に格納され、該領域管理フラグのビット情報の数を比較することによって訂正可能なエラーがあるか判断され、訂正可能なエラーがある場合にはエラーが訂正され、上記データは、該データを対象としたエラー訂正符号とともに上記記憶手段に格納され、該エラー訂正符号に基づいてエラーが訂正され、上記論理アドレスは、論理アドレスを対象としたエラー訂正符号とともに上記記憶手段に格納され、該論理アドレス用のエラー訂正符号に基づいてエラーが訂正される記憶装置と、
上記記憶装置に上記データ及び領域管理情報をインターフェースを介して供給し、又は上記記憶装置から上記インターフェースを介して供給されたデータ及び領域管理情報を処理する上記データ処理装置とを備えることを特徴とするデータ処理システム。
【請求項１０】
上記記憶装置は、更に、入力された上記領域管理情報を、該領域管理情報の符号と同一符号の所定量の冗長データが付加されてなる上記領域管理フラグに変換し、又は上記記憶手段から読み出された上記領域管理フラグを元の領域管理情報に変換する変換手段と、
上記変換手段によって変換された領域管理フラグを上記記憶手段に書き込み、又は上記記憶手段から上記領域管理フラグを読み出して上記変換手段に供給し、この変換手段によって変換された元の領域管理情報を出力する制御を行う制御手段とを備えることを特徴とする請求項９記載のデータ処理システム。
【請求項１１】
上記変換手段は、上記領域管理情報と上記領域管理フラグとが対応記録された変換テーブルを備え、この変換テーブルを参照して、上記領域管理情報を上記領域管理フラグに変換することを特徴とする請求項１０記載のデータ処理システム。
【請求項１２】
上記変換手段は、上記記憶手段から読み出された領域管理フラグのパターンから元の領域管理情報を判断するフラグ判別回路を備え、このフラグ判別回路を用いて、上記記憶手段から読み出された領域管理フラグを上記領域管理情報に変換することを特徴とする請求項１０記載のデータ処理システム。
【請求項１３】
上記記憶手段はフラッシュメモリからなり、上記変換手段は、上記領域管理情報を、１ビットの情報につき少なくとも３ビットの領域管理フラグに変換し、
上記制御手段は、上記領域管理フラグを上記フラッシュメモリの少なくとも３つのセルに分散させて書き込むことを特徴とする請求項１０記載のデータ処理システム。
【請求項１４】
上記記憶手段は、多値型のフラッシュメモリからなり、上記変換手段は、上記領域管理情報を、１ビットの情報につき少なくとも５ビットの領域管理フラグに変換し、
上記制御手段は、上記領域管理フラグを上記フラッシュメモリの少なくとも３つのセルに分散させて書き込むことを特徴とする請求項１０記載のデータ処理システム。
【請求項１５】
上記領域管理フラグは、エラーが生じた場合であっても、当該フラグの符号の数を比較することにより元の領域管理情報が認識されることを特徴とする請求項９記載のデータ処理システム。
【請求項１６】
上記領域管理フラグにエラーが生じた場合には、当該フラグの符号の数を比較することにより、数の多い方の符号を元の領域管理情報と判断することを特徴とする請求項９記載のデータ処理システム。
【請求項１７】
データの消去単位である複数のブロックに分割され、ブロック単位で一括消去が行われる書き換え可能な不揮発性の記憶手段に対してデータを書き込み又は読み出すデータの書き込み及び読み出し方法において、
データ書き込み時は、上記記憶手段を構成する各ブロックに対して、データが記憶される領域の状態を管理するための該データを対象としたエラー訂正符号とともにデータが書き込まれるとともに、上記領域管理情報が該領域管理情報の各符号に対して該各符号と同一符号の所定量の冗長データが付加されてなる領域管理フラグとして書き込まれ、更に、該データの論理アドレスが該論理アドレスを対象としたエラー訂正符号とともに書き込まれ、
データ読み出し時は、上記記憶手段を構成する各ブロックから上記データを上記エラー訂正符号とともに読み出し、このエラー訂正符号に基づいてデータのエラー訂正を行うとともに、上記領域管理フラグを読み出し、該領域管理フラグのビット情報の数を比較することによって訂正可能なエラーがあるか判断し、訂正可能なエラーがある場合にエラーが訂正を行い、更に、上記論理アドレスを該論理アドレスを対象としたエラー訂正符号とともに読み出し、このエラー訂正符号に基づいて論理アドレスのエラー訂正を行うことを特徴とするデータの書き込み及び読み出し方法。
【請求項１８】
データ書き込み時は、入力された上記領域管理情報を、該領域管理情報の符号と同一符号の所定量の冗長データが付加されてなる上記領域管理フラグに変換し、変換された領域管理フラグを上記記憶手段に書き込み、
データ読み出し時は、上記記憶手段から上記領域管理フラグを読み出して、読み出された上記領域管理フラグを元の領域管理情報に変換することを特徴とする請求項１７記載のデータの書き込み及び読み出し方法。
【請求項１９】
上記領域管理情報と上記領域管理フラグとが対応記録された変換テーブルを参照して、上記領域管理情報を上記領域管理フラグに変換し、又は上記領域管理フラグを上記領域管理情報に変換することを特徴とする請求項１８記載のデータの書き込み及び読み出し方法。
【請求項２０】
上記記憶手段から読み出された領域管理フラグのパターンから元の領域管理情報を判断し、上記記憶手段から読み出された領域管理フラグを上記領域管理情報に変換することを特徴とする請求項１８記載のデータの書き込み及び読み出し方法。
【請求項２１】
上記記憶手段はフラッシュメモリからなり、
データ書き込み時は、上記領域管理情報を、１ビットの情報につき少なくとも３ビットの領域管理フラグに変換し、上記領域管理フラグを上記フラッシュメモリの少なくとも３つのセルに分散させて書き込むことを特徴とする請求項１８記載のデータの書き込み及び読み出し方法。
【請求項２２】
上記記憶手段は、多値型のフラッシュメモリからなり、
データ書き込み時は、上記領域管理情報を、１ビットの情報につき少なくとも５ビットの領域管理フラグに変換し、上記領域管理フラグを上記フラッシュメモリの少なくとも３つのセルに分散させて書き込むことを特徴とする請求項１８記載のデータの書き込み及び読み出し方法。
【請求項２３】
データ読み出し時において、上記領域管理フラグは、エラーが生じた場合であっても、当該フラグの符号の数を比較することにより元の領域管理情報が認識されることを特徴とする請求項１７記載のデータの書き込み及び読み出し方法。
【請求項２４】
データ読み出し時において、上記領域管理フラグにエラーが生じた場合には、当該フラグの符号の数を比較することにより、数の多い方の符号を元の領域管理情報と判断することを特徴とする請求項１７記載のデータの書き込み及び読み出し方法。
【請求項２５】
データの消去単位である複数のブロックに分割され、ブロック単位で一括消去が行われる書き換え可能な不揮発性の記憶手段を備えるデータ処理装置において、
上記記憶手段を構成する各ブロックは、データと該データの論理アドレスと該データが記憶される領域の状態を管理するための領域管理情報とを記憶し、
上記領域管理情報は、該領域管理情報の各符号に対して、該各符号と同一符号の所定量の冗長データが付加されてなる領域管理フラグとして上記記憶手段に格納され、該領域管理フラグのビット情報の数を比較することによって訂正可能なエラーがあるか判断され、訂正可能なエラーがある場合にはエラーが訂正され、
上記データは、該データを対象としたエラー訂正符号とともに上記記憶手段に格納され、該エラー訂正符号に基づいてエラーが訂正され、
上記論理アドレスは、論理アドレスを対象としたエラー訂正符号とともに上記記憶手段に格納され、該論理アドレス用のエラー訂正符号に基づいてエラーが訂正されることを特徴とするデータ処理装置。
【請求項２６】
入力された上記領域管理情報を、該領域管理情報の符号と同一符号の所定量の冗長データが付加されてなる上記領域管理フラグに変換し、又は上記記憶手段から読み出された上記領域管理フラグを元の領域管理情報に変換する変換手段と、
上記変換手段によって変換された領域管理フラグを上記記憶手段に書き込み、又は上記記憶手段から上記領域管理フラグを読み出して上記変換手段に供給し、この変換手段によって変換された元の領域管理情報を出力する制御を行う制御手段とを備えることを特徴とする請求項２５記載のデータ処理装置。
【請求項２７】
上記変換手段は、上記領域管理情報と上記領域管理フラグとが対応記録された変換テーブルを備え、この変換テーブルを参照して、上記領域管理情報を上記領域管理フラグに変換することを特徴とする請求項２６記載のデータ処理装置。
【請求項２８】
上記変換手段は、上記記憶手段から読み出された領域管理フラグのパターンから元の領域管理情報を判断するフラグ判別回路を備え、このフラグ判別回路を用いて、上記記憶手段から読み出された領域管理フラグを上記領域管理情報に変換することを特徴とする請求項２６記載のデータ処理装置。
【請求項２９】
上記記憶手段はフラッシュメモリからなり、上記変換手段は、上記領域管理情報を、１ビットの情報につき少なくとも３ビットの領域管理フラグに変換し、
上記制御手段は、上記領域管理フラグを上記フラッシュメモリの少なくとも３つのセルに分散させて書き込むことを特徴とする請求項２６記載のデータ処理装置。
【請求項３０】
上記記憶手段は、多値型のフラッシュメモリからなり、上記変換手段は、上記領域管理情報を、１ビットの情報につき少なくとも５ビットの領域管理フラグに変換し、
上記制御手段は、上記領域管理フラグを上記フラッシュメモリの少なくとも３つのセルに分散させて書き込むことを特徴とする請求項２６記載のデータ処理装置。
【請求項３１】
上記領域管理フラグは、エラーが生じた場合であっても、当該フラグの符号の数を比較することにより元の領域管理情報が認識されることを特徴とする請求項２５記載のデータ処理装置。
【請求項３２】
上記領域管理フラグにエラーが生じた場合には、当該フラグの符号の数を比較することにより、数の多い方の符号を元の領域管理情報と判断することを特徴とする請求項２５記載のデータ処理装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、任意のデータ、このデータを管理するためのデータ管理情報及びこのデータが記憶される領域の状態を管理するための領域管理情報を記憶する記憶手段を備える記憶装置、データ処理システム、データの書き込み及び読み出し方法並びにデータ処理装置に関する。
【０００２】
【従来の技術】
従来より、コンピュータ等の電子機器で用いられるデータを記憶させておく外部記憶装置として、フラッシュメモリ（電気的消去可能型プログラマブルＲＯＭ（Read-Only Memory））を記憶媒体として用いたカード型の外部記憶装置（以下、メモリカードという。）が提案されている。
【０００３】
このメモリカードには、記憶媒体であるメモリに、任意のデータと、付属データである管理情報とが記憶される。そして、メモリカードは、これらデータや管理情報をホスト側のコンピュータ等に供給する際は、エラー訂正符号等を用いてエラー訂正をかけて、セルの故障等に起因するデータのエラーを訂正して出力するようにしている。
【０００４】
ところで、上記管理情報としては、記憶されたデータの順番を示す論理アドレス等のようにデータを管理するためのデータに依存した情報（データ管理情報）の他に、例えばデータが記憶された領域が使用可能か否かを示す情報のように、データが記憶される領域の状態を管理するための情報（領域管理情報）が記憶される場合がある。
【０００５】
このような領域管理情報は、データから独立したメモリ内の領域に関する情報であるので、データが記憶された後に書き換える必要が生じる場合がある。したがって、この領域管理情報は、通常、データを書き換えることなく単独で書き換えることができるようになされている。
【０００６】
また、このような領域管理情報は、エラーが生じた場合に通常のエラー訂正符号を用いてエラー訂正を行うようにすると、情報を書き換える度にエラー訂正符号を書き換えなければならない。そこで、このような領域管理情報に対しては、エラー訂正符号を用いたエラー訂正を行わずに、同一の情報を複数ビットに分散して記憶させておくことでエラー対策をすることが望ましい。
【０００７】
【発明が解決しようとする課題】
しかしながら、領域管理情報を複数ビットに分散させて記憶させた場合、メモリカードからデータを読み出す際に伝送データが長くなり伝送効率が悪化してしまう。特に、近年一つのセルに複数ビットの情報を記憶させる技術が提案されており、セルあたりの記憶ビット数が増加していくと、エラー対策のための分散ビット数を多くする必要が生じ、伝送効率が更に悪化する可能性がある。
【０００８】
また、このようにメモリカードのセル構造が変わり、情報の分散のさせ方が変更されると、この新しいメモリカードに対応するために、ホスト側からメモリカードに供給するデータの形態や、ホスト側がメモリカードのメモリを管理するためのドライバの構成、インターフェースの仕様等を変更する必要が生じ、既存のメモリカードとの互換性がとれない。特に、デジタルカメラのように、ドライバ等が予め組み込まれた電子機器においては、ソフトのバージョンアップ等で対応できないので、新しいメモリカードを使用することが不可能となってしまう。
【０００９】
そこで、本発明は、伝送効率を悪化させることなく領域管理情報を分散して記憶させることができるとともに、セル構造が変わっても既存の記憶装置との互換性がとれる記憶装置、データ処理システム、データの書き込み及び読み出し方法並びにデータ処理装置を提供することを目的とする。
【００１０】
【課題を解決するための手段】
本発明に係る記憶装置は、データの消去単位である複数のブロックに分割され、ブロック単位で一括消去が行われる書き換え可能な不揮発性の記憶手段を備える記憶装置において、上記記憶手段を構成する各ブロックは、データと該データの論理アドレスと該データが記憶される領域の状態を管理するための領域管理情報とを記憶し、上記領域管理情報は、該領域管理情報の各符号に対して、該各符号と同一符号の所定量の冗長データが付加されてなる領域管理フラグとして上記記憶手段に格納され、該領域管理フラグのビット情報の数を比較することによって訂正可能なエラーがあるか判断され、訂正可能なエラーがある場合にはエラーが訂正され、上記データは、該データを対象としたエラー訂正符号とともに上記記憶手段に格納され、該データ用のエラー訂正符号に基づいてエラーが訂正され、上記論理アドレスは、論理アドレスを対象としたエラー訂正符号とともに上記記憶手段に格納され、該論理アドレス用のエラー訂正符号に基づいてエラーが訂正される。
【００１１】
また、本発明に係るデータ処理システムは、データの消去単位である複数のブロックに分割され、ブロック単位で一括消去が行われる書き換え可能な不揮発性の記憶手段を備え、上記記憶手段を構成する各ブロックは、データと該データの論理アドレスと該データが記憶される領域の状態を管理するための領域管理情報とを記憶し、上記領域管理情報は、該領域管理情報の各符号に対して、該各符号と同一符号の所定量の冗長データが付加されてなる領域管理フラグとして上記記憶手段に格納され、該領域管理フラグのビット情報の数を比較することによって訂正可能なエラーがあるか判断され、訂正可能なエラーがある場合にはエラーが訂正され、上記データは、該データを対象としたエラー訂正符号とともに上記記憶手段に格納され、該エラー訂正符号に基づいてエラーが訂正され、上記論理アドレスは、論理アドレスを対象としたエラー訂正符号とともに上記記憶手段に格納され、該論理アドレス用のエラー訂正符号に基づいてエラーが訂正される記憶装置と、上記記憶装置に上記データ及び領域管理情報をインターフェースを介して供給し、又は上記記憶装置から上記インターフェースを介して供給されたデータ及び領域管理情報を処理する上記データ処理装置とを備える。
【００１２】
また、本発明に係るデータの書き込み及び読み出し方法は、データの消去単位である複数のブロックに分割され、ブロック単位で一括消去が行われる書き換え可能な不揮発性の記憶手段に対してデータを書き込み又は読み出すデータの書き込み及び読み出し方法において、データ書き込み時は、上記記憶手段を構成する各ブロックに対して、データが記憶される領域の状態を管理するための該データを対象としたエラー訂正符号とともにデータが書き込まれるとともに、上記領域管理情報が該領域管理情報の各符号に対して該各符号と同一符号の所定量の冗長データが付加されてなる領域管理フラグとして書き込まれ、更に、該データの論理アドレスが該論理アドレスを対象としたエラー訂正符号とともに書き込まれ、データ読み出し時は、上記記憶手段を構成する各ブロックから上記データを上記エラー訂正符号とともに読み出し、このエラー訂正符号に基づいてデータのエラー訂正を行うとともに、上記領域管理フラグを読み出し、該領域管理フラグのビット情報の数を比較することによって訂正可能なエラーがあるか判断し、訂正可能なエラーがある場合にエラーが訂正を行い、更に、上記論理アドレスを該論理アドレスを対象としたエラー訂正符号とともに読み出し、このエラー訂正符号に基づいて論理アドレスのエラー訂正を行う。
【００１３】
更に、本発明に係るデータ処理装置は、データの消去単位である複数のブロックに分割され、ブロック単位で一括消去が行われる書き換え可能な不揮発性の記憶手段を備えるデータ処理装置において、上記記憶手段を構成する各ブロックは、データと該データの論理アドレスと該データが記憶される領域の状態を管理するための領域管理情報とを記憶し、上記領域管理情報は、該領域管理情報の各符号に対して、該各符号と同一符号の所定量の冗長データが付加されてなる領域管理フラグとして上記記憶手段に格納され、該領域管理フラグのビット情報の数を比較することによって訂正可能なエラーがあるか判断され、訂正可能なエラーがある場合にはエラーが訂正され、上記データは、該データを対象としたエラー訂正符号とともに上記記憶手段に格納され、該エラー訂正符号に基づいてエラーが訂正され、上記論理アドレスは、論理アドレスを対象としたエラー訂正符号とともに上記記憶手段に格納され、該論理アドレス用のエラー訂正符号に基づいてエラーが訂正される。
【００１４】
本発明では、入力された領域管理情報が変換手段によりこの領域管理情報よりもビット数の多い該領域管理情報の符号と同一符号の所定量の冗長データが付加されてなる領域管理フラグに変換される。そして、変換手段により変換された領域管理フラグは、制御手段により記憶手段に書き込まれる。
【００１５】
また、本発明は、制御手段により記憶手段から読み出された領域管理フラグが、変換手段によりもとの領域管理情報に変換される。そして、変換手段により変換された領域管理情報は、制御手段により出力される。
【００１６】
なお、本発明は、変換手段が、上記領域管理情報と上記領域管理フラグとが対応記録された変換テーブルを備えることが望ましい。この場合、変換手段は、この変換テーブルを参照して、入力された領域管理情報を領域管理フラグに変換する。
【００１７】
また、本発明は、変換手段が、記憶手段の管理情報記憶領域から読み出された領域管理フラグのパターンから元の領域管理情報を判断するフラグ判別回路を備えることが望ましい。この場合、変換手段は、このフラグ判別回路を用いて、記憶手段から読み出された領域管理フラグを元の領域管理情報に変換する。
【００１８】
また、本発明では、記憶手段が例えばフラッシュメモリからなり、上記変換手段は、上記領域管理情報を、１ビットの情報につき少なくとも３ビットの領域管理フラグに変換し、上記制御手段は、上記領域管理フラグを上記フラッシュメモリの少なくとも３つのセルに分散させて書き込む。
【００１９】
本発明では、上記記憶手段が例えば多値型のフラッシュメモリからなり、上記変換手段は、上記領域管理情報を、１ビットの情報につき少なくとも５ビットの領域管理フラグに変換し、上記制御手段は、上記領域管理フラグを上記フラッシュメモリの少なくとも３つのセルに分散させて書き込む。
【００２０】
本発明では、第１領域に記憶されるデータはエラー訂正符号によってエラーが訂正され、上記領域管理情報は、上記エラー訂正符号の対象から外されるようにしてもよい。
【００２１】
本発明では、領域管理フラグに、エラーが生じた場合であっても、当該フラグの符号の数を比較することにより元の領域管理情報が認識される。
【００２２】
本発明では、領域管理フラグにエラーが生じた場合には、当該フラグの符号の数を比較することにより、数の多い方の符号を元の領域管理情報と判断する。
【００２３】
【発明の実施の形態】
以下、本発明の実施の形態を図面を参照して説明する。
【００２４】
ここでは、本発明を、図１に示すように、ホスト側の装置となるデータ処理装置１０と、シリアルインターフェースを介してこのデータ処理装置１０に接続される外部記憶装置であるメモリカード２０とから構成されるシステム１に適用した例について説明する。
【００２５】
なお、ここでは、データ処理装置１０とメモリカード２０との間でのデータのやり取りをシリアルインターフェースによって行うシステムを例に説明するが、本発明はデータのやり取りをパラレルインターフェースによって行うシステムに対しても適用可能である。
【００２６】
このシステム１に用いられるデータ処理装置１０は、所定のプログラムを実行するデータ処理部１１と、外部装置であるメモリカード２０との間でデータのやり取りをするためのシリアルインターフェース回路１２と、データ処理部１１とシリアルインターフェース回路１２間に設けられ、データ処理装置１１から供給されたデータ等を一時的に記憶するレジスタ１３と、データ処理部１１、シリアルインターフェース回路１２、レジスタ１３のそれぞれに接続され、これらの処理動作を制御する制御部１４とを備えている。
【００２７】
このデータ処理装置１０は、例えばデータ処理部１１が所定のプログラムを実行する際に、外部記憶装置であるメモリカード２０にデータを記憶させる必要があると判断した場合は、データ処理部１１が制御部１４の制御に基づいて、記憶させるべきデータやこのデータを管理するために必要な情報である管理情報、制御データである書き込み命令等をレジスタ１３に書き込む。
【００２８】
そして、シリアルインターフェース回路１２が、制御部１４の制御に基づいてレジスタ１３からこれら記憶させるべきデータや管理情報、書き込み命令等を読み出し、シリアルデータに変換して、クロック信号やステータス信号とともにこれらの転送を行う。なお、上記管理情報は、データを管理するための情報であるデータ管理情報と、データが記憶される領域の状態を管理するための領域管理情報を含む情報である。
【００２９】
また、このデータ処理装置１０は、データ処理部１１が所定のプログラムを実行する際に、外部記憶装置であるメモリカード２０からデータを読み出す必要があると判断した場合は、データ処理部１１が制御部１４の制御に基づいて制御データである読み出し命令をレジスタ１３に書き込む。そして、シリアルインターフェース回路１２が、制御部１４の制御に基づいてレジスタ１３から読み出し命令を読み出し、シリアルデータに変換して、クロック信号やステータス信号とともにこれらの転送を行う。
【００３０】
この読み出し命令に従ってメモリカード２０から転送されてきた所定のデータや管理情報は、シリアルインターフェース回路１２によりパラレルデータに変換され、レジスタ１３に書き込まれる。そして、データ処理部１１が、制御部１４の制御に基づいてレジスタ１３からこれら所定のデータや管理情報を読み出して処理を行う。
【００３１】
なお、本発明が適用されるシステムに用いられるデータ処理装置は、メモリカード２０等の外部記憶装置との間でデータのやり取りが可能なものであれば特に限定されるものではなく、パーソナルコンピュータ、デジタルスチルカメラ、デジタルビデオカメラ等の種々のデータ処理装置が適用可能である。
【００３２】
このシステム１において、データ処理装置１０とメモリカード２０とは、シリアルインターフェースによって接続されており、具体的には、少なくとも３本のデータ線ＳＣＬＫ，Ｓｔａｔｅ，ＤＩＯによって接続される。すなわち、データ処理装置１０とメモリカード２０とは、少なくとも、データ伝送時にクロック信号を伝送するための第１のデータ線ＳＣＬＫと、データ伝送時に必要なステータス信号を伝送するための第２のデータ線Ｓｔａｔｅと、メモリカード２０に書き込むデータ又はメモリカード２０から読み出すデータをシリアルに伝送する第３のデータ線ＤＩＯとによって接続され、これらを介して、データ処理装置１０とメモリカード２０との間でデータのやり取りを行う。
【００３３】
メモリカード２０は、図２に示すように、所定のデータや管理情報を記憶するフラッシュメモリ２１と、データ処理装置１０との間でデータのやり取りをするためのシリアル／パラレル・パラレル／シリアル・インターフェース回路（以下、Ｓ／Ｐ・Ｐ／Ｓインターフェース回路２２という。）と、フラッシュメモリ２１とＳ／Ｐ・Ｐ／Ｓインターフェース回路２２間に設けられ、Ｓ／Ｐ・Ｐ／Ｓインターフェース回路２２から供給されたデータや管理情報を一時的に記憶するレジスタ２３と、このレジスタ２３に接続され、レジスタ２３に書き込まれたデータやデータ管理情報にエラーがある場合にエラー訂正符号に基づいてエラーを訂正するエラー訂正回路２４と、レジスタ２３とフラッシュメモリ２１間に設けられ、レジスタ２３から読み出された領域管理情報をこの領域管理情報に冗長データが付加されてなる情報（本明細書においては、領域管理フラグと称する。）に変換し、又はフラッシュメモリ２１から読み出された領域管理フラグを元の領域管理情報に変換する変換部２５と、フラッシュメモリ２１、Ｓ／Ｐ・Ｐ／Ｓインターフェース回路２２、レジスタ２３、変換部２５のそれぞれに接続され、これらの処理動作を制御する制御部２６とを備えている。
【００３４】
Ｓ／Ｐ・Ｐ／Ｓインターフェース回路２２は、少なくとも上述した３本のデータ線ＳＣＬＫ，Ｓｔａｔｅ，ＤＩＯを介して、データ処理装置１０のシリアルインターフェース回路１２に接続され、これらのデータ線ＳＣＬＫ，Ｓｔａｔｅ，ＤＩＯを介して、データ処理装置１０との間でデータのやり取りを行う。すなわち、Ｓ／Ｐ・Ｐ／Ｓインターフェース回路２２は、データ処理装置１０のシリアルインターフェース回路１２から送られてきたシリアルデータをパラレルデータに変換して、レジスタ２３に書き込む。また、Ｓ／Ｐ・Ｐ／Ｓインターフェース回路２２は、レジスタ２３から読み出されたパラレルデータをシリアルデータに変換して、データ処理装置１０のシリアルインターフェース回路１２へ送出する。
【００３５】
このＳ／Ｐ・Ｐ／Ｓインターフェース回路２２とデータ処理装置１０との間でのシリアルデータの伝送は、第１のデータ線ＳＣＬＫによってデータ処理装置１０から送られてくるクロック信号によって同期を取りながら、第３のデータ線ＤＩＯによって行われる。このとき、第３のデータ線ＤＩＯによってやり取りされるシリアルデータのデータ種別は、第２のデータ線Ｓｔａｔｅによって伝送されるステータス信号によって判別される。ここで、シリアルデータの種別には、例えば、フラッシュメモリ２１に記憶させるべきデータ、フラッシュメモリ２１から読み出されたデータ、又はこのメモリカード２０の動作を制御するための制御データ等がある。
【００３６】
また、Ｓ／Ｐ・Ｐ／Ｓインターフェース回路２２は、データ処理装置１０から送られてきたデータが書き込み命令や読み出し命令等の制御データである場合には、当該制御データを制御部２６に供給する。
【００３７】
制御部２６は、このＳ／Ｐ・Ｐ／Ｓインターフェース回路２２から供給された制御データに基づいてメモリカード２０の動作を制御する。
【００３８】
レジスタ２３はフラッシュメモリ２１とＳ／Ｐ・Ｐ／Ｓインターフェース回路２２間でやり取りされるデータを一時的に記憶する。
【００３９】
エラー訂正回路２４は、Ｓ／Ｐ・Ｐ／Ｓインターフェース回路２２によりレジスタ２３に書き込まれたデータにエラー訂正符号を付加する。また、エラー訂正回路２４は、フラッシュメモリから読み出されレジスタ２３に書き込まれたデータにエラー訂正処理を施す。
【００４０】
変換部２５は、レジスタ２３から読み出された管理情報のうち領域管理情報を領域管理フラグに変換する。また、変換部２５は、フラッシュメモリ２１から読み出された領域管理フラグを元の領域管理情報に変換する。
【００４１】
以上のようなメモリカード２０に対して、データ処理装置１０から記憶させるべきデータや管理情報、書き込み命令等がシリアルデータとして送られてくると、先ず、Ｓ／Ｐ・Ｐ／Ｓインターフェース回路２２がこれらのデータをパラレルデータに変換して、書き込み命令を制御部２６に供給するとともに、制御部２６の制御に基づいて、所定のデータや管理情報をレジスタ２３に書き込む。
【００４２】
ここで、レジスタ２３に書き込まれた所定のデータや管理情報には、エラー訂正回路２４により、領域管理情報以外を対象としたエラー訂正符号が付加される。
【００４３】
そして、制御部２６が、Ｓ／Ｐ・Ｐ／Ｓインターフェース回路２２から供給された書き込み命令に基づいて、レジスタ２３から所定のデータや管理情報を読み出して、フラッシュメモリ２１に書き込む処理を行う。この際、制御部２６は、レジスタ２３から読み出した管理情報のうち領域管理情報を先ず変換部２５に供給する。変換部２５に供給された領域管理情報は、この変換部２５により領域管理フラグに変換される。そして、制御部２６は、この変換部２５により変換された領域管理フラグをフラッシュメモリ２１に書き込む。
【００４４】
また、このメモリカード２０は、データ処理装置１０から読み出し命令が送られてくると、Ｓ／Ｐ・Ｐ／Ｓインターフェース回路２２が、この読み出し命令を制御部２６に供給する。
【００４５】
そして、制御部２６が、Ｓ／Ｐ・Ｐ／Ｓインターフェース回路２２から供給された読み出し命令に基づいて、フラッシュメモリ２１から所定のデータや管理情報を読み出して、レジスタ２３に書き込む。この際、制御部２６は、フラッシュメモリ２１から読み出した領域管理フラグを先ず変換部２５に供給する。変換部２５に供給された領域管理フラグは、この変換部２５により元の領域管理情報に変換される。そして、制御部２６は、この変換部２５により変換された元の領域管理情報をレジスタ２３に書き込む。
【００４６】
ここで、レジスタ２３に書き込まれたデータや管理情報のうちデータ管理情報にエラーがある場合は、エラー訂正回路２４にてエラー訂正符号に基づいてエラー訂正が行われる。
【００４７】
そして、Ｓ／Ｐ・Ｐ／Ｓインターフェース回路２２が、制御部２６の制御に基づいてレジスタ２３からこれら所定のデータや管理情報等を読み出してシリアルデータに変換し、データ処理装置１０に送出する。
【００４８】
なお、以上はメモリカード２０にエラー訂正回路２４が設けられ、メモリカード２０内でエラー訂正を行うシステムについて説明したが、本発明はデータ処理装置がエラー訂正回路を備え、データ処理装置側でエラー訂正を行うシステムに対しても適用可能である。この場合、データにエラー訂正符号が付加された状態で、データ処理装置１０とメモリカード２０との間のデータのやり取りが行われる。
【００４９】
ここで、上述したメモリカード２０に搭載されるフラッシュメモリ２１の記憶領域の構造について説明する。
【００５０】
このフラッシュメモリ２１の記憶領域は、記憶単位である多数のセルから構成され、図３（ａ）に示すように、データの消去単位となる複数のブロックに分割されている。そして、これらの各ブロックには、それぞれ固有の物理アドレスが付けられている。
【００５１】
これらのブロックは、データの消去単位であると同時に、ファイル管理上の最小単位でもある。すなわち、ファイルは１つ又は複数のブロックに格納され、１つのブロックを複数のファイルで利用することはできないようになされている。
【００５２】
これら各ブロックは複数のセルからなり、これら各セルに「１」又は「０」を示す２つの状態を取り得る情報、すなわち１ビットの情報が記憶される。
【００５３】
そして、各ブロックは、初期状態では、全てのビットが「１」とされており、ビット単位での変更は「１」から「０」への変更のみが可能とされている。したがって、フラッシュメモリ２１に「１」及び「０」からなるデータを書き込む際は、「１」については該当するビットをそのまま保持し、「０」については該当するビットを「１」から「０」に変更してデータの書き込みを行う。
【００５４】
また、一度書き込んだデータをフラッシュメモリ２１から消去する際は、ブロック単位で一括して初期化処理を行い、当該ブロックの全ビットを「１」とする。これにより、当該ブロックに書き込まれたデータは一括消去され、このブロックは再びデータ書き込みが可能な状態とされる。
【００５５】
また、フラッシュメモリ２１の各ブロックは、図３（ｂ）に示すように、データの書き込みや読み出しの単位となる複数のページから構成される。このページは、例えば５１２バイトの記憶容量を有する記憶単位であり、フラッシュメモリ２１にデータを書き込む際は、このページ単位でレジスタ２３から読み出されたデータが、制御部２５によりページ単位でフラッシュメモリ２１に書き込まれる。また、このフラッシュメモリ２１からデータを読み出す際は、制御部２５によりフラッシュメモリ２１からデータがページ毎に読み出され、レジスタ２３に供給される。
【００５６】
データの書き込みや読み出しの単位となるページは、データ記憶領域と管理情報記憶領域とを有している。ここで、データ記憶領域とは、任意のデータが書き込まれる領域をいい、管理情報記憶領域とは、データ記憶領域に書き込まれるデータの管理に必要な情報（管理情報）が格納される領域をいう。
【００５７】
管理情報記憶領域は、１６バイトの領域を有し、このうち最初の３バイトが、ブロック単位で一括して初期化処理を行うことなく情報を書き換えることができるオーバーライト領域に設定されている。そして、管理情報記憶領域は、残りの１３バイトが、情報を書き換える際はブロック単位で一括して初期化処理を行う通常領域に設定されている。
【００５８】
そして、ブロックを構成する各ページの管理情報記憶領域に、管理情報が格納される。具体的には、図３（ｃ）に示すように、各ブロックの先頭ページの管理情報記憶領域には、このブロックを管理するために必要な情報として、いわゆる分散管理情報が格納される。また、各ブロックの２ページ目以降の各ページの管理情報記憶領域にも、予備の分散管理情報として、先頭ページの管理情報記憶領域に格納された分散管理情報と同じ管理情報が記憶される。ただし、各ブロックの最終ページの管理情報記憶領域には、分散管理情報だけでは不足する情報を補う、いわゆる追加管理情報が格納される。
【００５９】
このように、メモリカード２０に搭載されるフラッシュメモリ２１では、各ブロック内の管理情報記憶領域に、それぞれのブロックを管理するための分散管理情報が格納され、この分散管理情報により、例えば当該ブロックがファイルの先頭となるブロックであるか否かについての情報や、複数のブロックからファイルが構成される場合にはそれらのブロックの繋がりを示す情報等を得ることができる。
【００６０】
そして、このメモリカード２０は、各ブロックの分散管理情報を集めることにより、フラッシュメモリ２１全体を管理するための情報として、いわゆる集合管理情報を作成して、この集合管理情報を一つのファイルとしてフラッシュメモリ２１に格納するようにしている。
【００６１】
そして、データ処理装置１０とメモリカード２０間でデータのやり取りを行う場合、データ処理装置１０は、通常、フラッシュメモリ２１からこの集合管理情報を読み出して、各ブロックにアクセスするために必要な情報を得るようにしている。これにより、データアクセスの度に個々のブロックに格納された分散管理情報にアクセスする必要がなくなり、より高速なデータアクセスが可能となる。
【００６２】
次に、分散管理情報、追加管理情報、集合管理情報について、更に詳細に説明する。
【００６３】
分散管理情報は、各ページ毎に設けられた１６バイトの管理情報記憶領域に格納された、ブロックを管理するための管理情報である。そして、この分散管理情報は、例えば図４に示すように、１バイトの可／不可フラグと、１バイトのブロックフラグと、４ビットの最終フラグと、４ビットの参照フラグと、１バイトの管理フラグと、２バイトの論理アドレスと、２バイトの連結アドレスと、２バイトの分散管理情報用エラー訂正符号と、３バイトのデータ用エラー訂正符号とからなり、これらの情報のうち、可／不可フラグ、ブロックフラグ、最終フラグ、参照フラグが、管理情報記憶領域の最初の３バイトのオーバーライト領域に格納される。
【００６４】
また、管理情報記憶領域の１３バイトの通常領域に、管理フラグと論理アドレスと連結アドレスとリザーブ領域と分散管理情報用エラー訂正符号とデータ用エラー訂正符号とが格納される。そして、通常領域の残りの３バイトは、リザーブ領域とされる。
【００６５】
可／不可フラグは、ブロックが使用可能な状態か使用不可能な状態かを示すフラグである。すなわち、ブロック内に回復不可能なエラーが生じたようなときは、この可／不可フラグによって、当該ブロックが使用不可能な状態であることが示される。
【００６６】
ブロックフラグは、ブロックの使用状態を示すフラグであり、具体的には、「未使用」、「先頭使用」、「使用」、「未消去」の４つの状態を示すフラグである。「未使用」は、当該ブロックが未使用又は消去済みで初期状態（全ビットが「１」の状態）とされており、すぐにデータの書き込みが可能な状態を示す。「先頭使用」は、当該ブロックがファイルの先頭で使用されている状態を示す。「使用」は、当該ブロックがファイルの先頭以外で使用されている状態を示す。したがって、ブロックフラグが「使用」のとき、当該ブロックは他のブロックから連結されていることとなる。「未消去」は、当該ブロックに書かれていたデータが不要となった状態を示す。このメモリカード２０においては、ブロック内に記憶された不要なデータを消去する場合に、まずブロックフラグを「未消去」の状態にしておき、処理時間に余裕があるときに、ブロックフラグが「未消去」になっているブロックを消去するようにしている。これにより、メモリカード２０は、データの消去の処理をより効率よく行うことが可能となる。
【００６７】
最終フラグは、ファイルが当該ブロックで終わっているか否かを示すフラグであり、具体的には、「ブロック連続」、「ブロック最終」の２つの状態を示すフラグである。「ブロック連続」は、当該ブロックに記憶されたファイルにはまだ続きがあり、他のブロックに続いていることを示す。「ブロック最終」は、当該ブロックに記憶されたファイルは、このブロックで終了していることを示す。
【００６８】
参照フラグは、追加管理情報の参照を指示するためのフラグであり、具体的には、「参照情報なし」、「参照情報あり」の２つの状態を示すフラグである。「参照情報なし」は、ブロックの最終ページの管理情報記憶領域に有効な追加管理情報が存在しないことを示す。「参照情報あり」は、ブロックの最終ページの管理情報記憶領域に有効な追加管理情報が存在することを示す。
【００６９】
管理フラグは、ブロックの属性等を示すフラグであり、例えば当該ブロックが読み出し専用のブロックか、あるいは書き込みも可能なブロックか等の属性を示す。
【００７０】
論理アドレスは、当該ブロックの論理アドレスを示す。この論理アドレスの値は、データの書換を行うとき等に必要に応じて更新される。なお、この論理アドレスの値は、同じ論理アドレスの値を同時に複数のブロックが持つことがないように設定されている。
【００７１】
連結アドレスは、当該ブロックに連結する他のブロックの論理アドレスを示す。すなわち、当該ブロックに記憶されたファイルが他のブロックに続いている場合に、連結アドレスは、そのファイルの続きが記憶されたブロックの論理アドレスの値を示す。
【００７２】
分散管理情報用エラー訂正符号は、分散管理情報のうち、管理フラグ、論理アドレス、連結アドレス及びリザーブ領域に書き込まれたデータを対象としたエラー訂正符号である。
【００７３】
データ用エラー訂正符号は、このデータ用エラー訂正符号が書き込まれたページのデータ記憶領域に記憶されたデータを対象としたエラー訂正符号である。
【００７４】
ところで、上述した分散管理情報のうち、可／不可フラグ、ブロックフラグ、最終フラグ、参照フラグは、データ記憶領域の状態を管理するための情報（領域管理情報）であり、データから独立して書き換える必要が生じる場合があるので、上述した分散管理情報用エラー訂正符号の対象から外し、それぞれの情報を示す符号と同一符号の所定量の冗長データが付加されてなるフラグ（領域管理フラグ）として管理情報記憶領域に格納されることにより、エラー対策がなされている。
【００７５】
具体的には、これらの領域管理情報は、図５に示すように、冗長データが付加されて領域管理フラグとして管理情報記憶領域のオバーライト領域に格納されている。
【００７６】
すなわち、可／不可フラグは、ブロックが使用可能な状態である場合は１ビットの情報「１」で示され、ブロックが使用不可能な状態である場合は１ビットの情報「０」で示される。そして、この可／不可フラグは、管理情報記憶領域に格納されるときは、冗長データが付加されて、例えば１バイトの情報「１１１１１１１１」又は「００００ ００００」に変換されて格納される。
【００７７】
また、ブロックフラグは、ブロックが「未使用」の場合には２ビットの情報「１１」で示され、ブロックが「先頭使用」の場合には２ビットの情報「１０」で示され、ブロックが「使用」の場合には２ビットの情報「０１」で示され、ブロックが「未消去」の場合には２ビットの情報「００」で示される。そして、このブロックフラグは、管理情報記憶領域に格納されるときは、冗長データが付加されて、例えば１バイトの情報「１１１１ １１１１」又は「１１１１ ００００」又は「００００ １１１１」又は「００００ ００００」に変換されて格納される。
【００７８】
また、最終フラグは、「ブロック連続」の場合は１ビットの情報「１」で示され、「ブロック最終」の場合には１ビットの情報「０」で示される。そして、この最終フラグは、管理情報記憶領域に格納されるときは、冗長データが付加されて、例えば４ビットの情報「１１１１」又は「００００」に変換されて格納される。
【００７９】
また、参照フラグは、「参照情報なし」の場合は１ビットの情報「１」で示され、「参照情報あり」の場合は１ビットの情報「０」で示される。そして、この参照フラグは、管理情報記憶領域に格納されるときは、例えば４ビットの情報「１１１１」又は「００００」に変換されて格納される。
【００８０】
これら領域管理情報は、以上のように冗長データが付加された領域管理フラグとして管理情報記憶領域に格納されることにより、例えば当該フラグが格納されたセルが故障してエラーが生じた場合であっても、例えば領域管理フラグの「１」と「０」の数を比較することにより元の領域管理情報が認識される。
【００８１】
追加管理情報は、ブロックの最終ページの１６バイトの管理情報記憶領域に格納される情報であり、分散管理情報だけでは不足する情報を補う追加情報を含んでいる。
【００８２】
この追加管理情報は、具体的には、例えば図６に示すように、１バイトの可／不可フラグと、１バイトのブロックフラグと、４ビットの最終フラグと、４ビットの参照フラグと、１バイトの識別番号と、２バイトの有効データサイズと、２バイトの追加管理情報用エラー訂正符号と、３バイトのデータ用エラー訂正符号とからなる。
【００８３】
ここで、領域管理フラグである可／不可フラグ、ブロックフラグ、最終フラグ、参照フラグとデータ用エラー訂正符号については、分散管理情報の場合と同様である。また、追加情報用エラー訂正符号は、分散管理情報における分散管理情報用エラー訂正符号に相当するものであり、追加管理情報のうち領域管理フラグを除いた識別番号、有効データサイズ及びリザーブ領域に書き込まれたデータを対象としたエラー訂正符号である。
【００８４】
そして、識別番号及び有効データサイズとが、分散管理情報の不足分を補う追加情報として、追加管理情報に含まれている。
【００８５】
そして、追加管理情報も分散管理情報と同様に、領域管理情報である可／不可フラグ、ブロックフラグ、最終フラグ、参照フラグが、冗長データが付加された領域管理フラグとして、管理情報記憶領域の最初の３バイトのオーバーライト領域に格納される。
【００８６】
また、管理情報記憶領域の１３バイトの通常領域に、識別番号と有効データサイズと追加管理情報用エラー訂正符号とデータ用エラー訂正符号とが格納される。そして、通常領域の残りの５バイトは、リザーブ領域とされる。
【００８７】
識別番号は、エラー処理用の情報であり、ブロックのデータを書き換える度に、識別番号の値がインクリメントされる。この識別番号は、何らかのエラーが発生して、同じ論理アドレスを持つブロックが複数存在するようになってしまった場合に、それらのブロックに書き込まれたデータの新旧を識別するために使用される。なお、識別番号には１バイトの領域が使用され、その値の範囲は「０」から「２５５」まであり、その初期値（すなわち、新しい論理アドレスを使用するときに最初に設定される識別番号の値）は、「０」とされる。なお、識別番号が「２５５」を越えたときには「０」に戻るものとする。そして、同じ論理番号を持つブロックが複数存在する場合には、この識別番号の値が小さい方のブロックを有効とする。
【００８８】
有効データサイズは、ブロック内の有効なデータのサイズを示す。すなわち、当該ブロックのデータ記憶領域に空きがある場合、有効データサイズは、当該データ記憶領域に書き込まれたデータのサイズの値を示す。このとき、参照フラグは「参照情報あり」に設定される。なお、ブロックのデータ記憶領域に空きがない場合、有効データサイズは当該ブロックのデータ領域に空きがないことを示す情報として「０ｘｆｆｆｆ」に設定される。
【００８９】
なお、以上説明した分散管理情報及び追加管理情報は、ブロック内のデータが更新される毎に、常に最新情報となるように更新される。
【００９０】
集合管理情報は、上述したように、各ブロックの分散管理情報を集めて作成される情報であり、ファイルとしてフラッシュメモリ２１に格納される。すなわち、図７に示すように、各ブロックの分散管理情報から、全ブロックをまとめて管理するための情報である集合管理情報のファイルが作成され、この集合管理情報が所定のブロックのデータ記憶領域に格納される。なお、集合管理情報は、１つのブロックに格納されるものであっても、複数のブロックにわたって格納されるものであってもよい。そして、データ処理装置１０は、通常は、この集合管理情報によって、各ブロックにアクセスするために必要な情報を得るようにする。
【００９１】
以上説明したように、本発明を適用したメモリカード２０は、データの管理に必要な情報である管理情報のうち、領域管理情報については、変換部２５により冗長データを有する領域管理フラグに変換されてフラッシュメモリ２１の管理情報記憶領域、詳しくは管理情報記憶領域のうちのオーバーライト領域に記憶される。そして、フラッシュメモリ２１から読み出された領域管理フラグは、変換部２５により元の領域管理情報に変換されてレジスタ２３、Ｓ／Ｐ・Ｐ／Ｓインターフェース回路２２を介してデータ処理装置１０に転送される。
【００９２】
ここで、レジスタ２３から読み出された領域管理情報を領域管理フラグに変換し、又はフラッシュメモリ２１から読み出された領域管理フラグを元の領域管理情報に変換する変換部２５の詳細について説明する。
【００９３】
この変換部２５は、図１に示すように、変換テーブル２７とフラグ判別回路２８と変換制御部２９とを備えている。
【００９４】
変換テーブル２７には、領域管理情報と領域管理フラグとが対応記録されている。例えば、この変換テーブル２７には、可／不可フラグに関し、領域管理情報の「１」とこれに対応する領域管理フラグの「１１１１ １１１１」が記録され、領域管理情報の「０」とこれに対応する領域管理フラグの「００００ ００００」が記録されている。
【００９５】
また、変換テーブル２７には、ブロックフラグに関し、領域管理情報の「１１」とこれに対応する領域管理フラグの「１１１１ １１１１」が記録され、領域管理情報の「１０」とこれに対応する領域管理フラグの「１１１１ ００００」が記録され、領域管理情報の「０１」とこれに対応する領域管理フラグの「００００ １１１１」が記録され、領域管理情報の「００」とこれに対応する領域管理フラグの「００００ ００００」が記録されている。
【００９６】
また、変換テーブル２７には、最終フラグに関し、領域管理情報の「１」とこれに対応する領域管理フラグの「１１１１」が記録され、領域管理情報の「０」とこれに対応する領域管理フラグの「００００」が記録されている。
【００９７】
また、変換テーブル２７には、参照フラグに関し、領域管理情報の「１」とこれに対応する領域管理フラグの「１１１１」が記録され、領域管理情報の「０」とこれに対応する領域管理フラグの「００００」が記録されている。
【００９８】
そして、変換部２５に領域管理情報が供給されると、変換制御部２９が、変換テーブル２７を参照して、供給された領域管理情報をこの領域管理情報に対応した領域管理フラグに変換する。
【００９９】
フラグ判別回路２８は、フラッシュメモリ２１から読み出された領域管理フラグのパターンから元の領域管理情報を判断する。すなわち、このフラグ判別回路２８は、フラッシュメモリ２１に記憶された領域管理フラグに、セルの故障等に起因するエラーが生じた場合であっても、このエラーを有する領域管理フラグのパターンから、元の領域管理情報が判別できるようになされている。
【０１００】
具体的には、例えば最終フラグに関し、領域管理情報の「１」が、領域管理フラグ「１１１１」としてメモリ２１に記憶されていた場合に、セルの故障に起因してこの領域管理フラグにエラーが生じ、「１１１１」が「１１１０」又は「１１０１」又は「１０１１」又は「０１１１」となっていたとする。この場合、フラグ判別回路２８は、この領域管理フラグの「０」と「１」の数を比較して、数の多い方の情報、すなわち「１」を元の領域管理情報であると判断する。
【０１０１】
そして、変換制御部２９は、フラグ判別回路２８により判断された情報を元の領域管理情報としてレジスタ２３に書き込む。
【０１０２】
なお、以上は、可／不可フラグについては１ビットの領域管理情報を１バイトの領域管理フラグとしてフラッシュメモリ２１に記憶させ、ブロックフラグについていは２ビットの領域管理情報を１バイトの領域管理フラグとしてフラッシュメモリ２１に記憶させ、最終フラグについては１ビットの領域管理情報を４ビットの領域管理フラグとしてフラッシュメモリ２１に記憶させ、参照フラグについては１ビットの領域管理情報を４ビットの領域管理フラグとしてフラッシュメモリ２１に記憶させた例について説明したが、冗長データの付加のさせ方はこの例に限定されるものではなく、フラッシュメモリ２１のセルの故障率を基に、セルに故障が生じた場合でも元の領域管理情報が判別できる範囲で、冗長データの付加のさせ方を決めればよい。
【０１０３】
例えば、セルの故障率が低い場合は、１ビットの領域管理情報につき２ビットの冗長データを付加し、３ビットの領域管理フラグに変換して３つのセルに分散させて記憶させるようにすれば、３つのセルのうちの１つのセルが故障した場合であっても、フラグ判別回路２８により「０」と「１」の数を比較することにより元の領域管理情報が判別される。但し、領域管理情報に付加する冗長データのビット数を増やせば、それだけデータの信頼性が増すことになる。
【０１０４】
本発明を適用したメモリカード２０は、以上のような変換部２５を備え、入力された領域管理情報をこの管理情報に冗長データを付加してなる領域管理フラグに変換してフラッシュメモリ２１に記憶させることにより、記憶された領域管理フラグにフラッシュメモリ２１のセルの故障等に起因するエラーが生じた場合であっても、エラー訂正符号を用いることなくエラーを訂正して元の領域管理情報を出力することができる。
【０１０５】
また、このメモリカード２０は、データ処理装置１０との間でデータのやり取りをする際は、領域管理情報を冗長データが付加されていない元の領域管理情報のままで伝送するようにしているので、冗長データを付加する場合の問題点である伝送効率の悪化を招くことがなく、また冗長データの付加の仕方が変更された場合でも、データ処理装置１０の構成を変更することなく対応可能で、メモリカード間の互換性を保つことができる。
【０１０６】
なお、以上は、一つのセルに１ビットの情報が記憶される、いわゆる２値型のフラッシュメモリについて説明したが、本発明は、１つのセルに２ビット以上の情報が記憶される、いわゆる多値型のフラッシュメモリを搭載したメモリカードにも適用可能である。
【０１０７】
この場合、例えば１つのセルに２ビットの情報が記憶されるフラッシュメモリにおいては、１つのセルが故障したときに２ビットのエラーが生じることになる。したがって、このようなフラッシュメモリに例えば１ビットの領域管理情報記憶させる際は、この領域管理情報を少なくとも５ビットの領域管理フラグに変換して３つのセルに記憶させることが望ましい。このように、１つのセルに２ビットの情報が記憶されるフラッシュメモリにおいて、１ビットの領域管理情報を少なくとも５ビットの領域管理フラグに変換して３つのセルに記憶させることにより、当該領域管理フラグが格納されたセルのうち一つが故障して２ビットのエラーが生じた場合であっても、上述した変換部２５のフラグ判別回路２８において領域管理フラグの「１」と「０」の数を比較することにより、元の領域管理情報が認識される。
【０１０８】
具体的には、１つのセルに２ビットの情報が記憶されるフラッシュメモリの管理情報記憶領域に領域管理情報を記憶させる場合は、例えば図８に示すように、領域管理情報に冗長データを付加して領域管理フラグとして記憶させる。なお、上述したように、変換部２５のフラグ判別回路２８において元の領域管理情報を認識するためには、１ビットの領域管理情報を５ビットの領域管理フラグに変換すればよいが、偶数ビットに変換した方がデータが扱いやすいので、この図８に示す例においては、１ビットの領域管理情報を６ビット若しくは１バイトの領域管理フラグに変換して記憶させ、２ビットの領域管理情報を１２ビットの領域管理フラグに変換して記憶させるようにしている。
【０１０９】
すなわち、可／不可フラグに関し、ブロックが使用可能な状態であることを示す１ビットの領域管理情報「１」は、１バイトの領域管理フラグブ「１１１１１１１１」に変換されて４つのセルに記憶され、ブロックが使用不可能な状態であることを示す１ビットの領域管理情報「０」は、１バイトの領域管理フラグ「００００ ００００」に変換されて４つのセルに記憶される。
【０１１０】
また、ブロックフラグに関し、ブロックが「未使用」であることを示す２ビットの領域管理情報「１１」は、１２ビットの領域管理フラグ「１１１１１１ １１１１１１」に変換されて６つのセルに記憶され、ブロックが「先頭使用」であることを示す２ビットの領域管理情報「１０」は、１２ビットの領域管理フラグ「１１１１１１ ００００００」に変換されて６つのセルに記憶され、ブロックが「使用」であることを示す２ビットの領域管理情報「０１」は、１２ビットの領域管理フラグ「００００００ １１１１１１」に変換されて６つのセルに記憶され、ブロックが「未消去」であることを示す２ビットの領域管理情報「００」は、１２ビットの領域管理フラグ「００００００ ００００００」に変換されて６つのセルに記憶される。
【０１１１】
また、最終フラグに関し、「ブロック連続」であることを示す１ビットの領域管理情報「１」は、６ビットの領域管理フラグ「１１１１１１」に変換されて３つのセルに記憶され、「ブロック最終」であることを示す１ビットの領域管理情報「０」は、６ビットの領域管理フラグ「００００００」に変換されて３つのセルに記憶される。
【０１１２】
また、参照フラグに関し、「参照情報なし」であることを示す１ビットの領域管理情報「１」は、６ビットの領域管理フラグ「１１１１１１」に変換されて３つのセルに記憶され、「参照情報あり」であることを示す１ビットの領域管理情報「０」は、６ビットの領域管理フラグ「００００００」に変換されて３つのセルに記憶される。
【０１１３】
以上ように、領域管理情報に冗長データを付加して領域管理フラグとして記憶させておくことにより、例えば最終フラグに関し、セルの故障にエラーが生じて、「１１１１１１」が「１１１１００」又は「１１００１１」又は「００１１１１」となっていた場合でも、フラグ判別回路２８によりこの最終フラグの「０」と「１」の数が比較されることにより、元の領域管理情報「１」が認識される。
【０１１４】
なお、この場合、変換テーブル２７には、領域管理情報と上述した領域管理フラグを対応記録させておくようにする。
【０１１５】
また、以上のように領域管理情報を領域管理フラグに変換して管理情報記憶領域に記憶させる場合は、領域管理フラグ全体で４バイト使用することになるので、１６バイトの管理情報記憶領域のうち最初の４バイトをオーバーライト領域に設定する。
【０１１６】
また、２ビットの領域管理情報であるブロックフラグに関しては、例えば図９に示すように、ブロックが「未使用」であることを示す領域管理情報「１１」を、６ビットの領域管理フラグ「１１１１１１」に変換して３つのセルに分散させて記憶し、ブロックが「先頭使用」であることを示す領域管理情報「１０」を、６ビットの領域管理フラグ「１０１０１０」に変換して３つのセルに分散させて記憶し、ブロックが「使用」であることを示す領域管理情報「０１」を、６ビットの領域管理フラグ「０１０１０１」に変換して３つのセルに分散させて記憶し、ブロックが「未消去」であることを示す領域管理情報「００」を、６ビットの領域管理フラグ「００００００」に変換して３つのセルに分散させて記憶するようにしてもよい。
【０１１７】
この場合、フラグ判別回路２８は、２ビット単位で符号のパターンを認識し、多いパターンを元の領域管理情報として判別する。
【０１１８】
具体的には、例えばブロックが「先頭使用」であることを示す領域管理情報「１０」を、６ビットの領域管理フラグ「１０１０１０」に変換して３つのセルに分散させて記憶させた場合において、１つのセルが故障すると、領域管理フラグ「１０１０１０」が「００１０１０」又は「０１１０１０」又は「１１１０１０」又は「１０００１０」又は「１００１１０」又は「１０１１１０」又は「１０１０００」又は「１０１００１」又は「１０１０１１」のいずれかになる。この場合、フラグ判別回路２８は、この領域管理フラグの符号のパターンを２ビット単位で認識し、多いパターン「１０」を元の領域管理情報であると判断する。
【０１１９】
２ビットの領域管理情報であるブロックフラグを以上のように領域管理フラグとして記憶させるようにした場合は、使用ビット数を少なくすることができる。
【０１２０】
なお、以上は、外部記憶装置であるメモリカード２０及びこのメモリカード２０とデータ処理装置１０とを備えたシステム１に本発明を適用した例について説明したが、本発明は、内部メモリを備えたデータ処理装置に適用することも可能である。この場合、内部メモリに領域管理情報を記憶させる際に、領域管理情報をこの領域管理情報に冗長データを付加した領域管理フラグに変換して記憶させ、また内部メモリから領域管理フラグを読み出す際にこの領域管理フラグを元の領域管理情報に変換して読み出すようにすればよい。
【０１２１】
【発明の効果】
本発明に係る記憶装置は、領域管理情報は、該領域管理情報の各符号に対して、該各符号と同一符号の所定量の冗長データが付加されてなる領域管理フラグとして上記記憶手段に格納され、該領域管理フラグのビット情報の数を比較することによって訂正可能なエラーがあるか判断され、訂正可能なエラーがある場合にはエラーが訂正されるようにしているので、伝送効率の悪化を招くことなく、領域管理情報のエラー対策をエラー訂正符号を用いずに行うことができる。
【０１２２】
また、この記憶装置は、領域管理情報を伝送するときには元の領域管理情報のままで伝送するようにしているので、冗長データの付加の仕方が変更された場合でも、外部装置の構成を変更することなくこの外部装置とのデータの伝送が可能で、互換性を保つことができる。
【０１２３】
また、本発明に係るデータ処理システムは、領域管理情報は、領域管理情報の各符号に対して、該各符号と同一符号の所定量の冗長データが付加されてなる領域管理フラグとして記憶手段に格納され、領域管理フラグのビット情報の数を比較することによって訂正可能なエラーがあるか判断され、訂正可能なエラーがある場合にはエラーが訂正されるようにしているので、記憶装置とデータ処理装置間のデータの伝送を伝送効率の悪化を招くことなく行うことができるとともに、領域管理情報のエラー対策をエラー訂正符号を用いることなく行うことができる。
【０１２４】
また、このデータ処理システムは、記憶装置とデータ処理装置間で領域管理情報を伝送するときには元の領域管理情報のままで伝送するようにしているので、冗長データの付加の仕方が変更された場合でも、データ処理装置の構成を変更することなく記憶装置とデータ処理装置間のデータの伝送が可能で、互換性を保つことができる。
【０１２５】
また、本発明に係るデータの書き込み及び読み出し方法によれば、データ書き込み時は、記憶手段を構成する各ブロックに対して、データが記憶される領域の状態を管理するための領域管理情報以外のデータを対象としたエラー訂正符号とともにデータが書き込まれるとともに、領域管理情報が領域管理情報の各符号に対して各符号と同一符号の所定量の冗長データが付加されてなる領域管理フラグとして書き込まれ、データ読み出し時は、記憶手段を構成する各ブロックからデータをエラー訂正符号とともに読み出し、このエラー訂正符号に基づいてデータのエラー訂正を行うとともに、領域管理フラグを読み出し、領域管理フラグのビット情報の数を比較することによって訂正可能なエラーがあるか判断し、訂正可能なエラーがある場合にエラーが訂正を行うようにしているので、記憶装置と外部装置との間でデータを伝送する際の伝送効率の悪化を招くことなく、領域管理情報のエラー対策をエラー訂正符号を用いずに行うことができる。
【０１２６】
また、このデータの書き込み及び読み出し方法によれば、データ読み出し時は、領域管理フラグを元の領域管理情報に変換してするようにしているので、記憶装置に記憶される領域管理フラグの冗長データの付加の仕方が変更された場合でも、外部装置の構成を変更することなく記憶装置と外部装置とのデータの伝送が可能で、互換性を保つことができる。
【０１２７】
また、本発明に係るデータ処理装置によれば、領域管理情報は、領域管理情報の各符号に対して、各符号と同一符号の所定量の冗長データが付加されてなる領域管理フラグとして記憶手段に格納され、領域管理フラグのビット情報の数を比較することによって訂正可能なエラーがあるか判断され、訂正可能なエラーがある場合にはエラーが訂正されるようにしているので、伝送効率の悪化を招くことなく、領域管理情報のエラー対策をエラー訂正符号を用いずに行うことができる。
【０１２８】
また、このデータ処理装置は、領域管理情報を伝送するときには元の領域管理情報のままで伝送するようにしているので、冗長データの付加の仕方が変更された場合でも、外部装置の構成を変更することなくこの外部装置とのデータの伝送が可能で、互換性を保つことができる。
【図面の簡単な説明】
【図１】データ処理装置の構成を示すブロック図である。
【図２】メモリカードの構成を示すブロック図である。
【図３】フラッシュメモリの記憶領域の構造を示す模式図である。
【図４】分散管理情報を説明する模式図である。
【図５】領域管理フラグの一例を示す模式図である。
【図６】追加管理情報を説明する模式図である。
【図７】集合管理情報の構築を説明する模式図である。
【図８】領域管理フラグの他の例を説明する模式図である。
【図９】領域管理フラグの他の例を説明する模式図である。
【符号の説明】
１ システム、１０ データ処理装置、２０ メモリカード、２１ フラッシュメモリ、２５ 変換部、２６ 制御部、２７ 変換テーブル、２８ フラグ判別回路、２９ 変換制御部
【図１】
0003788205.tif 000002
【図２】
0003788205.tif 000003
【図３】
0003788205.tif 000004
【図４】
0003788205.tif 000005
【図５】
0003788205.tif 000006
【図６】
0003788205.tif 000007
【図７】
0003788205.tif 000008
【図８】
0003788205.tif 000009
【図９】
0003788205.tif 000010