(57)【要約】【課題】 フラッシュメモリでのデータ演算時に応答時間を予測して応答時間を保証できるフラッシュメモリのデータ管理装置及び方法を提供する。【解決手段】 ユーザープログラムを通じて要請されたデータ演算に必要な作業を判断する作業判断部と、判断された作業のリストが登録される作業登録部と、登録された作業を通じてデータ演算を行う作業処理部と、を含むフラッシュメモリのデータ管理装置。【選択図】図７
2005259127.tif 000002
【特許請求の範囲】
【請求項１】
ユーザープログラムを通じて要請されたデータ演算に必要な作業を判断する作業判断部と、
前記判断された作業のリストが登録される作業登録部と、
前記リストで所定の作業を選択して前記データ演算を行う作業処理部と、を含むフラッシュメモリのデータ管理装置。
【請求項２】
前記作業判断部は、必要時に前記データ演算に先行すべき作業を判断する請求項１に記載のフラッシュメモリのデータ管理装置。
【請求項３】
前記作業登録部は、前記データ演算に必要なデータを保存するメモリ部を含む請求項２に記載のフラッシュメモリのデータ管理装置。
【請求項４】
前記作業処理部は、前記ユーザープログラムにより割り当てられた所定時間の間に前記作業登録部に登録された作業を処理する請求項３に記載のフラッシュメモリのデータ管理装置。
【請求項５】
前記作業処理部は、前記割り当てられた時間の経過時、前記作業の処理結果を前記ユーザープログラムに通報する請求項４に記載のフラッシュメモリのデータ管理装置。
【請求項６】
マルチプロセス支援環境下で、前記作業処理部が前記作業登録部に登録された作業を処理できるように所定時間を割り当てるバックグラウンド処理部をさらに含む請求項３に記載のフラッシュメモリのデータ管理装置。
【請求項７】
前記バックグラウンド処理部は、前記ユーザー要請部から前記作業処理部の制御を要請され、前記作業処理部からの応答を前記ユーザー要請部に伝達する請求項５に記載のフラッシュメモリのデータ管理装置。
【請求項８】
前記作業処理部は、前記割り当てられた時間の経過時、前記作業の処理結果を前記バックグラウンド処理部に通報する請求項７に記載のフラッシュメモリのデータ管理装置。
【請求項９】
前記作業処理部は、前記割り当て時間の間に前記作業リストに含まれた作業を、順次処理、優先順位別処理及び前記割り当て時間の間に処理可能な作業を選別的に処理する選別処理のうち少なくとも一つの方式で処理する請求項５に記載のフラッシュメモリのデータ管理装置。
【請求項１０】
前記作業処理部は、前記データ演算が完了するまで複数の割り当てられた時間の間に前記作業登録部に登録された作業を処理する請求項５に記載のフラッシュメモリのデータ管理装置。
【請求項１１】
前記作業処理部は、前記ユーザーがデータ読み出しを要請した場合、前記メモリ部に該当データが存在するかどうかを判断する請求項５に記載のフラッシュメモリのデータ管理装置。
【請求項１２】
前記判断の結果、前記メモリ部に該当データが存在する場合、前記メモリ部からデータを読み出す請求項１１に記載のフラッシュメモリのデータ管理装置。
【請求項１３】
前記判断の結果、前記メモリ部に該当データが存在していない場合、実際フラッシュメモリからデータを読み出す請求項１２に記載のフラッシュメモリのデータ管理装置。
【請求項１４】
前記作業処理部は、前記割り当て時間の間に前記作業リストに含まれた作業を、順次処理、優先順位別処理及び前記割り当て時間の間に処理可能な作業を選別的に処理する選別処理のうち少なくとも一つの方式で処理する請求項８に記載のフラッシュメモリのデータ管理装置。
【請求項１５】
前記作業処理部は、前記データ演算が完了するまで複数の割り当てられた時間の間に前記作業登録部に登録された作業を処理する請求項８に記載のフラッシュメモリのデータ管理装置。
【請求項１６】
前記作業処理部は、前記ユーザーがデータ読み出しを要請した場合、前記メモリ部に該当データが存在するかどうかを判断する請求項８に記載のフラッシュメモリのデータ管理装置。
【請求項１７】
前記判断の結果、前記メモリ部に該当データが存在する場合、前記メモリ部からデータを読み出す請求項１６に記載のフラッシュメモリのデータ管理装置。
【請求項１８】
前記判断の結果、前記メモリ部に該当データが存在していない場合、実際フラッシュメモリからデータを読み出す請求項１７に記載のフラッシュメモリのデータ管理装置。
【請求項１９】
ユーザーが所定のユーザープログラムを通じてデータ演算を要請する第１段階と、
前記データ演算に必要な作業を判断し、その判断された作業のリストを登録する第２段階と、
前記リストで所定の作業を選択して前記データ演算を行う第３段階と、を含むフラッシュメモリのデータ管理方法。
【請求項２０】
前記第２段階は、必要時に前記データ演算に先行すべき作業を判断する請求項１９に記載のフラッシュメモリのデータ管理方法。
【請求項２１】
前記第２段階は、前記データ記録時に該当データを所定のメモリに保存する過程を含む請求項２０に記載のフラッシュメモリのデータ管理方法。
【請求項２２】
前記第３段階は、前記ユーザープログラムにより割り当てられた所定時間の間に前記作業を処理する請求項２１に記載のフラッシュメモリのデータ管理方法。
【請求項２３】
前記第３段階は、前記所定時間の経過後、前記作業の処理結果を前記ユーザープログラムに通報する過程を含む請求項２２に記載のフラッシュメモリのデータ管理方法。
【請求項２４】
前記第３段階は、マルチプロセス環境下で前記ユーザープログラムにより前記作業を処理し、それによる応答を前記ユーザープログラムに伝達するバックグラウンド処理部が割り当てる請求項２１に記載のフラッシュメモリのデータ管理方法。
【請求項２５】
前記第３段階は、前記所定時間の経過後、前記作業の処理結果を前記バックグラウンド処理部に通報する過程を含む請求項２４に記載のフラッシュメモリのデータ管理方法。
【請求項２６】
前記第３段階は、前記データ演算が完了するまで複数の割り当てられた所定時間の間に前記作業を処理する請求項２３に記載のフラッシュメモリのデータ管理方法。
【請求項２７】
前記作業処理は、前記割り当て時間の間に前記作業リストに含まれた作業を、順次処理、優先順位別処理及び前記割り当て時間の間に処理可能な作業を選別的に処理する選別処理のうち少なくとも一つの方式で処理する請求項２６に記載のフラッシュメモリのデータ管理方法。
【請求項２８】
ユーザーが前記ユーザープログラムを通じてデータ読み出しを要請する第４段階と、前記要請によって既にユーザーが要請したデータ演算に必要な作業に、前記データ読み出しを要請したセクターが存在するかどうかを判断する第５段階をさらに含む請求項２７に記載のフラッシュメモリのデータ管理方法。
【請求項２９】
前記第５段階は、前記判断の結果、該当セクターに対する作業が存在する場合、既にユーザーが要請したデータ演算時に保存されたデータを読み出す過程を含む請求項２８に記載のフラッシュメモリのデータ管理方法。
【請求項３０】
前記第５段階は、前記判断の結果、該当セクターについての作業が存在していない場合、実際フラッシュメモリからデータを読み出す過程を含む請求項２４に記載のフラッシュメモリのデータ管理方法。
【請求項３１】
前記第３段階は、前記データ演算が完了するまで複数の割り当てられた所定時間の間に前記作業を処理する請求項２５に記載のフラッシュメモリのデータ管理方法。
【請求項３２】
前記作業処理は、前記割り当て時間の間に前記作業リストに含まれた作業を、順次処理、優先順位別処理及び前記割り当て時間の間に処理可能な作業を選別的に処理する選別処理のうち少なくとも一つの方式で処理する請求項３１に記載のフラッシュメモリのデータ管理方法。
【請求項３３】
ユーザーが前記ユーザープログラムを通じてデータ読み出しを要請する第４段階と、前記要請によって既にユーザーが要請したデータ演算に必要な作業に、前記データ読み出しを要請したセクターが存在するかどうかを判断する第５段階をさらに含む請求項３２に記載のフラッシュメモリのデータ管理方法。
【請求項３４】
前記第５段階は、前記判断の結果、該当セクターに対する作業が存在する場合、既にユーザーが要請したデータ演算時に保存されたデータを読み出す過程を含む請求項３３に記載のフラッシュメモリのデータ管理方法。
【請求項３５】
前記第５段階は、前記判断の結果、該当セクターについての作業が存在していない場合、実際フラッシュメモリからデータを読み出す過程を含む請求項３４に記載のフラッシュメモリのデータ管理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はフラッシュメモリのデータ管理装置及び方法に係り、さらに詳細には、フラッシュメモリでのデータ演算時に応答時間を予測して応答時間を保証できるフラッシュメモリのデータ管理装置及び方法に関する。
【背景技術】
【０００２】
一般的に、家電機器、通信機器、セットトップボックスなどの内蔵型システムでは、データを保存して処理するための保存媒体として不揮発性メモリが多く使われている。
【０００３】
前記不揮発性メモリのうち主に使われるフラッシュメモリは、電気的にデータを削除または再記録できる不揮発性記憶素子であり、マグネチックディスクメモリを基盤とする保存媒体に比べて電力消耗が少ないにもかかわらずハードディスクのような速いアクセスタイムを持ち、かつコンパクトなサイズのために携帯機器の保存媒体として広く使われている。
【０００４】
また、前記フラッシュメモリは、ハードウェア的特性上、既存のＲＡＭ（Ｒａｎｄｏｍ Ａｃｃｅｓｓ Ｍｅｍｏｒｙ）や不揮発性保存媒体、マグネチック保存媒体などのように特定位置に保存されたデータに任意に接近できるが、データを削除する場合には既存の保存媒体とは違ってブロック単位で削除がなされる。
【０００５】
すなわち、前記フラッシュメモリは、ホストでは論理的な演算単位であるセクターにデータを書き込む一方、前記セクターに所定のデータを上書きする場合には前記セクターが含まれたブロック全体を削除する。
この時、データ書き込み単位とデータ削除単位との不一致が、前記フラッシュメモリの性能を低下させる主要な理由となる。
【０００６】
したがって、書き込み前の削除問題を解決するために、論理アドレス及び物理アドレスの概念が導入された。
すなわち、前記ホストで要請される論理アドレスについてのデータ読み出し／書き込み演算は、いろいろなマッピングアルゴリズムにより実際フラッシュメモリの物理アドレスについての読み出し／書き込み演算に変更される。この時、前記フラッシュメモリの物理的な状態を考慮してマッピングするために、前記フラッシュメモリの性能を最大化できる。
【０００７】
言い換えれば、前記フラッシュメモリは前記論理アドレスを物理アドレスに変換できるマッピングテーブルが保存される所定のメモリを含みうる。
一般的に前記マッピングテーブルはＳＲＡＭに保存されるが、これに限定されずにＲＯＭ、ＰＲＯＭ、ＥＰＲＯＭ、キャッシュ、ＤＲＡＭに保存されることもある。
このようなマッピングテーブルは、図１に図示されたように、所定の論理アドレスにマッピングされる物理アドレスが羅列されうる。
【０００８】
また、前記マッピングテーブルは、データの修正または削除によって前記フラッシュメモリでデータが記録された物理アドレスが変更された場合、同じ論理アドレスを通じて前記フラッシュメモリに記録されたデータに接近する場合に使われうる。
参考として、特定データへの接近は、シリンダー番号、ヘッド番号及びセクター番号よりなるアドレスを通じてなされうる。
【０００９】
また、前記シリンダー番号、ヘッド番号及びセクター番号を通じて該当論理アドレスを判断できるが、前記論理アドレスは下記式１を通じて判断できる。
ＬＳＡ＝（Ｃ＊ＨｐＣ＋Ｈ）＊ＳｐＨ＋Ｓ−１              （式１）
ここで、前記ＬＳＡは論理アドレス、Ｃはシリンダー、ＨｐＣは１シリンダー当りヘッド数、Ｈはヘッド番号、ＳｐＨは１ヘッド当りセクター数、Ｓはセクター番号である。
【００１０】
以後、前記論理アドレスを前記マッピングテーブルを通じて物理アドレスに変換し、該当物理アドレスにデータ記録などのデータ演算を行える。
また、前記フラッシュメモリは、小ブロックフラッシュメモリと大ブロックフラッシュメモリとに大別できるが、前記小ブロックフラッシュメモリは、論理的な演算単位と物理的な演算単位とが同じ一方、前記大ブロックフラッシュメモリは、前記物理的な演算単位が少なくても一つ以上の論理的な演算単位を含みうる。
【００１１】
従来の技術によるフラッシュメモリ管理装置は、図２に図示されたように、ユーザーが所定のユーザープログラムを通じてフラッシュメモリのデータ演算を要請し、前記データ演算完了応答を確認できるユーザー要請部１１と、前記データ演算要請によって前記フラッシュメモリで実際データ演算を行わせるフラッシュデバイスドライバ１２と、それを制御する制御部１３とを含む。
【００１２】
この時、前記フラッシュメモリの所定セクターにデータを記録する場合、前記セクターが含まれたブロック全体を削除する過程を経うる。
また、前記ブロックを削除する前に前記ブロックに有効なデータが記録された有効セクターを他のブロックにコピーする過程を経うる。
この時、前記ブロック削除過程及びコピー過程は、前記フラッシュメモリで使われる内部アルゴリズムによって少なくとも１回以上行われる。
【００１３】
前記のように構成される従来の技術によるフラッシュメモリ管理装置の動作を説明すれば、次の通りである。
従来の技術によるフラッシュメモリデータ管理方法は、図３に図示されたように、まずユーザーが前記ユーザー要請部１１を通じて前記フラッシュメモリの所定セクターへのデータ記録を要請する（Ｓ１１）。
【００１４】
この時、前記制御部１３は、前記要請によって前記フラッシュデバイスドライバ１２に、前記フラッシュメモリの所定セクターにデータを記録するための作業実行を要請する（Ｓ１２）。
この時、前記フラッシュメモリの所定セクターにデータを記録するための作業は、ブロック削除またはページ記録などの作業を要請する。
【００１５】
また、前記フラッシュメモリの所定セクターにデータを記録するための作業は、該当セクターが含まれたブロックに含まれた有効セクターを他のブロックにコピーする過程と、該当セクターが含まれたブロックを削除する過程のうち少なくとも一つ以上を含みうる。
【００１６】
前記フラッシュデバイスドライバ１２の要請によって、前記フラッシュメモリの所定セクターにデータを記録するための過程を行う（Ｓ１３）。
前記フラッシュメモリの所定セクターへのデータ記録が完了すれば、それによる応答が前記制御部１３を通じて前記ユーザー要請部１１で伝えられて、ユーザーが前記データ記録の完了如何を確認できる（Ｓ１４）。
【００１７】
しかし、前記のようなフラッシュメモリ管理装置及び方法は、ユーザーが前記ユーザー要請部１１を通じてデータ記録を要請した後、前記データを記録するために前記フラッシュメモリ内部で行われる作業を全く予測できないという問題点がある。
【００１８】
すなわち、前記ユーザーが前記フラッシュメモリの所定セクターにデータ記録を要請した場合、図４Ａに図示されたように、１回の物理ページの記録で前記データ記録が完了することもあり、図４Ｂに図示されたように、数回の物理ブロック削除及び物理ページ記録により前記データ記録が完了することもある。
【００１９】
したがって、前記フラッシュメモリの所定セクターにデータを記録するための作業は、該当セクターが含まれたブロックに含まれた有効セクターを他のブロックにコピーする過程と、該当セクターが含まれたブロックを削除する過程との有無及び回数によってユーザーが受ける応答時間を予測できない。
【００２０】
言い換えれば、図５に図示されたように、前記ユーザーが前記ユーザー要請部１１を通じてデータ記録を要請した後、前記ユーザー要請部１１にデータの記録完了応答がくるまで、前記ユーザー要請部１１は他の作業を行わずに待機する。
この時、前記ユーザー要請部１１の待機時間は、前記フラッシュメモリのページ記録時間が２００ｕｓであり、ブロック削除時間が２ｍｓである場合を例として説明すれば、前記応答時間が早い場合の２００ｕｓから遅い場合の数十ｍｓあるいは数秒に至る。
【００２１】
このように、所定セクターにデータを記録する場合に前記フラッシュメモリの内部アルゴリズムが相異なるために、各セクターにデータを記録する場合に図６に図示されたように、各応答時間が相異なってリアルタイム処理時に問題が発生する恐れがある。
【００２２】
また、ユーザーが要請したデータ演算についての応答時間が不規則なためにユーザーの要請についての処理を円滑に行えず、全体的な性能を阻害しうる問題点がある。
【００２３】
なお、特許文献１は、ユーザによってプログラムされたアルゴリズムを備えたメモリ及び想起アルゴリズムを選択してメモリアレイを制御する手段を備えたフラッシュメモリ装置を開始しているが、これはアルゴリズムに対した答え時間を見越すなさだから実時間処理を遂行するのに困難がある。
【特許文献１】米国特許第５，５０９，１３４号明細書
【発明の開示】
【発明が解決しようとする課題】
【００２４】
本発明は、ユーザーが要請したデータ演算の応答時間を予測可能にして前記応答時間内に他の作業を行えるフラッシュメモリのデータ管理装置及び方法を提供するところにその目的がある。
本発明の目的は、前記で言及した目的に限定されず、言及しなかったさらに他の目的は下の記載から当業者ならば明確に理解できる。
【課題を解決するための手段】
【００２５】
前記目的を達成するために、本発明の実施例によるフラッシュメモリのデータ管理装置は、ユーザープログラムを通じて要請されたデータ演算に必要な作業を判断する作業判断部と、前記判断された作業のリストが登録される作業登録部と、前記リストで所定の作業を選択して前記データ演算を行う作業処理部と、を含む。
【００２６】
望ましくは、前記作業判断部は、必要時に前記データ演算に先行すべき作業を判断する。
望ましくは、前記作業登録部は、前記データ演算に必要なデータを保存するメモリ部を含む。
望ましくは、前記作業処理部は、前記ユーザープログラムにより割り当てられた所定時間の間に前記作業登録部に登録された作業を処理する。
望ましくは、前記作業処理部は、前記割り当てられた時間の経過時、前記作業の処理結果を前記ユーザープログラムに通報する。
【００２７】
望ましくは、マルチプロセス支援環境下で、前記作業処理部が前記作業登録部に登録された作業を処理できるように所定時間を割り当てるバックグラウンド処理部をさらに含む。
望ましくは、前記バックグラウンド処理部は、前記ユーザー要請部から前記作業処理部の制御を要請され、前記作業処理部からの応答を前記ユーザー要請部に伝達する。
望ましくは、前記作業処理部は、前記割り当てられた時間の経過時、前記作業の処理結果を前記バックグラウンド処理部に通報する。
【００２８】
望ましくは、前記作業処理部は、前記割り当て時間の間に前記作業リストに含まれた作業を、順次処理、優先順位別処理及び前記割り当て時間の間に処理可能な作業を選別的に処理する選別処理のうち少なくとも一つの方式で処理する。
望ましくは、前記作業処理部は、前記データ演算が完了するまで複数の割り当てられた時間の間に前記作業登録部に登録された作業を処理する。
望ましくは、前記作業処理部は、前記ユーザーがデータ読み出しを要請した場合、前記メモリ部に該当データが存在するかどうかを判断する。
【００２９】
望ましくは、前記判断の結果、前記メモリ部に該当データが存在する場合、前記メモリ部からデータを読み出す。
望ましくは、前記判断の結果、前記メモリ部に該当データが存在していない場合、実際フラッシュメモリからデータを読み出す。
【００３０】
また、本発明の実施例によるフラッシュメモリのデータ管理方法は、ユーザーが所定のユーザープログラムを通じてデータ演算を要請する第１段階と、前記データ演算に必要な作業を判断し、その判断された作業のリストを登録する第２段階と、前記リストで所定の作業を選択して前記データ演算を行う第３段階と、を含む。
望ましくは、前記第２段階は、必要時に前記データ演算に先行すべき作業を判断する。
望ましくは、前記第２段階は、必要時に前記データ演算に先行すべき作業を判断する。
望ましくは、前記第２段階は、前記データ記録時に該当データを所定のメモリに保存する過程を含む。
【００３１】
望ましくは、前記第３段階は、前記ユーザープログラムにより割り当てられた所定時間の間に前記作業を処理する。
望ましくは、前記第３段階は、前記所定時間の経過後、前記作業の処理結果を前記ユーザープログラムに通報する過程を含む。
望ましくは、前記第３段階は、マルチプロセス環境下で前記ユーザープログラムにより前記作業を処理し、それによる応答を前記ユーザープログラムに伝達するバックグラウンド処理部が割り当てる。
【００３２】
望ましくは、前記第３段階は、前記所定時間の経過後、前記作業の処理結果を前記バックグラウンド処理部に通報する過程を含む。
望ましくは、前記第３段階は、前記データ演算が完了するまで複数の割り当てられた所定時間の間に前記作業を処理する。
【００３３】
望ましくは、前記作業処理は、前記割り当て時間の間に前記作業リストに含まれた作業を、順次処理、優先順位別処理及び前記割り当て時間の間に処理可能な作業を選別的に処理する選別処理のうち少なくとも一つの方式で処理する。
【００３４】
望ましくは、ユーザーが前記ユーザープログラムを通じてデータ読み出しを要請する第４段階と、前記要請によって既にユーザーが要請したデータ演算に必要な作業に、前記データ読み出しを要請したセクターが存在するかどうかを判断する第５段階をさらに含む。
【００３５】
望ましくは、前記第５段階は、前記判断結果、該当セクターに対する作業が存在する場合、既にユーザーが要請したデータ演算時に保存されたデータを読み出す過程を含む。
望ましくは、前記第５段階は、前記判断結果、該当セクターについての作業が存在していない場合、実際フラッシュメモリからデータを読み出す過程を含む。
【００３６】
望ましくは、前記第３段階は、前記データ演算が完了するまで複数の割り当てられた所定時間の間に前記作業を処理する。
望ましくは、前記作業処理は、前記割り当て時間の間に前記作業リストに含まれた作業を、順次処理、優先順位別処理及び前記割り当て時間の間に処理可能な作業を選別的に処理する選別処理のうち少なくとも一つの方式で処理する。
【００３７】
望ましくは、ユーザーが前記ユーザープログラムを通じてデータ読み出しを要請する第４段階と、前記要請によって既にユーザーが要請したデータ演算に必要な作業に、前記データ読み出しを要請したセクターが存在するかどうかを判断する第５段階をさらに含む。
望ましくは、前記第５段階は、前記判断結果、該当セクターに対する作業が存在する場合、既にユーザーが要請したデータ演算時に保存されたデータを読み出す過程を含む。
望ましくは、前記第５段階は、前記判断結果、該当セクターについての作業が存在していない場合、実際フラッシュメモリからデータを読み出す過程を含む。
【発明の効果】
【００３８】
本発明のフラッシュメモリのデータ管理装置及び方法によれば次のような効果がある。
第１に、ユーザーが要請したデータ演算について所定時間を割り当て、前記割り当てられた時間の間にデータ演算を行わせて応答時間を予測できるために、前記割り当てられた時間の間に他の作業を行ってシステムの性能を向上させうる。
【００３９】
第２に、実際フラッシュメモリについて処理せねばならないデータを保存できるためにキャッシング役割を行うことができ、アップデートが頻繁に発生するシステムの性能を向上させうる。
【発明を実施するための最良の形態】
【００４０】
その他の実施例の具体的な事項は詳細な説明及び図面に含まれている。
本発明の利点及び特徴、そしてこれを達成する方法は添付された図面に基づいて詳細に後述されている実施例を参照すれば明確になる。しかし、本発明は以下で開示される実施例に限定されるものではなく、この実施例から外れて多様な形に具現でき、本明細書で説明する実施例は本発明の開示を完全にし、本発明が属する技術分野で当業者に発明の範疇を完全に報せるためだけに提供されるものであり、本発明は請求項及び発明の詳細な説明により定義されるものである。一方、明細書全体に亙って同一な参照符号は同一な構成要素を示す。
【００４１】
以下、添付された図面を参照して本発明の望ましい実施例を詳細に説明する。
一般的にフラッシュメモリは、小ブロックフラッシュメモリと大ブロックフラッシュメモリとに大別される。
【００４２】
前記小ブロックフラッシュメモリは実際物理的な演算単位と論理的な演算単位とが同じ一方、前記大ブロックフラッシュメモリは実際物理的な演算単位が前記論理的な演算単位より大きい。
【００４３】
ここで、前記論理的な演算単位はセクターと呼ばれ、ユーザーが所定のユーザープログラムを通じてデータ演算、すなわち、データの読み出し／書き込みなどの演算を行う単位である。
また、前記物理的な演算単位はページと呼ばれ、実際フラッシュメモリでデータ演算を行う単位である。
【００４４】
この時、前記論理的な演算単位及び物理的な演算単位はセクター及びページに限定されず、使用する装置によって多様な単位で使われうる。
したがって、前記小ブロックフラッシュメモリはセクターとページとが同じ一方、前記大ブロックフラッシュメモリで前記ページは少なくとも一つ以上のセクターを含みうる。
【００４５】
前記のようなフラッシュメモリは、ハードウェア的な特性上、既に所定のデータが書き込まれたセクターにデータを書き込む場合、前記セクターが含まれたブロック全体を削除する作業を経る。
また、前記ブロック内に有効セクターが存在する場合、前記有効セクターを他のブロックにコピーする作業を経うる。
【００４６】
このように、所定セクターにデータを書き込む場合に必要な作業は、前記フラッシュメモリの内部アルゴリズムによって変わる。
そして、ユーザーは、ユーザーが要請したデータ演算が行われるために先行する作業がいかほど行われるか予測できないため、ユーザープログラムは、前記ユーザーが要請したデータ演算が完了したという応答がくるまで待機する。
【００４７】
したがって、前記フラッシュメモリのデータを管理するソフトウェアが非先点形カーネルレーヤーに存在する場合、前記フラッシュメモリのデータを管理するソフトウェアがカーネルリソースを独占して他の作業を行えないために、全体的なシステムの性能が阻害される。
【００４８】
本実施例は、ユーザーが要請したデータ演算による応答時間を予測して、前記データ演算が行われる途中で他の作業を行えるフラッシュメモリのデータ管理装置に関し、図７に図示されたように、ユーザーにより要請されたデータ演算に必要な作業を判断する作業判断部１００と、前記判断された過程及び前記データ演算に必要な作業が登録される作業登録部２００と、前記登録された作業を通じて前記データ演算を行う作業処理部３００とを含む。
【００４９】
また、ユーザーが前記データ演算を要請し、それによる応答を確認できるユーザー要請部４００と、前記作業処理部３００の制御によってフラッシュメモリで実際データ演算を行わせるフラッシュデバイスドライバ５００と、をさらに含む。
【００５０】
ここで、本実施例によるフラッシュメモリのデータ管理装置を構成する構成要素、すなわち、作業判断部１００、作業登録部２００、作業処理部３００、ユーザー要請部４００及びフラッシュデバイスドライバ５００はそれぞれ個別的なソフトウェアをなし、前記構成要素が集まって一つのソフトウェアをなしうる。
また、少なくとも一つ以上の構成要素がグループ化された複数のソフトウェアをなすこともある。
【００５１】
参考として、前記作業判断部１００は、論理−物理マッピング情報とそのアルゴリズムを担当するフラッシュマッピングエンジンなどよりなり、前記作業登録部２００は、前記作業判断部１００から判断された作業を保管できるキュー（Ｑｕｅｕｅ）またはバッファなどを含むが、それに限定されない。
【００５２】
この時、前記作業判断部１００は、前記ユーザーが前記ユーザー要請部４００を通じて所定のデータ演算を要請した場合、先行すべき作業を判断し、前記判断された作業を羅列した作業リストを生成できる。
【００５３】
すなわち、ユーザーが所定セクターにデータを記録する場合を例として説明すれば、前記セクターにデータを書き込むために先行すべき作業、例えば、前記セクターが含まれたブロックの削除または前記セクターが含まれたブロックにある有効セクターを他のブロックにコピーする作業などを判断する。
【００５４】
このように、前記作業判断部１００により判断された作業は、図８に図示されたように、前記作業登録部２００に前記作業リストの形で登録されうるが、前記作業登録部２００は、前記ユーザーが所定セクターへのデータ記録を要請した場合、前記セクターに書き込まれるデータを保存できるメモリ部２１０を含みうる。
【００５５】
このようなメモリ部２１０は、場合によって前記作業登録部２００と別途になり、前記メモリ部２１０は、キャッシュ、ＲＯＭ、ＰＲＯＭ、ＥＰＲＯＭ、ＥＥＰＲＯＭ、フラッシュ、ＳＲＡＭ及びＤＲＡＭのような形の装置が含まれうるが、これに限定されない。
【００５６】
一方、前記作業処理部３００は、前記ユーザー要請部４００から所定時間を割り当てられれば、前記作業登録部２００に登録された前記作業リストに含まれた作業を前記割り当て時間の間に抽出して処理できる。
【００５７】
この時、前記ユーザー要請部４００を通じて前記作業処理部３００に所定の時間を割り当てれば、前記作業処理部３００は、前記割り当てられた時間の間に処理可能な作業を前記作業登録部２００から抽出して処理した後、前記ユーザー要請部４００に応答する。
【００５８】
このような応答には、ユーザーが要請したデータ演算の処理完了如何に関する情報を含みうる。
すなわち、前記応答に前記データ演算についての未処理情報が含まれれば、前記ユーザー要請部４００は再び所定の時間を割り当て、そうでない場合には前記データ演算を完了する。
【００５９】
前記作業処理部３００の作業処理は、前記割り当てられた時間の間に前記作業登録部２００に登録された作業リストに羅列された作業を順次処理したり、所定の優先順位によって処理する。
【００６０】
また、前記割り当て時間の間に処理可能な作業を選別して処理できるが、前記割り当て時間の間に処理可能な作業は、前記作業リストに羅列された作業を順次または優先順位によって選別できる。
【００６１】
したがって、前記ユーザー要請部４００は前記割り当てられた時間の間に他の作業を行うことができてシステムの性能が向上できる。
【００６２】
また、既に割り当てられた時間の間にユーザーが要請したデータ演算が完了していない場合、前記データ演算が完了するまで数回にかけて時間を割り当てて処理するようにし、ユーザーは前記ユーザー要請部４００を通じて他の作業を処理できる。
【００６３】
前記のように、前記ユーザーが要請したデータを数回にかけて処理し、前記ユーザー要請部４００が他の作業を行えるために、前記作業登録部２００はキャッシュの役割を行える。
【００６４】
すなわち、前記ユーザーがデータ記録を要請した場合を例として説明すれば、ユーザーのデータ記録要請時に該当データが前記作業登録部２００のメモリ部２１０に保存されるが、前記作業処理部３００に割り当てられた時間の間にユーザーが同じデータ読み出しを要請した場合、前記フラッシュメモリではない前記作業登録部２００のメモリ部２１０から該当データを読み出すことができる。
【００６５】
もちろん、前記作業登録部２００のメモリ部２１０に該当データが存在していない場合、前記フラッシュメモリから直接データを読み出すことができる。
【００６６】
図１２を参照として、前記作業登録部２００のメモリ部２１０に保存されたデータを読み出す方法を後述する。
【００６７】
一方、他の実施例でマルチプロセス機能を支援するシステムでは、図９に図示されたように、前記作業処理部３００をバックグラウンド処理部６００が処理できる。
【００６８】
かかるバックグラウンド処理部６００は、前記ユーザー要請部４００の要請によって前記作業処理部３００を制御し、前記作業処理部３００から応答を受けてそれを前記ユーザー要請部４００に伝達する役割を行える。
【００６９】
この時、前記ユーザーは、前記ユーザー要請部４００を通じて要請したデータ演算に必要な作業が前記作業登録部２００に登録されたという応答のみを受ける。
【００７０】
また、前記ユーザー要請部４００は、前記バックグラウンド処理部６００に前記作業処理部３００の制御を要請し、他の作業を行える。
【００７１】
以後、前記作業登録部２００に登録された作業により、前記バックグラウンド処理部６００が前記作業処理部３００を制御してシステムの効率を最大化させうる。
【００７２】
この時、前記バックグラウンド処理部６００が含まれた本実施例によるフラッシュメモリのデータ管理装置の構成要素、すなわち、作業判断部１００、作業登録部２００、作業処理部３００、ユーザー要請部４００、フラッシュデバイスドライバ５００及びバックグラウンド処理部６００はそれぞれ個別的なソフトウェアをなし、あらゆる構成要素が集まって一つのソフトウェアをなす。
【００７３】
また、少なくとも一つ以上の構成要素でグループ化された複数のソフトウェアをなすこともある。
【００７４】
前記のように構成された本実施例によるフラッシュメモリのデータ管理装置の動作を説明すれば次の通りである。
本実施例によるフラッシュメモリのデータ管理方法は、図１０に図示されたように、まずユーザーが前記ユーザー要請部４００を通じて所定のデータ演算を要請する（Ｓ１１１）。
【００７５】
本実施例は、前記ユーザーが前記フラッシュメモリの所定セクターにデータを記録する場合を例として説明する。
【００７６】
前記要請に応じて、前記作業判断部１００で、前記ユーザーにより要請されたデータ演算を行うのに必要な作業を判断し（Ｓ１１２）、前記判断された作業を前記作業登録部２００に登録する（Ｓ１１３）。
【００７７】
この時、前記ユーザーが所定セクターにデータを記録しようとする場合、前記作業判断部１００は、前記データを記録するために先行すべきブロックの削除またはブロックに含まれた有効セクターを他のブロックにコピーする作業を判断し、前記判断結果、必要な作業のリストを生成してそれを前記作業登録部２００に登録する。
【００７８】
また、前記ユーザーが記録しようとするデータが前記作業登録部２００のメモリ部２１０に共に登録されうる。
【００７９】
以後、前記ユーザー要請部４００は、前記作業処理部３００に所定時間を割り当て、前記作業処理部３００は、前記割り当てられた時間の間に前記作業登録部２００に登録された作業についての処理を要請する（Ｓ１１４）。
【００８０】
この時、前記作業処理部３００に割り当てられる時間は、前記作業処理部３００が割り当てられた時間の間に前記作業登録部２００に登録された作業を処理可能にする。
【００８１】
これは、前記ユーザーが要請したデータ演算が完了するまで、前記作業処理部３００が所定時間の間に作業登録部２００に登録された作業を数回にかけて処理し、前記作業処理部３００は、前記作業処理結果による応答を前記ユーザー要請部４００に伝達する（Ｓ１１５）。
【００８２】
この時、前記ユーザー要請部４００は、前記応答によって前記ユーザーが要請したデータ演算の進行状況及び完了如何を確認できる。
また、前記応答には、データ演算実行時にエラーが発生した場合に該当エラーに関する情報を含みうる。
したがって、前記ユーザーが要請したデータ演算の進行状況を確認できるために、前記ユーザーが要請したデータ演算以外に他の作業を行える。
【００８３】
このように所定時間の間に前記作業登録部２００に登録された作業を行う過程Ｓ１１４、Ｓ１１５は、前記ユーザーが要請したデータ演算が完了したことを知らせる応答が伝えられるまで反復的に行われる（Ｓ１１６）。
【００８４】
前記のようなフラッシュメモリのデータ管理方法を図１１を通じてさらに詳細に説明すれば、ユーザーが、前記ユーザー要請部４００を通じて所定のセクターにデータ記録を要請すれば、前記作業判断部１１０は、前記要請されたデータ演算を処理するために必要な作業を判断し、それを作業リストとして生成して前記作業登録部２００に登録する。
【００８５】
この時、前記作業処理部３００は、前記作業登録部２００に登録された作業を所定の割り当てられた時間の間に処理し、それによる応答を前記ユーザー要請部４００に伝達する。
すなわち、所定のデータを記録する場合を例として説明すれば、前記ユーザー要請部４００で第１応答時間を割り当てれば、前記作業処理部３００は、前記第１応答時間の間に前記所定の作業よりなる第１作業グループを処理し、それによる応答を前記ユーザー要請部４００に通報する。
【００８６】
この時、前記データ記録が完了していない場合、前記データ記録が完了するまで第２応答時間及び第３応答時間を割り当てるが、前記作業処理部３００は、前記第２応答時間及び第３応答時間の間に所定の作業よりなる第２作業グループ及び第３作業グループを処理できる。
【００８７】
したがって、前記ユーザー要請部４００は、前記ユーザーが要請したデータ演算の進行状態を確認できる。
また、前記割り当てられた時間の間に前記ユーザー要請部４００は他の作業を行えるために、システムの効率が向上する。
【００８８】
すなわち、前記ユーザー要請部４００は、ユーザーが所定セクターにデータ記録を要請した場合を例として説明すれば、前記割り当てられた時間の間にデータ読み出しを要請できる。
前記のようにデータ記録実行時にデータ読み出しを要請する場合、前記作業登録部２００は一種のキャッシュの役割を行える。
【００８９】
これは、前記作業登録部２００に、データ記録時に必要なデータが共に登録されるために、ユーザーが同じセクターについてのデータ読み出しを要請した場合、前記作業登録部２００に登録されたデータを直接読み出すことができる。
【００９０】
このように前記作業登録部２００に登録されたデータを直接読み出せる方法によれば、図１２に図示されたように、ユーザーが所定セクターについてのデータ読み出しを要請する（Ｓ２１１）。
【００９１】
この時、前記ユーザーが要請したセクターについての作業が前記作業登録部２００に存在するかどうかを判断する（Ｓ２１２）。
【００９２】
前記判断の結果、前記セクターについての作業が前記作業登録部２００に存在する場合、前記作業登録部２００からデータを読み出す（Ｓ２１３）。
【００９３】
もし、前記判断の結果、前記セクターについての作業が前記作業登録部２００に存在していない場合、前記フラッシュメモリから直接データを読み出す（Ｓ２１４）。
【００９４】
一方、他の実施例でマルチプロセス機能を支援するシステムでは、前記作業処理部３００を別途のバックグラウンド処理部６００が制御して、前記ユーザー要請部４００は、ユーザーが要請したデータ演算に必要な作業が前記作業登録部２００に登録完了されたという応答のみ受ける。
【００９５】
このようなバックグラウンド処理部６００は、前記ユーザー要請部４００から前記作業処理部３００の制御を要請され、前記作業処理部３００の応答を前記ユーザー要請部４００に伝達する役割を行える。
【００９６】
したがって、前記作業処理部３００は、前記作業登録部２００に登録された作業についての処理結果を前記バックグラウンド処理部６００に通報し、前記バックグラウンド処理部６００は、前記作業処理部３００の応答を前記ユーザー要請部４００に伝達できる。
【００９７】
この時、前記バックグラウンド処理部６００は、前記作業処理部３００に割り当てた時間に関する情報を前記ユーザー要請部４００に伝達して、前記ユーザー要請部４００が前記割り当てられた時間の間に他の作業を行える。
【００９８】
本発明によるフラッシュメモリのデータ管理装置及びその方法を例示された図面を参照して説明したが、本発明は本明細書に開示された実施例及び図面によって限定されるものではなく、その発明の技術思想範囲内で当業者により多様に変形可能であることはいうまでもない。
【産業上の利用可能性】
【００９９】
本発明は、フラッシュメモリのデータ管理装置に適用できる。
【図面の簡単な説明】
【０１００】
【図１】一般的なマッピングテーブルが図示された図面である。
【図２】従来の技術によるフラッシュメモリのデータ管理装置が図示された図面である。
【図３】従来の技術によるフラッシュメモリのデータ管理方法が図示された図面である。
【図４Ａ】一般的な単一論理セクターの書き込み実行時に単一物理演算が要求される図面である。
【図４Ｂ】一般的な論理セクターの書き込み実行時に数回の物理演算が要求される図面である。
【図５】従来の技術によるフラッシュメモリのデータ演算過程が図示された図面である。
【図６】従来の技術によるフラッシュメモリで、データ演算による応答時間が図示された図面である。
【図７】本発明によるフラッシュメモリのデータ管理装置が図示された図面である。
【図８】本発明による作業登録部が図示された図面である。
【図９】マルチプロセス環境下で、本発明によるフラッシュメモリのデータ管理装置が適用された図面である。
【図１０】本発明によるフラッシュメモリのデータ管理方法が図示された図面である。
【図１１】本発明によるフラッシュメモリのデータ演算過程が図示された図面である。
【図１２】本発明による作業登録部のキャッシング方法が図示された図面である。
【符号の説明】
【０１０１】
１００  作業判断部
２００  作業登録部
２１０  メモリ部
３００  作業処理部
４００  ユーザー要請部
５００  フラッシュデバイスドライバ
【図１】
2005259127.tif 000003
【図２】
2005259127.tif 000004
【図３】
2005259127.tif 000005
【図４Ａ】
2005259127.tif 000006
【図４Ｂ】
2005259127.tif 000007
【図５】
2005259127.tif 000008
【図６】
2005259127.tif 000009
【図７】
2005259127.tif 000010
【図８】
2005259127.tif 000011
【図９】
2005259127.tif 000012
【図１０】
2005259127.tif 000013
【図１１】
2005259127.tif 000014
【図１２】
2005259127.tif 000015