| 【発明の名称】 |
記憶装置 |
| 【発明者】 |
【氏名】佐々 哲
【氏名】岡上 拓己
【氏名】平林 光浩
|
| 【要約】 |
【課題】領域管理情報にエラー訂正を行ったか否かを判別できるようにしてデータを出力させ、故障が発生した領域以外の領域にデータを記憶させる。
【解決手段】データの消去単位である複数のブロックに分割され、ブロック単位で一括消去が行われるフラッシュメモリ21を備え、フラッシュメモリ21の各ブロックは、既にデータが記憶された状態において、ビット1からビット0への書き換えであるときには、ブロックの一括消去による初期化を伴わずにオーバーライトによる書き込みを行うことが可能な第1の領域と、データの書き換えの際に、ブロックの一括消去による初期化を伴う第2の領域とを有する。第2の領域には、データとデータのエラー訂正符号が記憶され、第1の領域には、ブロックの状態を示す符号と所定量の冗長データが付加されてなる領域管理フラグが記憶されている。 |
【特許請求の範囲】
【請求項1】 データの消去単位である複数のブロックに分割され、ブロック単位で一括消去が行われる書き換え可能な不揮発性の記憶手段を備える記憶装置において、上記記憶手段を構成する各ブロックは、該ブロックに既にデータが記憶された状態において、ビット1からビット0への書き換えであるときには、上記ブロックの一括消去による初期化を伴わずにオーバーライトによる書き込みを行うことが可能な第1の領域と、データの書き換えの際に、上記ブロックの一括消去による初期化を伴う第2の領域とを有し、上記第2の領域には、データと該データのエラー訂正符号が記憶され、上記第1の領域には、該ブロックの状態を示す符号と所定量の冗長データが付加されてなる領域管理フラグが記憶されていることを特徴とする記憶装置。 【請求項2】 上記記憶装置は、上記記憶手段に記憶されるデータのエラーを訂正するエラー訂正手段と、上記記憶手段の各ブロック内に、上記エラー訂正手段によって回復不可能なエラーが発生した場合に、該ブロックの第1領域に使用不可能なフラグを設定する制御部とを有することを特徴とする請求項1記載の記憶装置。 【請求項3】 データの消去単位である複数のブロックに分割され、ブロック単位で一括消去が行われる書き換え可能な不揮発性の記憶手段を備える記憶装置において、上記記憶手段を構成する各ブロックは、書き込み又は読み出し単位であるページに分割され、各ページは、該ページに既にデータが記憶された状態において、ビット1からビット0への書き換えであるときには、上記ページの所属するブロックの一括消去による初期化を伴わずにオーバーライトによる書き込みを行うことが可能な第1の領域と、データの書き換えの際に、該ページの所属するブロックの一括消去による初期化を伴う第2の領域とを有し、上記第2の領域には、データと該データのエラー訂正符号が記憶され、上記第1の領域には、該ブロックの状態を示す符号と所定量の冗長データが付加されてなる領域管理フラグが記憶されていることを特徴とする記憶装置。 【請求項4】 上記記憶装置は、上記記憶手段に記憶されるデータのエラーを訂正するエラー訂正手段と、上記記憶手段の各ブロック内に、上記エラー訂正手段によって回復不可能なエラーが発生した場合に、該ブロックの第1領域に使用不可能なフラグを設定する制御部とを有することを特徴とする請求項1記載の記憶装置。
|
【発明の詳細な説明】【0001】 【発明の属する技術分野】本発明は、任意のデータ及びこのデータが記憶される領域の状態を管理するための領域管理情報を記憶する記憶装置に関する。 【0002】 【従来の技術】従来、コンピュータ等の電子機器で用いられるデータを記憶させておく外部記憶装置として、フラッシュメモリ(電気的消去可能型プログラマブルROM(Read-Only Memory))を記憶媒体として用いたカード型の外部記憶装置(以下、メモリカードという。)が提案されている。 【0003】このメモリカードには、記憶媒体であるメモリに、任意のデータと、付属データである管理情報とが記憶される。メモリカードは、これらデータや管理情報をホスト側のコンピュータ等に供給する際は、エラー訂正符号等を用いてエラー訂正をかけて、セルの故障等に起因するデータのエラーを訂正して出力するようにしている。 【0004】ところで、管理情報としては、記憶されたデータの順番を示す論理アドレス等のようにデータを管理するためのデータに依存した情報であるデータ管理情報の他に、例えばデータが記憶された領域が使用可能か否かを示す情報のように、データが記憶される領域の状態を管理するための情報である領域管理情報が記憶される場合がある。 【0005】このような領域管理情報は、データから独立したメモリ内の領域に関する情報であるので、データが記憶された後に書き換える必要が生じる場合がある。したがって、この領域管理情報は、通常、データを書き換えることなく単独で書き換えることができるようになされている。 【0006】また、このような領域管理情報は、エラーが生じた場合に通常のエラー訂正符号を用いてエラー訂正を行うようにすると、情報を書き換えるたびにエラー訂正符号を書き換えなければならない。そこで、このような領域管理情報に対しては、エラー訂正符号を用いたエラー訂正を行わずに、同一の情報を複数ビットに分散して複数のセルに記憶させておくことでエラー対策をすることが望ましい。 【0007】 【発明が解決しようとする課題】ところで、同一の情報を複数ビットに分散して記憶させておくことで領域管理情報のエラー対策とした場合、同一の情報が記憶された複数のセルのうちいくつかに故障が生じると、領域管理情報のエラー訂正を行うことができなくなってしまう場合がある。したがって、一度エラー訂正を行った領域管理情報については、この領域管理情報がエラー訂正を行った情報であることを判別できるようにして、次にメモリカードに記憶させる場合に、故障が発生した領域以外の領域に記憶させるようにすることが望ましい。 【0008】そこで、本発明は、領域管理情報にエラー訂正を行ったかどうかを判別することができるようにしてデータを出力する記憶装置を提供し、記憶装置が領域管理情報にエラー訂正を行ったかどうかを判別することができるようにしてデータ処理装置にデータを供給し、データ処理装置が領域管理情報にエラー訂正が行われたかどうかを判別して所定のデータ処理を行うことを可能とする記憶装置を提供することを目的とする。 【0009】 【課題を解決するための手段】上述のような目的を達成するために提案される本発明は、データの消去単位である複数のブロックに分割され、ブロック単位で一括消去が行われる書き換え可能な不揮発性の記憶手段を備える記憶装置において、上記記憶手段を構成する各ブロックは、該ブロックに既にデータが記憶された状態において、ビット1からビット0への書き換えであるときには、上記ブロックの一括消去による初期化を伴わずにオーバーライトによる書き込みを行うことが可能な第1の領域と、データの書き換えの際に、上記ブロックの一括消去による初期化を伴う第2の領域とを有し、上記第2の領域には、データと該データのエラー訂正符号が記憶され、上記第1の領域には、該ブロックの状態を示す符号と所定量の冗長データが付加されてなる領域管理フラグが記憶されるようにしたものである。 【0010】この記憶装置は、さらに、上記記憶手段に記憶されるデータのエラーを訂正するエラー訂正手段と、上記記憶手段の各ブロック内に、上記エラー訂正手段によって回復不可能なエラーが発生した場合に、該ブロックの第1領域に使用不可能なフラグを設定する制御部とを有する・また、本発明は、データの消去単位である複数のブロックに分割され、ブロック単位で一括消去が行われる書き換え可能な不揮発性の記憶手段を備える記憶装置において、上記記憶手段を構成する各ブロックは、書き込み又は読み出し単位であるページに分割され、各ページは、該ページに既にデータが記憶された状態において、ビット1からビット0への書き換えであるときには、上記ページの所属するブロックの一括消去による初期化を伴わずにオーバーライトによる書き込みを行うことが可能な第1の領域と、データの書き換えの際に、該ページの所属するブロックの一括消去による初期化を伴う第2の領域とを有し、上記第2の領域には、データと該データのエラー訂正符号が記憶され、上記第1の領域には、該ブロックの状態を示す符号と所定量の冗長データが付加されてなる領域管理フラグが記憶するようにしたものである。 【0011】 【発明の実施の形態】以下、本発明の実施の形態を図面を参照して説明する。 【0012】ここでは、本発明を、図1に示すように、ホスト側の装置となるデータ処理装置10と、シリアルインターフェースを介してこのデータ処理装置10に接続される外部記憶装置であるメモリカード20とから構成されるシステム1に適用した例について説明する。 【0013】ここでは、データ処理装置10とメモリカード20との間でのデータのやり取りをシリアルインターフェースによって行うシステムを例に説明するが、本発明はデータのやり取りをパラレルインターフェースによって行うシステムに対しても適用可能である。 【0014】このシステム1に用いられるデータ処理装置10は、所定のプログラムを実行するデータ処理部11と、外部装置であるメモリカード20との間でデータのやり取りをするためのシリアルインターフェース回路12と、データ処理部11とシリアルインターフェース回路12間に設けられ、データ処理装置11から供給されたデータ等を一時的に記憶するレジスタ13と、データ処理部11、シリアルインターフェース回路12、レジスタ13のそれぞれに接続され、これらの処理動作を制御する制御部14とを備えている。 【0015】このデータ処理装置10は、例えばデータ処理部11が所定のプログラムを実行する際に、外部記憶装置であるメモリカード20にデータを記憶させる必要があると判断した場合は、データ処理部11が制御部14の制御に基づいて、記憶させるべきデータやこのデータを管理するために必要な情報である管理情報、制御データである書き込み命令等をレジスタ13に書き込む。 【0016】そして、シリアルインターフェース回路12が、制御部14の制御に基づいてレジスタ13からこれら記憶させるべきデータや管理情報、書き込み命令等を読み出し、シリアルデータに変換して、クロック信号やステータス信号とともにこれらの転送を行う。なお、上記管理情報は、データを管理するための情報であるデータ管理情報と、データが記憶される領域の状態を管理するための領域管理情報を含む情報である。 【0017】また、このデータ処理装置10は、データ処理部11が所定のプログラムを実行する際に、外部記憶装置であるメモリカード20からデータを読み出す必要があると判断した場合は、データ処理部11が制御部14の制御に基づいて制御データである読み出し命令をレジスタ13に書き込む。そして、シリアルインターフェース回路12が、制御部14の制御に基づいてレジスタ13から読み出し命令を読み出し、シリアルデータに変換して、クロック信号やステータス信号とともにこれらの転送を行う。 【0018】この読み出し命令に従ってメモリカード20から転送されてきた所定のデータや管理情報は、シリアルインターフェース回路12によりパラレルデータに変換され、レジスタ13に書き込まれる。そして、データ処理部11が、制御部14の制御に基づいてレジスタ13からこれらデータや管理情報を読み出して所定の処理を行う。この際、制御部14は、メモリカード21から転送されてきた領域管理情報に付加された後述するフラグから領域管理情報の状態を判断して、所定のデータ処理を行う。 【0019】なお、本発明が適用されるシステムに用いられるデータ処理装置は、メモリカード20等の外部記憶装置との間でデータのやり取りが可能なものであれば特に限定されるものではなく、パーソナルコンピュータ、デジタルスチルカメラ、デジタルビデオカメラ等の種々のデータ処理装置が適用可能である。 【0020】このシステム1において、データ処理装置10とメモリカード20とは、シリアルインターフェースによって接続されており、具体的には、少なくとも3本のデータ線SCLK,State,DIOによって接続される。すなわち、データ処理装置10とメモリカード20とは、少なくとも、データ伝送時にクロック信号を伝送するための第1のデータ線SCLKと、データ伝送時に必要なステータス信号を伝送するための第2のデータ線Stateと、メモリカード20に書き込むデータ又はメモリカード20から読み出すデータをシリアルに伝送する第3のデータ線DIOとによって接続され、これらを介して、データ処理装置10とメモリカード20との間でデータのやり取りを行う。 【0021】データ処理装置10とメモリカード20との間でのデータのやり取りは、通常、ヘッダーと実データとから構成されるファイル単位で行われる。なお、ファイルのヘッダーには、例えば、ファイルにアクセスするための情報や、データ処理装置10で実行されるプログラムで必要とされる情報等が格納される。 【0022】メモリカード20は、図2に示すように、所定のデータや管理情報を記憶するフラッシュメモリ21と、データ処理装置10との間でデータのやり取りをするためのシリアル/パラレル・パラレル/シリアル・インターフェース回路(以下、S/P・P/Sインターフェース回路22という。)と、フラッシュメモリ21とS/P・P/Sインターフェース回路22間に設けられ、S/P・P/Sインターフェース回路22から供給されたデータや管理情報を一時的に記憶するレジスタ23と、このレジスタ23に接続され、レジスタ23に書き込まれたデータやデータ管理情報にエラーがある場合にエラー訂正符号に基づいてエラーを訂正するECC回路24と、レジスタ23とフラッシュメモリ21間に設けられ、レジスタ23から読み出された領域管理情報をこの領域管理情報に冗長データが付加されてなる情報(本明細書においては、領域管理フラグと称する。)に変換し、又はフラッシュメモリ21から読み出された領域管理フラグを領域管理情報に変換する変換部25と、この変換部25に接続され、フラッシュメモリ21から読み出された領域管理フラグに所定のエラーがある場合にこの領域管理フラグのエラーを訂正するエラー訂正処理部26と、フラッシュメモリ21、S/P・P/Sインターフェース回路22、レジスタ23、変換部25のそれぞれに接続され、これらの処理動作を制御する制御部27とを備えている。 【0023】S/P・P/Sインターフェース回路22は、少なくとも上述した3本のデータ線SCLK,State,DIOを介して、データ処理装置10のシリアルインターフェース回路12に接続され、これらのデータ線SCLK,State,DIOを介して、データ処理装置10との間でデータのやり取りを行う。S/P・P/Sインターフェース回路22は、データ処理装置10のシリアルインターフェース回路12から送られてきたシリアルデータをパラレルデータに変換して、レジスタ23に書き込む。また、S/P・P/Sインターフェース回路22は、レジスタ23から読み出されたパラレルデータをシリアルデータに変換して、データ処理装置10のシリアルインターフェース回路12へ送出する。 【0024】このS/P・P/Sインターフェース回路22とデータ処理装置10との間でのシリアルデータの伝送は、第1のデータ線SCLKによってデータ処理装置10から送られてくるクロック信号によって同期を取りながら、第3のデータ線DIOによって行われる。このとき、第3のデータ線DIOによってやり取りされるシリアルデータのデータ種別は、第2のデータ線Stateによって伝送されるステータス信号によって判別される。ここで、シリアルデータの種別には、例えば、フラッシュメモリ21に記憶させるべきデータ、フラッシュメモリ21から読み出されたデータ、又はこのメモリカード20の動作を制御するための制御データ等がある。 【0025】また、S/P・P/Sインターフェース回路22は、データ処理装置10から送られてきたデータが書き込み命令や読み出し命令等の制御データである場合には、当該制御データを制御部27に供給する。 【0026】レジスタ23は、フラッシュメモリ21とS/P・P/Sインターフェース回路22間でやり取りされるデータを一時的に記憶する。 【0027】ECC回路24は、S/P・P/Sインターフェース回路22によりレジスタ23に書き込まれたデータにエラー訂正符号を付加する。また、ECC回路24は、フラッシュメモリから読み出されレジスタ23に書き込まれたデータにエラー訂正処理を施す。 【0028】変換部25は、レジスタ23から読み出された管理情報のうち領域管理情報をこの領域管理情報に冗長データが付加されてなる領域管理フラグに変換する。また、変換部25は、フラッシュメモリ21から読み出された領域管理フラグを領域管理情報に変換する。 【0029】エラー訂正処理部26は、フラッシュメモリ21から読み出され、変換部25に供給された領域管理フラグに、例えば1ビットのエラーが生じていた場合に、この領域管理フラグのエラーを訂正する。このように、エラー訂正処理部26は、例えば1ビットのエラーについては訂正処理を行うといったように、エラー訂正可能な範囲が予め設定されている。したがって、エラーが生じた領域管理フラグには、このエラー訂正処理部26によってエラー訂正が可能なものと、エラー訂正が不可能なものとがある。このため、変換部25により領域管理フラグから変換された領域管理情報は、エラーが生じていない領域管理情報と、エラー訂正をした領域管理情報と、エラーが生じているが訂正が不可能な領域管理情報の3種類の領域管理情報に分けられることになる。 【0030】制御部27は、このS/P・P/Sインターフェース回路22から供給された制御データに基づいてメモリカード20の動作を制御する。すなわち、この制御部27は、S/P・P/Sインターフェース回路22から供給された書き込み命令に基づいて、レジスタ23に一時的に書き込まれたデータや管理情報をレジスタ23から読み出して、フラッシュメモリ21に記憶させる。この際、制御部27は、管理情報のうち領域管理情報については、先ず変換部25に供給し、この変換部25にて領域管理フラグに変換させてからフラッシュメモリ21に記憶させる。 【0031】また、制御部27は、S/P・P/Sインターフェース回路22から供給された読み出し命令に基づいて、フラッシュメモリ21からデータや管理情報を読み出してレジスタ23に書き込む。この際、制御部27は、フラッシュメモリ21から読み出した管理情報のうち領域管理フラグについては、先ず変換部25に供給し、この変換部25にて領域管理情報に変換させてからレジスタ23に書き込む。このとき、制御部27は、変換部25にて変換された領域管理情報が、上述したエラーが生じていない領域管理情報であるか、エラー訂正をした領域管理情報であるか、エラーが生じているが訂正が不可能な領域管理情報であるかを判別するためのフラグをこの領域管理情報に付加してレジスタ23に書き込む。 【0032】なお、この制御部27には、誤消去防止スイッチ28が接続されている。そして、この誤消去防止スイッチ28がオンになっているときには、フラッシュメモリ21に記憶されているデータを消去するように指示する制御データがデータ処理装置10から送られてきたとしても、制御部27は、フラッシュメモリ21に記憶されているデータを消去するような制御を行わない。すなわち、このメモリカード20は、誤消去防止スイッチ28によって、フラッシュメモリ21に記憶されているデータの消去が行えない状態と、フラッシュメモリ21に記憶されているデータの消去が行える状態とを切り換えることが可能となっている。 【0033】以上のようなメモリカード20に対して、データ処理装置10から記憶させるべきデータや管理情報、書き込み命令等がシリアルデータとして送られてくると、先ず、S/P・P/Sインターフェース回路22がこれらのデータをパラレルデータに変換して、書き込み命令を制御部27に供給するとともに、制御部27の制御に基づいて、所定のデータや管理情報をレジスタ23に書き込む。 【0034】ここで、レジスタ23に書き込まれた所定のデータや管理情報には、ECC回路24により、領域管理情報以外を対象としたエラー訂正符号が付加される。 【0035】そして、制御部27が、S/P・P/Sインターフェース回路22から供給された書き込み命令に基づいて、レジスタ23から所定のデータや管理情報を読み出して、フラッシュメモリ21に書き込む処理を行う。この際、制御部27は、レジスタ23から読み出した管理情報のうち領域管理情報を先ず変換部25に供給する。変換部25に供給された領域管理情報は、この変換部25により領域管理フラグに変換される。そして、制御部27は、この変換部25により変換された領域管理フラグをフラッシュメモリ21に書き込む。 【0036】また、このメモリカード20は、データ処理装置10から読み出し命令が送られてくると、S/P・P/Sインターフェース回路22が、この読み出し命令を制御部27に供給する。 【0037】そして、制御部27が、S/P・P/Sインターフェース回路22から供給された読み出し命令に基づいて、フラッシュメモリ21からデータや管理情報を読み出して、レジスタ23に書き込む。この際、制御部27は、フラッシュメモリ21から読み出した領域管理フラグを先ず変換部25に供給する。変換部25に供給された領域管理フラグは、この変換部25により領域管理情報に変換される。このとき、制御部27は、領域管理フラグにエラー訂正処理部26で訂正が可能なエラーがある場合は、この領域管理フラグをエラー訂正処理部26に供給する。そして、制御部27は、エラー訂正処理部26にてエラー訂正が行われた領域管理情報に、エラー訂正を行ったことを示すフラグを付加して、レジスタ23に書き込む。 【0038】レジスタ23に書き込まれたデータや管理情報のうちのデータ管理情報にエラーがある場合は、このレジスタ23に接続されたECC回路24にてエラー訂正符号に基づいてエラー訂正が行われる。 【0039】そして、S/P・P/Sインターフェース回路22が、制御部27の制御に基づいてレジスタ23からこれら所定のデータや管理情報等を読み出してシリアルデータに変換し、データ処理装置10に送出する。 【0040】なお、以上は領域管理情報にエラー訂正を行った場合に、この領域管理情報にエラー訂正を行ったことを示すフラグを付加する例について説明したが、データやデータ管理情報にエラー訂正を行った場合にも、これらにエラー訂正を行ったことを示すフラグを付加するようにしてもよい。 【0041】また、以上はメモリカード20にECC回路24が設けられ、メモリカード20内でデータやデータ管理情報のエラー訂正を行うシステムについて説明したが、本発明はデータ処理装置がエラー訂正回路を備え、データ処理装置側でデータやデータ管理情報のエラー訂正を行うシステムに対しても適用可能である。この場合、データにエラー訂正符号が付加された状態で、データ処理装置10とメモリカード20との間のデータのやり取りが行われる。 【0042】ここで、上述したメモリカード20に搭載されるフラッシュメモリ21の記憶領域の構造について説明する。 【0043】このフラッシュメモリ21の記憶領域は、記憶単位である多数のセルから構成され、図3(a)に示すように、データの消去単位となる複数のブロックに分割されている。なお、これらのブロックには、このメモリカード20が起動されたときにデータ処理装置10によって最初に読み込まれるデータであるブートデータが格納されるブートブロックと、任意のデータが書き込まれるデータブロックとがある。そして、これらの各ブロックには、それぞれ固有の物理アドレスが付けられている。 【0044】これらのブロックは、データの消去単位であると同時に、ファイル管理上の最小単位でもある。すなわち、ファイルは1つ又は複数のブロックに格納され、1つのブロックを複数のファイルで利用することはできないようになされている。 【0045】これら各ブロックは複数のセルからなり、これら各セルに「1」又は「0」を示す2つの状態を取り得る情報、すなわち1ビットの情報が記憶される。 【0046】そして、各ブロックは、初期状態では、全てのビットが「1」とされており、ビット単位での変更は「1」から「0」への変更のみが可能とされている。したがって、フラッシュメモリ21に「1」及び「0」からなるデータを書き込む際は、「1」については該当するビットをそのまま保持し、「0」については該当するビットを「1」から「0」に変更してデータの書き込みを行う。 【0047】また、一度書き込んだデータをフラッシュメモリ21から消去する際は、ブロック単位で一括して初期化処理を行い、当該ブロックの全ビットを「1」とする。これにより、当該ブロックに書き込まれたデータは一括消去され、このブロックは再びデータ書き込みが可能な状態とされる。 【0048】また、フラッシュメモリ21の各ブロックは、図3(b)に示すように、データの書き込みや読み出しの単位となる複数のページから構成される。このページは、例えば512バイトの記憶容量を有する記憶単位であり、フラッシュメモリ21にデータを書き込む際は、このページ単位でレジスタ23から読み出されたデータが、制御部25によりページ単位でフラッシュメモリ21に書き込まれる。また、このフラッシュメモリ21からデータを読み出す際は、制御部25によりフラッシュメモリ21からデータがページ毎に読み出され、レジスタ23に供給される。 【0049】データの書き込みや読み出しの単位となるページは、データ記憶領域と管理情報記憶領域とを有している。ここで、データ記憶領域とは、任意のデータが書き込まれる領域をいい、管理情報記憶領域とは、データ記憶領域に書き込まれるデータの管理に必要な情報(管理情報)が格納される領域をいう。 【0050】管理情報記憶領域は、16バイトの領域を有し、このうち最初の3バイトが、ブロック単位で一括して初期化処理を行うことなく情報を書き換えることができるオーバーライト領域に設定されている。そして、管理情報記憶領域は、残りの13バイトが、情報を書き換える際はブロック単位で一括して初期化処理を行う通常領域に設定されている。 【0051】そして、ブロックを構成する各ページの管理情報記憶領域に、管理情報が格納される。具体的には、図3(c)に示すように、各ブロックの先頭ページの管理情報記憶領域には、このブロックを管理するために必要な情報として、いわゆる分散管理情報が格納される。また、各ブロックの2ページ目以降の各ページの管理情報記憶領域にも、予備の分散管理情報として、先頭ページの管理情報記憶領域に格納された分散管理情報と同じ管理情報が記憶される。ただし、各ブロックの最終ページの管理情報記憶領域には、分散管理情報だけでは不足する情報を補う、いわゆる追加管理情報が格納される。 【0052】このように、メモリカード20に搭載されるフラッシュメモリ21では、各ブロック内の管理情報記憶領域に、それぞれのブロックを管理するための分散管理情報が格納され、この分散管理情報により、例えば当該ブロックがファイルの先頭となるブロックであるか否かについての情報や、複数のブロックからファイルが構成される場合にはそれらのブロックの繋がりを示す情報等を得ることができる。 【0053】そして、このメモリカード20は、各ブロックの分散管理情報を集めることにより、フラッシュメモリ21全体を管理するための情報として、いわゆる集合管理情報を作成して、この集合管理情報を一つのファイルとしてフラッシュメモリ21に格納するようにしている。 【0054】そして、データ処理装置10とメモリカード20間でデータのやり取りを行う場合、データ処理装置10は、通常、フラッシュメモリ21からこの集合管理情報を読み出して、各ブロックにアクセスするために必要な情報を得るようにしている。これにより、データアクセスのたびに個々のブロックに格納された分散管理情報にアクセスする必要がなくなり、より高速なデータアクセスが可能となる。 【0055】次に、分散管理情報、追加管理情報、集合管理情報について、更に詳細に説明する。 【0056】分散管理情報は、各ページ毎に設けられた16バイトの管理情報記憶領域に格納された、ブロックを管理するための管理情報である。そして、この分散管理情報は、例えば図4に示すように、1バイトの可/不可フラグと、1バイトのブロックフラグと、4ビットの最終フラグと、4ビットの参照フラグと、1バイトの管理フラグと、2バイトの論理アドレスと、2バイトの連結アドレスと、2バイトの分散管理情報用エラー訂正符号と、3バイトのデータ用エラー訂正符号とからなり、これらの情報のうち、可/不可フラグ、ブロックフラグ、最終フラグ、参照フラグが、管理情報記憶領域の最初の3バイトのオーバーライト領域に格納される。 【0057】また、管理情報記憶領域の13バイトの通常領域に、管理フラグと論理アドレスと連結アドレスとリザーブ領域と分散管理情報用エラー訂正符号とデータ用エラー訂正符号とが格納される。そして、通常領域の残りの3バイトは、リザーブ領域とされる。 【0058】可/不可フラグは、ブロックが使用可能な状態か使用不可能な状態かを示すフラグである。すなわち、ブロック内に回復不可能なエラーが生じたようなときは、この可/不可フラグによって、当該ブロックが使用不可能な状態であることが示される。 【0059】ブロックフラグは、ブロックの使用状態を示すフラグであり、具体的には、「未使用」、「先頭使用」、「使用」、「未消去」の4つの状態を示すフラグである。「未使用」は、当該ブロックが未使用又は消去済みで初期状態(全ビットが「1」の状態)とされており、すぐにデータの書き込みが可能な状態を示す。「先頭使用」は、当該ブロックがファイルの先頭で使用されている状態を示す。「使用」は、当該ブロックがファイルの先頭以外で使用されている状態を示す。したがって、ブロックフラグが「使用」のとき、当該ブロックは他のブロックから連結されていることとなる。「未消去」は、当該ブロックに書かれていたデータが不要となった状態を示す。なお、ブートデータが格納されたブートブロックにおいて、ブロックフラグは「先頭使用」とされる。 【0060】このメモリカード20においては、ブロック内に記憶された不要なデータを消去する場合に、まずブロックフラグを「未消去」の状態にしておき、処理時間に余裕があるときに、ブロックフラグが「未消去」になっているブロックを消去するようにしている。これにより、メモリカード20は、データの消去の処理をより効率よく行うことが可能となる。 【0061】最終フラグは、ファイルが当該ブロックで終わっているか否かを示すフラグであり、具体的には、「ブロック連続」、「ブロック最終」の2つの状態を示すフラグである。「ブロック連続」は、当該ブロックに記憶されたファイルにはまだ続きがあり、他のブロックに続いていることを示す。「ブロック最終」は、当該ブロックに記憶されたファイルは、このブロックで終了していることを示す。 【0062】参照フラグは、追加管理情報の参照を指示するためのフラグであり、具体的には、「参照情報なし」、「参照情報あり」の2つの状態を示すフラグである。「参照情報なし」は、ブロックの最終ページの管理情報記憶領域に有効な追加管理情報が存在しないことを示す。「参照情報あり」は、ブロックの最終ページの管理情報記憶領域に有効な追加管理情報が存在することを示す。 【0063】管理フラグは、ブロックの属性等を示すフラグであり、例えば当該ブロックが読み出し専用のブロックか、あるいは書き込みも可能なブロックか等の属性を示す。また、例えば、この管理フラグによって、当該ブロックがブートブロックであるか、或いはデータブロックであるかが示される。 【0064】論理アドレスは、当該ブロックの論理アドレスを示す。この論理アドレスの値は、データの書換を行うとき等に必要に応じて更新される。なお、この論理アドレスの値は、同じ論理アドレスの値を同時に複数のブロックが持つことがないように設定されている。 【0065】連結アドレスは、当該ブロックに連結する他のブロックの論理アドレスを示す。すなわち、当該ブロックに記憶されたファイルが他のブロックに続いている場合に、連結アドレスは、そのファイルの続きが記憶されたブロックの論理アドレスの値を示す。 【0066】分散管理情報用エラー訂正符号は、分散管理情報のうち、管理フラグ、論理アドレス、連結アドレス及びリザーブ領域に書き込まれたデータを対象としたエラー訂正符号である。 【0067】データ用エラー訂正符号は、このデータ用エラー訂正符号が書き込まれたページのデータ記憶領域に記憶されたデータを対象としたエラー訂正符号である。 【0068】ところで、上述した分散管理情報のうち、可/不可フラグ、ブロックフラグ、最終フラグ、参照フラグは、データ記憶領域の状態を管理するための情報(領域管理情報)であり、データから独立して書き換える必要が生じる場合があるので、上述した分散管理情報用エラー訂正符号の対象から外し、それぞれの情報を示す符号と同一符号の所定量の冗長データが付加されてなるフラグ(領域管理フラグ)として管理情報記憶領域に格納されることにより、エラー対策がなされている。 【0069】具体的には、これらの領域管理情報は、変換部25により、冗長データが付加された領域管理フラグに変換されて、例えば図5に示すように、1ビットの情報については4ビットの情報として、2ビットの情報については8ビットの情報として管理情報記憶領域のオバーライト領域に格納される。 【0070】すなわち、可/不可フラグは、ブロックが使用可能な状態である場合は1ビットの情報「1」で示され、ブロックが使用不可能な状態である場合は1ビットの情報「0」で示される。そして、この可/不可フラグは、管理情報記憶領域に格納されるときは、冗長データが付加されて、例えば1バイトの情報「11111111」又は「0000 0000」に変換されて格納される。 【0071】また、ブロックフラグは、ブロックが「未使用」の場合には2ビットの情報「11」で示され、ブロックが「先頭使用」の場合には2ビットの情報「10」で示され、ブロックが「使用」の場合には2ビットの情報「01」で示され、ブロックが「未消去」の場合には2ビットの情報「00」で示される。そして、このブロックフラグは、管理情報記憶領域に格納されるときは、冗長データが付加されて、例えば1バイトの情報「1111 1111」又は「1111 0000」又は「0000 1111」又は「0000 0000」に変換されて格納される。 【0072】また、最終フラグは、「ブロック連続」の場合は1ビットの情報「1」で示され、「ブロック最終」の場合には1ビットの情報「0」で示される。そして、この最終フラグは、管理情報記憶領域に格納されるときは、冗長データが付加されて、例えば4ビットの情報「1111」又は「0000」に変換されて格納される。 【0073】また、参照フラグは、「参照情報なし」の場合は1ビットの情報「1」で示され、「参照情報あり」の場合は1ビットの情報「0」で示される。そして、この参照フラグは、管理情報記憶領域に格納されるときは、例えば4ビットの情報「1111」又は「0000」に変換されて格納される。 【0074】これら領域管理情報は、以上のように冗長データが付加された領域管理フラグとして管理情報記憶領域に格納されることにより、例えば当該フラグが格納されたセルが故障して1ビットのエラーが生じた場合であっても、例えば領域管理フラグの「1」と「0」の数を比較することにより元の領域管理情報が認識される。 【0075】追加管理情報は、ブロックの最終ページの16バイトの管理情報記憶領域に格納される情報であり、分散管理情報だけでは不足する情報を補う追加情報を含んでいる。 【0076】この追加管理情報は、具体的には、例えば図6に示すように、1バイトの可/不可フラグと、1バイトのブロックフラグと、4ビットの最終フラグと、4ビットの参照フラグと、1バイトの識別番号と、2バイトの有効データサイズと、2バイトの追加管理情報用エラー訂正符号と、3バイトのデータ用エラー訂正符号とからなる。 【0077】ここで、領域管理フラグである可/不可フラグ、ブロックフラグ、最終フラグ、参照フラグとデータ用エラー訂正符号については、分散管理情報の場合と同様である。また、追加情報用エラー訂正符号は、分散管理情報における分散管理情報用エラー訂正符号に相当するものであり、追加管理情報のうち領域管理フラグを除いた識別番号、有効データサイズ及びリザーブ領域に書き込まれたデータを対象としたエラー訂正符号である。 【0078】そして、識別番号及び有効データサイズとが、分散管理情報の不足分を補う追加情報として、追加管理情報に含まれている。 【0079】そして、追加管理情報も分散管理情報と同様に、領域管理情報である可/不可フラグ、ブロックフラグ、最終フラグ、参照フラグが、冗長データが付加された領域管理フラグとして、管理情報記憶領域の最初の3バイトのオーバーライト領域に格納される。 【0080】また、管理情報記憶領域の13バイトの通常領域に、識別番号と有効データサイズと追加管理情報用エラー訂正符号とデータ用エラー訂正符号とが格納される。そして、通常領域の残りの5バイトは、リザーブ領域とされる。 【0081】識別番号は、エラー処理用の情報であり、ブロックのデータを書き換えるたびに、識別番号の値がインクリメントされる。この識別番号は、何らかのエラーが発生して、同じ論理アドレスを持つブロックが複数存在するようになってしまった場合に、それらのブロックに書き込まれたデータの新旧を識別するために使用される。なお、識別番号には1バイトの領域が使用され、その値の範囲は「0」から「255」まであり、その初期値(すなわち、新しい論理アドレスを使用するときに最初に設定される識別番号の値)は、「0」とされる。なお、識別番号が「255」を越えたときには「0」に戻るものとする。そして、同じ論理番号を持つブロックが複数存在する場合には、この識別番号の値が小さい方のブロックを有効とする。ただし、ブートブロックについては、バックアップと同じ識別番号の場合を正常とし、異なる場合には大きい方を採用する。 【0082】有効データサイズは、ブロック内の有効なデータのサイズを示す。すなわち、当該ブロックのデータ記憶領域に空きがある場合、有効データサイズは、当該データ記憶領域に書き込まれたデータのサイズの値を示す。このとき、参照フラグは「参照情報あり」に設定される。なお、ブロックのデータ記憶領域に空きがない場合、有効データサイズは当該ブロックのデータ領域に空きがないことを示す情報として「0xffff」に設定される。 【0083】なお、以上説明した分散管理情報及び追加管理情報は、ブロック内のデータが更新される毎に、常に最新情報となるように更新される。 【0084】集合管理情報は、上述したように、各ブロックの分散管理情報を集めて作成される情報であり、ファイルとしてフラッシュメモリ21に格納される。すなわち、図7に示すように、各ブロックの分散管理情報から、全ブロックをまとめて管理するための情報である集合管理情報のファイルが作成され、この集合管理情報が所定のブロックのデータ記憶領域に格納される。なお、集合管理情報は、1つのブロックに格納されるものであっても、複数のブロックにわたって格納されるものであってもよい。そして、データ処理装置10は、通常は、この集合管理情報によって、各ブロックにアクセスするために必要な情報を得るようにする。 【0085】すなわち、メモリカード20に有効な集合管理情報がファイルとして格納されている場合、データ処理装置10は、その集合管理情報のファイルを読み出して、メモリカード20を管理するための管理テーブルを作成する。なお、集合管理情報のファイルの先頭が格納されているブロックの物理アドレスは、ブートデータに含まれており、データ処理装置10は、この物理アドレスに基づいて集合管理情報のファイルにアクセスする。 【0086】次に、以上のようなフラッシュメモリ21を備えたメモリカード20について、フラッシュメモリ21から読み出した管理情報をデータ処理装置10に伝送する処理の一例について、図8を参照して説明する。なお、この図8に示すデータ処理は、領域管理情報を4ビット単位の領域管理フラグに変換してフラッシュメモリ21に記憶させた場合の例であり、本発明を適用したメモリカードにおけるデータ処理はこの例に限定されるものではない。また、この図8に示すデータ処理は、領域管理情報に対してエラー訂正を行った場合に、この領域管理情報にエラー訂正を行ったことを示すフラグを付加して伝送する例であり、本発明を適用したメモリカードにおけるデータ処理は、さらにデータ管理情報に対してエラー訂正を行った場合に、このデータ管理情報にエラー訂正を行ったことを示すフラグを付加して伝送するようにしてもよい。 【0087】メモリカード20は、管理情報をフラッシュメモリ21から読み出してデータ処理装置10に伝送する場合は、まず、ステップS11において、制御部27により、フラッシュメモリ21から領域管理フラグが読み出される。 【0088】そして、ステップS12において、制御部27により、すべての領域管理フラグが4ビット単位でチェックされ、この領域管理フラグが1111又は0000になっているかが判断される。 【0089】この領域管理フラグが1111又は0000となっている場合は、ステップS13に進む。そして、ステップS13において、変換部25により、領域管理フラグが領域管理情報に変換され、ステップS16に進む。 【0090】領域管理フラグが1111又は0000となっていない場合は、ステップS14に進む。そして、ステップS14において、制御部27により、領域管理フラグが1110、1101、1011、0111のいずれかとなっているか又は0001、0010、0100、1000のいずれかとなっているかがチェックされる。 【0091】領域管理フラグが1110、1101、1011、0111又は0001、0010、0100、1000のいずれでもないと判断された場合は、エラー処理がなされる。 【0092】領域管理フラグが1110、1101、1011、0111のいずれか又は0001、0010、0100、1000のいずれかとなっていると判断された場合は、ステップS15に進み、ステップS15において、変換部25により、領域管理フラグが領域管理情報に変換され、制御部27により、この領域管理情報にエラー訂正をしたことを示すフラグが付加され、ステップS16に進む。 【0093】ステップS16においては、データ管理情報がチェックされ、エラーがあるか否かが判断される。 【0094】データ管理情報にエラーがないと判断された場合は、ステップS18に進む。 【0095】データ管理情報にエラーがあると判断された場合は、そのエラーが訂正可能なものかどうかが判断され、訂正不可能なものであると判断された場合は、エラー処理がなされる。また、データ管理情報のエラーが訂正可能なものであると判断された場合は、ステップS17に進み、ステップS17において、ECC回路24により、エラー訂正処理がなされ、ステップS18に進む。 【0096】ステップS18においては、S/P・P/Sインターフェース回路22により、領域管理情報及びデータ管理情報がステータス信号とともにデータ処理装置10に伝送される。 【0097】次に、データ処理装置10がメモリカード20より伝送されたデータ及び管理情報を読み込んで、これらに所定の処理を行う動作の一例について、図9を参照して説明する。なお、この図9に示すデータ処理装置によるデータ処理は、メモリカード10より伝送された領域管理情報にエラー訂正を行ったことを示すフラグが付加されていた場合に、このフラグに基づいて所定の処理を行う例であり、本発明を適用したデータ処理装置におけるデータ処理は、さらにデータ管理情報にエラー訂正を行ったことを示すフラグが付加されていた場合に、このフラグに基づいて所定のデータ処理を行うようにしてもよい。 【0098】また、この図9に示すデータ処理装置によるデータ処理は、読み込んだブロックの領域管理情報にエラー訂正を行ったことを示すフラグが付加されていた場合に、このブロックを他のブロックに書き換える処理を行うようにした例であり、本発明を適用したデータ処理装置におけるデータ処理は、この例に限定されるものではなく、領域管理情報にエラー訂正を行ったことを示すフラグが付加されていた場合に、この情報に基づいて所定の処理を行うようにすればよい。 【0099】データ処理装置10は、メモリカード20から伝送されたデータ及び管理情報に対して所定のデータ処理を行う際は、まずステップS21において、シリアルインターフェース回路12により指定ブロックの読み込み処理が行われる。そして、指定したブロックが正しく読み込めるかどうかの判断がなされる。指定したブロックが正しく読み込めないときは、ステップS22に進み、ステップS22において、制御部14により、ブロック読み込みエラー処理がなされる。 【0100】指定したブロックが正しく読み込めたときは、更に読み込んだブロックの領域管理情報にエラー訂正を行ったことを示すフラグが付加されているかどうかの判断がなされる。そして、領域管理情報にエラー訂正を行ったことを示すフラグが付加されていないと判断されれば、ステップS28に進み、ブロック読み込み正常処理がなされる。 【0101】領域管理情報にエラー訂正を行ったことを示すフラグが付加されていると判断されれば、ステップS23に進み、ステップS23において、制御部14によりブロック書き換えの条件及びブロック書き換えの状態のチェックが行われる。そして、ブロックの書き換えを行わないと判断されれば、ステップS28に進み、ブロック読み込み正常処理がなされ、ブロックの書き換えを行うと判断されれば、ステップS24に進み、ステップS24において、制御部14により、読み込んだブロックを他のブロックに書き換える処理がなされ、ステップS25に進む。 【0102】次に、ステップS25において、制御部14により、元のブロックの再利用の可能性がチェックされる。そして、元のブロックの再利用が不可能であると判断されると、ステップS26に進み、ステップS26において、制御部14により、元のブロックに対し使用付加設定がなされ、ステップS27に進む。 【0103】元のブロックが再利用可能であると判断されると、そのままステップS27に進み、ステップS27において、制御部14により、集合管理情報の更新が行われる。 【0104】集合管理情報の更新が行われると、ステップS28に進み、ステップS28において、制御部14により、ブロック読み込み正常処理がなされ、データ読み込み処理が終了する。 【0105】以上説明したように、本発明を適用したシステム1は、メモリカード20が、記憶した領域管理情報にエラー訂正を行った場合は、この領域管理情報にエラー訂正を行ったことを示すフラグを付加してデータをデータ処理装置10に伝送し、データ処理装置10が、メモリカード20から伝送された領域管理情報にエラー訂正を行ったことを示すフラグが付加されているときは、このフラグに基づいて所定のデータ処理を行うようにしているので、例えば、エラー訂正を行った領域管理情報を有するブロックを他のブロックに書き換える等の処理を行い、データの信頼性を向上させることができる。 【0106】 【発明の効果】本発明に係る記憶装置は、制御手段が記憶手段から読み出した領域管理情報にエラー訂正処理部でエラー訂正が可能なエラーがある場合は、この領域管理情報を上記エラー訂正処理部に供給し、エラー訂正処理を行った領域管理情報にエラー訂正処理を行ったことを示すフラグを付加して出力するようにしているので、この記憶装置から出力された領域管理情報がエラー訂正を行った情報であるかを容易に判断することができる。
|
| 【出願人】 |
【識別番号】000002185 【氏名又は名称】ソニー株式会社
|
| 【出願日】 |
平成9年9月30日(1997.9.30) |
| 【代理人】 |
【識別番号】100067736 【弁理士】 【氏名又は名称】小池 晃 (外2名)
|
| 【公開番号】 |
特開2002−108722(P2002−108722A) |
| 【公開日】 |
平成14年4月12日(2002.4.12) |
| 【出願番号】 |
特願2001−230426(P2001−230426) |
|