(57)【要約】【課題】 データの書き込み又は読み出しを効率よく行い、コストの上昇を招くことなく記憶容量の増大を実現した記憶装置、この記憶装置を用いたデータ処理システム及びデータ処理方法を提供する。【解決手段】フラッシュメモリ２１からデータを読み出し、又はフラッシュメモリ２１にデータを書き込む処理を行う際に、フラッシュメモリ２１の記憶領域を構成する物理ブロックの物理アドレスとこの物理ブロックに書き込まれた論理ブロックの論理アドレスとの対応関係を示すテーブルが、セグメント単位で作成されるようにしている。【選択図】図１
2007066326.tif 000002
【特許請求の範囲】
【請求項１】
データが記憶される記憶領域が複数のブロックに分割されており、上記記憶領域に書き込まれたデータが上記ブロック毎に管理される記憶手段を備えた記憶装置において、
上記ブロックは複数で一つのセグメントを構成しており、
上記記憶手段からデータを読み出し、又は上記記憶手段にデータを書き込む際は、上記セグメント単位で当該セグメントを構成するブロックに書き込まれたデータの論理アドレスと上記セグメントを構成するブロックの物理アドレスとの対応関係を示すテーブルが作成され、このテーブルを参照して上記データが読み出され、又は書き込まれること
を特徴とする記憶装置。
【請求項２】
データが記憶される記憶領域が複数のブロックに分割されており、上記記憶領域に書き込まれたデータが上記ブロック毎に管理される記憶手段を備えた記憶装置にデータを書き込み又は上記記憶装置からデータを読み出す処理を行うデータ処理装置であって、
上記記憶装置の備える記憶手段のブロックは複数で一つのセグメントを構成しており、
上記記憶装置からデータを読み出し、又は上記記憶装置にデータを書き込む際に、上記セグメント単位で当該セグメントを構成するブロックに書き込まれたデータの論理アドレスと上記セグメントを構成するブロックの物理アドレスとの対応関係を示すテーブルを作成し、このテーブルを参照して上記データを読み出し、又は書き込むこと
を特徴とするデータ処理装置。
【請求項３】
データが記憶される記憶領域が複数のブロックに分割されており、上記記憶領域に書き込まれたデータが上記ブロック毎に管理されるとともに複数のブロック毎にセグメントが構成された記憶手段からデータを読み出し、又は上記記憶手段にデータを書き込む際に、上記セグメント単位で当該セグメントを構成するブロックに書き込まれたデータの論理アドレスと上記セグメントを構成するブロックの物理アドレスとの対応関係を示すテーブルを作成し、このテーブルを参照して上記データを読み出し、又は書き込むこと
を特徴とするデータ処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データが記憶される記憶領域が複数のブロックに分割されており、上記記憶領域に書き込まれたデータが上記ブロック毎に管理される記憶手段を備えた記憶装置と、この記憶装置にデータを書き込み又はこの記憶装置からデータを読み出すデータ処理装置並びにデータ処理方法に関する。
【背景技術】
【０００２】
従来より、コンピュータ等の電子機器で用いられるデータを記憶させておく外部記憶装置として、フラッシュメモリ（電気的消去可能型プログラマブルＲＯＭ（Read-Only Memory））を記憶手段として用いたカード型の外部記憶装置（以下、メモリカードという。）が提案されている。
【０００３】
このメモリカードにおいて、記憶手段であるフラッシュメモリは、データが記憶される記憶領域が複数のブロックに分割されている。そして、このメモリカードは、フラッシュメモリに書き込まれたデータをブロック毎に管理するようにしている。
【０００４】
フラッシュメモリは、各ブロックの書き込み頻度にばらつきがあると、書き込み頻度の高いブロックが不良となる場合がある。このため、フラッシュメモリにデータを書き込む際は、各ブロックの書き込み頻度がほぼ均等になるようにするとともに、不良となったブロックについては、データの書き込みを行わないようにする必要がある。
【０００５】
そこで、このフラッシュメモリを記憶手段として備えるメモリカードを用いたデータ処理システムにおいては、フラッシュメモリに記憶させるデータを複数のブロックに分割し、各ブロック毎にアドレス情報を付加して、ブロック単位でフラッシュメモリの書き込み頻度の低いブロックに書き込むようにしている。すなわち、メモリカードを用いたデータ処理システムにおいては、データが順番通りにメモリカードに書き込まれていない。なお、以下の説明においては、混同を避けるために、フラッシュメモリの記憶領域のブロックを物理ブロックと呼び、データが分割された単位であるブロックを論理ブロックと呼ぶ。また、物理ブロックのブロックアドレスを物理アドレスと呼び、論理ブロックのブロックアドレスを論理アドレスと呼ぶ。
【０００６】
このメモリカードからデータを読み出す際は、先ず、フラッシュメモリの物理ブロック全てにアクセスして、各物理ブロックの物理アドレスとその物理ブロックに記憶されている論理ブロックの論理アドレスとの対応関係を示すテーブルをデータ処理回路の内部メモリ上に作成する。そして、このテーブルを参照して所望のデータが記憶されている物理ブロックの物理アドレスを検出し、この物理ブロックから所望のデータを読み出す。
【０００７】
また、メモリカードにデータを書き込む際は、先ず、フラッシュメモリの物理ブロック全てにアクセスして、各物理ブロックの物理アドレスとその物理ブロックに記憶されている論理ブロックの論理アドレスとの対応関係を示すテーブルをデータ処理回路の内部メモリ上に作成する。そして、このテーブルを参照して未使用の物理ブロックを検出し、この物理ブロックに所望のデータを書き込む。
【発明の開示】
【発明が解決しようとする課題】
【０００８】
ところで、近年、コンピュータ等の電子機器に対しては、ますます高い処理能力が要求されるようになっており、これらの電子機器において一度に扱われるデータが巨大化している。これに伴い、データを記憶させておく外部記憶装置も大容量化が望まれている。そして、メモリカードもフラッシュメモリの集積度の向上により、例えば１２８ＭＢもの容量を有する大容量のものが提案されている。
【０００９】
このような大容量のメモリカードにおいては、フラッシュメモリの物理ブロックのブロック数が多くなっている。したがって、大容量のメモリカードにおいては、上述したようにデータの読み出しや書き込みの際に作成されるテーブルも大きくなり、大きな内部メモリを有するデータ処理回路が必要となって、コストの上昇を招いてしまっていた。
【００１０】
そこで、本発明は、データの書き込み又は読み出しを効率よく行い、コストの上昇を招くことなく記憶容量の増大を実現した記憶装置、この記憶装置を用いたデータ処理システム及びデータ処理方法を提供することを目的とする。
【課題を解決するための手段】
【００１１】
本発明に係る記憶装置は、データが記憶される記憶領域が複数のブロックに分割されており、上記記憶領域に書き込まれたデータが上記ブロック毎に管理される記憶手段を備えた記憶装置において、上記ブロックは複数で一つのセグメントを構成しており、上記記憶手段からデータを読み出し、又は上記記憶手段にデータを書き込む際は、上記セグメント単位で当該セグメントを構成するブロックに書き込まれたデータの論理アドレスと上記セグメントを構成するブロックの物理アドレスとの対応関係を示すテーブルが作成され、このテーブルを参照して上記データが読み出され、又は書き込まれることを特徴としている。
【００１２】
この記憶装置は、記憶手段からのデータの読み出し、又は記憶手段にデータの書き込みが行われる際に、セグメント単位でテーブルが作成される。したがって、この記憶装置によれば、記憶手段のブロック全てに関して一括してテーブルを作成する必要がないので、効率よくデータの読み出し又は書き込みを行うことができる。
【００１３】
また、本発明に係るデータ処理装置は、データが記憶される記憶領域が複数のブロックに分割されており、上記記憶領域に書き込まれたデータが上記ブロック毎に管理される記憶手段を備えた記憶装置にデータを書き込み又は上記記憶装置からデータを読み出す処理を行うデータ処理装置であって、上記記憶装置の備える記憶手段のブロックは複数で一つのセグメントを構成しており、上記記憶装置からデータを読み出し、又は上記記憶装置にデータを書き込む際に、上記セグメント単位で当該セグメントを構成するブロックに書き込まれたデータの論理アドレスと上記セグメントを構成するブロックの物理アドレスとの対応関係を示すテーブルを作成し、このテーブルを参照して上記データを読み出し、又は書き込むことを特徴としている。
【００１４】
このデータ処理装置は、記憶手段からデータを読み出し、又は記憶手段にデータを書き込む際に、セグメント単位でテーブルを作成する。したがって、このデータ処理装置は、記憶手段のブロック全てに関して一括してテーブルを作成する必要がないので、効率よくデータの読み出し又は書き込みを行うことができる。
【００１５】
また、本発明に係るデータ処理方法は、データが記憶される記憶領域が複数のブロックに分割されており、上記記憶領域に書き込まれたデータが上記ブロック毎に管理されるとともに複数のブロック毎にセグメントが構成された記憶手段からデータを読み出し、又は上記記憶手段にデータを書き込む際に、上記セグメント単位で当該セグメントを構成するブロックに書き込まれたデータの論理アドレスと上記セグメントを構成するブロックの物理アドレスとの対応関係を示すテーブルを作成し、このテーブルを参照して上記データを読み出し、又は書き込むことを特徴としている。
【００１６】
このデータ処理方法によれば、記憶手段からデータを読み出し、又は書き込む際に、セグメント単位でテーブルが作成される。したがって、このデータ処理方法によれば、記憶手段のブロック全てに関して一括してテーブルを作成する必要がないので、効率よくデータの読み出し又は書き込みを行うことができる。
【発明の効果】
【００１７】
本発明に係る記憶装置は、記憶手段からデータを読み出し、又は記憶手段にデータを書き込む際に、複数のブロックから構成されるセグメント単位で、このセグメントを構成するブロックに書き込まれたデータの論理アドレスとこのセグメントを構成するブロックの物理アドレスとの対応関係を示すテーブルが作成されるようにしているので、記憶手段の容量を大きくしてブロック数を多くした場合であっても、内部メモリの容量をセグメント毎のテーブルを作成するのに必要なだけ確保すればよい。
【００１８】
したがって、この記憶装置は、内部メモリの容量を大きくすることに起因するコストの上昇を招くことなく、記憶容量の増大化を図ることができる。
【００１９】
また、本発明に係るデータ処理装置は、記憶装置の記憶手段からデータを読み出し、又は記憶装置の記憶手段にデータを書き込む際に、記憶手段の複数のブロックから構成されるセグメント単位で、このセグメントを構成するブロックに書き込まれたデータの論理アドレスとこのセグメントを構成するブロックの物理アドレスとの対応関係を示すテーブルを作成するようにしているので、記憶装置が記憶手段の容量を大きくしてブロック数を多くした場合であっても、内部メモリの容量をセグメント毎のテーブルを作成するのに必要なだけ確保すればよい。
【００２０】
したがって、このデータ処理装置は、内部メモリの容量を大きくすることに起因するコストの上昇を招くことなく、膨大な量のデータの処理を行うことができる。
【００２１】
また、本発明に係るデータ処理方法は、記憶手段からデータを読み出し、又は記憶手段にデータを書き込む際に、複数のブロックから構成されるセグメント単位で、このセグメントを構成するブロックに書き込まれたデータの論理アドレスとこのセグメントを構成するブロックの物理アドレスとの対応関係を示すテーブルが作成されるようにしているので、記憶手段の容量を大きくしてブロック数を多くした場合であっても、内部メモリの容量をセグメント毎のテーブルを作成するのに必要なだけ確保すればよい。
【００２２】
したがって、このデータ処理方法によれば、内部メモリの容量を大きくすることに起因するコストの上昇を招くことなく、膨大な量のデータ処理を行うことができる。
【発明を実施するための最良の形態】
【００２３】
以下、本発明の実施の形態を図面を参照して説明する。
【００２４】
ここでは、本発明を、図１に示すように、ホスト側の装置となるデータ処理装置１０と、シリアルインターフェースを介してこのデータ処理装置１０に接続される外部記憶装置であるメモリカード２０とから構成されるデータ処理システム１に適用した例について説明する。
【００２５】
なお、ここでは、データ処理装置１０とメモリカード２０との間でのデータのやり取りをシリアルインターフェースによって行うシステムを例に説明するが、本発明はデータのやり取りをパラレルインターフェースによって行うシステムに対しても適用可能である。
【００２６】
（データ処理装置）
このデータ処理システム１に用いられるデータ処理装置１０は、アプリケーションデータに基づいて所定のプログラムを実行するデータ処理部１１と、外部装置であるメモリカード２０との間でアプリケーションデータのやり取りをするためのシリアルインターフェース回路１２と、データ処理部１１とシリアルインターフェース回路１２間に設けられ、データ処理部１１から供給されたアプリケーションデータを一時的に記憶するレジスタ１３と、データ処理部１１、シリアルインターフェース回路１２、レジスタ１３のそれぞれに接続され、これらの処理動作を制御する制御部１４とを備えている。
【００２７】
このデータ処理装置１０は、例えばデータ処理部１１が所定のプログラムを実行する際に、外部記憶装置であるメモリカード２０にアプリケーションデータを記憶させる必要があると判断した場合は、データ処理部１１が制御部１４の制御に基づいて、記憶させるべきアプリケーションデータや書き込み命令等の制御データをレジスタ１３に書き込む。
【００２８】
そして、シリアルインターフェース回路１２が、制御部１４の制御に基づいてレジスタ１３から記憶させるべきアプリケーションデータや制御データを読み出し、シリアルデータに変換して、クロック信号やステータス信号とともにこれらの転送を行う。また、このデータ処理装置１０は、データ処理部１１が所定のプログラムを実行する際に、外部記憶装置であるメモリカード２０からアプリケーションデータを読み出す必要があると判断した場合は、データ処理部１１が制御部１４の制御に基づいて読み出し命令等の制御データをレジスタ１３に書き込む。そして、シリアルインターフェース回路１２が、制御部１４の制御に基づいてレジスタ１３から制御データを読み出し、シリアルデータに変換して、クロック信号やステータス信号とともにこれらの転送を行う。
【００２９】
この制御データに従ってメモリカード２０から転送されてきたアプリケーションデータは、シリアルインターフェース回路１２によりパラレルデータに変換され、レジスタ１３に書き込まれる。そして、データ処理部１１が、制御部１４の制御に基づいてレジスタ１３からこのアプリケーションデータを読み出して所定の処理を行う。
【００３０】
なお、本発明が適用されるデータ処理システムに用いられるデータ処理装置は、メモリカード２０等の外部記憶装置との間でデータのやり取りが可能なものであれば特に限定されるものではなく、パーソナルコンピュータ、デジタルスチルカメラ、デジタルビデオカメラ等の種々のデータ処理装置が適用可能である。
【００３１】
このデータ処理システム１において、データ処理装置１０とメモリカード２０とは、シリアルインターフェースによって接続されており、具体的には、少なくとも３本のデータ線ＳＣＬＫ，Ｓｔａｔｅ，ＤＩＯによって接続される。すなわち、データ処理装置１０とメモリカード２０とは、少なくとも、データ伝送時にクロック信号を伝送するための第１のデータ線ＳＣＬＫと、データ伝送時に必要なステータス信号を伝送するための第２のデータ線Ｓｔａｔｅと、メモリカード２０に書き込むアプリケーションデータや制御データ又はメモリカード２０から読み出すアプリケーションデータや制御データをシリアルに伝送する第３のデータ線ＤＩＯとによって接続され、これらを介して、データ処理装置１０とメモリカード２０との間でアプリケーションデータのやり取りを行う。
【００３２】
（メモリカード）
メモリカード２０は、図２に示すように、記憶手段であるフラッシュメモリ２１と、データ処理装置１０との間でアプリケーションデータや制御データのやり取りをするためのシリアル／パラレル・パラレル／シリアル・インターフェース回路（以下、Ｓ／Ｐ・Ｐ／Ｓインターフェース回路２２という。）と、フラッシュメモリ２１とＳ／Ｐ・Ｐ／Ｓインターフェース回路２２間に設けられ、Ｓ／Ｐ・Ｐ／Ｓインターフェース回路２２から供給されたアプリケーションデータを一時的に記憶するレジスタ２３と、このレジスタ２３に接続され、レジスタ２３に書き込まれたアプリケーションデータにエラーがある場合にエラー訂正符号に基づいてエラーを訂正するＥＣＣ回路２４と、フラッシュメモリ２１、Ｓ／Ｐ・Ｐ／Ｓインターフェース回路２２、レジスタ２３のそれぞれに接続され、これらの処理動作を制御する制御部２５とを備えている。
【００３３】
Ｓ／Ｐ・Ｐ／Ｓインターフェース回路２２は、少なくとも上述した３本のデータ線ＳＣＬＫ，Ｓｔａｔｅ，ＤＩＯを介して、データ処理装置１０のシリアルインターフェース回路１２に接続され、これらのデータ線ＳＣＬＫ，Ｓｔａｔｅ，ＤＩＯを介して、データ処理装置１０との間でアプリケーションデータや制御データのやり取りを行う。すなわち、Ｓ／Ｐ・Ｐ／Ｓインターフェース回路２２は、データ処理装置１０のシリアルインターフェース回路１２から送られてきたシリアルデータをパラレルデータに変換して、レジスタ２３に書き込む。また、Ｓ／Ｐ・Ｐ／Ｓインターフェース回路２２は、レジスタ２３から読み出されたパラレルデータをシリアルデータに変換して、データ処理装置１０のシリアルインターフェース回路１２へ送出する。
【００３４】
このＳ／Ｐ・Ｐ／Ｓインターフェース回路２２とデータ処理装置１０との間でのシリアルデータの伝送は、第１のデータ線ＳＣＬＫによってデータ処理装置１０から送られてくるクロック信号によって同期を取りながら、第３のデータ線ＤＩＯによって行われる。このとき、第３のデータ線ＤＩＯによってやり取りされるシリアルデータのデータ種別は、第２のデータ線Ｓｔａｔｅによって伝送されるステータス信号によって判別される。ここで、シリアルデータの種別には、例えば、フラッシュメモリ２１に記憶させるべきアプリケーションデータ、フラッシュメモリ２１から読み出されたアプリケーションデータ、又は書き込み命令、読み出し命令等の制御データ等がある。
【００３５】
また、Ｓ／Ｐ・Ｐ／Ｓインターフェース回路２２は、データ処理装置１０から送られてきたデータが書き込み命令や読み出し命令等の制御データである場合には、当該制御データを制御部２５に供給する。
【００３６】
レジスタ２３はフラッシュメモリ２１とＳ／Ｐ・Ｐ／Ｓインターフェース回路２２間でやり取りされるアプリケーションデータを一時的に記憶する。
【００３７】
ＥＣＣ回路２４は、Ｓ／Ｐ・Ｐ／Ｓインターフェース回路２２によりレジスタ２３に書き込まれたアプリケーションデータにエラー訂正符号を付加する。また、ＥＣＣ回路２４は、フラッシュメモリ２１から読み出されレジスタ２３に書き込まれたアプリケーションデータにエラー訂正処理を施す。
【００３８】
制御部２５は、Ｓ／Ｐ・Ｐ／Ｓインターフェース回路２２から供給された制御データに基づいてメモリカード２０の動作を制御する。すなわち、この制御部２５は、Ｓ／Ｐ・Ｐ／Ｓインターフェース回路２２から供給された書き込み命令に基づいて、レジスタ２３に一時的に書き込まれたアプリケーションデータをレジスタ２３から読み出して、フラッシュメモリ２１に記憶させる。また、制御部２５は、Ｓ／Ｐ・Ｐ／Ｓインターフェース回路２２から供給された読み出し命令に基づいて、フラッシュメモリ２１からアプリケーションデータを読み出してレジスタ２３に書き込む。
【００３９】
以上のようなメモリカード２０に対して、データ処理装置１０から記憶させるべきアプリケーションデータや書き込み命令がシリアルデータとして送られてくると、先ず、Ｓ／Ｐ・Ｐ／Ｓインターフェース回路２２が、これらのデータをパラレルデータに変換して、書き込み命令を制御部２５に供給するとともに、制御部２５の制御に基づいて、アプリケーションデータをレジスタ２３に書き込む。
【００４０】
ここで、レジスタ２３に書き込まれたアプリケーションデータには、ＥＣＣ回路２４により、エラー訂正符号が付加される。
【００４１】
そして、制御部２５が、Ｓ／Ｐ・Ｐ／Ｓインターフェース回路２２から供給された書き込み命令に基づいて、レジスタ２３からアプリケーションデータを読み出して、フラッシュメモリ２１に書き込む処理を行う。
【００４２】
また、このメモリカード２０は、データ処理装置１０から読み出し命令が送られてくると、Ｓ／Ｐ・Ｐ／Ｓインターフェース回路２２が、この読み出し命令を制御部２５に供給する。
【００４３】
そして、制御部２５が、Ｓ／Ｐ・Ｐ／Ｓインターフェース回路２２から供給された読み出し命令に基づいて、フラッシュメモリ２１からアプリケーションデータを読み出して、レジスタ２３に書き込む。レジスタ２３に書き込まれたアプリケーションデータにエラーがある場合は、このレジスタ２３に接続されたＥＣＣ回路２４にてエラー訂正符号に基づいてエラー訂正が行われる。
【００４４】
そして、Ｓ／Ｐ・Ｐ／Ｓインターフェース回路２２が、制御部２５の制御に基づいてレジスタ２３からこのアプリケーションデータを読み出してシリアルデータに変換し、データ処理装置１０に送出する。
【００４５】
なお、以上はメモリカード２０にＥＣＣ回路２４が設けられ、メモリカード２０内でアプリケーションデータのエラー訂正を行うシステムについて説明したが、処理装置１０側にＥＣＣ回路２４を設け、データ処理装置１０側でアプリケーションデータのエラー訂正を行うようにしてもよい。この場合、アプリケーションデータにエラー訂正符号が付加された状態で、データ処理装置１０とメモリカード２０との間のデータのやり取りが行われる。
【００４６】
（アプリケーションデータの構造、フラッシュメモリの構造）
ところで、以上のデータ処理システム１において、所定のプログラムを実行するためのアプリケーションデータは、図３に示すように、データの消去単位である複数の論理ブロックに区切られた状態で取り扱われる。そして、アプリケーションデータは、この論理ブロックを単位としてメモリカード２０上で管理される。これらアプリケーションデータを構成する各論理ブロックには、それぞれデータとしての論理番号である論理アドレスが付されている。
【００４７】
このアプリケーションデータは、メモリカード２０のフラッシュメモリ２１に記憶されるときは、各論理ブロックが必ずしも論理アドレスの順番でフラッシュメモリ２１に記憶されない。そして、アプリケーションデータをフラッシュメモリ２１から読み出す際に、各論理ブロックが論理アドレスの順に並べ替えられて元のアプリケーションデータが再現される。
【００４８】
また、アプリケーションデータを構成する各論理ブロックは、書き込みや読み出しの単位となる複数のセクターから構成されている。このセクターは、例えば５１２バイトの実データと１６バイトの冗長データとからなりる。そして、これらセクターの冗長データとして、論理ブロックの論理アドレスが複数のセクターに分散されたかたちで付加されている。また、これらセクターには、それぞれデータの順に固有のセクター番号が付されており、このセクター番号に基づいてアクセスすることができるようになされている。
【００４９】
また、フラッシュメモリ２１の記憶領域は、図４に示すように、複数の物理ブロックに分割されている。この物理ブロックは、フラッシュメモリ２１に記憶されたデータを管理する単位であり、一つの物理ブロックに、アプリケーションデータの一つの論理ブロックが記憶されるようになっている。
【００５０】
また、物理ブロックは、複数ブロックで一つのセグメントを構成している。このセグメントは、後述するように、フラッシュメモリ２１からデータを読み出し、又はフラッシュメモリ２１にデータを書き込む際にフラッシュメモリ２１の物理ブロックの物理アドレスとアプリケーションデータの論理ブロックの論理アドレスとの対応関係を示すテーブルを作成する単位である。すなわち、フラッシュメモリ２１からデータを読み出し、又はフラッシュメモリ２１にデータを書き込む際は、セグメント単位でテーブルが作成される。
【００５１】
なお、このセグメントと、このセグメントを構成する各物理ブロックに記憶される論理ブロックとの対応関係は、予め決められている。すなわち、例えば、物理アドレス０の物理ブロックから物理アドレスｎの物理ブロックにより構成されるセグメント０には、論理番号０から論理番号ｓまでの論理ブロックだけが記憶され、論理番号がｓ＋１以後の論理ブロックがセグメント０を構成する物理ブロックに記憶されることはない。そして、論理番号０から論理番号ｓまでの論理ブロックが、セグメント０内において、物理アドレス０の物理ブロックから物理アドレスｎの物理ブロックに、順不同に記憶されることになる。
【００５２】
（データ読み出し処理の一例）
ここで、以上のようなデータ処理システム１において、メモリカード２０のフラッシュメモリ２１からデータを読み出す処理の一例について説明する。
【００５３】
フラッシュメモリ２１からデータを読み出す際は、先ず、データ処理装置１０のデータ処理部１１からの読み出し命令が、シリアルインターフェース回路１２、Ｓ／Ｐ・Ｐ／Ｓインターフェース回路２２を介して、メモリカード２０の制御部２５に送られる。
【００５４】
そして、メモリカード２０の制御部２５は、この読み出し命令に従って、図５にフローチャートで示す手順に従って、フラッシュメモリ２１から所望のデータを読み出す。
【００５５】
すなわち、制御部２５は、先ずＳＴＥＰ１において、読み出すデータのセクター番号から、当該データが属する論理ブロックの論理アドレスを計算する。例えば、一つの論理ブロックが（ｔ＋１）のセクターから構成される場合、セクター番号が１００のセクターが属する論理ブロックの論理アドレスを求めるには、１００／（ｔ＋１）の演算を行うことにより、読み出すデータが属する論理ブロックの論理アドレスが求まる。
【００５６】
ここで、上述したように、フラッシュメモリ２１のセグメントと、このセグメントを構成する各物理ブロックに記憶される論理ブロックとの対応関係は、予め決められている。したがって、読み出すデータが属する論理ブロックの論理アドレスが求まれば、当該データがフラッシュメモリ２１のどのセグメントに記憶されているかが分かることになる。
【００５７】
次に、制御部２５は、ＳＴＥＰ２において、例えば図６に示すような、当該データが記憶されたセグメントを構成する各物理ブロックの物理アドレスと、この各物理ブロックに記憶された論理ブロックの論理アドレスとの対応関係を示すテーブルを内部メモリ上に作成する。このとき、内部メモリに他のセグメントについてのテーブルが作成されているときは、制御部２５は、このテーブルを、読み出すデータが記憶されたセグメントについてのテーブルに書き換える処理を行う。
【００５８】
次に、制御部２５は、ＳＴＥＰ３において、作成したテーブルを参照して、読み出すデータが属する論理ブロックが記憶された物理ブロックを求める。
【００５９】
次に、制御部２５は、ＳＴＥＰ４において、読み出すデータが当該物理ブロック内のどこに記憶されているかを求める。ここで、物理ブロックには、データがセクター番号順に記憶されている。したがって、読み出すデータが、物理ブロック内の何番目に記憶されているかを求めるには、例えば、一つの論理ブロックがｔ＋１のセクターから構成される場合、セクター番号が１００のデータが記憶されているのは、当該データの属する論理ブロックの論理アドレスをＢとすると、１００−Ｂ×（ｔ＋１）の演算を行うことにより、読み出すデータが、物理ブロック内の何番目に記憶されているかが求められる。
【００６０】
次に、制御部２５は、ＳＴＥＰ５において、物理ブロック内の読み出すデータが記憶されている箇所にアクセスして、この物理ブロックから所望のデータを読み出す。
【００６１】
制御部２５は、以上のようにしてフラッシュメモリ２１から読み出したデータを、レジスタ２３に書き込む。そして、レジスタ２３に書き込まれたデータにエラーがある場合は、このレジスタ２３に接続されたＥＣＣ回路２４にてエラー訂正符号に基づいてエラー訂正が行われる。
【００６２】
そして、エラー訂正が行われたデータは、Ｓ／Ｐ・Ｐ／Ｓインターフェース回路２２、シリアルインターフェース回路１２を介して、データ処理装置１０のデータ処理部１１に送られる。
【００６３】
（データ書き込み処理の一例）
次に、以上のようなデータ処理システム１において、メモリカード２０のフラッシュメモリ２１にデータを書き込む処理の一例について説明する。
【００６４】
フラッシュメモリ２１からデータを読み出す際は、先ず、データ処理装置１０のデータ処理部１１からの書き込み命令が、シリアルインターフェース回路１２、Ｓ／Ｐ・Ｐ／Ｓインターフェース回路２２を介して、メモリカード２０の制御部２５に送られるとともに、書き込むべきデータが、シリアルインターフェース回路１２、Ｓ／Ｐ・Ｐ／Ｓインターフェース回路２２を介して、メモリカード２０のレジスタ２３に書き込まれる。
【００６５】
そして、メモリカード２０の制御部２５は、この読み出し命令に従って、図７にフローチャートで示す手順に従って、フラッシュメモリ２１に当該データを書き込む。
【００６６】
すなわち、制御部２５は、先ずＳＴＥＰ１において、読み出すデータのセクター番号から、当該データが属する論理ブロックの論理アドレスを計算する。例えば、一つの論理ブロックがｔ＋１のセクターから構成される場合、セクター番号が１００のセクターが属する論理ブロックの論理アドレスを求めるには、１００／（ｔ＋１）の演算を行うことにより、読み出すデータが属する論理ブロックの論理アドレスが求まる。
【００６７】
ここで、上述したように、フラッシュメモリ２１のセグメントと、このセグメントを構成する各物理ブロックに記憶される論理ブロックとの対応関係は、予め決められている。したがって、読み出すデータが属する論理ブロックの論理アドレスが求まれば、フラッシュメモリ２１の当該データを書き込むべきセグメントが分かることになる。
【００６８】
次に、制御部２５は、ＳＴＥＰ２において、先に図６で示したような、当該データを書き込むべきセグメントを構成する各物理ブロックの物理アドレスと、この各物理ブロックに記憶された論理ブロックの論理アドレスとの対応関係を示すテーブルを内部メモリ上に作成する。このとき、内部メモリに他のセグメントについてのテーブルが作成されているときは、制御部２５は、このテーブルを、データを書き込むべきセグメントについてのテーブルに書き換える処理を行う。
【００６９】
次に、制御部２５は、ＳＴＥＰ３において、作成したテーブルを参照して、セグメントを構成する各物理ブロックのうちで未使用の物理ブロックを求める。
【００７０】
次に、制御部２５は、ＳＴＥＰ４において、フラッシュメモリ２１に書き込むべきデータをレジスタ２３から読み出して、未使用の物理ブロックに書き込む。
【００７１】
次に、制御部２５は、上記テーブルのデータを書き込んだ物理ブロックに対応した論理アドレスについての記載を、「未使用」から書き込んだデータの属する論理ブロックの論理アドレスに書き換える処理を行う。
【００７２】
（データを更新する処理の一例）
次に、以上のようなデータ処理システム１において、メモリカード２０のフラッシュメモリ２１に書き込まれたデータを更新する処理の一例について説明する。
【００７３】
フラッシュメモリ２１に書き込まれたデータを更新する際は、先ず、データ処理装置１０のデータ処理部１１からの読み出し命令が、シリアルインターフェース回路１２、Ｓ／Ｐ・Ｐ／Ｓインターフェース回路２２を介して、メモリカード２０の制御部２５に送られる。
【００７４】
そして、メモリカード２０の制御部２５は、この読み出し命令に従って、先に図５に示したフローチャートで示す手順に従って、フラッシュメモリ２１から所望のデータを読み出す。
【００７５】
フラッシュメモリ２１から読み出されたデータは、制御部２５の制御により、レジスタ２３に書き込まれる。そして、レジスタ２３に書き込まれたデータにエラーがある場合は、このレジスタ２３に接続されたＥＣＣ回路２４にてエラー訂正符号に基づいてエラー訂正が行われる。
【００７６】
エラー訂正が行われたデータは、Ｓ／Ｐ・Ｐ／Ｓインターフェース回路２２、シリアルインターフェース回路１２を介して、データ処理装置１０のデータ処理部１１に送られる。そして、データ処理部１１において、データを更新する処理が行われる。このとき、データの更新はブロック単位で行われ、更新するデータの属する論理ブロックが全て書き換えられる。
【００７７】
データ処理部１１において更新されたデータは、書き込み命令とともに、シリアルインターフェース回路１２、Ｓ／Ｐ・Ｐ／Ｓインターフェース回路２２を介して、メモリカード２０側に送られる。
【００７８】
そして、メモリカード２０の制御部２５が、データ処理装置１０から送られてきた読み出し命令に従って、先に図７に示したフローチャートで示す手順に従って、更新されたデータをフラッシュメモリ２１に書き込む処理を行う。すなわち、更新されたデータは、当該データが書き込まれるべきセグメントを構成する各物理ブロックのうちで未使用の物理ブロックに書き込まれることになる。
【００７９】
そして、データの更新を行う場合については、図８に示すように、更新したデータを未使用の物理ブロックに書き込んだ後に、制御部２５が、内部メモリに作成されたテーブルの中で、更新したデータを書き込んだ物理ブロックに対応した論理アドレスについての記載を、「未使用」から更新したデータの属する論理ブロックの論理アドレスに書き換える処理を行うとともに、更新したデータが更新前に書き込まれていた物理ブロックに対応した論理アドレスの記載を、更新したデータの属する論理ブロックの論理アドレスから「使用済み」に書き換える処理を行う。
【００８０】
そして、最後に、制御部２５が、更新前のデータをブロック単位で消去する処理を行う。
【００８１】
（その他）
なお、以上は、フラッシュメモリ２１からデータ読み出す処理やフラッシュメモリ２１にデータを書き込みむ処理をメモリカード２０の制御部２５が行うようにした例について説明したが、データの読み出し処理や書き込み処理は、データ処理装置１０の制御部１４が行うようにしてもよい。この場合は、データ処理装置１０の制御部１４の内部メモリに、物理ブロックの物理アドレスと、この物理ブロックに記憶された論理ブロックの論理アドレスとの対応関係を示すテーブルがセグメント単位で作成される。
【００８２】
以上説明したように、本発明を適用したデータ処理システム１は、メモリカード２０のフラッシュメモリ２１からデータを読み出し、又はメモリカード２０のフラッシュメモリ２１にデータを書き込む処理を行う際に、フラッシュメモリ２１の記憶領域を構成する物理ブロックの物理アドレスとこの物理ブロックに書き込まれた論理ブロックの論理アドレスとの対応関係を示すテーブルが、セグメント単位で作成される。したがって、このデータ処理システム１においては、フラッシュメモリ２１の容量を大きくして物理ブロックのブロック数を多くした場合であっても、メモリカード２０の制御部２５或いはデータ処理装置１０の制御部１４の内部メモリは、セグメント毎のテーブルを作成するのに必要なだけの容量で足りる。
【００８３】
このように、本発明を適用すれば、メモリカード２０の制御部２５の内部メモリやデータ処理装置１０の制御部１４の内部メモリの容量を大きくすることに起因するコストの上昇を招くことなく、メモリカード２０の記憶容量を増大させたデータ処理システム１を実現することができる。
【００８４】
また、本発明を適用したメモリカード２０は、フラッシュメモリ２１からデータを読み出し、又はフラッシュメモリ２１にデータを書き込む処理を行う際に、フラッシュメモリ２１の記憶領域を構成する物理ブロックの物理アドレスとこの物理ブロックに書き込まれた論理ブロックの論理アドレスとの対応関係を示すテーブルが、セグメント単位で作成される。したがって、このメモリカード２０においては、フラッシュメモリ２１の容量を大きくして物理ブロックのブロック数を多くした場合であっても、制御部２５の内部メモリは、セグメント毎のテーブルを作成するのに必要なだけの容量で足り、制御部２５の内部メモリの容量を大きくすることに起因するコストの上昇を招くことなく、記憶容量の増大化を図ることができる。
【図面の簡単な説明】
【００８５】
【図１】データ処理装置の構成を示すブロック図である。
【図２】メモリカードの構成を示すブロック図である。
【図３】アプリケーションデータの構造を示す模式図である。
【図４】フラッシュメモリの記憶領域の構造を示す模式図である。
【図５】フラッシュメモリからデータを読み出す処理の一例を説明するフローチャートである。
【図６】物理アドレスと論理アドレスとの対応関係を示すテーブルの模式図である。
【図７】フラッシュメモリにデータを書き込む処理の一例を説明するフローチャートである。
【図８】フラッシュメモリに書き込まれたデータを更新する処理の一例を説明するフローチャートである。
【符号の説明】
【００８６】
１ データ処理システム、１０ データ処理装置、１１ データ処理部、１４制御部、２０ メモリカード、２１ フラッシュメモリ、２５ 制御部
【図１】
2007066326.tif 000003
【図２】
2007066326.tif 000004
【図３】
2007066326.tif 000005
【図４】
2007066326.tif 000006
【図５】
2007066326.tif 000007
【図６】
2007066326.tif 000008
【図７】
2007066326.tif 000009
【図８】
2007066326.tif 000010