(57)【要約】【課題】ページ複写およびブロック消去動作の回数を減らし、ログブロックのページの利用率を高めるメモリマッピングシステムおよび方法を提供する。【解決手段】メモリシステムは、ホストから論理ユニット番号のための書き込みデータを受信するための入力装置と、複数のデータブロックグループの中で何れのグループが前記論理ユニット番号を含むかを決定するためのマッピング装置と、前記決定されたデータブロックグループに対応するログブロックグループの空いているログユニットに前記書き込みデータを格納するためのメモリ装置とを備える。そして、メモリマッピング方法は、ホストから論理ユニット番号のための書き込みデータが入力される段階と、複数のデータブロックグループ内で何れのものが前記論理ユニット番号を含むかを決定する段階と、前記決定されたデータブロックグループに対応するログブロックグループの空いているログユニットに前記書き込みデータを格納する段階とを含む。【選択図】図５
2008192154.tif 000002
【特許請求の範囲】
【請求項１】
メモリマッピング方法に於いて、
ホストから論理ユニット番号のための書込みデータが入力される段階と、
複数のデータブロックグループの中で何れのものが前記論理ユニット番号を含むかを決定する段階と、
前記決定されたデータブロックグループに対応するログブロックグループの空いているログユニットに前記書き込みデータを格納する段階とを含むことを特徴とするメモリマッピング方法。
【請求項２】
ユニットの大きさは、一番小さい書き込み可能なビット数であり、
ブロックの大きさは、一番小さい消去可能なビット数および複数の多重書き込み可能なユニットの大きさであり、
グループの大きさは、変更可能な多重消去ブロックのサイズであることを特徴とする請求項１に記載のメモリマッピング方法。
【請求項３】
ユニットは、バイト、ページ、セクタの中の少なくとも一つであることを特徴とする請求項１に記載のメモリマッピング方法。
【請求項４】
前記論理ユニット番号と物理ユニット番号と間の関係は、ページマッピングテーブルに格納されることを特徴とする請求項１に記載のメモリマッピング方法。
【請求項５】
前記ページマッピングテーブルは、複数の論理ユニット番号と夫々関連するデータグループ番号をさらに含むことを特徴とする請求項４に記載のメモリマッピング方法。
【請求項６】
前記決定段階は、前記論理ユニット番号を前記複数のデータブロック数に割ることを根拠とする法演算を含むことを特徴とする請求項１に記載のメモリマッピング方法。
【請求項７】
自由ブロックを前記ログブロックグループにあるログブロックに割り当てることにより、前記ログブロックグループを初期化する段階をさらに含むことを特徴とする請求項１に記載のメモリマッピング方法。
【請求項８】
自由ブロックを前記ログブロックグループにある次のログブロックに割り当てることにより、前記ログブロックグループを拡張する段階をさらに含むことを特徴とする請求項７に記載のメモリマッピング方法。
【請求項９】
複数の自由ブロックを前記ログブロックグループにある対応する複数のログブロックに割り当てる段階をさらに含むことを特徴とする請求項７に記載のメモリマッピング方法。
【請求項１０】
自由ブロックをログブロックに割り当てる段階をさらに含むことを特徴とする請求項１に記載のメモリマッピング方法。
【請求項１１】
前記割り当てる段階は、前記ログブロックをグループマッピングテーブルに登録する段階を含むことを特徴とする請求項１０に記載のメモリマッピング方法。
【請求項１２】
前記グループマッピングテーブルの関連性は、夫々のグループに対するログブロックのための複数の物理ブロックであることを特徴とする請求項１１に記載のメモリマッピング方法。
【請求項１３】
前記ログブロックは、前記データブロックグループ内にある全てのデータブロックのために使用されることを特徴とする請求項１０に記載のメモリマッピング方法。
【請求項１４】
前記ホストから第２論理ユニット番号のための書き込み要求が入力される段階と、
第２物理ユニット番号と関連する前記第２論理ユニット番号を前記ログブロックグループのログブロックに格納する段階とをさらに含むことを特徴とする請求項１に記載のメモリマッピング方法。
【請求項１５】
前記格納する段階は、前記論理ユニット番号のための新しいマッピング情報と関連するページマッピングテーブルをアップデータする段階を含むことを特徴とする請求項１４に記載のメモリマッピング方法。
【請求項１６】
前記ログブロックが全て満たされているかを検査する段階をさらに含み、
前記検査する段階から前記ログブロックが全て満たされた場合に、追加ログブロックを論理ユニット番号をさらに格納するための前記ログブロックグループに割り当ることを特徴とする請求項１４に記載のメモリマッピング方法。
【請求項１７】
前記割り当てる段階は、前記追加ログブロックの物理ブロック番号のための新しいマッピング情報と関連するグループマッピングテーブルをアップデータする段階を含むことを特徴とする請求項１６に記載のメモリマッピング方法。
【請求項１８】
前記ホストから第３論理ユニット番号のための書き込み要求が入力される段階と、
第３物理ユニット番号と関連する第３論理ユニット番号を前記ログブロックグループに存在するログブロックに格納する段階とをさらに含むことを特徴とする請求項１６に記載のメモリマッピング方法。
【請求項１９】
前記ホストから異なる論理ユニット番号のための書き込み要求信号が入力され、また異なる論理ユニット番号は、前記第１データブロックグループに含まれない段階と、
異なる物理ユニット番号と関連する前記また異なる論理ユニット番号を異なるログブロックグループのログブロックに格納し、ページマッピングテーブルをアップデータする段階とを含むことを特徴とする請求項１に記載のメモリマッピング方法。
【請求項２０】
自由ブロックをログブロックに割り当てることにより、前記また異なる論理ユニット番号を含む異なるデータブロックグループに該当するまた異なるログブロックグループを生成する段階をさらに含むことを特徴とする請求項１９に記載のメモリマッピング方法。
【請求項２１】
一つのログブロックは、データブロックグループ内の全てのデータブロックに割り当てられることを特徴とする請求項１に記載のメモリマッピング方法。
【請求項２２】
ログブロックは、複数の物理ユニット番号を使用することを特徴とする請求項１に記載のメモリマッピング方法。
【請求項２３】
前記メモリはフラッシュメモリ、ＤＲＡＭ、ＰＲＡＭ、ＭＲＡＭ、ＦＲＡＭ、ＥＥＰＲＯＭの中の少なくとも一つを含むことを特徴とする請求項１に記載のメモリマッピング方法。
【請求項２４】
少なくとも一つのマッピングテーブルは、第１複数の使用者データブロックおよび第２複数のログブロックまたは書き込みバッファを第３複数の遅延されたマージブロックと関連する様に構成されることを特徴とする請求項１に記載のメモリマッピング方法。
【請求項２５】
前記第３複数の遅延されたマージブロックは、動的制御されることを特徴とする請求項２４に記載のメモリマッピング方法。
【請求項２６】
ログブロックの数は、論理ブロックの数と関連することを特徴とする請求項１に記載のメモリマッピング方法。
【請求項２７】
ログブロックグループ当たりのログブロックの数は、一つより多いことを特徴とする請求項１に記載のメモリマッピング方法。
【請求項２８】
ログブロックは、複数のデータブロックのための書き込みデータユニットを格納することを特徴とする請求項１に記載のメモリマッピング方法。
【請求項２９】
メモリマッピングシステムに於いて、
ホストから論理ユニット番号のための書き込みデータを受信するための入力装置と、
複数のデータブロックグループの中の何れのグループが前記論理ユニット番号を含むかを決定するためのマッピング装置と、
前記決定されたデータブロックグループに対応するログブロックグループの空いているログユニットに前記書き込みデータを格納するためのメモリ装置とを含むことを特徴とするメモリマッピングシステム。
【請求項３０】
メモリマッピングシステムに於いて、
少なくとも一つの論理ユニット−物理ユニットマップテーブルと、
前記少なくとも一つのマップテーブルと信号通信する複数のデータユニットグループと、
前記複数のデータユニットグループの中の対応する一つと夫々関連する複数のログユニットグループとを備え、
前記複数のデータユニットグループの中の一つのグループ内にある何れのデータユニットのためのアップデータされたデータは、前記複数のログユニットグループの中の対応する一つのグループ内にある何れかのログユニットに格納されることを特徴とするメモリマッピングシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、フラッシュメモリシステムに係り、さらに詳しくはマッピングテーブルを有するフラッシュメモリシステムに関する。
【背景技術】
【０００２】
コンピュータ、デジタルカメラ、デジタル音楽プレーヤ、携帯電話機、ＰＤＡの様な携帯用電子装置には、フラッシュメモリ、特にフラッシュガートの使用がだんだん増えている。フラッシュガートは、ＳＳＤ、ＳＤガート、ＭＭＣ、メモリスティック、または、ｍｏｖｉＮＡＮＤ、ＧＢＮＡＮＤ、ｉＮＡＮＤの様な内装メモリを含む。
【０００３】
一般にホストは、フラッシュ変換レイヤ（Ｆｌａｓｈ  Ｔｒａｎｓｌａｔｉｏｎ  Ｌａｙｅｒ）を使用してフラッシュメモリと通信する。フラッシュ変換レイヤはコントローラまたはフラッシュメモリに格納されているファームウェア（ｆｉｒｍｗａｒｅ）を含む。一般にフラッシュ変換レイヤには、フラッシュガートを効果的に管理するのに使用される。
【０００４】
アドレスマッピング動作は、フラッシュ変換レイヤ機能の一つである。フラッシュ変換レイヤは、ホストから論理アドレス（Ｌｏｇｉｃａｌ  Ａｄｄｒｅｓｓ）が入力され、入力された論理アドレスを物理アドレス（Ｐｈｙｓｉｃａｌ  Ａｄｄｒｅｓｓ）に変換する。物理アドレスはフラッシュメモリにデータを格納し、フラッシュメモリからデータを読み出すとき使用されるアドレスである。
【０００５】
アドレスマッピングテーブルは、アドレス変換に使用される。例えば、アドレスマッピングテーブルは、フラッシュメモリに格納され、その格納されたテーブルはコントローラの中にあるバッファにロードされる。論理アドレスおよび対応する物理アドレスは、アドレスマッピングテーブルに関連している。アドレスマッピングテーブルの大きさは、定義されたマッピングユニットによって異なる。テーブルの大きさが大きいほど、必要とするバッファの大きさはさらに大きくなる。典型的なマッピングユニットは、消去単位になるブロックと、読み出し／書き込みの単位になるページとを含む。
【０００６】
多様なマッピングユニットに応じて、使用できるマッピング方法は様々である。ページマッピング方法に於いて、マッピングテーブルは共通にページ単位に変換される。即ち、データアドレスの論理ページは、対応する物理ページに変換される。ここで、一つのメモリブロックは、数十または数百個のページを含む。しかし、斯かる方法はブロックマッピング方法より更に大きいサイズのマッピングテーブルを必要とする。
【０００７】
ブロックマッピング方法に於いて、マッピングテーブルは共通にブロック単位に変換される。ここで、ページはブロックから順次に書き込まれる。しかし、斯かる方法を使用するとき、自由ブロックを生成するためには多数のマージ動作を必要とする。
【発明の開示】
【発明が解決しようとする課題】
【０００８】
本発明は上述した技術的な課題を解決するためのものであって、本発明の目的はページ複写およびブロック消去動作の回数を減らすことができ、ログブロックのページの利用率を高めることができるメモリマッピングシステムおよび方法を提供することである。
【課題を解決するための手段】
【０００９】
本発明によるメモリマッピング方法は、ホストから論理ユニット番号のための書き込みデータが入力される段階と、複数のデータブロックグループの中で何れのものが前記論理ユニット番号を含むかを決定する段階と、前記決定されたデータブロックグループに対応するログブロックグループの空いているログユニットに前記書き込みデータを格納する段階とを含む。
【００１０】
実施形態として、前記メモリマッピング方法は、前記ホストから第２論理ユニット番号のための書き込み要求が入力される段階と、前記第２物理ユニット番号に関連する前記第２論理ユニット番号を前記ログブロックグループのログブロックに格納する段階とをさらに含む。
【００１１】
本発明によるメモリマッピングシステムは、ホストから論理ユニット番号のための書き込みデータを受信する入力装置と、複数のデータブロックグループの中で何れのグループが前記論理ユニット番号を含むかを決定するマッピング装置と、前記決定されたデータブロックグループに対応するログブロックグループの空いているログユニットに前記書き込みデータを格納するメモリ装置とを備える。
【００１２】
本発明によるメモリマッピングシステムは、少なくとも一つの論理ユニット−物理ユニットマップテーブルと、前記少なくとも一つのマップテーブルと信号通信する複数のデータユニットグループと、前記複数のデータユニットグループの中で対応する一つと夫々関連する複数のログユニットグループとを備える。ここで、前記複数のデータユニットグループの中で一つの中にある何れのデータユニットのためのアップデータされたデータは、前記複数のログユニットグループの中の対応する一つのグループの中にある何れかのログユニットに格納される。
【発明の効果】
【００１３】
本発明によるメモリマッピングシステムおよび方法は、グループマッピング方法を使用するので、ログブロックのページの利用率が向上する。また、本発明は、マージ演算およびブロック消去の回数を減らすことができる。
【発明を実施するための最良の形態】
【００１４】
図１から分かる様に、メモリマッピングシステム１００はプロセッサ１１６、プロセッサ１１６と信号通信するフラッシュメモリ１１０、プロセッサ１１６と信号通信するＲＡＭ１１４を含む。ＲＯＭ１１２は、例えば、フラッシュメモリ１１０またはＲＡＭ１１４からデータを読み出したり、それらにデータを書き込むための読み出しおよび書き込みコマンドを提供するプロセッサ１１６によって行われるプログラムを含む。コマンドに応じて行われる読み出しおよび書き込み動作等は、本発明によって開示されるメモリマッピングの実施形態に関連して、フラッシュメモリ１１０から行われる。また、ＲＯＭ１１２とＲＡＭ１１４は、関連データ構造および／またはプロセッサ１１６によって行われる応用プログラムを格納する。
【００１５】
図２を参照すれば、フラッシュメモリガートシステム２００はコンピュータ、デジタルカメラ、デジタル音楽プレーヤ、携帯電話機、ＰＤＡ等の携帯用電子装置を含む。フラッシュメモリガートシステム２００は、フラッシュガート２２０と信号通信するホスト２１０を含む。フラッシュガート２２０はＳＳＤ（Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｉｓｋ）、ＳＤガート、ＭＭＣ、メモリスチック、そして内装ガート（例えば、ｍｏｖｉＮＡＮＤ、ＧＢＮＡＮＤ、ｉＮＡＮＤ）等を含む。
【００１６】
フラッシュガート２２０は、フラッシュメモリ２５０と信号通信するコントローラ２３０を備える。ホスト２１０は、フラッシュ変換レイヤ（Ｆｌａｓｈ  Ｔｒａｎｓｌａｔｉｏｎ  Ｌａｙｅｒ）を使用してフラッシュメモリ２５０と通信する。フラッシュ変換レイヤはフラッシュガート２２０を電気的に管理するロジックおよび／またはファームウェア（ｆｉｒｍｗａｒｅ）を備える。フラッシュ変換レイヤは、コントローラ２３０またはフラッシュメモリ２５０に格納することにより、具現できる。
【００１７】
コントローラ２３０は、コントローラバス２３２と信号通信するホストインタフェース２３１、コントローラバス２３２と信号通信するフラッシュインタフェース２３３、コントローラバス２３２と信号通信するバッファメモリ２３５、コントローラバス２３２と信号通信するＣＰＵ２３７、コントローラバス２３２と信号通信するＲＯＭ２３９を備える。
【００１８】
動作に於いて、アドレスマッピング動作は、ホスト２１０から論理アドレスＬＡが入力され、その入力された論理アドレスＬＡを物理アドレスＰＡに変換するフラッシュ変換レイヤの機能である。物理アドレスＰＡは、フラッシュメモリ２５０にデータを格納するとき使用されるアドレスである。論理アドレスおよび対応する物理アドレスは、テーブル内で互いに関連付けられている。テーブルは、フラッシュメモリ２５０に格納され、コントローラ２３０の中のバッファメモリ２３５にロードされる。テーブルの大きさ（ｓｉｚｅ）は、定義されたマッピングユニットによって異なる。
【００１９】
図３を参照すれば、ハイブリッドマッピングシステム３００は、フラッシュ変換レイヤ３２０と信号通信するホスト３１０を備える。フラッシュ変換レイヤ３２０は、順次にフラッシュメモリ３３０と信号通信する。論理アドレスＬＡは、ホスト３１０とフラッシュ変換レイヤ３２０との間でパスされる。物理アドレスＰＡは、フラッシュ変換レイヤ３２０とフラッシュメモリ３３０との間でパスされる。フラッシュ変換レイヤ３２０は、ブロックマッピングテーブル３２１とページマッピングテーブル３２２とを備える。ページマッピングテーブル３２２は、ログブロック等のために具現される。逆に、ブロックマッピングテーブル３２１は、例えば、データブロック等のために具現される。
【００２０】
フラッシュメモリ３３０は、データ領域３３１を備える。データ領域３３１は、物理ブロック番号（ＰＢＮ：ｐｈｙｓｉｃａｌ  ｂｌｏｃｋ  ｎｕｍｂｅｒｓ）１００、１０１、１０２、１０３、１０４、１０５、２０６、３０３、・・・、９００、９０１、９０２、９０３を有するデータブロックを備える。フラッシュメモリ３３０は、ログ領域３３２を備える。ログ領域３３２は、物理ブロック番号３００、４００、５００を有するログブロック等を備える。フラッシュメモリ３３０は、自由領域３３３およびメタ領域３３４をさらに備える。自由領域３３３は、物理ブロック番号６００、６０１、６０２、６０３を有する自由ブロックを備える。
【００２１】
動作に於いて、ハイブリッドマッピング方法は、例えば、フラッシュガートシステムからマッピングアドレスのために使用される。ハイブリッドマッピング方法に於いて、マッピングテーブルは、ページ単位またはブロック単位で論理アドレスを物理アドレスに関連付ける。ハイブリッドマッピング方法がログブロックのページマッピングとデータブロックのブロックマッピングのために使用される際、テーブルの大きさおよびマージ動作の回数は夫々減る。
【００２２】
例えば、書き込み動作を行う際、指定されたデータブロックに格納されるページデータは先に指定されたログブロックに格納される。仮にログブロックとして使用される自由ブロックがなければ、ログブロックにあるページデータおよびログブロックに対応するデータブロックにあるページデータは新しいデータブロックに複写される。この動作の間に代わったマッピング情報は、メタ領域に格納される。ログブロックと旧データブロックとは、その内容等が異なるブロックに割り当てられると、安全に消去される。
【００２３】
図４から分かる様に、マージ４００には、データブロック１００およびログブロック３００が入力され、マージされたデータブロック１０１を提供する。ここで、論理ページ番号（ＬＰＮ：ｌｏｇｉｃａｌ  ｐａｇｅ  ｎｕｍｂｅｒ）１に対応するデータがデータブロック１００の物理ページ番号２に格納され、ホストが論理ページ番号２、３、０の順に書き込み動作を要求する際、ログブロック３００の物理ページ番号１、２、３は順に書き込まれる。フラッシュ変換レイヤが自由ブロックの不足によりログブロック３００のマージ動作を行う際、ログブロック３００の論理ページ番号２、３、０および対応するデータブロック１００の論理ページ番号１は夫々新しいデータブロック１０１の物理ページ番号１、２、３、４に論理ページ番号０、１、２、３の順に複写される。ログブロック３００およびデータブロック１００は、新しいデータブロックまたは自由ブロックにまた割り当てられる際に消去される。
【００２４】
斯かる方法は、数多いページ複写およびブロック消去動作を行う。一つのブロックが４個のページから構成されたと仮定すれば、一つのマージ動作について４回のページ複写動作および２回のブロック消去動作が必要になる。また、斯かる方法は、ログブロックから低いページ使用率を有する。ログブロック３００は、マージ動作によって自由ブロックに代わる前に４個のページの中で３個のページだけを使用する。頻繁に発生するマージ動作について数多い複写および消去動作と、低いページ使用率は、ガートシステムの全般的な性能の減少を招く。
【００２５】
図５を参照すれば、ハイブリッドマッピングシステム５００は、フラッシュ変換レイヤ５２０と信号通信するホスト５１０を備える。フラッシュ変換レイヤ５２０は、順次にフラッシュメモリ５３０と信号通信する。論理アドレスＬＡはホスト５１０とフラッシュ変換レイヤ５２０との間からパスされる。物理アドレスＰＡは、フラッシュ変換レイヤ５２０とフラッシュメモリ５３０との間からパスされる。フラッシュ変換レイヤ５２０は、ブロックマッピングテーブル５２１、グループマッピングテーブル５２２、ページマッピングテーブル５２３を備える。ページマッピングテーブル３２２は、ログブロックのために具現される。逆にブロックマッピングテーブルは、例えば、データブロックのために具現される。
【００２６】
フラッシュメモリ５３０は、データ領域５３１を備える。データ領域５３１は、物理ブロック番号１００、１０１、１０２、１０３、１０４、１０５、２０６、３０３、・・・、９００、９０１、９０２、９０３を有するデータブロックを備える。フラッシュメモリ５３０は、ログ領域５３２を備える。ログ領域５３２は、物理ブロック番号３００、４００、５００を有するログブロックを備える。ログブロックは、ログブロックグループの間に分布される。フラッシュメモリ５３０は、自由領域５３３およびメタ領域５３４をさらに備える。自由領域５３３は、物理ブロック番号６００、６０１、６０２、６０３を有する自由ブロックを備える。
【００２７】
グループマッピング方法に於いて、ログブロックグループ（ＬＢＧ：ｌｏｇ  ｂｌｏｃｋ  ｇｒｏｕｐ）は、データブロックグループ（ＤＢＧ：ｄａｔａ  ｂｌｏｃｋ  ｇｒｏｕｐ）に割り当てられる。ログブロックグループＬＢＧとデータブロックグループＤＢＧとは、夫々複数のログブロックおよび複数のデータブロックを備える。図５で、ログブロックグループＬＢＧ１は、ログブロック３００と４００から構成され、データブロックグループＤＢＧ１に割り当てられる。データブロックグループＤＢＧ１は、データブロック１００、１０１、１０２、１０３から構成される。この様に、データブロック１００〜１０３にプログラムされるデータは、先にログブロック３００または４００にプログラムされる。一つのログブロックグループＬＢＧの中にある夫々のログブロックは、割り当てられたデータブロックグループＤＢＧの中にあるデータブロックに割り当てられる。夫々のデータブロックグループＤＢＧまたはログブロックグループＬＢＧの中のブロックの数は可変的である。グループマッピング方法を通じて、マージ動作の回数は減り、ログブロックの中にあるページの平均使用率が向上される。
【００２８】
図６を参照すれば、グループマッピングのフラッシュ変換レイヤ６００が図示されている。この実施形態に於いて、フラッシュ変換レイヤ６００は、ブロックマッピングテーブル（ＢＭＴ：ｂｌｏｃｋ  ｍａｐｐｉｎｇ  ｔａｂｌｅ）６１０、グループマッピングテーブル（ＧＭＴ：ｇｒｏｕｐ  ｍａｐｐｉｎｇ  ｔａｂｌｅ）６２０、ページマッピングテーブル（ＰＭＴ：ｐａｇｅ  ｍａｐｐｉｎｇ  ｔａｂｌｅ）６３０を備える。ブロックマッピングテーブル６１０は、論理ブロック番号（ＬＢＮ：ｌｏｇｉｃａｌ  ｂｌｏｃｋ  ｎｕｍｂｅｒ）０〜７を物理ブロック番号ＰＢＮ１００〜１０５、２０６、３０３と夫々関連させる。グループマッピングテーブル６２０は、データブロックグループＤＢＧ１をログブロックの物理ブロック番号ＰＢＮ３００、４００と関連させて、データブロックグループＤＢＧ２を物理ブロック番号ＰＢＮ５００と関連させる。ページマッピングテーブル６３０は、データブロックグループＤＢＧ１について論理ページ番号ＬＰＮ３、４、１１、１２、１３、１４を物理ページ番号ＰＰＮ１２００、１２０１、１２０２、１２０３、１６００、１６０１と夫々関連させる。また、ページマッピングテーブル６３０は、データブロックグループＤＢＧ２に対して論理ページ番号ＬＰＮ１７〜２０を物理ページ番号ＰＰＮ２０００〜２００３と夫々関連させる。
【００２９】
この様に、ログブロックグループＬＢＧ１の物理ブロック番号ＰＢＮ３００は、論理ページ番号ＬＰＮ３、４、１１、１２と夫々関連される物理ページ番号ＰＰＮ１２００〜１２０３を有する。ログブロックグループＬＢＧ１の物理ブロック番号ＰＢＮ４００は、論理ページ番号ＬＰＮ１３、１４と夫々関連される物理ページ番号ＰＰＮ１６００、１６０１を有する。ログブロックグループＬＢＧ１は、データブロックグループＤＢＧ１と関連される。データブロックグループＤＢＧ１の物理ブロック番号ＰＢＮ１００は、論理ページ番号ＬＰＮ０〜３と関連される物理ページ番号ＰＰＮ１〜４を有する。データブロックグループＤＢＧ１の物理ブロック番号ＰＢＮ１０１は、論理ページ番号ＬＰＮ４〜７と関連される物理ページ番号ＰＰＮ１〜４を有する。データブロックグループＤＢＧ１の物理ブロック番号ＰＢＮ１０２は、論理ページ番号ＬＰＮ８〜１１と関連される物理ページ番号ＰＰＮ１〜４を有する。データブロックグループＤＢＧ１の物理ブロック番号ＰＢＮ１０３は、論理ページ番号ＬＰＮ１２〜１５と関連される物理ページ番号ＰＰＮ１〜４を有する。
【００３０】
また、ログブロックグループＬＢＧ２の物理ブロック番号ＰＢＮ５００は論理ページ番号ＬＰＮ１７〜２０と夫々関連される物理ページ番号ＰＰＮ２０００〜２００３を有する。ログブロックグループＬＢＧ２は、データブロックグループＤＢＧ２と関連される。データブロックグループＤＢＧ２の物理ブロック番号ＰＢＮ１０４は、論理ページ番号ＬＰＮ１６〜１９と関連される物理ページ番号ＰＰＮ１〜４を有する。データブロックグループＤＢＧ２の物理ブロック番号ＰＢＮ１０５は、論理ページ番号ＬＰＮ２０〜２３と関連される物理ページ番号ＰＰＮ１〜４を有する。データブロックグループＤＢＧ２の物理ブロック番号ＰＢＮ２０６は、論理ページ番号ＬＰＮ２４〜２７と関連される物理ページ番号ＰＰＮ１〜４を有する。データブロックグループＤＢＧ２の物理ブロック番号ＰＢＮ３０３は、論理ページ番号ＬＰＮ２８〜３１と関連される物理ページ番号ＰＰＮ１〜４を有する。
【００３１】
ブロックマッピングテーブル６１０は、論理ブロック番号ＬＢＮを物理ブロック番号ＰＢＮに変換する。グループマッピングテーブル６２０は、夫々のデータブロックグループＤＢＧとログブロックの物理ブロック番号ＰＢＮとの間のマッピング情報を有する。ページマッピングテーブル６３０は、夫々のデータブロックグループＤＢＧ、論理ページ番号ＬＰＮ、そして対応する物理ページ番号ＰＰＮとの間のマッピング情報を有する。
【００３２】
好ましいグループマッピングの実施形態に於いて、論理ページ番号ＬＰＮ３、４のための書き込み要求がホストから入力される。フラッシュ変換レイヤは、自由ブロックからログブロック３００を割り当て、データブロックグループＤＢＧ１に対応するログブロックグループＬＢＧ１を生成する。フラッシュ変換レイヤは、グループマッピングテーブルにログブロック３００を登録する。ログブロック３００は、データブロックグループＤＢＧ１の中にある全てのデータブロックに割り当てられる。図６に於いて、論理ページ番号ＬＰＮ０〜１５は、ログブロック３００に格納される。論理ページ番号ＬＰＮ３、４は、ログブロック３００の物理ページ番号ＰＰＮ１２００、１２０１に格納される。マッピング情報は、ページマッピングテーブルに格納される。
【００３３】
次に、論理ページ番号ＬＰＮ１１〜１４に対する書き込み要求がホストから入力される。論理ページ番号ＬＰＮ１１、１２は、先に割り当てられたログブロック３００の物理ページ番号ＰＰＮ１２０２、１２０３に格納される。ページマッピングテーブル６３０は、新しいマッピング情報によってアップデータされる。
【００３４】
新しいログブロック４００は、追加に論理ブロックグループＬＢＧ１に割り当てられるので、論理ページ番号ＬＰＮ１３、１４を格納する。フラッシュ変換レイヤは、グループマッピングテーブル６２０にログブロック４００を登録する。論理ページ番号ＬＰＮ１３、１４はログブロック４００の物理ページ番号ＰＰＮ１６００、１６０１に格納され、ページマッピングテーブル６３０はアップデータされる。書き込み要求は、論理ページ番号ＬＰＮ１７〜２０のためにホストから入力される。
【００３５】
論理ページ番号ＬＰＮ１７〜２０は、データブロックグループＤＢＧ１に属しないので、ログブロック４００に格納されない。フラッシュ変換レイヤは、ホストから新しいログブロック５００を割り当て、データブロックグループＤＢＧ２に対応する論理ブロックグループＬＢＧ２を生成する。フラッシュ変換レイヤはグループマッピングテーブル６２０にログブロック５００を登録する。論理ページ番号ＬＰＮ１７〜２０は、ログブロック５００の物理ページ番号２０００、２００１に格納され、ページマッピングテーブル６３０はアップデータされる。
【００３６】
グループマッピング方法を使用するので、ログブロックのページ使用率は向上される。これはログブロック３００が、一つのページ（例えば、ＰＰＮ１２００）を使用する従来の方法と比較される。本発明の実施形態に於いて、ログブロック３００は、全てのページ（例えば、ＰＰＮ１２００〜１２０３）を使用する。その理由は、一つのログブロックは、データブロックグループ内の全てのデータブロックに割り当てられるからである。またマージ動作の回数は、ログブロックの高いページ使用率と関連して減る様になる。更に、複写および消去動作の回数が減り、システム性能は向上する。
【００３７】
図７から分かる様に、論理フラッシュメモリ構造７００が図示されている。フラッシュメモリ７００は、使用者に見えないメタデータ領域７１０と、使用者に見える使用者データ領域７２０とを備える。メタデータ領域７１０はファームウェアブロック７１２、バッドブロックを代替するための予備ブロック７１４、マップブロック７１６、書き込みバッファブロック７１８を備える。マップブロック７１６は、ブロックマップテーブル７１７を備える。ブロックマップテーブル７１７は、論理ブロック番号０、１、・・・、３１を物理ブロック番号３、１５、・・・、０に夫々マッピングする。図７は書き込みバッファブロック７１８の一つの例７１９を示す。書き込みバッファブロック７１９は、論理ページ番号１と３のための代替データ（ｒｅｐｌａｃｅｍｅｎｔ  ｄａｔａ）、即ち論理ページ番号１’と３’を格納する。
【００３８】
使用者データ領域７２０は、データブロック７２２〜７２６を備える。データブロック７２５は、論理ページ番号０〜３を備える。動作に於いて、マージ動作は、データブロック７２５と書き込みバッファブロック７１９とを結合することによって新しいデータブロック７２６を形成する。新しいデータブロック７２６は、論理ページ番号０、１’、２、３’を含む。
【００３９】
図８を参照すれば、ページマッピング構造８００が図示されている。ページマッピング構造８００は、ページマップテーブル８１０およびフラッシュメモリ８７０を備える。ページマップテーブル８１０は、論理ページ番号８３０および対応する物理ページ番号８５０を備える。論理ページ番号８３２は、対応する物理ページ番号を探すのに使用される。
【００４０】
論理ページ番号ＬＰＮ１は、初期に物理ページ番号ＰＰＮ２に対応する。新しい物理ページ番号ＰＰＮ５は、フラッシュメモリ８７０に書き込まれる。そして、ブロックマッピングテーブル８１０は、ＬＰＮ１をＰＰＮ５と関連させるためにアップデータされる。これは、ｏｕｔ−ｏｆ−ｐｌａｃｅマッピングと呼ばれる。アップデータするページは、新しいブロックの他の位置に書き込まれる。ページマップテーブルのアップデータは、比較的に大きいサイズのマップテーブルを使用する。例えば、１２８ＫＢマップテーブルは、１２８ＭＢのＮＡＮＤフラッシュメモリのために使用される。
【００４１】
図９を参照すれば、ブロックマッピング構造９００が図示されている。ブロックマッピング構造９００は、ブロックマップテーブル９２０およびフラッシュメモリ９７０を備える。ブロックマップテーブル９２０は、論理ブロック番号９４０および対応する物理ブロック番号９６０を備える。論理ブロック番号９４２は、対応する物理ブロック番号を探すのに使用される。物理ページ番号９６２は、物理ブロック番号に足されるオフセットである。
【００４２】
物理ページ番号ＰＰＮ２は、フラッシュメモリ９７０の中から物理ページ番号ＰＰＮ２’にアップデータされる。これはｉｎ−ｐｌａｃｅマッピングと呼ばれる。アップデータページは、新しいブロックの同じ位置に書き込まれ、ブロックマップテーブルは、アップデータされる。Ｏｕｔ−ｏｆ−ｐｌａｃｅページのアップデータがブロック複写動作をする際、書き込み動作の間に複写オーバーヘッドが発生する。
【００４３】
図１０から分かる様に、ハイブリッドマッピング構造１０００が図示されている。ハイブリッドマッピング構造１０００は、ページマップテーブル１０１０、ブロックマップテーブル１０２０、ログブロック１０７０、データブロック１０８０を備える。
ページマップテーブル１０１０は、論理ページ番号１０３０および対応する物理ページ番号１０５０を備える。ブロックマップテーブル１０２０は、論理ブロック番号１０４０および対応する物理ブロック番号１０６０を備える。論理ブロック番号１０３２は、対応する物理ブロック番号を探すのに使用される。
【００４４】
動作に於いて、論理ブロック番号１０３２は、ブロックマッピングテーブル１０２０にある対応する物理ブロック番号を探すのに使用されたり、論理ページ番号１０５２は、ページマッピングテーブル１０１０にある対応する物理ページ番号を探すのに使用される。
【００４５】
例えば、ページマッピングは、書き込みバッファやログブロックのために使用されるが、ブロックマッピングは、データブロックのために使用される。論理ページ番号１は、初期にログブロック１０７０から物理ページ番号２に対応する。ページマップテーブル１０１０は、論理ページ番号１をスイッチして、物理ページ番号４に対応する様にアップデータされる。ログブロック１０７０がデータブロック１０８０に書き込まれる際、ブロックマップテーブルはアップデータされる。
【００４６】
図１１を参照すれば、マージ方法１１００が図示されている。図１１に於いて、ログエントリ情報１１１０は、ログブロック１１２０をアップデータするのに使用される。次に、ログブロック１１２０は、データブロック１１３０にマージされる。マージされたデータは、自由ブロック１１４０に書き込まれる。自由ブロック１１４０は、新しいデータブロックになる。この様に、マージ方法１１００は、自由ブロックを割り当てて有効ページを割り当てられた自由ブロックに複写し、割り当てられた自由ブロックをデータブロックにセットすることによりマップページをアップデータし、旧ログブロックおよび旧データブロックを消去する様にセットする。
【００４７】
図１２を参照すれば、複写−マージ方法１２００が図示されている。図１２に於いて、ログエントリ情報１２１０は、ログブロック１２２０のページをアップデータするのに使用される。データブロック１２３０の変らないページは、ログブロック１２２０に複写される。この様に、マージ方法１２００は、データブロックにある有効ページをログブロックに複写し、旧ログブロックをデータブロックにセットすることによりマップページをアップデータし、旧データブロックを消去する様にセットする。
【００４８】
図１３から分かる様に、スワップマージ方法１３００が図示されている。図１３に於いて、ログエントリ情報１３１０は、ログブロック１３２０の全てのページをアップデータするのに使用される。マージページは、旧ログブロックをデータブロックにセットすることによりアップデータされ、旧データブロックは消去する様にセットされる。
【００４９】
図１４を参照すれば、１：１マッピング構造１４００が図示されている。１：１マッピング構造１４００は、ユニットマップテーブル１４１０を備える。ユニットマップテーブル１４１０は、物理ユニット番号部分またはカラム１４３０に対応する論理ユニット番号部分またはカラム１４２０を有する。物理ユニット番号はフラッシュメモリ内の、伝達ユニット１４５０を備える物理ユニット１４４０に対応する。物理ユニット１４４０は、例えばブロックから成る。即ち、夫々のマップテーブルエントリは、一つの物理ユニットに対応する。
【００５０】
図１５を参照すれば、１：２マッピング構造１５００が図示されている。１：２マッピング構造１５００は、ページマップテーブル１５１０およびブロックマップテーブル１５２０を備える。ページマップテーブル１５１０は、物理ページ番号部分またはカラム１５５０に対応する論理ページ番号部分またはカラム１５３０を有する。ブロックマップテーブル１５２０は、物理ブロック番号部分またはカラム１５６０に対応する論理ブロック番号部分またはカラム１５４０を有する。
【００５１】
物理ブロックおよびページ番号は、物理格納装置またはフラッシュメモリ内にある物理ブロック１５７０〜１５７３およびそれらのページに対応する。ここで、ブロックマッピングテーブル１５２０の１０１の様な物理ブロック番号は、物理ブロック１５７０を示す。そしてページマッピングテーブル１５１０の１、０、２、３の様な物理ページ番号は、ブロック１５７０の中にある物理ページを示す。マップテーブルに直接指定されたブロックおよびページはプライマリユニットであり、各プライマリユニットは、アップデータを記録するためにそれと関連する一つの追加ログユニットを有する。この様に、プライマリブロック１５７０、１５７１は、夫々ログブロック１５７２、１５７３と関連付けられる。即ち、夫々のマップテーブルエントリは一つまたは二つの物理ユニットに対応する。
【００５２】
図１６に図示された様に、１：Ｎマッピング構造１６００が図示されている。１：Ｎマッピング構造１６００は、ページマップテーブル１６１０とブロックマップテーブル１６２０とを備える。ページマップテーブル１６１０は、物理ページ番号部分またはカラム１６５０に対応する論理ページ番号部分またはカラム１６３０を有する。ブロックマップテーブル１６２０は、物理ブロック番号部分、カラム１６６０に対応する論理ブロック番号部分またはカラム１６４０を有する。
【００５３】
物理ブロックおよびページ番号は、物理格納装置またはフラッシュメモリ内にある物理ブロック１６７０〜１６７５およびそれらのページに対応する。ここで、ブロックマッピングテーブル１６２０の１０１の様な物理ブロック番号は物理ブロック１６７０を示す。そしてページマッピングテーブル１６１０の１、０、２、３の様な物理ページ番号はブロック１６７０の中にある物理ページを示す。マップテーブルに直接指定されたブロックおよびページはプライマリユニットであり、各プライマリユニットはアップデータを記録するためにそれと関連されるＮまで追加されるログユニットを有する。この様に、プライマリブロック１６７１は、ログブロック１６７３、１６７５、・・・と関連される。即ち、夫々のマップテーブルエントリは１からＮまでの物理ユニットに対応する。１：Ｎマッピング構造１６００は、データブロックと共にログブロックの遅延されたマージを使用する。
【００５４】
図１７を参照すれば、Ｎ：Ｍ＋Ｋマッピング構造１７００が図示されている。Ｎ：Ｍ＋Ｋマッピング構造１７００は、ページマップテーブル１７１０とブロックマップテーブル１７２０とを備える。ページマップテーブル１７１０は、物理ページ番号部分、カラム１７５０に対応する論理ページ番号部分またはカラム１７３０を有する。ブロックマップテーブル１７２０は、物理ブロック番号部分、カラム１７６０に対応する論理ブロック番号部分またはカラム１７４０を有する。
【００５５】
物理ブロックおよびページ番号は、物理格納装置またはフラッシュメモリ内にある物理ブロック１７６９〜１７７５およびそれらのページに対応する。ここで、ブロックマッピングテーブル１７２０の１０１の様な物理ブロック番号は物理ブロック１７７０を示す。そしてページマッピングテーブル１７１０の１、０、２、３の様な物理ページ番号は、ブロック１７７０の中にある物理ページを示す。マップテーブルに直接指定されたブロックおよびページはプライマリユニットであり、各プライマリユニットはアップデータを記録するためにＫまで追加にチェーン化されたり、グループ化されるログユニットを有する。追加にチェーン化されたり、グループ化されるログユニットは、Ｎプライマリユニットまで共有される。また、追加ログユニットのＭまでの区別されるチェーンまたはグループがある。この様に、物理ブロック番号０と１を夫々有するプライマリブロック１７７１、１７７２は、チェーン化されたりグループ化されるログブロック１７８３、１７８５と関連付けられる。
【００５６】
また、物理ブロック番号１０１と１０２を夫々有するプライマリブロック１７６９、１７７０の夫々は、例えば、ログブロック１７８０と関連付けられる。Ｎ：Ｍ＋Ｋマッピング構造１７００は、データブロックとログブロックの遅延されたマージだけでなく、データブロックの中でログブロックの関連を利用する。ここで、Ｎは全ての使用者データブロックの数であり、Ｍは書き込みバッファまたはログブロックの数であり、Ｋは遅延されたマージまたはログブロックグループＬＢＧ内のログブロックの最大数である。データブロックグループＤＢＧは、夫々のログブロックグループＬＢＧと関連付けられている。例えば、夫々のデータブロックグループＤＢＧは、二つのデータブロックを備える。しかしデータブロックグループＤＢＧは、他の実施形態に於いて二つ以上のデータブロックを含むことも可能である。
【００５７】
メモリブロックは消去単位の大きさであり、ページは読み出しおよび書き込み単位の大きさである。本発明は一般のメモリブロックおよびページの大きさを使用し、これによって本発明が制限されるものではない。セクタまたは他の単位の大きさは、先に説明したブロックまたはページユニットの代わりに使用できる。例えば、ハイブリッドマッピングの実施形態に於いて、書き込みバッファまたはログブロックについてページマッピングを使用することが好ましく、データユニットについてブロックマッピングを使用することが好ましい。しかし、他の実施形態は二つまたはそれ以上のマッピングユニットの大きさを交代に使用できる。
一方、本発明の詳細な説明では、詳しい実施形態について説明したが、本発明の範囲から外れない限度内で様々に変形できるであろう。従って、本発明の範囲は上述した実施形態に限られるものではなく、本発明の特許請求範囲又は特許請求範囲に均等のものによって決められるべきである。
【図面の簡単な説明】
【００５８】
【図１】本発明の実施形態によるメモリマッピングシステムを示すブロック図である。
【図２】本発明によるフラッシュメモリガートシステムを示すブロック図である。
【図３】本発明によるハイブリッドマッピングシステムを示すブロック図である。
【図４】本発明によるマージ順序を示すブロック図である。
【図５】本発明によるグループマッピングテーブルを有するハイブリッドマッピングシステムを示すブロック図である。
【図６】本発明によるグループマッピングのフラッシュ変換レイヤを示すブロック図である。
【図７】本発明による論理フラッシュメモリ構造を示すブロック図である。
【図８】本発明によるページマッピング構造を示すブロック図である。
【図９】本発明によるブロックマッピング構造を示すブロック図である。
【図１０】本発明によるハイブリッドマッピング構造を示すブロック図である。
【図１１】本発明によるマージ動作を示すブロック図である。
【図１２】本発明による複写−マージ方法を示すブロック図である。
【図１３】本発明によるスワップ−マージ方法を示すブロック図である。
【図１４】本発明による１：１マッピング構造を示すブロック図である。
【図１５】本発明による１：２マッピング構造を示すブロック図である。
【図１６】本発明による１：Ｎマッピング構造を示すブロック図である。
【図１７】本発明によるＮ：Ｍ＋Ｋマッピング構造を示すブロック図である。
【符号の説明】
【００５９】
１００  メモリマッピングシステム
２００  フラッシュメモリガートシステム
３００  ５００  ハイブリッドマッピングシステム  
４００  マージ
６００  グループマッピングのラッシュ変換レイヤ
７００  論理フラッシュメモリ構造
８００  ページマッピング構造
９００  ブロックマッピング構造
１０００  ハイブリッドマッピング構造
【図１】
2008192154.tif 000003
【図２】
2008192154.tif 000004
【図３】
2008192154.tif 000005
【図４】
2008192154.tif 000006
【図５】
2008192154.tif 000007
【図６】
2008192154.tif 000008
【図７】
2008192154.tif 000009
【図８】
2008192154.tif 000010
【図９】
2008192154.tif 000011
【図１０】
2008192154.tif 000012
【図１１】
2008192154.tif 000013
【図１２】
2008192154.tif 000014
【図１３】
2008192154.tif 000015
【図１４】
2008192154.tif 000016
【図１５】
2008192154.tif 000017
【図１６】
2008192154.tif 000018
【図１７】
2008192154.tif 000019