(57)【特許請求の範囲】
【請求項１】
相補性メモリカードシステムに於いて、
メモリカード装置と、
前記メモリカード装置と信号通信するホストとを備え、
前記ホストは、前記メモリカード装置の資源チェックを行い、前記メモリカード装置の資源と前記ホストの利用可能な資源とを比較し、前記比較に応じて前記メモリカード装置のフラッシュ変換レイヤに関連する複数のメモリ管理機能の一部を行い、
前記ホストにより行われるフラッシュ変換レイヤに関連するメモリ管理機能の一部は、アドレスマッピング、ウェアレベル、ガベージコレクションを含むことを特徴とするメモリカードシステム。
【請求項２】
前記ホストは、少なくとも一つのコマンドを前記メモリカード装置に提供することを特徴とする請求項１に記載のメモリカードシステム。
【請求項３】
前記少なくとも一つのコマンドは、読み出し、書き込み、複写、消去の中で少なくとも一つを含むことを特徴とする請求項２に記載のメモリカードシステム。
【請求項４】
前記少なくとも一つのコマンドは、シングルレベルのセル領域に対する書き込み、マルチレベルのセル領域に対する書き込みの中で少なくとも一つのためのコマンドを含むことを特徴とする請求項２に記載のメモリカードシステム。
【請求項５】
前記少なくとも一つのコマンドは、暗号化、復号化の中で少なくとも一つをイネーブルしたりディセーブルするためのコマンドを含むことを特徴とする請求項２に記載のメモリカードシステム。
【請求項６】
前記メモリカード装置は、フラッシュメモリ、ＦＲＡＭ（登録商標）、ＰＲＡＭ、ＭＲＡＭ、ＤＲＡＭ、ＥＥＰＲＯＭの中で少なくとも一つを含むことを特徴とする請求項１に記載のメモリカードシステム。
【請求項７】
前記ホストは、
ホストプロセッサと、
前記ホストプロセッサと信号通信するワーキングメモリとを備えることを特徴とする請求項１に記載のメモリカードシステム。
【請求項８】
販売者の特定メモリカード装置のドライバは、メモリ管理機能を行うためのソフトウェアのモジュールを含むことを特徴とする請求項１に記載のメモリカードシステム。
【請求項９】
前記メモリカード装置は、ＳＳＤ、ＵＳＢカード、ＳＤカード、ＭＭＣ、メモリスティック、内装装置の中で少なくとも一つを含むことを特徴とする請求項１に記載のメモリカードシステム。
【請求項１０】
前記内装装置は、ｍｏｖｉＮＡＮＤ、ＧＢＮＡＮＤ、ｉＮＡＮＤの中で少なくとも一つを含むことを特徴とする請求項９に記載のメモリカードシステム。
【請求項１１】
前記メモリカード装置は、
コントローラと、
前記コントローラと信号通信するメモリとを備えることを特徴とする請求項１に記載のメモリカードシステム。
【請求項１２】
前記コントローラは、
コントローラプロセッサと、
前記コントローラプロセッサと信号通信する読み出し専用メモリと、
前記コントローラプロセッサと信号通信するバッファメモリとを備えることを特徴とする請求項１１に記載のメモリカードシステム。
【請求項１３】
前記メモリは、
メモリ管理機能コードを有する領域と、
使用者データを有する領域とを備えることを特徴とする請求項１１に記載のメモリカードシステム。
【請求項１４】
前記メモリ管理機能コードを有する領域は、フラッシュ変換レイヤであることを特徴とすることを特徴とする請求項１３に記載のメモリカードシステム。
【請求項１５】
前記ホストにより行われるフラッシュ変換レイヤに関連するメモリ管理機能は、前記メモリ管理機能コードの機能であることを特徴とする請求項１３に記載のメモリカードシステム。
【請求項１６】
前記メモリ管理機能コードは、プログラム命令、データの中で少なくとも一つを含むことを特徴とする請求項１３に記載のメモリカードシステム。
【請求項１７】
前記メモリは、
オペレーティングシステムイメージを有する領域と、
使用者データを有する領域とを備えることを特徴とする請求項１１に記載のメモリカードシステム。
【請求項１８】
メモリ管理機能は、オペレーティングシステムイメージのファイルシステム内に内装されることを特徴とする請求項１７に記載のメモリカードシステム。
【請求項１９】
メモリ管理機能は、前記ホストの少なくとも一つの装置ドライバ内に内装されることを特徴とする請求項１７に記載のメモリカードシステム。
【請求項２０】
メモリ管理機能は、前記メモリカード装置のフラッシュ変換レイヤ内に内装されることを特徴とする請求項１７に記載のメモリカードシステム。
【請求項２１】
前記オペレーティングシステムイメージは、全てのメモリ管理機能を実行するためのソフトウェアのモジュールを含むことを特徴とする請求項１７に記載のメモリカードシステム。
【請求項２２】
前記オペレーティングシステムイメージは、メモリ管理機能を行うためのソフトウェアのモジュールを含まないことを特徴とする請求項１７に記載のメモリカードシステム。
【請求項２３】
ホストとメモリカード装置との間の相補性メモリ管理方法に於いて、
前記ホストを使用して利用可能な資源をチェックする段階、
前記ホストの利用可能な資源と前記メモリカード装置の利用可能な資源とを比較する段階、
前記比較に応じて、
前記メモリカード装置のために前記ホストにより行われる複数のメモリ管理機能の中でフラッシュ変換レイヤに関連するメモリ管理機能の一部を選択し、
前記フラッシュ変換レイヤに関連するメモリ管理機能の一部は、アドレスマッピング、ウェアレベル、ガベージコレクション、消去カウント蓄積の中で少なくとも一つを含み、
前記ホストのために選択されたフラッシュ変換レイヤに関連するメモリ管理機能は、前記ホストのためにセットされるが、前記メモリカード装置のためにリセットされるパラメータを有することを特徴とするメモリ管理方法。
【請求項２４】
前記チェックされる資源は、前記ホストの資源であることを特徴とする請求項２３に記載のメモリ管理方法。
【請求項２５】
前記チェックされる資源は、前記メモリカード装置の資源であることを特徴とする請求項２３に記載のメモリ管理方法。
【請求項２６】
前記チェックされる資源は、前記ホストと前記メモリカード装置の資源であることを特徴とする請求項２３に記載のメモリ管理方法。
【請求項２７】
前記利用可能な資源をチェックする段階は、
前記ホストが前記選択されたフラッシュ変換レイヤに関連するメモリ管理機能を行う様に、前記ホストに対する要求を提供する前記メモリカード装置を含むことを特徴とする請求項２３に記載のメモリ管理方法。
【請求項２８】
前記ホストは、少なくとも一つのコマンドを前記メモリカード装置に提供することを特徴とする請求項２３に記載のメモリ管理方法。
【請求項２９】
前記少なくとも一つのコマンドは、読み出し、書き込み、複写、消去の中で少なくとも一つのためのコマンドを含むことを特徴とする請求項２８に記載のメモリ管理方法。
【請求項３０】
前記少なくとも一つのコマンドは、シングルレベルのセル領域に対する書き込み、マルチレベルのセル領域に対する書き込みの中で少なくとも一つを含むことを特徴とする請求項２８に記載のメモリ管理方法。
【請求項３１】
前記少なくとも一つのコマンドは、暗号化、復号化の中で少なくとも一つをイネーブルしたりディセーブルするためのコマンドを含むことを特徴とする請求項２８に記載のメモリ管理方法。
【請求項３２】
前記少なくとも一つのコマンドは、前記メモリカード装置の利用可能な資源をチェックするためのコマンドを含むことを特徴とする請求項２８に記載のメモリ管理方法。
【請求項３３】
前記少なくとも一つのコマンドは、条件が無いことを特徴とする請求項２８に記載のメモリ管理方法。
【請求項３４】
前記ホストの利用可能な資源は、プロセッサ型、プロセッサ速度、メモリサイズ、メモリ速度、バス型、バス速度、暗号化型、復号化速度の中で少なくとも一つを含むことを特徴とする請求項２３に記載のメモリ管理方法。
【請求項３５】
前記ホストのために選択されないメモリ管理機能等の残りは、前記ホストのためにリセットされるが、前記メモリカード装置のためにセットされるパラメータを有することを特徴とする請求項２３に記載のメモリ管理方法。
【請求項３６】
前記ホストと前記メモリカード装置との間の通信プロトコルは、ＵＳＢプロトコル、ＡＴＡプロトコルの中で少なくとも一つを含むことを特徴とする請求項２３に記載のメモリ管理方法。
【請求項３７】
前記選択されたフラッシュ変換レイヤに関連するメモリ管理機能は、前記メモリカード装置からのフラッシュ変換レイヤコードに含まれることを特徴とする請求項２３に記載のメモリ管理方法。
【請求項３８】
少なくとも一つの販売者の特定メモリカード装置のドライバを前記ホストのＲＡＭにロードする段階をさらに含むことを特徴とする請求項２３に記載のメモリ管理方法。
【請求項３９】
メモリカード装置から前記ホストにメタデータをロードする段階をさらに含むことを特徴とする請求項２３に記載のメモリ管理方法。
【請求項４０】
前記ホスト内部の選択されたフラッシュ変換レイヤに関連するメモリ管理機能を初期化する段階をさらに含むことを特徴とする請求項２３に記載のメモリ管理方法。
【請求項４１】
前記ホスト内部の選択されたフラッシュ変換レイヤに関連するメモリ管理機能を活性化する段階をさらに含むことを特徴とする請求項２３に記載のメモリ管理方法。
【請求項４２】
ホストから書き込み要求を生成する段階、
ホストメモリ管理機能を使用してマッピング情報を読み出す段階、
前記メモリカード装置の書き込み可能な空間をチェックする段階、
前記メモリカード装置に書き込み可能な空間がある場合、前記メモリカード装置に書き込み要求の信号を伝送する段階をさらに含むことを特徴とする請求項２３に記載のメモリ管理方法。
【請求項４３】
前記メモリカード装置のガベージブロックをチェックする段階、
前記メモリカード装置にガベージブロックがない場合、ガベージコレクションを行い、ガベージブロックを指定し、ガベージコレクションデータをアップデータする段階をさらに含むことを特徴とする請求項２３に記載のメモリ管理方法。
【請求項４４】
前記メモリカード装置のウェアレベルを必要とするかをチェックする段階、
ウェアレベルを必要とする場合、ウェアレベルを行いウェアレベルによるメタデータのアップデータを行う段階を含むことを特徴とする請求項２３に記載のメモリ管理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はフラッシュメモリの技術を使用する大容量のデジタルデータのストレージシステムに係わり、さらに詳しくは斯かるシステムに於いて、より効率的な資源の割り当てを可能にする技術に関する。
【背景技術】
【０００２】
コンピュータ、デジタルカメラ、デジタル音楽プレーヤ、携帯電話機、個人情報端末機の様な携帯用電子装置の登場は、フラッシュメモリ装置の使用を急激に増加させている。フラッシュメモリカードは、ＳＳＤ、ＳＤカード、ＭＭＣ、メモリスティック、埋め込みカード（ｍｏｖｉＮＡＮＤ、ＧＢＮＡＮＤ、ｉＮＡＮＤ）の様な貯蔵媒体を含む。ホストは、フラッシュ変換レイヤ（以下、ＦＴＬと称する）を介してフラッシュメモリと通信する。ＦＴＬは一般にフラッシュカードやフラッシュメモリのコントローラにファームウェアの形態で格納され、効果的にカードを管理するために使用される。
【０００３】
ＦＴＬは基本的にアドレスマッピング、ウェアレベル、ガベージコレクションの様な機能を行う。アドレスマッピング動作は、ホストからの論理アドレスをフラッシュメモリから実質的にデータが格納される物理アドレスに変換する動作を意味する。ウェアレベルは、ＮＡＮＤフラッシュの物理ブロックの消去の回数を均一に管理するファームウェアの技術である。ガベージコレクション動作は、複数のブロックから有効なデータを集めて一つのブロックに格納して、複数のブロックを空いているブロックに戻す動作である。
【０００４】
一般にフラッシュカードは、全てのＦＴＬ機能をメモリコントローラから行う。しかし、フラッシュコントローラの資源はホストの資源に比べて少ない。従って、コントローラにより行われる上述したＦＴＬ機能の実行速度は遅くなる。コントローラが過負荷になった場合、上述したＦＴＬ機能が実行されないこともある。
【発明の開示】
【発明が解決しようとする課題】
【０００５】
本発明はより効率的な資源の割り当てを可能にする大容量のデジタルデータのストレージシステムおよび管理方法を提供する。
【課題を解決するための手段】
【０００６】
本発明による相補性メモリカードシステムは、メモリカード装置と、前記メモリカード装置と信号通信するホストとを備え、前記ホストは、前記メモリカード装置のための少なくとも一つのメモリ管理機能を行う。
【０００７】
更に、上述したメモリカードシステムと同様な実施形態が提供される。この実施形態に於いて、前記ホストは、少なくとも一つのコマンドを前記メモリカード装置に提供する。この実施形態に於いて、前記少なくとも一つのコマンドは読み出し、書き込み、複写または消去の中で少なくとも一つを含む。この実施形態に於いて、前記メモリカード装置は、フラッシュメモリ、ＦＲＡＭ、ＰＲＡＭ、ＭＲＡＭ、ＤＲＡＭ、ＥＥＰＲＯＭの中で少なくとも一つを含む。この実施形態に於いて、前記少なくとも一つのメモリ管理機能は、フラッシュ変換レイヤ（ｆｌａｓｈ  ｔｒａｎｓｌａｔｉｏｎ  ｌａｙｅｒ）に関連する機能である。この実施形態に於いて、前記少なくとも一つのメモリ管理機能は、動作システム（ＯＳ：ｏｐｅｒａｔｉｎｇ  ｓｙｓｔｅｍ）に関連する機能である。この実施形態に於いて、前記少なくとも一つのメモリ管理機能は、装置ドライバに関連する機能である。
【０００８】
また他の実施形態によると、前記ホストは、ホストプロセッサと、前記ホストプロセッサと信号通信するワーキングメモリとを備える。この実施形態に於いて、前記ホストは、前記メモリカード装置の資源チェックを行い、それに応じて前記メモリカード装置の少なくとも一つの任務（ｔａｓｋ）を行う。この実施形態に於いて、前記ホストは、自己が利用可能な資源等をチェックし、それに応じて前記メモリカード装置の少なくとも一つの任務を行う。この実施形態に於いて、前記ホストは、前記メモリカード装置の資源チェックを行い、前記メモリカード装置の資源と前記ホストの利用可能な資源とを比較し、前記比較に応じて前記メモリカード装置の少なくとも一つの任務を行う。
【０００９】
また他の実施形態に於いて、前記ホストにより行われる前記メモリカード装置の少なくとも一つの任務は、アドレスマッピング、ウェアレベル、ガベージコレクション、パワーオフリカバリ（ｐｏｗｅｒ−ｏｆｆ  ｒｅｃｏｖｅｒｙ）、バッドブロック管理、エラー訂正符号化（ｅｒｒｏｒ  ｃｏｒｒｅｃｔｉｏｎ  ｃｏｄｉｎｇ）、実時間管理のための書き込みバッファリング（ｗｒｉｔｅ  ｂｕｆｆｅｒｉｎｇ  ｆｏｒ  ｒｅａｌ−ｔｉｍｅ  ｍａｎａｇｅｍｅｎｔ）、データ管理、暗号化、復号化、圧縮、圧縮解除機能の中で少なくとも一つを含む。この実施形態に於いて、前記メモリカード装置のドライバは、メモリ管理機能等を行うためのソフトウェアのモジュールを備える。この実施形態に於いて、前記メモリカード装置は、ＳＳＤ（Ｓｏｌｉｄ−Ｓｔａｔｅ  Ｄｉｓｋ）、ＵＳＢカード、ＳＤカード、ＭＭＣ、メモリスティック、内装装置（ｅｍｂｅｄｄｅｄ  ｄｅｖｉｃｅ）の中で少なくとも一つを含む。この実施形態に於いて、前記メモリカード装置は、コントローラと、前記コントローラと信号通信するメモリを備える。
【００１０】
本発明の実施形態によるホストとメモリカードとの間の相補性メモリ管理方法は、前記メモリカード装置のために前記ホストにより行われる複数のメモリ管理機能の中で少なくとも一つを選択する。
【００１１】
また、前記実施形態と同様な実施形態が次の様に構成される。この実施形態に於いて、前記ホストまたは前記メモリカード装置の中で少なくとも一つの利用可能な資源をチェックする段階、前記チェックされた利用可能な資源に応じて前記少なくとも一つのメモリ管理機能を選択する段階をさらに含む。この実施形態に於いて、前記チェックされる資源は、前記ホストの資源である。この実施形態に於いて、前記チェックされる資源は、前記メモリカード装置の資源等である。この実施形態に於いて、前記チェックされる資源は、前記ホストと前記メモリカード装置の資源である。この実施形態に於いて、前記利用可能な資源をチェックする段階は、前記ホストが前記選択された少なくとも一つのメモリ管理機能を行う様に、前記ホストに対する要求を提供する。この実施形態に於いて、前記ホストは、少なくとも一つのコマンドを前記メモリカード装置に提供する。この実施形態に於いて、前記選択された少なくとも一つのメモリ管理機能を前記メモリカード装置から前記ホストのＲＡＭにロードする段階をさらに含む。
【００１２】
また他の実施形態によると、前記少なくとも一つのメモリ管理機能は、フラッシュ変換レイヤの機能を含む。この実施形態に於いて、前記ホストを使用して前記メモリカード装置の利用可能な資源をチェックする段階、前記ホストの利用可能な資源と前記メモリカード装置の利用可能な資源とを比較する段階、前記比較に応じて前記ホスト内の何れのメモリ管理機能等および前記メモリカード装置内の何れのものを行うかを決定する段階を含む。この実施形態に於いて、前記ホストの利用可能な資源は、プロセッサ型、プロセッサ速度、メモリサイズ、メモリ速度、バス型、バス速度、暗号化型、復号化速度の中で少なくとも一つを含む。この実施形態に於いて、前記メモリ管理機能は、アドレスマッピング、ウェアレベル、ガベージコレクション、消去カウント蓄積（ｅｒａｓｅ  ｃｏｕｎｔ  ａｃｃｕｍｕｌａｔｉｏｎ）の中で少なくとも一つを含む。この実施形態に於いて、前記ホストのために選択された少なくとも一つのメモリ管理機能は、前記ホストのためにセットされるが、前記メモリカード装置のためにリセットされるパラメータを含む。この実施形態に於いて、前記ホストと前記メモリカード装置との間の通信プロトコルは、ＵＳＢプロトコル、ＡＴＡプロトコルの中で少なくとも一つを含む。
【００１３】
本発明のまた他の実施形態によると、前記選択された少なくとも一つのメモリ管理機能は、前記メモリカード装置からのフラッシュ変換レイヤコードに含まれる。前記選択された少なくとも一つのメモリ管理機能は、前記装置ドライバに含まれる。この実施形態に於いて、前記メモリカード装置からの動作システムは、前記選択された少なくとも一つのメモリ管理機能を含む。この実施形態に於いて、前記メモリ管理機能コードを前記メモリカード装置のメモリから前記メモリカード装置のＲＡＭコントローラにロードする段階、動作システムを前記メモリカード装置のメモリから前記ホストのＲＡＭにロードする段階をさらに含む。
【００１４】
また他の実施形態によると、少なくとも一つの販売者の特定メモリカード装置のドライバを前記ホストのＲＡＭにロードする段階をさらに含む。この実施形態に於いて、メモリカード装置から前記ホストにメタデータをロードする段階をさらに含む。この実施形態に於いて、前記ホスト内部の選択されたメモリ管理機能を初期化する段階をさらに含む。この実施形態に於いて、前記ホスト内部の選択されたメモリ管理機能を活性化する段階をさらに含む。この実施形態に於いて、ホストから書き込み要求を生成する段階、ホストメモリ管理機能を使用してマッピング情報を読み出す段階、前記メモリカード装置の書き込み可能な空間をチェックする段階、前記メモリカード装置に書き込み可能な空間がある場合、前記メモリカード装置に書き込み要求の信号を伝送する段階をさらに含む。
【００１５】
また他の実施形態に於いて、前記メモリカード装置のガベージブロックをチェックする段階、前記メモリカード装置にガベージブロックがない場合、ガベージコレクションを行い、ガベージブロックを指定し、ガベージコレクションデータをアップデータする段階をさらに含む。この実施形態に於いて、メモリカード装置のウェアレベルの必要性をチェックする段階、ウェアレベルを必要とする場合、ウェアレベルを実施しウェアレベルによるメタデータのアップデータを行う段階を含む。
【発明の効果】
【００１６】
本発明は実行速度が速く、効率的な資源の割り当てが可能である大容量のデジタルデータのストレージシステムおよび方法を得る。
【発明を実施するための最良の形態】
【００１７】
本発明はホストとフラッシュメモリ装置との間の相補性メモリ管理を提供する。例示的な実施形態等は分割されたＦＴＬと、それに対応する方法等を有する。相補性メモリ管理方法に於いて、フラッシュカードの資源をチェックし、ホストとフラッシュカードの資源を比較し、ホストとカードの中で何れの構成がＦＴＬ機能を行うか決定するためのホストを使用する。
【００１８】
図１を参照すれば、フラッシュメモリカードのシステム１００が図示されている。システム１００は、コンピュータ、デジタルカメラ、デジタル音源再生機、携帯電話機、ＰＤＡ等の様な携帯用電子装置である。システム１００は、フラッシュカード１２０と信号を交換するホスト１１０を備える。フラッシュカード１２０は半導体ディスク装置（ＳＳＤ）、ＳＤカード、ＭＭＣ、メモリスティック、埋め込みカード（例えば、ｍｏｖｉＮＡＮＤ、ＧＢＮＡＮＤ、ｉＮＡＮＤ）等の中で何れか一つである。
【００１９】
フラッシュカード１２０は、フラッシュメモリ１５０と信号を交換するコントローラ１３０を備える。ホスト１１０は効果的にカード１２０を管理するためのロジックまたは／およびファームウェアに提供されるフラッシュ変換レイヤを利用してフラッシュメモリ１５０とデータを交換する。
【００２０】
コントローラ１３０は、コントローラバス１３２を介して夫々信号通信を行うホストインタフェース１３１、フラッシュインタフェース１３３、バッファメモリ１３５、ＣＰＵ１３７、ＲＯＭ１３９を備える。図２を参照すれば、相補性メモリ管理スキームを有するフラッシュメモリカードのシステム２００が図示されている。カードシステム２００は、フラッシュカード２２０と信号通信を行うホスト２１０とを備える。ホスト２１０はホストバス２１１、ワーキングメモリ２１３、ホストＣＰＵ２１５を備えると共に、ワーキングメモリ２１３およびホストＣＰＵ２１５は、ホストバス２１１を介して信号通信を行う。
【００２１】
フラッシュカード２２０は、フラッシュメモリ２５０と信号通信を行うコントローラ２３０を備える。コントローラ２３０は、コントローラバス２３２と、コントローラバス２３２を介して信号通信を行うコントローラＣＰＵ２３３、コントローラバス２３２を介して信号通信を行うバッファメモリ２３５、コントローラバス２３２を介して信号通信を行うＲＯＭ２３７を備える。フラッシュメモリ２５０は、フラッシュ変換レイヤコードブロック２５３、ＯＳイメージブロック２５５、ユーザデータブロック２５７を備える。
【００２２】
ホスト２１０に含まれるワーキングメモリ２１３とホストＣＰＵ２１５とは、コントローラ２３０に含まれるコントローラＣＰＵ２３３とバッファメモリ２３５より相対的に高速で動作する。従って、ホスト２１０は、ＦＴＬの機能等の一部を行う様に設定される。元々、ＦＴＬコード２５３とＯＳイメージ２５５は、フラッシュメモリ２５０に格納される。例えば、ＯＳイメージ２５５は、一般的な動作のためにファイルシステムまたは装置ドライバを備える。本発明によるＯＳイメージ２５５は、アドレスマッピング、ウェアレベル、ガベージコレクション等のＦＴＬ機能を行うためのソフトウェアのモジュールをさらに備える。
【００２３】
図３を参照すれば、分割されたＦＴＬを有する図２のシステム２００の様なフラッシュメモリカードのシステム３００が詳しく図示されている。カードシステム３００は、フラッシュカード３２０と信号通信を行うホスト３１０を備える。ホスト３１０は、ホストバス３１１と、ホストバス３１１とデータを交換するワーキングメモリ３１３と、ホストバス３１１とデータを交換するホストＣＰＵ３１５とを備える。ワーキングメモリ３１３は、ウェアレベルブロック３１４を備える。
【００２４】
フラッシュカード３２０は、フラッシュメモリ３５０と信号通信を行うコントローラ３３０を備える。コントローラ３３０は、コントローラバス３３２と、コントローラバス３３２と信号通信を行うコントローラＣＰＵ３３３と、コントローラバス３３２と信号通信を行うバッファメモリ３３５と、そして、コントローラバス３３２と信号通信を行うＲＯＭ３３７とを備える。バッファメモリ３３５は、アドレスマッピングブロック３３６およびガベージコレクションブロック３３８を備える。フラッシュメモリ３５０は、フラッシュ変換レイヤコードブロック３５３、ＯＳイメージブロック３５５およびユーザデータブロック３５７を備える。
【００２５】
パワーオンの後の動作の際、ＦＴＬコード３５３はバッファメモリ３３５に、ＦＴＬ機能の一部を含むＯＳイメージ３５５はホスト３１０の内部のワーキングメモリ３１３にロードされる。斯かる方式によって、アドレスマッピング３３６、ガベージコレクション３３８の様なＦＴＬ機能の一部はコントローラから、ウェアレベル３１４の様なまた他のＦＴＬ機能等はホストの内部から動作する。
【００２６】
ホスト３１０の内部から動作するＦＴＬ機能は、フラッシュコントローラ３３０のＦＴＬ機能より相対的に大容量であり高速で運用される資源を使用することができるので、結果的に効率的なＦＴＬ機能を実行してシステムの性能を向上させる。ここで、ＯＳイメージは、ホストの内部から一部または全てのＦＴＬ機能を行うためのソフトウェアのモジュールを備える。ＦＴＬ機能は、ファイルシステムまたは装置ドライバに含まれるＯＳコードに内装される。ＦＴＬ機能の一部または全てがＯＳイメージを含み、ファイルシステムまたは装置ドライバは、コントローラの代わりにホストによって駆動される。
【００２７】
他の実施形態に於いて、ＯＳイメージ３５５は、一部ＦＴＬ機能を行うソフトウェアのモジュールを備えなくても良い。この場合、販売者の特定装置ドライバがＦＴＬソフトウェアのモジュールを備える。一般に、装置ドライバ等はＳＳＤ生産者、ＵＳＢ／ＳＤ／ＭＭＣアプリケーションの提供者の様なハードウェアの供給者から提供される。従って、斯かる実施形態に於いて、ホストは、全ての埋め込みＦＴＬ機能の中で何れのＦＴＬ機能をホストにロードするかを決定する。
【００２８】
図４を参照すれば、相補性メモリ管理方法４００が図示されている。この管理方法４００は、機能ブロック４１２に制御を渡す試作またはパワーオンブロック４１０を含む。機能ブロック４１２は、ＦＴＬコードをコントローラＲＡＭに、ＯＳコードをホストＲＡＭにロードし機能ブロック４１４に制御を渡す。機能ブロック４１４は、ホストのＯＳを初期化し制御を機能ブロック４１８に渡す。
【００２９】
続いて、機能ブロック４１８は、ホストに残っている資源を参照して何れのＦＴＬ機能がホストから行われるかを決定した後、制御を機能ブロック４２０に渡す。機能ブロック４２０は、ホストに割り当てられる様に決定されたＦＴＬ機能を初期化した後、制御を機能ブロック４２２に渡す。機能ブロック４２２は、フラッシュメモリから消去カウント、ガベージコレクションデータ、マッピングテーブルの様なメタデータをホストＲＡＭにロードした後、制御を機能ブロック４２４に渡す。機能ブロック４２４は、決定されたホストＦＴＬ機能を活性化し、制御を機能ブロック４２６に渡す
【００３０】
続いて、機能ブロック４２６は、ホストからの書き込み要求を実行した後、制御を機能ブロック４２８に渡す。機能ブロック４２８からホストＦＴＬは、マッピング情報を読み出す。続いて、制御は機能ブロック４２８から決定ブロック４３０に渡される。決定ブロック４３０は、フラッシュメモリに書き込み可能な空間があるかを決定し、仮にフラッシュメモリに書き込み可能な空間がある場合、制御を機能ブロック４４４に渡す。仮にフラッシュメモリに書き込み可能な空間がない場合、決定ブロック４３０は制御を決定ブロック４３２に渡す。決定ブロック４３２はフラッシュメモリにガベージブロックがあるかを決定し、仮に、ガベージブロックがある場合、制御を決定ブロック４３８に渡す。仮にガベージブロックがない場合、決定ブロック４３２は制御を機能ブロック４３４に渡す。
【００３１】
機能ブロック４３４は、ガベージコレクションを行い、制御を機能ブロック４３６に渡す。機能ブロック４３６は、ガベージブロックを生成しガベージ情報をアップデータした後、決定ブロック４３６に制御を渡す。決定ブロック４３８は、ウェアレベルの必要性を判断して決定する。仮にウェアレベルが要らない場合、決定ブロック４３８は制御を機能ブロック４４２に渡し、ウェアレベルを必要とする場合、決定ブロック４３８は制御を機能ブロック４４０に渡す。機能ブロック４４０は、ウェアレベルを実施しメタ情報をアップデータした後、制御を機能ブロック４４２に渡す。機能ブロック４４２はガベージブロック等を消去した後、制御を機能ブロック４４４に渡す。機能ブロック４４４は書き込み要求をフラッシュメモリに伝送し制御を終了ブロック４４６に渡す。
【００３２】
動作に於いて、販売者の特定装置のドライバは、本発明の分割されたＦＴＬによる相補性ＦＴＬ機能等を行うための一部または全てのソフトウェアのモジュールを含む。フラッシュソフトウェアは、セクタマッピングアルゴリズム（Ｓｅｃｔｏｒ  ｍａｐｐｉｎｇ  ａｌｇｏｒｉｔｈｍ）、ガベージコレクション、パワーオフリカバリ（Ｐｏｗｅｒ−ｏｆｆ  ｒｅｃｏｖｅｒｙ）、バッドブロック管理（Ｂａｄ  ｂｌｏｃｋ  ｍａｎａｇｅｍｅｎｔ）、ウェアレベル、エラー訂正符号化（ＥＣＣ）、実時間管理のための書き込みバッファリング、データ管理、暗号化、復号化、圧縮、または圧縮解除機能等を含む。
【００３３】
図５を参照すれば、相補性メモリ管理システムのメモリマップ５００が図示されている。メモリマップ５００は、ホストソフトウェア５１０と装置ソフトウェア５３０を備える。ホストソフトウェア５１０は、ＯＳイメージ５１２、ファイルシステム５１４、販売者の特定ドライバ５２０を備える。販売者の特定ドライバ５２０は、付加的なファイルシステム５２２または／および付加的なＯＳコード５２４と関連がある。装置ソフトウェア５３０は、アドレスマッピング機能５３４を含むＦＴＬコード５３２と、ウェアレベル機能５３６およびバッドブロック管理機能５３８を備える。
【００３４】
図６を参照すれば、本発明による分割されたＦＴＬを有する相補性メモリ管理システムの動作方法６００が図示されている。この動作方法６００は、使用可能なホストと装置の資源をチェックする段階６１０を含む。使用可能な資源は、例えば、ＣＰＵのスピード、バッファリングのためのメモリ容量である。段階６１２から、ホストはホストによって支援される機能等の種類を決定する様に、そして、装置によって支援される機能等の種類を決定する様にチェックする。段階６１４から、ホストと装置とは、相互データ交換を通じてホストと装置の夫々の分割パラメータを設定する。段階６１６から、ホストと装置とは、相互データ交換を通じてホストと装置との間の通信方法およびパラメータを設定する。
【００３５】
図７を参照すれば、本発明の好ましい支援可能な機能のセット７００が図示されている。支援可能な機能７００は、ホストからの支援機能７１０とデバイスからの支援機能７２０とを含む。ここで、ホストからの支援機能７１０は、マッピング機能、ウェアレベル機能、圧縮／圧縮解除機能を含む。装置からの支援機能７２０は、マッピング機能、バッドブロック管理機能、ガベージコレクション機能、ウェアレベル機能、圧縮／圧縮解除機能およびその他の機能等を含む。ホストと装置とに対する詳しい機能等に対しては夫々上述した支援可能な機能等によって説明される。ホストと装置とは、一つまたはそれ以上の重複される機能を有する。従って、ホストと装置から重複される機能を実質的に行う側をどちらにするか決定する課題は残っている。
【００３６】
図８を参照すれば、ホストと装置との間の交渉を通じて決定される分割パラメータ８００が図示されている。図に於いて、‘Ｏ’は該当構成のローカル機能が活性化されたことを意味し、‘Ｘ’はローカル機能が非活性化されたことを意味する。支援される機能８００は、ホストによって支援される機能８１０と、装置から支援される機能８２０を含む。ここで、ホストによって支援される機能８１０は、ホストによって活性化されるマッピング機能、ホストによって活性化されるウェアレベル機能、そして、ホストによって活性化されない圧縮／圧縮解除機能が含まれる。
【００３７】
装置によって支援される機能８２０は、デバイスによって活性化されないマッピング機能、装置によって活性化されるバッドブロック管理機能、装置によって活性化されるガベージコレクション機能、装置によって活性化されないウェアレベル機能、そして、装置によって活性化される圧縮／圧縮解除機能が含まれる。
ここで、ホストや装置の活性化機能等は、上述した説明による。ホストと装置とは、一つまたはそれ以上の重複される機能等を有する、従って、ホストと装置の中で何れか一つから活性化された機能は、他の一つでは非活性化される。
【００３８】
図９を参照すれば、動作の際、通信方法９００が図示されている。通信方法９００は、ホストからＦＴＬ機能を活性化するためのホスト命令語を含む。ここで、ホストから活性化されるＦＴＬ機能は、論理アドレスを物理アドレスにマッピングするマッピング機能９１０、データ管理機能９２０、データ暗号化機能９３０が含まれる。
【００３９】
マッピング機能９１０を要求すれば、ホストはフラッシュ読み出し命令、フラッシュ書き込み命令、フラッシュ複写命令、またはフラッシュ消去命令の様な複数のマッピング命令語９１２の中で何れか一つを発行（Ｉｓｓｕｅ）する。データ確認機能９２０を要求すれば、ホストはシングルレベルのセル領域にデータ書き込みまたはマルチレベルのセル領域にデータ書き込みの様な複数の確認命令語９２２の中で何れか一つを発行する。暗号化機能９３０を要求すれば、ホストは暗号化を活性化する暗号化命令または暗号機能を非活性化する非暗号化命令の様な複数の暗号化命令語９３２の中で何れか一つを発行する。
【００４０】
なお、本発明を様々な実施形態に対して説明したが、本発明の範囲から外れない限度内で様々に変形できるであろう。従って、本発明の範囲は上述した実施形態に限定されるものではなく、本発明の特許請求範囲またはそれと均等のものによって決められるべきである。
【図面の簡単な説明】
【００４１】
【図１】ＦＴＬを有するフラッシュメモリカードのシステムを示すブロック図である。
【図２】本発明の実施形態による相補性メモリ管理機能を有するフラッシュメモリカードのシステムを示すブロック図である。
【図３】本発明の実施形態による分割されたＦＴＬを有するフラッシュメモリカードのシステムを示すブロック図である。
【図４】本発明の一実施形態による相補性メモリ管理方法を示すフロー図である。
【図５】本発明の一実施形態による相補性メモリ管理システムのメモリマップを示す図である。
【図６】本発明の分割されたＦＴＬを有するメモリ管理方法を示すフロー図である。
【図７】本発明の実施形態によるメモリ管理機能を支援するためのホストおよび装置のブロック図である。
【図８】本発明の実施形態によるメモリ管理機能を活性化するためのホストおよび装置のブロック図である。
【図９】本発明による相補性メモリ管理システムを有するホストと装置との間の通信方法を示すブロック図である。
【符号の説明】
【００４２】
１００  フラッシュメモリカードのシステム
１１０  ホスト
１２０  カード
１３０  コントローラ
１３１  ホストインタフェース
１３２  コントローラバス
１３３  フラッシュインタフェース
１３５  バッファメモリ
１３７  ＣＰＵ
１３９  ＲＯＭ
１５０  フラッシュメモリ
【図１】
0005468207.tif 000002
【図２】
0005468207.tif 000003
【図３】
0005468207.tif 000004
【図４】
0005468207.tif 000005
【図５】
0005468207.tif 000006
【図６】
0005468207.tif 000007
【図７】
0005468207.tif 000008
【図８】
0005468207.tif 000009
【図９】
0005468207.tif 000010