(57)【特許請求の範囲】
【請求項１】
それぞれが複数の書き換え可能なセクタを含むブロックを複数備える記憶媒体の各ブロックに対するデータ書き換えを制御するメモリ制御装置において、
前記記憶媒体中で第１のブロック中の使用中状態のセクタ内のデータを第２のブロック中のデータ未使用状態のセクタに複写し、該第１のブロック中の使用中状態のセクタ内のデータを破棄してデータ未使用状態のセクタに遷移させるガーベージコレクションの許可または禁止を設定する管理フラグを記憶する記憶手段と、
前記記憶手段に記憶された前記管理フラグの状態を判定して、前記記憶媒体の各ブロックに対するメモリアクセスを制御する制御手段とを有し、
前記記憶媒体は、ガーベージコレクションの際に使用中状態のセクタ内のデータを退避させるための退避ブロックを少なくとも１つ備え、
前記制御手段は、前記管理フラグが許可状態の場合に、前記退避ブロックを用いたガーベージコレクションを許可し、前記管理フラグが禁止状態の場合に、前記退避ブロックに対するデータ書込みを許可することを特徴とするメモリ制御装置。
【請求項２】
前記記録媒体は、フラッシュＲＯＭであることを特徴とする請求項１に記載のメモリ制御装置。
【請求項３】
それぞれが複数の書き換え可能なセクタを含むブロックを複数備える記憶媒体の各ブロックに対するデータ書き換えを制御するメモリアクセス方法において、
前記記憶媒体中で第１のブロック中の使用中状態のセクタ内のデータを第２のブロック中のデータ未使用状態のセクタに複写し、該第１のブロック中の使用中状態のセクタ内のデータを破棄してデータ未使用状態のセクタに遷移させるガーベージコレクションの許可または禁止を設定する管理フラグを設定する設定工程と、
該設定された前記管理フラグの状態を判定して前記記憶媒体の各セクタに対するメモリアクセスを禁止または許可する処理工程とを有し、
前記記憶媒体は、ガーベージコレクションの際に使用中状態のセクタ内のデータを退避させるための退避ブロックを少なくとも１つ備え、
前記処理工程では、前記管理フラグが許可状態の場合に、前記退避ブロックを用いたガーベージコレクションを許可し、前記管理フラグが禁止状態の場合に、前記退避ブロックに対するデータ書込みを許可することを特徴とするメモリアクセス方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、所定単位で記憶された情報を消去可能な記憶媒体に対するアクセスを制御するメモリ制御装置およびメモリ制御方法に関するものである。
【０００２】
【従来の技術】
従来、所定単位で記憶された情報を消去可能な記憶媒体、例えばフラッシュＲＯＭ等が種々の情報処理装置に搭載されている。
【０００３】
該フラッシュＲＯＭは、あるまとまった消去単位、例えば６４Ｋバイト等といった大きな単位での消去（フラッシュ）が可能な不揮発性メモリである。これを、ファイルシステムの支配下の記録メディアとして使用できるサービスを提供するドライバが従来から存在している。
【０００４】
図９は、この種のフラッシュＲＯＭのデータ構造を説明する図である。以下、構成および動作について説明する。なお、フラッシュＲＯＭは、システム中に複数搭載されており、消去単位をイレーズブロックＥＢとする。
【０００５】
この図に示すように、フラッシュＲＯＭ１０００は、複数のイレーズブロックＥＢ１〜ＥＢＮによって構成され、各イレーズブロックＥＢ１〜ＥＢＮは、さらに消去回数カウンタＥＣと複数のセクタによって構成され、消去回数カウンタＥＣは、イレーズブロックを消去した回数をカウントするために用いる部分であり、セクタは管理領域として論理セクタ番号を表すセクタ番号ＳＮとセクタが有効利用されているかどうかを表す「使用中」を示す管理フラグＷＲＥ、「使用済み」を示す管理フラグＷＲＥとデータ領域ＤＡＴＡから構成されている。
【０００６】
フラッシュＲＯＭ１０００は、上書きできないため、各セクタの書き換えは、論理セクタを移動させることで行っている。
【０００７】
図１０は、図９に示したフラッシュＲＯＭ１０００の各セクタの書き換えを説明する概念図であり、（ａ）が書き換え前の状態に対応し、（ｂ）が書き換え後に対応する。
【０００８】
例えばセクタ番号ＳＮが「８」に格納されたデータを書き換える場合、セクタ番号ＳＮ「８」がファイルの一部として利用されていて、その内容を変更した場合には、未使用のセクタ（図１０の（ａ）の斜線セクタ域）を検索し、その場所を新たなセクタ番号ＳＮ「８」のデータ管理セクタとして、図１０の（ｂ）に示すようにセクタ番号とデータを格納し、管理フラグＷＲＥを「書込み中」にする。
【０００９】
そして、以前セクタ番号「８」のセクタ域の管理フラグＷＲＥＤを「使用済み」にすると、書き換え処理が終了する。
【００１０】
このような処理手順に従って論理セクタの書き換えを実行してゆくことにより、いずれフラッシュＲＯＭ１００の殆どの領域を「使用済セクタ」になってしまう。
【００１１】
そこで、あるタイミングでフラッシュＲＯＭ１０００を一旦消去して、「使用済セクタ」を「未使用セクタ」へ戻す処理、すなわち、ガーベージコレクションを行う必要がある。
【００１２】
一般的なフラッシュＲＯＭのシステムでは、上述したようなイレーズブロックが複数含まれている。また、通常、消去回数にはある保証の上限があるため、システムに含まれる各イレーズブロックの消去回数を均一するように、消去するイレーズブロックを選定することが望ましい。
【００１３】
そこで、従来から、消去の回数カウンタ（上記消去回数カウンタＥＣによる）を使用した消去回数分散処理が実行されている。
【００１４】
具体的には、フラッシュＲＯＭを備えるシステムでは、あらかじめ消去回数カウンタＥＣを保持しておき、消去する度にカウンタを「１」つインクリメントする。そして、消去するタイミングが到達した時に、消去対象のイレーズブロックの中から、一番消去回数の少ないブロックを選んで消去するようにしている。
【００１５】
また、残り容量が極端に少なくなると、ガーベージコレクションが多発してシステムのパフォーマンスが極端に落ちてしまう。これに対して、従来より、総論理セクタ分を格納できるイレーズブロック数よりも「１」つだけ余分にイレーズブロックを対比ブロックとして用意して、そのような事態を避けることができるように構成されている。
【００１６】
【発明が解決しようとする課題】
しかしながら、上記ガーベージコレクションは、通常データのコピーやイレーズブロックの消去等時間の係る処理である。
【００１７】
このため、システムの初期化やシャットダウン等の際に、ファイルの読み書きが発生してガーベージコレクションが起こると、例えばイベント処理ルーチンに各種のイベントが溜りすぎる等システムの運営に不具合を生じさせてしまうという問題点があった。
【００１８】
本発明は、上記の課題を解決するためになされたもので、本発明の目的は、ガーベージコレクションの発生を制限できるとともに、ガーベージコレクションに使用する退避ブロックを、ガーベージコレクションが禁止された状態では、データ書き込みに利用できるので、ガーベージコレクションが許可された状態と禁止された状態とで、同一ブロックを効率よく利用できる仕組みを提供することである。
【００１９】
【課題を解決するための手段】
本発明に係るメモリ制御装置は、以下の特徴的構成を備える。
それぞれが複数の書き換え可能なセクタを含むブロックを複数備える記憶媒体の各ブロックに対するデータ書き換えを制御するメモリ制御装置において、前記記憶媒体中で第１のブロック中の使用中状態のセクタ内のデータを第２のブロック中のデータ未使用状態のセクタに複写し、該第１のブロック中の使用中状態のセクタ内のデータを破棄してデータ未使用状態のセクタに遷移させるガーベージコレクションの許可または禁止を設定する管理フラグを記憶する記憶手段と、前記記憶手段に記憶された前記管理フラグの状態を判定して、前記記憶媒体の各ブロックに対するメモリアクセスを制御する制御手段とを有し、前記記憶媒体は、ガーベージコレクションの際に使用中状態のセクタ内のデータを退避させるための退避ブロックを少なくとも１つ備え、前記制御手段は、前記管理フラグが許可状態の場合に、前記退避ブロックを用いたガーベージコレクションを許可し、前記管理フラグが禁止状態の場合に、前記退避ブロックに対するデータ書込みを許可することを特徴とする。
【００２０】
本発明に係るメモリアクセス方法は、以下の特徴的構成を備える。
それぞれが複数の書き換え可能なセクタを含むブロックを複数備える記憶媒体の各ブロックに対するデータ書き換えを制御するメモリアクセス方法において、
前記記憶媒体中で第１のブロック中の使用中状態のセクタ内のデータを第２のブロック中のデータ未使用状態のセクタに複写し、該第１のブロック中の使用中状態のセクタ内のデータを破棄してデータ未使用状態のセクタに遷移させるガーベージコレクションの許可または禁止を設定する管理フラグを設定する設定工程と、該設定された前記管理フラグの状態を判定して前記記憶媒体の各セクタに対するメモリアクセスを禁止または許可する処理工程とを有し、前記記憶媒体は、ガーベージコレクションの際に使用中状態のセクタ内のデータを退避させるための退避ブロックを少なくとも１つ備え、前記処理工程では、前記管理フラグが許可状態の場合に、前記退避ブロックを用いたガーベージコレクションを許可し、前記管理フラグが禁止状態の場合に、前記退避ブロックに対するデータ書込みを許可することを特徴とする。
【００２４】
本発明に係る第６の発明は、前記記録媒体は、フラッシュＲＯＭとするものである。
【００２５】
本発明に係る第７の発明は、複数の書き換え可能なセクタを複数ブロック備える記憶媒体の各ブロックに対するデータ書き換えを制御するメモリアクセス方法において、前記記憶媒体中で使用中状態のセクタ内のデータをデータ未使用状態のセクタに複写し、該使用中状態のセクタ内のデータを破棄してデータ未使用状態のセクタに遷移させるメモリアクセスの許可または禁止を設定する管理フラグを設定する設定工程と、該設定された前記管理フラグの状態を判定して前記記憶媒体の各セクタに対する前記メモリアクセスを禁止または許可する処理工程とを有するものである。
【００２６】
【発明の実施の形態】
図１は、本発明の第１実施形態を示すメモリ制御装置を適用可能な画像処理システムの一例を示すブロック図であり、例えば電子カメラシステム（ディジタルカメラ）に対応する。
【００２７】
図において、１はレンズで、所定のフォーカス制御部等により焦点制御が実行されて被写体とのピントを自動調整される機能が付加されている。２はＣＣＤユニットで、レンズ１を通過した光を電気信号（アナログ信号）として出力する。３はＡ／Ｄコンバータで、ＣＣＤユニット２から出力されるアナログ信号をディジタル信号に変換する。４はＳＳＧユニットで、ＣＣＤユニット２およびＡ／Ｄコンバータ３に同期信号を供給する。５はＣＰＵで、ＯＳ等のシステムプログラムが格納されたＲＯＭ１３および外部記憶媒体１７に記憶された各種アプリケーションプログラムを実行してシステムバス上の各デバイスのアクセスを総括的に制御する。
【００２８】
６は信号処理アクセラレータで、信号処理処理（映像モード，文字原稿モード等に基づく画像処理を含む）を高速化処理する。７は電池で、ＤＣ−ＤＣコンバータ８の電源として機能する。ＤＣ−ＤＣコンバータ８は、システム全体へ電源を供給する。９は電源コントローラユニットで、ＤＣ−ＤＣコンバータ８を制御する。１０はマイクロコンピュータで、パネル操作，表示装置，電源のコントロールを行う。１１は表示装置で、ユーザへの情報を表示する。１２はコントロールパネルで、ユーザが直接操作可能なレリーズスイッチを含む。
【００２９】
１６はＰＣＭＣＩＡカード用のカードインタフェースで、ＡＴＡハードディスク等の外部記録媒体１７とのデータ書込み／データ読み込みを行う。なお、外部記録媒体１７は、所定のモードに応じて異なる枚数の映像情報を記憶することができる。
【００３０】
１８は拡張バスインタフェースで、ＰＣ通信異端１９を介して例えばウインドウズ，マッキントッシュ（それぞれ商品名）等のパーソナルコンピュータ（ＰＣ）２２とのデータアクセスを可能とする。これにより、撮像された静止画の画像情報または外部記録媒体１７に記憶された画像情報をパーソナルコンピュータ２２のアプリケーションにより自在に編集処理可能に構成されている。２０はＤＭＡＣで、ＤＲＡＭ１４へのアクセス制御する。２１はストロボで、光量を検知して自動発光制御される。なお、外部記憶媒体１７が装着されていない場合でも、撮像された画像情報を画像ファイルとしてフラッシュＲＯＭ１５上に記憶することができる。以下、カメラ撮影時の動作について説明する。
【００３１】
コントロールパネル１２のレリーズスイッチをユーザが押下すると、ＣＰＵ５がその押下状態を検出して、ＲＯＭ１３に記憶された撮影シーケンスを開始する。ＳＳＧ４がＣＣＤユニット２およびＡ／Ｄコンバータ３に対して駆動クロックを供給してＣＣＤユニット２内の、例えば５７万画素のＣＣＤを駆動する。
【００３２】
ＣＣＤユニット２から出力されるアナログ信号は、Ａ／Ｄコンバータ３でディジタル信号へ変換され、ＤＭＡＣ２０によりＤＲＡＭ１４へＤＭＡ転送される。１フレーム分のＤＭＡ転送が終了した時点で、ＣＰＵ５は、信号処理シーケンスを開始する。
【００３３】
すなわち、フラッシュＲＯＭ１５から信号処理プログラムを主記憶領域（ＤＲＡＭ１４上）に読み出して実行する。主記憶領域上のデータを信号処理アクセラレータ６へ転送して信号処理を行う。なお、信号処理アクセラレータ６は、信号処理の全てを行うわけではなく、ＣＰＵ５で行う処理のうち、特に時間のかかる処理を補助する演算を担い、ＣＰＵ５の処理ソフトウエアと連携して動作する。
【００３４】
信号処理の一部または全部が終了すると、画像ファイルとしてフラッシュＲＯＭ１５へ記録される。この時記録するファイルフォーマットが圧縮処理を必要とするのであれば圧縮も行う。
【００３５】
図２は、図１に示したフラッシュＲＯＭ１５に記録される画像ファイルシステムの階層構造を示す概念図であり、例えば階層Ｌ１〜Ｌ４で構成される場合に対応する。
【００３６】
図において、最上位の階層Ｌ１はユーザアプリケーションで、カメラ内部で起動するソフトウエアであり、ファイルをファイル名でオープンして読書きした後クローズする。階層Ｌ２は、ファイルシステムＡＰＩ層で、ユーザアプリケーションからファンクションコールによって呼び出される。該階層Ｌ２がドライブ名とファイルシステムを関連付けて管理している。各ドライブ毎にファイルシステムアーキテクチャー層（階層Ｌ３）をマウントするように構成しているため、複数のファイルシステムアーキテクチャー（例えばＦＡＴ，ＨＰ−ＦＳ，ＮＦＳ，ＮＴ−ＦＳ等）を混在させることが可能となっている。なお、ファイルシステムアーキテクチャー層が実際のファイル管理を行う部分である。最下位の階層Ｌ４がブロックデバイス層である。
【００３７】
ファイルシステムアーキテクチャー層がブロックデバイス層の提供するサービスを利用してファイル入出力を実現している。なお、ブロックデバイス層では、データを５１２バイト等のセクタという単位で管理している。該ブロックデバイス層でデバイス毎の入出力制御の違いと、ヘッドやシリンダ等のパラメータの違いを吸収している。これにより、同時に複数の種類のデバイスを混在させたカメラシステムを構築することができる。
【００３８】
なお、本実施形態におけるシステムでは、フラッシュＲＯＭ１５のブロックデバイスがファイルシステムへ提供するサービスは（１）〜（５）である。
【００３９】
（１）は論理的なセクタ番号で指定したセクタからのデータ読み出しサービス、（２）は論理的なセクタ番号で指定したセクタへのデータ書き込みサービス、（３）は論理的なセクタ番号で指定したセクタを解放するサービス、（４）はガーベージコレクションを禁止するサービス、（５）はガーベージコレクションを許可するサービスである。以下、上記（４），（５）について詳述する。
【００４０】
ガーベージコレクションを禁止すると、例えばシステムの殆どの論理セクタを使用している時などに未使用セクタがなくなり、それ以上書き込めなくなる可能性がある。
【００４１】
そこで、システム中のイレーズブロックを少なくとも１つ予約ブロックとして、ガーベージコレクション禁止時には、この予約ブロックに書き込む。本実施形態ではガーベージコレクションの際の使用中セクタの移動のための退避ブロックと上記予約ブロックを同一ブロックとして実現している。
【００４２】
以下、本実施形態と第１〜第６の発明の各手段との対応及びその作用について図１等を参照して説明する。
【００４３】
第１，第６の発明は、複数の書き換え可能なセクタを複数ブロック備える記憶媒体の各ブロックに対するデータ書き換えを制御するメモリ制御装置において、前記記憶媒体中で使用中状態のセクタ内のデータをデータ未使用状態のセクタに複写し、該使用中状態のセクタ内のデータを破棄してデータ未使用状態のセクタに遷移させるメモリアクセスの許可または禁止を設定する管理フラグを記憶する記憶手段（ＤＲＡＭ１４）と、前記記憶手段に記憶された前記管理フラグの状態を判定して前記記憶媒体の各ブロックに対する前記メモリアクセスを制御する制御手段（ＣＰＵ５がＲＯＭ１３，ＲＡＭ１４等に記憶された制御プログラムを実行して制御する）とを有し、フラッシュＲＯＭ１５中で使用中状態のセクタ内のデータをデータ未使用状態のセクタに複写し、該使用中状態のセクタ内のデータを破棄してデータ未使用状態のセクタに遷移させるメモリアクセスの許可または禁止を設定する管理フラグを記憶するＤＲＡＭ１４に記憶された前記管理フラグの状態を判定してＣＰＵ５がフラッシュＲＯＭ１５の各セクタに対する前記メモリアクセスを制御するので、フラッシュＲＯＭ１５の使用状態に応じて頻発するガーベージコレクションの発生を有効に制限することができる。
【００４４】
第２，第３の発明は、フラッシュＲＯＭ１５は、前記管理フラグが禁止状態の場合に前記メモリアクセスを実行可能とする予約ブロックを少なくとも１つ有するので、ガーベージコレクションが禁止されて、書き換えが要求されるセクタを獲得できない状況が発生しても、予約ブロックを使用してデータ更新処理を実行してシステムのデータを正常に保持させることができる。
【００４５】
第４の発明は、フラッシュＲＯＭ１５は、使用中状態のセクタ内のデータを消去するために、該データを退避させるための退避ブロックを少なくとも１つ有するので、ガーベージコレクション実行時に、対象となるセクタのデータを一括して退避させて短時間にガーベージコレクションを完了することができる。
【００４６】
第５の発明は、ＣＰＵ５がフラッシュＲＯＭ１５内の前記予約ブロックと前記退避ブロックとを同一ブロックとして管理とするので、同一ブロックを予約ブロックまたは退避ブロックとして効率よく共有することができる。
【００４７】
以下、図３に示すフローチャートを参照してガーベージコレクションの禁止処理について説明する。
【００４８】
図３は、図１に示したフラッシュＲＯＭ１５に設定されるイレーズブロックに対するガーベージコレクション禁止処理手順を示すフローチャートである。なお、（１）はステップを示す。
【００４９】
ガーベージコレクション禁止処理が開始されると、ガーベージコレクションフラグを「禁止」に設定して（１）、処理を終了する。
【００５０】
なお、本実施形態では、ユーザアプリケーションの実行状態応じて任意のタイミングで、例えばＤＲＡＭ１４のフラグエリアに確保されるガーベージコレクションフラグを禁止に設定するものとする。
【００５１】
図４は、図２に示したフラッシュＲＯＭ１５のブロックデバイスによるサービス処理手順の一例を示すフローチャートであり、例えば論理セクタの書き込みサービス処理に対応する。（１）〜（１２）は各ステップを示す。
【００５２】
先ず、オペレーティングシステム（ＯＳ）の持つセマフォを使用して論理セクタをロックする（１）。なお、セクタが既に他のタスクによってロックされている場合、他のタスクによってロック解除されるのを待つ。他のタスクによってロック解除された後でロックを行う。また、ロックされたセクタは、ステップ（９）でロック解除されるまでの間、自タスクによって占有することができる。
【００５３】
次いで。ステップ（２）で有効なデータが記録されているかどうかを記憶管理テーブルのＮ番を参照して判断し、有効なデータが記録されていると判断した場合には、ステップ（３）でそれまで有効なデータとして記録されていたフラッシュＲＯＭ（または主記憶）のデータを破棄して、ステップ（４）以降へ進む。
【００５４】
一方、ステップ（２）で有効なデータが記録されていないと判断した場合には、ステップ（４）で記憶領域を獲得して、正常に記憶領域を獲得できたかどうかを判断し、フラッシュＲＯＭに記録場所等がない場合には、獲得に失敗し、ステップ（５）でガーベージコレクションフラグを評価し、ガーベージコレクションフラグが「許可」である場合には、ステップ（１２）へ進み、セクタのロックを解除し、異常復帰する。
【００５５】
一方、ステップ（５）でガーベージコレクションフラグが「禁止」と評価された場合には、ステップ（６）へ進み、退避ブロックへデータを書き込んでステップ（８）以降へ進む。
【００５６】
一方、ステップ（４）で、記録領域の獲得に成功した場合には、ステップ（７）でフラッシュＲＯＭの領域へデータを書き込む。そして、ステップ（８）で、記憶場所管理テーブルを更新する。これにより、記録したフラッシュＲＯＭ（または主記憶）へのポインタが代入される。次いで、ステップ（９）で、論理セクタのロックを解除する。なお、破線で示すステップ実行期間中は、当該論理セクタを占有できる。
【００５７】
次いで、ステップ（１０）で記憶効率を評価し、記憶効率が悪化していると評価した場合には、ステップ（１１）へ進み、ガーベージコレクションを実行して、処理を復帰する。
【００５８】
一方、ステップ（１０）で記憶効率が悪化していないと評価した場合には、そのまま処理を復帰する。
【００５９】
図５は、図４に示した記憶効率の評価手順の一例を示すフローチャートである。なお、（１），（２）は各ステップを示す。
【００６０】
先ず、ステップ（１）でガーベージコレクションフラグが「禁止」であるか「許可」であるかを調べ、禁止であれば処理を復帰する。
【００６１】
一方、ステップ（１）でガーベージコレクションフラグが「許可」であれば、ステップ（２）で未使用セクタカウンタの値と使用済セクタカウンタの値とを比較し（２）、使用済セクタカウンタの値が未使用セクタカウンタの値に対して同じか上回った時、上位プログラムに対して記憶効率の悪化をレポートする。
【００６２】
一方、ステップ（２）で、使用済セクタカウンタの値が未使用セクタカウンタの値に対して下回った時、正常復帰する。
【００６３】
図６は、図２に示したフラッシュＲＯＭ１５のブロックデバイスによるサービス処理手順の一例を示すフローチャートであり、例えば論理セクタの解放サービス処理に対応する。（１）〜（６）は各ステップを示す。
【００６４】
先ず、ステップ（１）でイレーズブロックのＮセクタをロックする。これにより、自タスクで論理セクタを占有できる。ステップ（２）でＮセクタに記憶されているデータを破棄するステップ（３）で、記憶場所管理テーブルへ「不在」を代入する。そして、ステップ（４）で論理セクタのロックを解除し、ステップ（５）で上記と同様の記憶効率の評価を行い、記憶効率が悪化していると評価した場合には、ステップ（６）へ進み、ガーベージコレクションを実行して、処理を復帰する。
【００６５】
一方、ステップ（５）で記憶効率が悪化していないと評価した場合には、そのまま処理を復帰する。
【００６６】
図７は、図２に示したフラッシュＲＯＭ１５のブロックデバイスによるサービス処理手順の一例を示すフローチャートであり、例えばガーベージコレクションを許可するサービス処理に対応する。（１）〜（５）は各ステップを示す。
【００６７】
先ず、ステップ（１）でガーベージコレクションフラグを「許可」にするステップ（２）でフラッシュＲＯＭへのアクセスをロックする。そして、ステップ（３）で後述する手順に従って退避ブロックが正常かどうかを判定し、退避ブロックが正常ならば、ステップ（４）でフラッシュＲＯＭへのアクセスロックを解除して、復帰する。
【００６８】
一方、ステップ（３）で、退避ブロックが異常であると報告された場合には、ステップ（５）でガーベージコレクションを実行して、ステップ（４）へ戻る。
【００６９】
図８は、図７に示した退避ブロックの検査処理手順の一例を示すフローチャートである。なお、（１）はステップを示す。
【００７０】
先ず、ステップ（１）で、退避ブロック内の使用中セクタの数が「０」であるかどうか、すなわち、使用中セクタカウンタの値が「０」かどうかを判定し、ＹＥＳならば処理を復帰し、ＮＯならば図７のステップ（５）へ進み、退避ブロック異常処理、すなわち、ガーベージコレクションを実行する。
【００７１】
以下、本実施形態と第７の発明の各工程との対応及びその作用について図３，図４等を参照して説明する。
【００７２】
第７の発明は、複数の書き換え可能なセクタを複数ブロック備える記憶媒体（フラッシュＲＯＭ１５）の各ブロックに対するデータ書き換えを制御するメモリアクセス方法において、前記記憶媒体中で使用中状態のセクタ内のデータをデータ未使用状態のセクタに複写し、該使用中状態のセクタ内のデータを破棄してデータ未使用状態のセクタに遷移させるメモリアクセスの許可または禁止を設定する管理フラグを設定する設定工程（図３のステップ（１））と、該設定された前記管理フラグの状態を判定して前記記憶媒体の各セクタに対する前記メモリアクセスを禁止または許可する処理工程（図４のステップ（５））とをＣＰＵ５がＲＯＭ１３，ＤＲＡＭ１４等に記憶された制御プログラムを実行して、記憶媒体の使用状態に応じて頻発するガーベージコレクションの発生を有効に制限することができる。
【００７３】
以上のように、前述した実施形態の機能を実現するソフトウエアのプログラムコードを記録した記憶媒体を、システムあるいは装置に供給し、そのシステムあるいは装置のコンピュータ（またはＣＰＵやＭＰＵ）が記憶媒体に格納されたプログラムコードを読み出して実行することによっても、本発明の目的が達成されることは言うまでもない。
【００７４】
この場合、記憶媒体から読み出されたプログラムコード自体が本発明の新規な機能を実現することになり、そのプログラムコードを記憶した記憶媒体は本発明を構成することになる。
【００７５】
プログラムコードを供給するための記憶媒体としては、例えば、フロッピーディスク，ハードディスク，光ディスク，光磁気ディスク，ＣＤ−ＲＯＭ，ＣＤ−Ｒ，磁気テープ，不揮発性のメモリカード，ＲＯＭ，ＥＥＰＲＯＭ等を用いることができる。
【００７６】
また、コンピュータが読み出したプログラムコードを実行することにより、前述した実施形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼働しているＯＳ（オペレーティングシステム）等が実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【００７７】
さらに、記憶媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれた後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵ等が実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【００７８】
【発明の効果】
以上説明したように、本発明によれば、ガーベージコレクションの発生を制限できるとともに、ガーベージコレクションに使用する退避ブロックを、ガーベージコレクションが禁止された状態では、データ書き込みに利用できるので、ガーベージコレクションが許可された状態と禁止された状態とで、同一ブロックを効率よく利用できる。
【図面の簡単な説明】
【図１】本発明の第１実施形態を示すメモリ制御装置を適用可能な画像処理システムの一例を示すブロック図である。
【図２】図１に示したフラッシュＲＯＭに記録される画像ファイルシステムの階層構造を示す概念図である。
【図３】図１に示したフラッシュＲＯＭに設定されるイレーズブロックに対するガーベージコレクション禁止処理手順を示すフローチャートである。
【図４】図２に示したフラッシュＲＯＭのブロックデバイスによるサービス処理手順の一例を示すフローチャートである。
【図５】図４に示した記憶効率の評価手順の一例を示すフローチャートである。
【図６】図２に示したフラッシュＲＯＭのブロックデバイスによるサービス処理手順の一例を示すフローチャートである。
【図７】図２に示したフラッシュＲＯＭのブロックデバイスによるサービス処理手順の一例を示すフローチャートである。
【図８】図７に示した退避ブロックの検査処理手順の一例を示すフローチャートである。
【図９】この種のフラッシュＲＯＭのデータ構造を説明する図である。
【図１０】図９に示したフラッシュＲＯＭの各セクタの書き換えを説明する概念図である。
【符号の説明】
５  ＣＰＵ
１３  ＲＯＭ
１５  フラッシュＲＯＭ
【図１】
0003919261.tif 000002
【図２】
0003919261.tif 000003
【図３】
0003919261.tif 000004
【図５】
0003919261.tif 000005
【図４】
0003919261.tif 000006
【図６】
0003919261.tif 000007
【図７】
0003919261.tif 000008
【図８】
0003919261.tif 000009
【図９】
0003919261.tif 000010
【図１０】
0003919261.tif 000011