(57)【要約】【課題】読み出し速度を向上した、不揮発性メモリ装置を含むメモリシステム及びその読み出し及び書き込み方法を提供する。【解決手段】本発明のメモリシステムは不揮発性メモリ装置、前記不揮発性メモリ装置を制御するためのメモリコントローラ、及び前記メモリコントローラに含まれ、反復的に書き込み要請されたパターンを有するデータ（パターンデータ）を管理する仮想データインタフェースレイヤを含み、前記仮想データインタフェースレイヤは、前記パターンデータに対する読み出し要請がある場合に前記読み出し要請されたパターンデータを生成する。【選択図】図３
2011175646.tif 000002
【特許請求の範囲】
【請求項１】
不揮発性メモリ装置と、
前記不揮発性メモリ装置を制御し、仮想データインタフェースレイヤを有するメモリコントローラと、を含み、
前記仮想データインタフェースレイヤは反復的に書き込み要請されたパターンを有するデータ（以下、パターンデータ（ｐａｔｔｅｒｎｅｄ＿ｄａｔａ）という）を管理し、前記パターンデータに対する読み出し要請がある場合に前記読み出し要請されたパターンデータを生成することを特徴とするメモリシステム。
【請求項２】
前記仮想データインタフェースレイヤは前記パターンデータ及び前記パターンデータに対応するアドレスを管理するためのパターンデータテーブルを有することを特徴とする請求項１に記載のメモリシステム。
【請求項３】
前記仮想データインタフェースレイヤは、
読み出し要請されたアドレスが前記パターンデータテーブルに格納されたアドレスであるのか否かを判断するデータ分析モジュールと、
前記パターンデータテーブルを参照し、前記読み出し要請されたアドレスに対応するパターンデータを生成するデータ生成モジュールと、を含むことを特徴とする請求項２に記載のメモリシステム。
【請求項４】
前記データ生成モジュールは前記生成されたパターンデータを前記メモリコントローラのランダムアクセスメモリに格納することを特徴とする請求項３に記載のメモリシステム。
【請求項５】
前記仮想データインタフェースレイヤは、
書き込み要請されたデータがパターンデータであるか否かを判断するデータ分析モジュールと、
前記書き込み要請されたパターンデータ及び前記書き込み要請されたパターンデータに対応するアドレスを含むように前記パターンデータテーブルを更新するデータプールモジュールと、を含むことを特徴とする請求項２に記載のメモリシステム。
【請求項６】
反復的に書き込み要請されたパターンを有するデータ（以下、パターンデータ（ｐａｔｔｅｒｎｅｄ＿ｄａｔａ）という）、及び前記パターンデータに対応するアドレスを管理するためのパターンデータテーブルを含むメモリシステムの動作方法において、
読み出し要請されたアドレスを入力される段階と、
前記読み出し要請されたアドレスが前記パターンデータテーブルに格納されたアドレスと一致するのかを判断する段階と、
前記パターンデータテーブルに基づいて、前記読み出し要請されたアドレスに対応するパターンデータを生成する段階と、を含むことを特徴とするメモリシステムの動作方法。
【請求項７】
前記メモリシステムは不揮発性メモリ装置と、
前記不揮発性メモリ装置を制御するためのメモリコントローラと、を含み、
前記パターンデータテーブルは、前記メモリコントローラのランダムアクセスメモリに格納されることを特徴とする請求項６に記載のメモリシステムの動作方法。
【請求項８】
前記パターンデータテーブルは休止期間に、又は定期的に前記メモリコントローラ内の不揮発性メモリに格納されることを特徴とする請求項７に記載のメモリシステムの動作方法。
【請求項９】
前記読み出し要請されたアドレスと前記パターンデータテーブルに格納されたアドレスが異なる場合、前記不揮発性メモリ装置に対する読み出し動作を行うことを特徴とする請求項７に記載のメモリシステムの動作方法。
【請求項１０】
前記メモリシステムはフラッシュメモリ装置と、
前記ホスト及び前記フラッシュメモリ装置の間にアドレスマッピング動作を管理するためのフラッシュ変換レイヤと、を含むことを特徴とする請求項６に記載のメモリシステムの動作方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はメモリシステムに関し、より詳細には、不揮発性メモリ装置を含むメモリシステム及びそれの動作方法に関する。
【背景技術】
【０００２】
最近デジタルカメラ、ＭＰ３プレイヤ、携帯電話、ＰＤＡなどの携帯用電子機器が多く使われている。このような携帯用電子機器にはデータを格納するために半導体メモリ機器が使われる。半導体メモリ装置にはＤＲＡＭ、ＳＲＡＭなどの揮発性メモリとＥＥＰＲＯＭ、ＦＲＡＭ、ＰＲＡＭ、ＭＲＡＭ、フラッシュメモリなどの不揮発性メモリがある。揮発性メモリは電源が遮断されると格納されたデータを失うが、不揮発性メモリは電源が遮断されても格納されたデータを保持する。
【０００３】
携帯用電子機器には、フラッシュメモリが多く使われている。これはフラッシュメモリが低電力及び高集積の特性を有する不揮発性メモリ装置であるからである。しかし、フラッシュメモリに格納されたデータを読み出すためには、フラッシュメモリセルに物理的電圧を印加しなければならず、フラッシュメモリのセルに電圧を印加するための時間とフラッシュメモリセルに格納されたデータをページバッファへ伝達する時間による遅延が発生する。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】韓国特許公開第２００６−８１４４０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
本発明は、上述した問題点に鑑みてなされたものであって、本発明の目的は読み出し性能を向上した、不揮発性メモリ装置を含むメモリシステム、及びその読み出し及び書き込み方法を提供することにある。
【課題を解決するための手段】
【０００６】
上記目的を達成するためになされた本発明によるメモリシステムは、不揮発性メモリ装置、前記不揮発性メモリ装置を制御するためのメモリコントローラ、及び、前記メモリコントローラに含まれ、ホストから提供されるデータの内、反復的に書き込み要請されたパターンを有するデータ（以下、パターンデータ（ｐａｔｔｅｒｎｅｄ＿ｄａｔａ）という）を管理する仮想データインタフェースレイヤを含み、前記仮想データインタフェースレイヤは前記パターンデータに対する読み出し要請がある場合に、前記読み出し要請されたパターンデータを生成する。
【０００７】
実施形態として、前記仮想データインタフェースレイヤは前記パターンデータ及び前記パターンデータに対応するアドレスを管理するためのパターンデータテーブルを有する。
実施形態として、前記仮想データインタフェースレイヤは、読み出し要請されたアドレスが前記パターンデータテーブルに格納されたアドレスであるのか否かを判断するデータ分析モジュールと、前記パターンデータテーブルを参照し、前記読み出し要請されたアドレスに対応するパターンデータを生成するデータ生成モジュールと、を含む。
実施形態として、前記データ生成モジュールは前記生成されたパターンデータを前記メモリコントローラのランダムアクセスメモリに格納する。
実施形態として、前記仮想データインタフェースレイヤは、書き込み要請されたデータがパターンデータであるか否かを判断するデータ分析モジュールと、前記書き込み要請されたパターンデータ及び前記書き込み要請されたパターンデータに対応するアドレスを含むように前記パターンデータテーブルを更新するデータプールモジュールと、を含む。
【０００８】
実施形態として、前記データ分析モジュールは前記書き込み要請されたデータの内、第１データを格納する第１バッファ及び前記書き込み要請されたデータの内、第２データを格納する第２バッファを含む。
【０００９】
実施形態として、前記データ分析モジュールは前記第１バッファに格納された第１データと前記第２バッファに格納された第２データとを比較し、前記第１データと前記第２データがパターンデータであるか否かを判断する比較モジュールを更に含む。
【００１０】
実施形態として、前記データプールモジュールを前記更新されたパターンデータテーブルを前記メモリコントローラのランダムアクセスメモリに格納する。
【００１１】
実施形態として、前記仮想データインタフェースレイヤは前記読み出し要請されたアドレスが前記パターンデータテーブルに格納されたアドレスではない場合に、前記読み出し要請されたアドレスを前記不揮発性メモリ装置へ伝達する。
【００１２】
実施形態として、前記不揮発性メモリ装置はフラッシュメモリであり、前記フラッシュメモリと前記ホストとの間のアドレスマッピング動作を管理するためのフラッシュ変換レイヤを更に含む。
【００１３】
上記目的を達成するためになされた本発明によるメモリシステムの動作方法は、ホストから提供されるデータの内、反復的に書き込み要請されたパターンを有するデータ（以下、パターンデータ（ｐａｔｔｅｒｎｅｄ＿ｄａｔａ）という）、及び前記パターンデータに対応するアドレスを管理するためのパターンデータテーブルを含むメモリシステムにおいて、
前記メモリシステムの読み出し方法に係り、前記ホストから読み出し要請されたアドレスを入力される段階と、前記読み出し要請されたアドレスが前記パターンデータテーブルに格納されたアドレスと一致するのかを判断する段階と、
前記パターンデータテーブルに基づいて、前記読み出し要請されたアドレスに対応するパターンデータを生成する段階と、を含む。
【００１４】
実施形態として、前記メモリシステムは不揮発性メモリ装置と、前記不揮発性メモリ装置を制御するためのメモリコントローラと、を含み、前記パターンデータテーブルは、前記メモリコントローラのランダムアクセスメモリに格納される。
【００１５】
実施形態として、前記パターンデータテーブルは休止期間に、又は定期的に前記メモリコントローラ内の不揮発性メモリに格納される。
【００１６】
実施形態として、前記読み出し要請されたアドレスと前記パターンデータテーブルに格納されたアドレスが異なる場合、前記読み出し要請されたアドレスは前記不揮発性メモリ装置へ伝達される。
【００１７】
実施形態として、前記メモリシステムはフラッシュメモリ装置と、前記ホスト及び前記フラッシュメモリ装置の間にアドレスマッピング動作を管理するためのフラッシュ変換レイヤと、を含む。
【００１８】
実施形態として、前記読み出し要請されたアドレスが前記パターンデータテーブル及び前記フラッシュ変換レイヤに格納されたアドレスと異なる場合、クリーンデータを生成する段階を更に含む。
【００１９】
上記目的を達成するためになされた本発明によるメモリシステムの動作方法は、ホストから提供されるデータの内、反復的に書き込み要請されたパターンを有するデータ（以下、パターンデータ（ｐａｔｔｅｒｎｅｄ＿ｄａｔａ）という）、及び前記パターンデータに対応するアドレスを管理するためのパターンデータテーブルを含むメモリシステムにおいて、
前記メモリシステムの書き込み方法に係り、前記ホストから書き込み要請されたデータを入力される段階と、前記書き込み要請されたデータがパターンデータであるか否かを判断する段階と、前記書き込み要請されたパターンデータ及び前記書き込み要請されたパターンデータに対応するアドレスを含むように前記パターンデータテーブルを更新する段階と、を含む。
【００２０】
実施形態として、前記判断する段階は前記書き込み要請されたデータの内、第１及び第２データを各々第１バッファ及び第２バッファに格納し、前記第１バッファに格納された第１データと前記第２バッファに格納された第２データとを比較する。
【００２１】
実施形態として、前記メモリシステムは不揮発性メモリ装置及び前記不揮発性メモリ装置を制御するためのメモリコントローラを含み、前記書き込み要請されたデータがパターンデータではない場合、前記書き込み要請されたデータを前記不揮発性メモリ装置に格納する。
【００２２】
実施形態として、前記パターンデータテーブルは前記メモリコントローラのランダムアクセスメモリに格納される。
【発明の効果】
【００２３】
本発明の技術的思想の実施形態によるメモリシステムは、パターンデータ（ｐａｔｔｅｒｎｅｄ＿ｄａｔａ）を管理する仮想データインタフェースレイヤを含む。パターンデータに対する読み出し動作が行われる場合、仮想データインタフェースレイヤはパターンデータテーブルを参照してパターンデータを生成し、これを出力する。従って、パターンデータに対する読み出し動作が行われる場合、フラッシュメモリ装置に対する読み出し動作が行われないので、本発明の技術的思想によるメモリシステムは読み出し速度を向上できる。
【００２４】
また、パターンデータに対する書き込み動作が行われる場合、仮想データインタフェースレイヤは書き込み要請されたパターンデータ及び書き込み要請されたパターンデータに対応するアドレスを含むようにパターンデータテーブルを更新する。従って、パターンデータに対する書き込み動作が行われる場合、フラッシュメモリ装置に対する書き込み動作が行われないので、本発明の技術的思想によるメモリシステムは書き込み速度を向上できる。
【図面の簡単な説明】
【００２５】
【図１】本発明の技術的思想の実施形態による不揮発性メモリ装置を使用するメモリシステムのハードウェア構造を示すブロック図である。
【図２】図１に示したメモリシステムのソフトウェア構造を示すブロック図である。
【図３】図２に示したメモリシステムの動作を説明するためのブロック図である。
【図４】Ａ、Ｂは、図３のデータ分析モジュールを更に詳しく説明するためのブロック図であり、Ｃは、図３のデータ生成モジュールを更に詳しく説明するためのブロック図である。
【図５】本発明の技術的思想の実施形態による書き込み要請されたデータ及びこれに対応する論理アドレスを示す図面である。
【図６】図５の書き込み要請されたデータに対するデータ分析モジュール及びデータプールモジュールの動作を示すブロック図である。
【図７】図５の書き込み要請されたデータにデータ分析モジュール及びデータプールモジュールの動作を示すブロック図である。
【図８】図５の書き込み要請されたデータに対するパターンデータテーブルを示すブロック図である。
【図９】図５乃至図８に説明した書き込み動作が行われる場合に仮想データインタフェースレイヤの動作を説明するための順序図である。
【図１０】本発明の技術的思想の実施形態による読み出し動作が行われる場合の仮想データインタフェースレイヤの動作を説明するためのブロック図である。
【図１１】図１０に説明した読み出し動作が行われる場合に仮想データインタフェースレイヤの動作を説明するための順序図である。
【図１２】本発明の技術的思想の他の実施形態による読み出し動作が行われる場合の仮想データインタフェースレイヤの動作を説明するためのブロック図である。
【図１３】図１２に説明した読み出し動作が行われる場合に仮想データインタフェースレイヤの動作を説明するための順序図である。
【図１４】本発明の技術的思想の他の実施形態による図１に示したメモリシステムのソフトウェア構造を示すブロック図である。
【図１５】図１４に示したメモリシステムの動作を説明するためのブロック図である。
【図１６】本発明の技術的思想の他の実施形態による不揮発性メモリ装置を使用するメモリシステムのハードウェア構造を示すブロック図である。
【図１７】本発明の実施形態によるソリッドステートドライブを示すブロック図である。
【図１８】本発明の実施形態による電子装置を示すブロック図である。
【発明を実施するための形態】
【００２６】
以下、本発明が属する技術分野で通常の知識を有する者が本発明の技術的思想を容易に実施できる程度に詳細に説明するため、本発明の望ましい実施形態を添付の図面を参照して説明する。
【００２７】
図１は本発明の技術的思想の実施形態による不揮発性メモリ装置を使用するメモリシステムのハードウェア構造を示すブロック図である。図１には不揮発性メモリ装置の一例として、フラッシュメモリ１２０を示している。図１を参照すれば、メモリシステム１００はメモリコントローラ１１０及びフラッシュメモリ１２０とを含む。
【００２８】
メモリコントローラ１１０は中央処理装置（ＣＰＵ）１１１、ランダムアクセスメモリ（ＲＡＭ）１１２、ホストインタフェース１１３、不揮発性メモリ装置（ＮＶＭ）１１４、及びフラッシュインタフェース１１５を含む。
【００２９】
中央処理装置１１１はホスト（Ｈｏｓｔ）から入力された信号を分析して処理する。中央処理装置１１１はホストインタフェース１１３を通してホストを制御する。中央処理装置１１１はフラッシュインタフェース１１５を通してフラッシュメモリ１２０を制御する。中央処理装置はメモリコントローラ１１０及びフラッシュメモリ１２０とを駆動するためのファームウエアに従ってメモリコントローラ１１０及びフラッシュメモリ１２０の動作とを制御する。
【００３０】
ランダムアクセスメモリ１１２はホストから提供される書き込みデータを臨時に格納する。ランダムアクセスメモリ１１２はフラッシュメモリ１２０から提供される読み出しデータを臨時に格納する。ランダムアクセスメモリ１１２はフラッシュメモリ１２０に格納されるメタデータやキャッシュデータを格納できる。ランダムアクセスメモリ１１２はＤＲＡＭ、ＳＲＡＭなどからなる。
【００３１】
本発明の技術的思想による実施形態において、ランダムアクセスメモリ１１２は仮想データインタフェースレイヤ（ＶＤＩＬ、Ｖｉｒｔｕａｌ  Ｄａｔａ  Ｉｎｔｅｒｆａｃｅ  Ｌａｙｅｒ）を格納する。即ち、仮想データインタフェースレイヤＶＤＩＬはランダムアクセスメモリ１１２上で提供される。ここで、仮想データインタフェースレイヤ  ＶＤＩＬはホストから提供されたデータの内、特定データを管理するためのモジュールを意味する。例えば、仮想データインタフェースレイヤＶＤＩＬはパターンデータ（ｐａｔｔｅｒｎｅｄ＿ｄａｔａ）、即ち、反復されるパターンを有するデータ、を管理するためのモジュールである。
【００３２】
例えば、ホストから書き込み要請がある場合、仮想データインタフェースレイヤＶＤＩＬはホストから提供されたデータがパターンデータであるか否かを判断し、パターンデータである場合は、パターンデータ及びこれに対応するアドレスをランダムアクセスメモリ１１２に格納する。ここで、パターンデータ及びこれに対応するアドレスの集合を、パターンデータテーブルと称する。即ち、仮想データインタフェースレイヤＶＤＩＬはパターンデータテーブルをランダムアクセスメモリ１１２上で管理する。
【００３３】
更に、ホストから読み出し要請がある場合、仮想データインタフェースレイヤＶＤＩＬはホストから提供されたアドレスがパターンデータテーブルに格納されたアドレスと一致するか否かを判断する。ホストから提供されたアドレスがパターンデータテーブルに格納されたアドレスと一致する場合、仮想データインタフェースレイヤＶＤＩＬは該当アドレスに対応するパターンデータを生成する。生成されたパターンデータはランダムアクセスメモリ１１２に格納される。
【００３４】
ホストインタフェース１１３はホストのプロトコルに対応してメモリコントローラ１１０とのインターフェーシングを提供する。ホストインタフェース１１３はＵＳＢ（Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ）、ＳＣＳＩ（Ｓｍａｌｌ  Ｃｏｍｐｕｔｅｒ  Ｓｙｓｔｅｍ  Ｉｎｔｅｒｆａｃｅ）、ＰＣＩ  ｅｘｐｒｅｓｓ、ＡＴＡ、ＰＡＴＡ（Ｐａｒａｌｌｅｌ  ＡＴＡ）、ＳＡＴＡ（Ｓｅｒｉａｌ  ＡＴＡ）、ＳＡＳ（Ｓｅｒｉａｌ  Ａｔｔａｃｈｅｄ    ＳＣＳＩ）などのいずれかを利用してホストと通信する。
【００３５】
不揮発性メモリ装置１１４はＰＲＡＭ、ＲＲＡＭ、ＦＲＡＭ、フラッシュメモリなどのいずれかからなる。本発明の技術的思想による実施形態において、不揮発性メモリ装置１１４はホストから提供されるデータの中で、パターンデータ及びこれに対応するアドレスを格納する。即ち、不揮発性メモリ１１４はパターンデータテーブルを格納する。
【００３６】
ホストから書き込み要請がある場合、上記のように、仮想データインタフェースレイヤＶＤＩＬはパターンデータテーブルをランダムアクセスメモリ１１２に格納したが、ランダムアクセスメモリ１１２に格納されたパターンデータは休止期間（ｉｄｌｅ  ｔｉｍｅ）に不揮発性メモリ装置１１４に格納される。もしくは、ランダムアクセスメモリ１１２に格納されたパターンデータは定期的に不揮発性メモリ１１４に格納される。
【００３７】
一方、ホストから読み出し要請がある場合、不揮発性メモリ装置１１４に格納されたパターンデータテーブルはランダムアクセスメモリ１１２へ伝達される。もしくは、メモリシステム１００に電源が供給された場合も、不揮発性メモリ装置１１４に格納されたパターンデータテーブルはランダムアクセスメモリ１１２に伝達される。
【００３８】
フラッシュインタフェース１１５はランダムアクセスメモリ１１２から伝達されたデータをフラッシュメモリ１２０へ伝達する。フラッシュインタフェース１１５はフラッシュメモリ１２０から読み出したデータをランダムアクセスメモリ１１２へ伝達する。ここで、フラッシュインタフェース１１５は例えば、ＮＡＮＤ型フラッシュメモリのインタフェース方式を使用する。即ち、メモリコントローラ１１０はＮＡＮＤ型フラッシュメモリンターフェース方式に従ってプログラム、読み出し、又は消去動作などを行う。
【００３９】
フラッシュメモリ１２０は複数のメモリセルを含む。例えば、フラッシュメモリ１２０はストリング構造（ｓｔｒｉｎｇ  ｓｔｒｕｃｔｕｒｅ）を有する複数のメモリセルから構成される。このメモリセルの集合は通常、メモリセルアレイ（ｍｅｍｏｒｙ  ｃｅｌｌ  ａｒｒａｙ）と称せられる。フラッシュメモリ１２０のメモリセルアレイは複数のメモリブロック（ｍｅｍｏｒｙ  ｂｌｏｃｋ）から構成され、それぞれのメモリブロックは複数のページ（ｐａｇｅ）から構成され、それぞれのページは１つのワードラインを共有する複数のメモリセルから構成され、それぞれのメモリセルは１ビットのデータ又は２ビット以上のデータを格納する。
【００４０】
図２は図１に示したメモリシステム１００のソフトウェア構造を示すブロック図である。図２を参照すれば、メモリシステム１００はアプリケーション２０５、ファイルシステム２１０、仮想データインタフェースレイヤ２２０、フラッシュ変換レイヤ（ＦＴＬ）２３０、そしてフラッシュメモリ２４０の順からなるソフトウェア階層構造を有する。
【００４１】
仮想データインタフェースレイヤ２２０にはファイルシステム２１０から論理アドレス（ＬＡ：Ｌｏｇｉｃａｌ  Ａｄｄｒｅｓｓ）が伝達される。仮想データインタフェースレイヤ２２０にはアプリケーション２０５、又はファイルシステム２１０からデータが伝達される。
【００４２】
ここで、書き込み動作が要請された場合、仮想データインタフェースレイヤ２２０は伝達されたデータがパターンデータであるか否かを判断する。伝達されたデータがパターンデータである場合、仮想データインタフェースレイヤ２２０は、伝達されたパターンデータ及び論理アドレスＬＡを含むようにパターンデータテーブルを生成及び／又は更新する。一方、伝達されたデータがパターンデータでない場合、仮想データインタフェースレイヤ２２０は伝達されたデータに対応する論理アドレスＬＡをフラッシュ変換レイヤ２３０へ伝達する。
【００４３】
一方、読み出し動作が要請された場合、仮想データインタフェースレイヤ２２０は伝達された論理アドレスＬＡがパターンデータテーブルの論理アドレスと一致するか否かを判断する。伝達された論理アドレスＬＡがパターンデータテーブルの論理アドレスと一致する場合、仮想データインタフェースレイヤ２２０はパターンデータテーブルを参照してパターンデータを生成する。生成されたパターンデータはランダムアクセスメモリ１１２（図１参照）に格納される。一方、伝達された論理アドレスＬＡがパターンデータの論理アドレスと一致しない場合、仮想データインタフェースレイヤ２２０は伝達された論理アドレスＬＡをフラッシュ変換レイヤ２３０へ伝達する。
【００４４】
フラッシュ変換レイヤ２３０には仮想データインタフェースレイヤ２２０から論理アドレスＬＡが伝達される。即ち、フラッシュ変換レイヤ２３０にはパターンデータでないデータの論理アドレスＬＡが、仮想データインタフェースレイヤ２２０から伝達される。フラッシュ変換レイヤ２３０は伝達された論理アドレスＬＡを物理アドレス（ＰＡ：Ｐｈｙｓｉｃａｌ  Ａｄｄｒｅｓｓ）に変換してフラッシュメモリ２４０に提供する。フラッシュ変換レイヤ２３０はこのアドレス変換のためのアドレスマッピングテーブル（Ａｄｄｒｅｓｓ  Ｍａｐｐｉｎｇ  Ｔａｂｌｅ）を有する。
【００４５】
図３は図２に示したメモリシステムの動作を説明するためのブロック図である。図３を参照すれば、メモリシステム３００はファイルシステム２１０、仮想データインタフェースレイヤ２２０、フラッシュ変換レイヤ２３０、そしてフラッシュメモリ２４０を含む。
【００４６】
仮想データインタフェースレイヤ２２０はランダムアクセスメモリ１１２（図１参照）を用いて提供される。仮想データインタフェースレイヤ２２０はデータ分析モジュール２２１、データプールモジュール２２２、そしてデータ生成モジュール２２３とを含む。
【００４７】
データ分析モジュール２２１にはファイルシステム２１０から論理アドレスＬＡが伝達される。また、データ分析モジュール２２１にはファイルシステム２１０又はアプリケーション２０５（図２参照）からデータが伝達される。
データ分析モジュール２２１は、伝達されたデータがパターンデータであるか否かを判断し、及び／又は、論理アドレスＬＡがパターンデータに対応する論理アドレスであるか否かを判断する。
【００４８】
詳細に説明すれば、書き込み動作の要請がある場合、データ分析モジュール２２１にはファイルシステム２１０から書き込み要請された論理アドレスＬＡが伝達される。また、データ分析モジュール２２１にはファイルシステム２１０、又はアプリケーション２０５から書き込み要請されたデータが伝達される。データ分析モジュール２２１は伝達されたデータがパターンデータであるか否かを判断する。
【００４９】
伝達されたデータがパターンデータである場合、データ分析モジュール２２１はパターンデータ及びこれに対応する論理アドレス情報をデータプールモジュール２２２へ伝達する。この場合、データプールモジュール２２２は伝達されたパターンデータ及びこれに対応する論理アドレスをランダムアクセスメモリ１１２に格納する。即ち、データプールモジュール２２２は伝達されたパターンデータ及びこれに対応する論理アドレスを含むようにパターンデータテーブルを生成及び／又は更新する。
【００５０】
伝達されたデータがパターンデータでない場合に、データ分析モジュール２２１は伝達されたデータ及び対応する論理アドレスをフラッシュメモリ２４０、又はフラッシュ変換レイヤ２３０へ伝達する。この場合、パターンデータでないデータ（以下、ノン−パターンデータ（ｎｏｎ−ｐａｔｔｅｒｎ  ｄａｔａ）という）はフラッシュメモリ２４０に格納される。また、ノン−パターンデータに対応する論理アドレスＬＡ及び物理アドレスＰＡはフラッシュ変換レイヤ２３０によって管理される。
【００５１】
一方、読み出し動作の要請がある場合、データ分析モジュール２２１にはファイルシステム２１０から読み出し要請された論理アドレスＬＡが伝達される。データ分析モジュール２２１は伝達された論理アドレスＬＡがパターンデータテーブルに格納された論理アドレスと一致するか否かを判断する。
【００５２】
伝達された論理アドレスがパターンデータテーブルに格納された論理アドレスと一致する場合、データ分析モジュール２２１は伝達された論理アドレスをデータ生成モジュール２２３へ伝達する。データ生成モジュール２２３はパターンデータテーブルを参照して伝達された論理アドレスに対応するパターンデータを生成する。生成されたパターンデータはランダムアクセスメモリ１１２の別の箇所に格納される。
【００５３】
伝達された論理アドレスがパターンデータテーブルに格納された論理アドレスと一致しない場合、データ分析モジュール２２１は伝達された論理アドレスをフラッシュ変換レイヤ２３０へ伝達する。フラッシュ変換レイヤ２３０は伝達された論理アドレスＬＡを物理アドレスＰＡに変換し、その物理アドレスＰＡをフラッシュメモリ２４０へ伝達する。即ち、フラッシュメモリ２４０に格納されたデータに対する読み出し動作が行われる。
このデータ分析モジュール２２１については、以下に図４Ａを参照して更に詳しく説明する。
【００５４】
続いて、図３を参照すれば、データプールモジュール２２２は書き込み動作が行われる場合にデータ分析モジュール２２１からパターンデータ及びこれに対応する論理アドレスが伝達される。データプールモジュール２２２は伝達されたパターンデータ及びこれに対応する論理アドレスとを含むパターンデータテーブルをランダムアクセスメモリ１１２に格納する。
【００５５】
詳細に説明すれば、パターンデータに対する書き込み動作が要請された場合、データプールモジュール２２２にはデータ分析モジュール２２１で判断されたパターンデータ及びこれに対する論理アドレスが伝達される。データプールモジュール２２２は伝達されたパターンデータ及びこれに対応する論理アドレスを含むパターンデータテーブルをランダムアクセスメモリ１１２に格納する。その際、データプールモジュール２２２は、パターンデータテーブルが伝達されたパターンデータ及びこれに対応する論理アドレスを含むように、ランダムアクセスメモリ１１２に格納されたパターンデータテーブルを生成及び／又は更新する。
【００５６】
一方、ランダムアクセスメモリ１１２に格納されたパターンデータテーブルは不揮発性メモリ装置１１４に格納される。例えば、ランダムアクセスメモリ１１２に格納されたパターンデータテーブルは休止期間（ｉｄｌｅ  ｔｉｍｅ）に不揮発性メモリ装置１１４に格納される。もしくは、ランダムアクセスメモリ１１２に格納されたパターンデータテーブルは定期的に不揮発性メモリ装置１１４に格納される。
このデータプールモジュール２２２については、以下に図４Ｂを参照して更に詳しく説明する。
【００５７】
データ生成モジュール２２３には、読み出し動作が行われる場合にデータ分析モジュール２２１からパターンデータに対応する論理アドレスが伝達される。データ生成モジュール２２３はパターンデータテーブルを参照し、伝達された論理アドレスに対応するパターンデータを生成する。
【００５８】
詳細に説明すれば、パターンデータに対する読み出し動作が要請された場合、データ生成モジュール２２３にはデータ分析モジュール２２１からパターンデータの論理アドレスが伝達される。データ生成モジュール２２３はパターンデータテーブルを参照し、伝達された論理アドレスＬＡに対応するパターンデータを生成する。また、データ生成モジュール２２３は生成されたパターンデータをランダムアクセスメモリ１１２に格納する。
【００５９】
一方、読み出し要請された論理アドレスがパターンデータテーブル、又はフラッシュ変換レイヤ２３０に格納されていない論理アドレスである場合、データ生成モジュール２２３はクリーンデータ（ｃｌｅａｎ  ｄａｔａ、例、全部‘０’）を生成し、これをランダムアクセスメモリ１１２に格納する。即ち、読み出し要請された論理アドレスが、書き込み動作が行なわれたことのない領域の論理アドレスである場合、データ生成モジュール２２３はクリーンデータ（ｃｌｅａｎ  ｄａｔａ）を生成し、これをランダムアクセスメモリ１１２に格納する。
このデータ生成モジュール２２３については、以下に図４Ｃを参照して更に詳しく説明する。
【００６０】
図４Ａは図３のデータ分析モジュール２２１を更に詳しく説明するためのブロック図である。図４Ａを参照すれば、データ分析モジュール２２１は第１バッファ２２１ａ、第２バッファ２２１ｂ、比較モジュール２２１ｃ、及びパターン判断モジュール２２１ｄを含む。
【００６１】
第１バッファ２２１ａ、第２バッファ２２１ｂ、及び比較モジュール２２１ｃは、書き込み要請されたデータがパターンデータであるか否かを判断する。第１バッファ２２１ａは書き込み要請されたデータのうちの第１サブデータを臨時に格納する。第２バッファ２２１ｂは書き込み要請されたデータのうちの第２サブデータを臨時に格納する。比較モジュール２２１ｃは第１バッファ２２１ａに格納された第１サブデータと第２バッファ２２１ｂに格納された第２サブデータの一致可否を判断する。
【００６２】
第１サブデータと第２サブデータが一致する場合、第１サブデータ及び第２サブデータは同一のパターンを有するパターンデータであると判断される。この場合、比較モジュール２２１ｃはパターンデータ及びこれに対応する論理アドレス情報をデータプールモジュール２２２へ伝達する。即ち、比較モジュール２２１ｃはパターンデータ、そして第１及び第２サブデータの論理アドレス情報をデータプールモジュール２２２へ伝達する。第１バッファ２２１ａ、第２バッファ２２１ｂ、及び比較モジュール２２１ｃの動作は以下に図５ないし図７を参照して更に詳しく説明する。
【００６３】
パターン判断モジュール２２１ｄは読み出し要請された論理アドレスがパターンデータテーブルに格納された論理アドレスと一致するか否かを判断する。
【００６４】
データ分析モジュール２２１に提供された論理アドレスとパターンデータテーブルに格納された論理アドレスが一致する場合、パターン判断モジュール２２１ｄは読み出し要請された論理アドレスをデータ生成モジュール２２３へ伝達する。この場合、データ生成モジュール２２３はパターンデータを生成し、これをランダムアクセスメモリ１１２（図１参照）に格納する。
この動作は以下に図１０及び図１１を参照して更に詳しく説明する。
【００６５】
一方、データ分析モジュール２２１に提供された論理アドレスとパターンデータテーブルに格納された論理アドレスが一致しない場合、パターン判断モジュール２２１ｄは読み出し要請された論理アドレスをフラッシュ変換レイヤ２３０へ伝達する。この場合、フラッシュ変換レイヤ２３０は読み出し要請された論理アドレスを物理アドレスに変換し、これをフラッシュメモリ２４０へ伝達する。従って、この場合、フラッシュメモリ２４０に格納されたデータに対する読み出し動作が行われる。
【００６６】
さらに、パターン判断モジュール２２１ｄは読み出し要請された論理アドレスが、書き込み動作が行なわれたことのない領域に対応する論理アドレスであるか否かを判断できる。即ち、パターン判断モジュール２２１ｄは読み出し要請された論理アドレスがパターンデータテーブル及びフラッシュ変換レイヤ２３０に格納された論理アドレスであるか否かを判断できる。
【００６７】
例えば、読み出し要請された論理アドレスがパターンデータテーブル及びフラッシュ変換レイヤ２３０に格納された論理アドレスと一致しない場合、パターン判断モジュール２２１ｄはアドレス不一致信号ＡＮＳをデータ生成モジュール２２３へ伝達する。この場合、データ生成モジュール２２３はクリーンデータ（ｃｌｅａｎ  ｄａｔａ）を生成し、これをランダムアクセスメモリ１１２に格納する。
これについては、以下に図１２及び図１３を参照して更に詳しく説明する。
【００６８】
図４Ｂは図３のデータプールモジュール２２２を更に詳しく説明するためのブロック図である。図４Ｂを参照すれば、データプールモジュール２２２及びデータプールモジュール２２２によって構成されたパターンデータテーブルが図示されている。即ち、パターンデータテーブルは開始論理アドレス（ＳＬＡ：Ｓｔａｒｔ  Ｌｏｇｉｃａｌ  Ａｄｄｒｅｓｓ）、終了論理アドレス（ＥＬＡ：Ｅｎｄ  Ｌｏｇｉｃａｌ  Ａｄｄｒｅｓｓ）、及びパターンデータ（ｐａｔｔｅｒｎｅｄ  ｄａｔａ）を含む。
【００６９】
データプールモジュール２２２はパターンデータ及びこれに対応する論理アドレスをデータ分析モジュール２２１から伝達され、これを含むパターンデータテーブルをランダムアクセスメモリ１１２に格納する。また、データプールモジュール２２２はデータ分析モジュール２２１から伝達されたパターンデータ及びこれに対応する論理アドレスを含むように、ランダムアクセスメモリ１１２に格納されたパターンデータテーブルを更新する。一方、ランダムアクセスメモリ１１２に格納されたパターンデータテーブルは不揮発性メモリ１１４へ伝達される。
【００７０】
例えば、書き込み要請されたデータの第１サブデータと第２サブデータがパターンデータに判断された場合、データプールモジュール２２２はパターンデータ及び第１及び第２サブデータの論理アドレスとを含むようにパターンデータテーブルを更新できる。これは以下の図５ないし図８で更に詳しく説明される。
【００７１】
図４Ｃは図３のデータ生成モジュール２２３を更に詳しく説明するためのブロック図である。図４Ｃを参照すれば、データ生成モジュール２２３はパターンデータ生成モジュール２２３ａ及びクリーンデータ生成モジュール２２３ｂを含む。
【００７２】
パターンデータ生成モジュール２２３ａにはデータ分析モジュール２２１から読み出し要請された論理アドレスが伝達される。即ち、パターンデータ生成モジュール２２３ａは、パターンデータテーブルに格納された論理アドレスに対応する読み出し要請された論理アドレスを、データ分析モジュール２２１のパターン判断モジュール２２１ｄから伝達される。
【００７３】
この場合、パターンデータ生成モジュール２２３ａはパターンデータテーブルを参照し、伝達された論理アドレスに対応するパターンデータを生成し、生成したパターンデータをランダムアクセスメモリ１１２（図１参照）に格納する。
パターンデータ生成モジュール２２３ａの動作は、以下に図１０及び図１１を参照して更に詳しく説明する。
【００７４】
一方、読み出し要請された論理アドレスがパターンデータテーブル及びフラッシュ変換レイヤ２３０に格納された論理アドレスと一致しない場合、クリーンデータ生成モジュール２２３ｂにはデータ分析モジュール２２１のパターン判断モジュール２２１ｄからアドレス不一致信号ＡＮＳが伝達される。
【００７５】
この場合、クリーンデータ生成モジュール２２３ｂはクリーンデータを生成し、これをランダムアクセスメモリ１１２に格納する。
クリーンデータ生成モジュール２２３ｂの動作は、以下に図１２及び図１３を参照して更に詳しく説明する。
【００７６】
図５ないし図８は本発明の技術的思想の実施形態による書き込み動作が行われる場合の仮想データインタフェースレイヤの動作を説明するためのブロック図である。具体的に、図５は本発明の技術的思想の実施形態による書き込み要請されたデータ及びこれに対応する論理アドレスを例示する図面である。図６及び図７は、図５に例示した書き込み要請されたデータに対するデータ分析モジュール及びデータプールモジュールの動作を示すブロック図である。図８は図５に例示した書き込み要請されたデータに対して更新されたパターンデータテーブルを示すブロック図である。
【００７７】
図５を参照すれば、書き込み要請されたデータが例示されている。即ち、書き込み動作が要請される場合、仮想データインタフェースレイヤ２２０（図２参照）にはアプリケーション２０５（図２参照）、又はファイルシステム２１０（図２参照）から入力データが提供される。
【００７８】
簡略な説明のために、入力データは複数の、独立したサブデータに区分されると仮定する。例えば、図５では入力データは第１ないし第７サブデータに区分される。また、第１ないし第７サブデータには各々論理アドレスＬＡが割当てられる。例えば、図５を参照すれば、第１ないし第７サブデータには論理アドレス‘１０１’ないし‘１０７’が各々順次的に割り当てられる。
【００７９】
書き込み動作が行われる場合、入力データの各サブデータはデータ分析モジュール２２１の第１バッファ２２１ａ及び第２バッファ２２１ｂを順次的に通過する。データ分析モジュール２２１の比較モジュール２２１ｃは、第１バッファ２２１ａに臨時に格納されたサブデータと第２バッファ２２１ｂに臨時に格納されたサブデータとを比較し、第１バッファ２２１ａ及び第２バッファ２２１ｂに格納されたサブデータがパターンデータであるか否かを判断する。
【００８０】
例えば、図６を参照すれば、第１バッファ２２１ａに第１サブデータが臨時に格納され、第２バッファ２２１ｂに第２サブデータが臨時に格納されている場合、第１バッファ２２１ａに格納された第１サブデータと第２バッファ２２１ｂに格納された第２サブデータとは‘１０１１００１０’の同一のデータを有する。従って、比較モジュール２２１ｃは第１サブデータ及び第２サブデータをパターンデータであると判断する。即ち、第１サブデータと第２サブデータは同一のパターンデータ‘１０１１００１０’を有する。
【００８１】
第１バッファ２２１ａに格納されたサブデータと第２バッファ２２１ｂに格納されたサブデータがパターンデータである場合、比較モジュール２２１ｃはパターンデータ、そして第１バッファ２２１ａ及び第２バッファ２２１ｂに格納されたサブデータの論理アドレスをデータプールモジュール２２２へ伝達する。データプールモジュール２２２は伝達されたパターンデータ及び論理アドレスをランダムアクセスメモリ１１２に格納する。即ち、データプールモジュール２２２は伝達されたパターンデータ及び論理アドレスを含むパターンデータテーブルをランダムアクセスメモリ１１２に格納する。
【００８２】
例えば、図６を参照すれば、データプールモジュール２２２はパターンデータ‘１０１１００１０’をランダムアクセスメモリ１１２に格納する。また、データプールモジュール２２２はパターンデータ‘１０１１００１０’に対応する第１サブデータの論理アドレス及び第２サブデータの論理アドレスをランダムアクセスメモリ１１２に格納する。
【００８３】
一方、図５を参照すれば、入力データの第１ないし第６サブデータには各々論理アドレス‘１０１’ないし‘１０７’が順次的に割り当てられる。従って、パターンデータに対応する論理アドレスの集合は開始論理アドレスＳＬＡ及び終了論理アドレスＥＬＡで表現され得る。例えば、第１サブデータの論理アドレス‘１０１’は開始論理アドレスＳＬＡに格納され、第２サブデータの論理アドレス‘１０２’は終了論理アドレスＥＬＡに格納される。
【００８４】
次に、第１サブデータ及び第２サブデータがパターンデータであるか否かが判断された後には、第２サブデータ及び第３サブデータがパターンデータであるか否かが順次的に判断される。
【００８５】
例えば、図７を参照すれば、第１サブデータ及び第２サブデータがパターンデータであるか否かが判断された後、第１バッファ２２１ａには第２サブデータが臨時に格納され、第２バッファ２２１ｂには第３サブデータが臨時に格納される。比較モジュール２２１ｃは第１バッファ２２１ａに格納された第２サブデータ及び第２バッファ２２１ｂに格納された第３サブデータの一致可否を判断する。
【００８６】
この場合、第２サブデータと第３サブデータは各々‘１０１１００１０’のデータと‘００００１１０１’のデータを有する。即ち、第２サブデータと第３サブデータとは相異なるデータを有するので、ノン＿パターンデータと判断されパターンデータテーブルは更新されない。この場合、比較モジュール２２１ｃは第３サブデータと、これに対応する論理アドレスをフラッシュメモリ２４０（図２参照）、又はフラッシュ変換レイヤ２３０（図２参照）へ伝達する。
【００８７】
結果的に、引続き図７を参照すれば、パターンデータテーブルにはパターンデータ‘１０１１００１０’、そしてこれに対応する開始論理アドレス‘１０１’及び終了論理アドレス‘１０２’が格納される。
【００８８】
一方、第２サブデータ及び第３サブデータがパターンデータであるか否かが判断された後、第３サブデータないし第７サブデータがパターンデータであるか否かが順次的に判断される。この過程は図６及び図７の動作と類似するので、詳細な説明は省略する。
【００８９】
図８を参照すれば、図５に例示した入力データに対するパターンデータテーブルが示される。例えば、図５及び図８を参照すれば、第１サブデータ及び第２サブデータはパターンデータ‘１０１１００１０’を有する。従って、パターンデータテーブルにはパターンデータ‘１０１１００１０’が格納される。また、パターンデータテーブルにはパターンデータ‘１０１１００１０’に対応する開始論理アドレス‘１０１’及び終了論理アドレス‘１０２’が格納される。ここで、開始論理アドレス‘１０１’は第１サブデータの論理アドレス‘１０１’に対応し、終了論理アドレス‘１０２’は第２サブデータの論理アドレス‘１０２’に対応する。
【００９０】
引続き図５及び図８を参照すれば、第４ないし第６サブデータはパターンデータ‘１１１１００１１’を有する。従って、パターンデータテーブルにはパターンデータ‘１１１１００１１’が格納される。また、パターンデータテーブルにはパターンデータ‘１１１１００１１’に対応する開始論理アドレス‘１０４’及び終了論理アドレス‘１０６’が格納される。ここで、開始論理アドレス‘１０４’は第４サブデータの論理アドレス‘１０４’に対応する。終了論理アドレス‘１０６’は第６サブデータの論理アドレス‘１０６’に対応する。
【００９１】
詳細に説明すれば、図５及び図８を参照すれば、最初に、第４サブデータ及び第５サブデータはパターンデータ‘１１１１００１１’を有する。従って、パターンデータテーブルにはパターンデータ‘１１１１００１１’が格納される。この場合、パターンデータテーブルにはパターンデータ‘１１１１００１１’に対応する開始論理アドレス‘１０４’及び終了論理アドレス‘１０５’が格納される。
【００９２】
次に、第５サブデータ及び第６サブデータはパターンデータ‘１１１１００１１’を有する。即ち、第４ないし第６サブデータはパターンデータ‘１１１１００１１’を有する。従って、この場合、パターンデータテーブルの終了論理アドレスは第６サブデータの論理アドレス‘１０６’に更新される。
【００９３】
図９は図５ないし図８で説明した書き込み動作が行われる場合に仮想データインタフェースレイヤの動作を説明するための順序図である。
【００９４】
Ｓ１１０段階で、入力データが仮想データインタフェースレイヤ２２０に提供され得る。例えば、入力データはデータ分析モジュール２２１に提供される。
【００９５】
Ｓ１２０段階で、入力データがデータ分析モジュール２２１の第１バッファ２２１ａ及び第２バッファ２２１ｂを通過する。図５を参照すれば、入力データは第１ないし第７サブデータに区分される。第１ないし第７サブデータは第１バッファ２２１ａ及び第２バッファ２２１ｂを順次的に通過する。
【００９６】
Ｓ１３０段階で、第１バッファ２２１ａに格納されたサブデータと第２バッファ２２１ｂに格納されたサブデータが一致するか否かが判断される。即ち、第１バッファ２２１ａに格納されたサブデータと第２バッファ２２１ｂに格納されたサブデータがパターンデータであるか否かが判断される。
【００９７】
第１バッファ２２１ａに格納されたサブデータと第２バッファ２２１ｂに格納されたサブデータが一致する場合、該サブデータはパターンデータであるというパターンデータ情報はパターンデータテーブルを更新する（Ｓ１４０段階）。
【００９８】
例えば、図６を参照すれば、第１バッファ２２１ａに格納された第１サブデータと第２バッファ２２１ｂに格納された第２サブデータが一致する。この場合、パターンデータ‘１０１１００１０’及びこれに対応する第１サブデータと第２サブデータの論理アドレスがパターンデータテーブルに格納される。
【００９９】
一方、第１バッファ２２１ａに格納されたサブデータと第２バッファ２２１ｂに格納されたサブデータが一致しない場合、書き込み要請されたデータ及びこれに対応する論理アドレスはフラッシュ変換レイヤ２３０、又はフラッシュメモリ２４０へ伝達され得る。
【０１００】
以上、詳述した説明は例示的なものであると理解されるべきであり、本発明の技術的思想はこれに限定されないことが理解されよう。
【０１０１】
例えば、図１では、ランダムアクセスメモリ１１２に格納されたパターンデータテーブルは休止期間（ｉｄｌｅ  ｔｉｍｅ）に、又は定期的に不揮発性メモリ１１４へ伝達すると説明されている。しかし、これは例示的であって、例えば、ランダムアクセスメモリ１１２に格納されたパターンデータテーブルは休止期間（ｉｄｌｅ  ｔｉｍｅ）に、又は定期的にフラッシュメモリ１２０へ伝達できる。
【０１０２】
また、例えば、図４ではパターンデータテーブルは開始論理アドレスＳＬＡ、終了論理アドレスＥＬＡ、そしてパターンデータを含む。しかし、これも例示的であって、例えば、パターンデータテーブルはパターンデータに対応する論理アドレスをすべて格納できる。
【０１０３】
また、例えば、図５では、入力データは８ビット単位で複数のサブデータに区分される。しかし、これも例示的であって、例えば、入力データを複数のサブデータに区分する単位はプログラム単位、読み出し単位、又は第１バッファ２２１ａ及び第２バッファ２２１ｂのサイズなどによって多様に設定され得る。
【０１０４】
図１０は本発明の技術的思想の実施形態による読み出し動作が行われる場合の仮想データインタフェースレイヤの動作を説明するためのブロック図である。簡略な説明のために、図１０のパターンデータテーブルは図８のパターンデータテーブルと同一であることと仮定する。
【０１０５】
図１０を参照すれば、読み出し動作が要請される場合、データ分析モジュール２２１のパターン判断モジュール２２１ｄに、読み出し要請された論理アドレスＬＡが提供される。例えば、図１０では論理アドレス‘１０３’ないし‘１０５’に対応するデータに対する読み出し要請がある場合を仮定する。
【０１０６】
この場合、パターン判断モジュール２２１ｄは読み出し要請された論理アドレスがデータプールモジュール２２２によって構成されたパターンデータテーブルの論理アドレスと一致するか否かを判断する。例えば、図１０を参照すれば、パターン判断モジュール２２１ｄは読み出し要請された論理アドレス‘１０３’ないし‘１０５’がデータプールモジュール２２２によって構成されたパターンデータテーブルの論理アドレスと一致するか否かを判断する。
【０１０７】
例えば、読み出し要請された論理アドレス‘１０４’及び‘１０５’はパターンデータテーブルに格納された論理アドレスと一致する。即ち、読み出し要請された論理アドレス‘１０４’及び‘１０５’はパターンデータ‘１１１１００１１’に対応する論理アドレスに含まれる。
【０１０８】
この場合、パターン判断モジュール２２１ｄは該当論理アドレスをデータ生成モジュール２２３のパターンデータ生成モジュール２２３ａへ伝達する。パターンデータ生成モジュール２２３ａは伝達された論理アドレスに対応するパターンデータを、パターンデータテーブルを参照して生成する。
【０１０９】
例えば、パターンデータ生成モジュール２２３ａにはパターン判断モジュール２２１ｄから論理アドレス‘１０４’及び‘１０５’が伝達される。パターンデータ生成モジュール２２３ａはパターンデータテーブルを参照し、伝達された論理アドレス‘１０４’及び‘１０５’に対応するパターンデータ‘１１１１００１１’を生成する。即ち、パターンデータ生成モジュール２２３ａは論理アドレス‘１０４’に対応するパターンデータ‘１１１１００１１’を生成し、これをランダムアクセスメモリ１１２に格納する。また、パターンデータ生成モジュール２２３ａは論理アドレス‘１０５’に対応するパターンデータ‘１１１１００１１’を生成し、これをランダムアクセスメモリ１１２に格納する。
【０１１０】
一方、読み出し要請された論理アドレス‘１０３’はパターンデータテーブルに格納された論理アドレスと一致しない。この場合、パターン判断モジュール２２１ｄは論理アドレス‘１０３’をフラッシュ変換レイヤ２３０へ伝達する。フラッシュ変換レイヤ２３０は伝達された論理アドレス’１０３’を物理アドレスに変換した後、フラッシュメモリ２４０へ伝達する。フラッシュメモリ２４０は伝達された物理アドレスに対応するデータに対する読み出し動作を行う。
【０１１１】
上述した通り、読み出し要請された論理アドレスがパターンデータテーブルに格納された論理アドレスと一致する場合、読み出し要請された論理アドレスに対応するデータは仮想データインタフェースレイヤＶＤＩＬによって生成される。即ち、読み出し要請された論理アドレスがパターンデータテーブルに格納された論理アドレスである場合、メモリコントローラ１１０（図１参照）で読み出し要請された論理アドレスに対応するデータを生成できる。この場合、フラッシュメモリ１２０（図１参照）に格納されたデータを読むための遅延時間が必要ではないので、本発明の技術的思想の実施形態によるメモリシステム１００（図１参照）は読み出し性能が向上できる。
【０１１２】
図１１は図１０で説明された読み出し動作が行われる場合に仮想データインタフェースレイヤの動作を説明するための順序図である。
【０１１３】
Ｓ２１０段階で、読み出し要請された論理アドレスが仮想データインタフェースレイヤ２２０へ伝達される。例えば、読み出し要請された論理アドレスはデータ分析モジュール２２１のパターン判断モジュール２２１ｄへ伝達される。
【０１１４】
Ｓ２２０段階で、読み出し要請された論理アドレスがパターンデータテーブルに格納された論理アドレスと一致するか否かが判断される。例えば、図１０を参照すれば、パターン判断モジュール２２１ｄは読み出し要請された論理アドレスがパターンデータテーブルに格納された論理アドレスと一致するか否かを判断する。
【０１１５】
読み出し要請された論理アドレスがパターンデータテーブルに格納された論理アドレスと一致する場合、読み出し要請された論理アドレスはパターンデータ生成モジュール２２３ａへ伝達される（Ｓ２３０段階）。例えば、図１０を参照すれば、パターン判断モジュール２２１ｄは読み出し要請された論理アドレス‘１０４’及び‘１０５’をパターンデータ生成モジュール２２３ａへ伝達する。
【０１１６】
この場合、パターンデータ生成モジュール２２３ａはパターンデータテーブルを参照して伝達された論理アドレスに対応するパターンデータを生成する（Ｓ２４０段階）。例えば、図１０を参照すれば、パターンデータ生成モジュール２２３ａはパターンデータテーブルを参照し、論理アドレス‘１０４’及び‘１０５’に対応するパターンデータ‘１１１１００１１’を各々生成する。
【０１１７】
一方、読み出し要請された論理アドレスがパターンデータテーブルに格納された論理アドレスと一致しない場合、読み出し要請された論理アドレスはフラッシュ変換レイヤ２３０へ伝達される。フラッシュ変換レイヤ２３０は論理アドレスを物理アドレスに変換し、これをフラッシュメモリ２４０へ伝達する。この後、物理アドレスに対応するフラッシュメモリ２４０に格納されたデータに対する読み出し動作が行われる。
【０１１８】
さらに、読み出し要請された論理アドレスがパターンデータテーブル及びフラッシュ変換レイヤ２３０に格納された論理アドレスと一致しない場合、パターンデータ生成モジュール２２３ａはクリーンデータを生成する。
この場合については、以下に図１２を参照して更に詳しく説明する。
【０１１９】
図１２は本発明の技術的思想の他の実施形態による読み出し動作が行われる場合の仮想データインタフェースレイヤの動作を説明するためのブロック図である。簡略な説明のために、図１２のパターンデータテーブルは図８のパターンデータテーブルと同一であると仮定する。また、論理アドレス‘１４４’ないし‘１４６’はパターンデータテーブル及びフラッシュ変換レイヤ２３０のいずれにも格納されない論理アドレスであると仮定する。
【０１２０】
図１２を参照すれば、データ分析モジュール２２１のパターン判断モジュール２２１ｄは読み出し要請された論理アドレスが伝達される。例えば、図１２ではパターン判断モジュール２２１ｄは論理アドレス’１４４’ないし’１４６’が伝達される。
【０１２１】
この場合、パターン判断モジュール２２１ｄはパターンデータテーブルの論理アドレスと一致するか否かを判断する。例えば、図１２を参照すれば、パターン判断モジュール２２１ｄは読み出し要請された論理アドレス‘１４４’ないし‘１４６’がパターンデータテーブルの論理アドレスと一致するか否かを判断する。
【０１２２】
読み出し要請された論理アドレスとパターンデータテーブルに格納された論理アドレスが一致しない場合、パターン判断モジュール２２１ｄはフラッシュ変換レイヤ２３０に格納された論理アドレスと読み出し要請された論理アドレスが一致するか否かを判断する。例えば、図１２を参照すれば、パターン判断モジュール２２１ｄは読み出し要請された論理アドレス‘１４４’ないし‘１４６’がフラッシュ変換レイヤ２３０に格納された論理アドレスと一致するか否かを判断する。
【０１２３】
読み出し要請された論理アドレスがパターンデータテーブル及びフラッシュ変換レイヤ２３０のいずれに格納された論理アドレスとも一致しない場合、パターン判断モジュール２２１ｄはアドレス不一致信号ＡＮＳをクリーンデータ生成モジュール２２３ｂへ伝達する。クリーンデータ生成モジュール２２３ｂはアドレス不一致信号ＡＮＳに応答し、クリーンデータを生成する。例えば、図１２を参照すれば、クリーンデータ生成モジュール２２３ｂはアドレス不一致信号ＡＮＳに応答して論理アドレス‘１４４’ないし‘１４６’に対応するクリーンデータを生成する。生成されたクリーンデータはランダムアクセスメモリ１１２に格納される。
【０１２４】
一方、ランダムアクセスメモリ１１２に格納されるクリーンデータは多様に表現され得る。例えば、クリーンデータは‘ＯｘＦＦ’に表現され、ランダムアクセスメモリ１１２に格納される。
【０１２５】
図１３は図１２で説明された読み出し動作が行われる場合に仮想データインタフェースレイヤの動作を説明するための順序図である。
【０１２６】
Ｓ３１０段階で、読み出し要請された論理アドレスが仮想データインタフェースレイヤ２２０へ伝達される。例えば、読み出し要請された論理アドレスはデータ分析モジュール２２１のパターン判断モジュール２２１ｄへ伝達される。
【０１２７】
Ｓ３２０段階で、読み出し要請された論理アドレスがパターンデータテーブルに格納された論理アドレスと一致するか否かが判断される。例えば、図１２を参照すれば、パターン判断モジュール２２１ｄは読み出し要請された論理アドレスがパターンデータテーブルに格納された論理アドレスと一致するか否かを判断する。
【０１２８】
読み出し要請された論理アドレスがパターンデータテーブルに格納された論理アドレスと一致する場合、読み出し要請された論理アドレスに対応するパターンデータを生成する（Ｓ３３０段階）。例えば、読み出し要請された論理アドレスはパターンデータ生成モジュール２２３ａへ伝達され、パターンデータ生成モジュール２２３ａは対応するパターンデータを生成する。
【０１２９】
読み出し要請された論理アドレスがパターンデータテーブルに格納された論理アドレスと一致しない場合、読み出し要請された論理アドレスがフラッシュ変換レイヤ２３０に格納された論理アドレスと一致するか否かが判断される（Ｓ３４０段階）。例えば、パターン判断モジュール２２１ｄは読み出し要請された論理アドレスがフラッシュ変換レイヤ２３０に格納された論理アドレスと一致するか否かを判断する。
【０１３０】
読み出し要請された論理アドレスがフラッシュ変換レイヤ２３０に格納された論理アドレスと一致しない場合、クリーンデータを生成する（Ｓ３５０段階）。例えば、図１２を参照すれば、パターン判断モジュール３２１ｄはクリーンデータ生成モジュール３２３ｂにアドレス不一致信号ＡＮＳを伝達する。クリーンデータ生成モジュール３２３ｂはアドレス不一致信号ＡＮＳに応答してクリーンデータを生成する。生成されたクリーンデータはランダムアクセスメモリ１１２に格納される。
【０１３１】
一方、読み出し要請された論理アドレスがフラッシュ変換レイヤ２３０に格納された論理アドレスと一致する場合、フラッシュメモリ２４０に格納されたデータに対する読み出し動作が行われる（Ｓ３６０段階）。即ち、フラッシュ変換レイヤ２３０は読み出し要請された論理アドレスを物理アドレスに変換し、これをフラッシュメモリ２４０へ伝達する。この後、フラッシュメモリ２４０に格納されたデータに対する読み出し動作が行われる。
【０１３２】
図１４は本発明の技術的思想の他の実施形態による図１に示したメモリシステム１００のソフトウェア構造を示すブロック図である。図１４のソフトウェア構造は図２のソフトウェア構造と類似する。従って、以下には図２のソフトウェア構造との差異点を重点的に説明する。
【０１３３】
図１４を参照すれば、メモリシステム１００はアプリケーション３０５、ファイルシステム３１０、フラッシュ変換レイヤ３２０、仮想データインタフェースレイヤ３３０、そしてフラッシュメモリ３４０の順にソフトウェア階層構造を有する。
【０１３４】
図１４のフラッシュ変換レイヤ３２０には、ファイルシステム３１０から論理アドレスが伝達される。フラッシュ変換レイヤ３２０は伝達された論理アドレスを物理アドレスに変換し、これを仮想データインタフェースレイヤ３３０へ伝達する。
【０１３５】
これに反して、上記図２のフラッシュ変換レイヤ２３０には、仮想データインターレースレイヤ２２０から論理アドレスが伝達される。また、図２のフラッシュ変換レイヤ２３０は伝達された論理アドレスを物理アドレスに変換して、これをフラッシュメモリ２４０へ伝達する。
【０１３６】
図１４の仮想データインタフェースレイヤ３３０はフラッシュ変換レイヤ３２０から物理アドレスが伝達される。例えば、読み出し動作が行われる場合、仮想データインタフェースレイヤ３３０は伝達された物理アドレスがパターンデータテーブルに格納された物理アドレスと同一であるか否かを判断する。
【０１３７】
これに反して、図２の仮想データインタフェースレイヤ２２０はファイルシステム２１０から論理アドレスが伝達される。例えば、読み出し動作が行われる場合、仮想データインタフェースレイヤ２２０は伝達された論理アドレスがパターンデータテーブルに格納された論理アドレスと同一であるか否かを判断する。
【０１３８】
図１５は図１４に示したメモリシステムの動作を説明するためのブロック図である。図１５のメモリシステムの動作は図３で説明したメモリシステムの動作と類似する。従って、以下、図３のメモリシステムの動作との差異点を重点的に説明する。
【０１３９】
図１５を参照すれば、メモリシステム３００はファイルシステム２１０、フラッシュ変換レイヤ３２０、仮想データインタフェースレイヤ３３０、及びフラッシュメモリ３４０を含む。
【０１４０】
仮想データインタフェースレイヤ３３０はランダムアクセスメモリ１１２（図１参照）上に駆動される。仮想データインタフェースレイヤ３３０はデータ分析モジュール３３１、データプールモジュール３３２、及びデータ生成モジュール３３３を含む。
【０１４１】
図１５のデータ分析モジュール３３１は図３のデータ分析モジュール２２１と類似する。ただし、図３のデータ分析モジュール２２１はファイルシステム２１０から論理アドレスＬＡを伝達され、伝達された論理アドレス及びパターンデータテーブルに格納された論理アドレスとの一致可否を判断する。これに反して、図１５のデータ分析モジュール３３１はフラッシュ変換レイヤ３２０から物理アドレスＰＡを伝達され、伝達された物理アドレス及びパターンデータテーブルに格納された物理アドレスとの一致可否を判断する。
【０１４２】
図１５のデータプールモジュール３３２は図３のデータプールモジュール２２２と類似する。ただし、図３のデータプールモジュール２２２はパターンデータ及びこれに対応する論理アドレスを含むパターンデータテーブルをランダムアクセスメモリ１１２、又は不揮発性メモリ装置１１４（図１参照）に格納する。これに反して、図１５のデータプールモジュール３３２はパターンデータ及びこれに対応する物理アドレスを含むパターンデータテーブルをランダムアクセスメモリ１１２又は不揮発性メモリ装置１１４に格納する。
【０１４３】
図１５のデータ生成モジュール３３３は図３のデータ生成モジュール２２３と類似する。ただし、図３のデータ生成モジュール２２３は読み出し要請された論理アドレスに基づいて、パターンデータを生成する。これに反して、図１５のデータ生成モジュール３３３は読み出し要請された物理アドレスに基づいて、パターンデータを生成する。
【０１４４】
図１６は本発明の技術的思想の他の実施形態による不揮発性メモリ装置を使用するメモリシステムのハードウェア構造を示すブロック図である。図１６では不揮発性メモリ装置の例として、フラッシュメモリ４２０を示す。図１６のメモリシステムのハードウェア構造は図１のメモリシステムのハードウェア構造と類似する。従って、以下、図１のメモリシステムのハードウェア構造との差異点を重点的に説明する。
【０１４５】
図１６を参照すれば、メモリシステム４００はメモリコントローラ４１０及びフラッシュメモリ４２０を含む。また、メモリコントローラ４１０は中央処理装置４１１、バッファメモリ４１２、ランダムアクセスメモリ４１３、ホストインタフェース４１４、不揮発性メモリ装置４１５、及びフラッシュインタフェース４１６を含む。
【０１４６】
図１６のメモリコントローラ４１０の構造は図１のメモリコントローラ１１０の構造と類似する。ただし、図１６のメモリコントローラ４１０は図１のメモリコントローラ１１０とは異なり、更にバッファメモリ４１２を含む。即ち、図１６のメモリコントローラ４１０は図１のメモリコントローラ１１０と相違し、データ分析モジュール２２１（図４参照）の第１バッファ２２１ａ及び第２バッファ２２１ｂがハードウェアにより具現される。
【０１４７】
詳細に説明すれば、図１ないし図１５で、データ分析モジュール２２１（図４参照）の第１バッファ２２１ａ及び第２バッファ２２１ｂはランダムアクセスメモリ１１２（図１参照）の上で駆動されるソフトウェアにより記述される。ただし、これは例示的なものであって、データ分析モジュール（２２１、図４参照）の第１バッファ２２１ａ及び第２バッファ２２１ｂは図１６と共にハードウェアに具現され得る。この場合、例えば、第１バッファ２２１ａ及び第２バッファ２２１ｂは揮発性メモリを利用して具現され得る。
【０１４８】
図１７は本発明の実施形態によるソリッドステートドライブ（ＳＳＤ）１２００を示すブロック図である。図１７を参照すれば、ＳＳＤシステム１０００はホスト１１００とＳＳＤ１２００とを含む。ＳＳＤ１２００は信号コネクタ（ｓｉｇｎａｌ  ｃｏｎｎｅｃｔｏｒ）１２１１を通してホスト１１００と信号を送受信し、電源コネクタ（ｐｏｗｅｒ  ｃｏｎｎｅｃｔｏｒ）１２２１を通して電源が入力される。ＳＳＤ１２００は複数の不揮発性メモリ装置１２０１〜１２０ｎ、ＳＳＤコントローラ１２１０、及び補助電源装置１２２０を含む。
【０１４９】
複数の不揮発性メモリ装置１２０１〜１２０ｎはＳＳＤ１２００の格納媒体として使われる。複数の不揮発性メモリ装置１２０１〜１２０ｎは大容量の格納能力を有するフラッシュメモリ装置で具現され得る。ＳＳＤ１２００は主にフラッシュメモリ（Ｆｌａｓｈ  ｍｅｍｏｒｙ）を使用するが、フラッシュメモリの他にもＰＲＡＭ、ＭＲＡＭ、ＲｅＲＡＭ、ＦＲＡＭなどの不揮発性メモリ装置が使える。図１７で、少なくとも１つの不揮発性メモリ装置は図１又は図１６に示したフラッシュメモリ１２０、フラッシュメモリ４２０を含むことができる。
【０１５０】
複数の不揮発性メモリ装置１２０１〜１２０ｎは複数のチャンネルＣＨ１〜ＣＨｎを通してＳＳＤコントローラ１２１０と連結できる。１つのチャンネルには１つ、又はその以上のメモリ装置が連結できる。１つのチャンネルに連結するメモリ装置らは同一のデータバスに連結できる。
【０１５１】
ＳＳＤコントローラ１２１０は信号コネクタ１２１１を通して、ホスト１１００と信号ＳＧＬを送受信する。ここで、信号ＳＧＬには例えば、コマンド、アドレス、データが含まれる。ＳＳＤコントローラ１２１０はホスト１１００のコマンドによって該当メモリ装置にデータを書き込み、又は該当メモリ装置からデータを読み出す。図１７で、ＳＳＤコントローラ１２１０は図１、又は図１６に示したメモリコントローラ１１０、４１０であり得る。
【０１５２】
補助電源装置１２２０は電源コネクタ１２２１を通しホスト１１００と連結する。補助電源装置１２２０はホスト１１００から電源ＰＷＲが入力され、充電できる。このように、補助電源装置１２２０はＳＳＤ１２００内に位置する事もできるが、ＳＳＤ１２００外に位置することもできる。例えば、補助電源装置１２２０はメーンボードに位置して、ＳＳＤ１２００に補助電源を提供できる。
【０１５３】
図１８は本発明の実施形態による電子装置を示すブロック図である。電子装置２０００はパーソナルコンピュータ（ＰＣ）で具現され、又はノートブックコンピュータ、携帯電話、ＰＤＡ（Ｐｅｒｓｏｎａｌ  Ｄｉｇｉｔａｌ  Ａｓｓｉｓｔａｎｔ）、そしてカメラなどのような携帯用電子機器で具現され得る。
【０１５４】
図１８を参照すれば、電子装置２０００は半導体メモリ装置２１００、電源装置２２００、補助電源装置２２５０、中央処理処置２３００、ＲＡＭ２４００、及びユーザインタフェース２５００を含む。半導体メモリ装置２１００はフラッシュメモリ２１１０及びメモリコントローラ２１２０を含む。図１８で、半導体メモリ装置２１００は図１、又は図１６に示したメモリシステム１００、４００であり得る。
【０１５５】
本発明の範囲、又は技術的思想を逸脱せず、本発明の構造が多様に修正され、又は変更できることはこの分野に熟練した者には自明であろう。上記に詳述した内容を考慮して、もし本発明の修正及び変更が別紙特許請求の範囲項及び同等物の範囲に属する場合は、本発明がそのような発明の変更及び修正を包含すると判断しなければならない。
【符号の説明】
【０１５６】
１００、３００、４００      メモリシステム
１１０、４１０      メモリコントローラ
１１１、４１１      中央処理装置（ＣＰＵ）
４１２      バッファメモリ
１１２、４１３      ランダムアクセスメモリ（ＲＡＭ）
１１３、４１４      ホストインタフェース
１１４、４１５      不揮発性メモリ装置（ＮＶＭ）
１１５、４１６      フラッシュインタフェース
１２０、２４０、３４０、４２０      フラッシュメモリ
２０５、３０５      アプリケーション
２１０、３１０      ファイルシステム
２２０、３３０      仮想データインタフェースレイヤ（ＶＤＩＬ）
２２１、３３１      データ分析モジュール
２２１ａ、２２１ｂ      第１、第２バッファ
２２１ｃ      比較モジュール
２２１ｄ      パターン判断モジュール
２２２、３３２      データプールモジュール
２２３、３３３      データ生成モジュール
２２３ａ      パターンデータ生成モジュール
２２３ｂ      クリーンデータ生成モジュール
２３０、３２０      フラッシュ変換レイヤ（ＦＴＬ）
１０００      ＳＳＤシステム
１１００      ホスト
１２００      ソリッドステートドライブ（ＳＳＤ）
１２０１、１２０２、１２０ｎ      第１、第２、第ｎフラッシュメモリ
１２１１      信号コネクタ
１２２０      補助電源装置
１２２１      電源コネクタ
２０００      電子装置
２１００      半導体メモリ装置
２１１０      フラッシュメモリ
２１２０      メモリコントローラ
２２００      電源装置
２２５０      補助電源装置
２３００      中央処理装置
２４００      ＲＡＭ
２５００      ユーザインタフェース
【図１】
2011175646.tif 000003
【図２】
2011175646.tif 000004
【図３】
2011175646.tif 000005
【図４】
2011175646.tif 000006
【図５】
2011175646.tif 000007
【図６】
2011175646.tif 000008
【図７】
2011175646.tif 000009
【図８】
2011175646.tif 000010
【図９】
2011175646.tif 000011
【図１０】
2011175646.tif 000012
【図１１】
2011175646.tif 000013
【図１２】
2011175646.tif 000014
【図１３】
2011175646.tif 000015
【図１４】
2011175646.tif 000016
【図１５】
2011175646.tif 000017
【図１６】
2011175646.tif 000018
【図１７】
2011175646.tif 000019
【図１８】
2011175646.tif 000020