(57)【特許請求の範囲】
【請求項１】
セクタビットマップ値を保存するメモリ領域を含む揮発性メモリと、
読み取り動作時、ポインタが指示する前記メモリ領域に保存された前記セクタビットマップ値に基づいて、外部の不揮発性メモリのページを構成する多数のセクタのうち、少なくとも一つ以上の一部のセクタを選択的に読み取るメモリコントローラと、を含み、
前記メモリコントローラは、
前記ポインタを保存するための第１レジスタと、
第２レジスタと、
前記第１のレジスタに保存された前記ポインタを読み出し、前記ポインタが指示する前記セクタビットマップ値を前記メモリ領域から読み出し、該読み出したセクタビット値を前記第２レジスタに保存し、前記第２レジスタに保存されたセクタビットマップ値を読み出して解析してセクタアドレスとランダムデータ出力命令を出力し、該セクタアドレスとランダムデータ出力に基づいて前記多数のセクタのうち、前記少なくとも一つ以上の一部のセクタを、前記外部の不揮発性メモリから読み取るステートマシンと、
を含み、
前記ステートマシンにおける、前記ポインタの読み出し、前記セクタビットマップ値の前記メモリ領域からの読み出し、読み出したセクタビット値の前記第２レジスタへの保存および該保存されたセクタビットマップ値の読み出しは、ファームウェアの制御外で実施されることを特徴とするソリッドステートディスクコントローラ。
【請求項２】
セクタビットマップ値を保存するメモリ領域を含む揮発性メモリと、
プログラム動作時、ポインタが指示する前記メモリ領域に保存された前記セクタビットマップ値に基づいて、ホストから出力されたデータの少なくとも一つ以上の一部のセクタを外部の不揮発性メモリのページに選択的にプログラムするメモリコントローラと、を含み、
前記メモリコントローラは、
前記ポインタを保存するための第１レジスタと、
前記前記セクタビットマップ値を保存するための第２レジスタと、を含み、
前記セクタビットマップ値の読み出しはファームウェアの制御外で実施されることを特徴とするソリッドステートディスクコントローラ。
【請求項３】
第１セクタビットマップ値を保存する第１メモリ領域と第２セクタビットマップ値を保存する第２メモリ領域とを含む揮発性メモリと、
読み取り動作時、ポインタが指示する前記第１メモリ領域に保存された前記第１セクタビットマップ値に基づいて、第１外部の不揮発性メモリの第１ページを構成する多数のセクタのうち、少なくとも一つ以上の一部のセクタを選択的に読み取り、前記第２メモリ領域に保存された前記第２セクタビットマップ値に基づいて、第２外部の不揮発性メモリの第２ページを構成する多数のセクタのうち、少なくとも一つのセクタを選択的に読み取るメモリコントローラと、を含み、
前記メモリコントローラは、
前記ポインタを保存するための第１レジスタと、
前記第１セクタビットマップ値と前記第２セクタビットマップ値とを保存するための第２レジスタとを保存するための第２レジスタと、を含み、
前記第１および第２セクタビットマップ値の読み出しはファームウェアの制御外で実施されることを特徴とするソリッドステートディスクコントローラ。
【請求項４】
前記読み取り動作がインターリービング読み取り動作である場合、前記メモリコントローラは、前記第１外部の不揮発性メモリと前記第２外部の不揮発性メモリとが接続されたチャンネルに読み取り命令を出力することを特徴とする請求項３に記載のソリッドステートディスクコントローラ。
【請求項５】
不揮発性メモリと、
ソリッドステートディスクコントローラと、
前記不揮発性メモリと前記ソリッドステートディスクコントローラとの間に接続されたチャンネルと、を含み、
前記ソリッドステートディスクコントローラは、
セクタビットマップ値を保存するメモリ領域を含む揮発性メモリと、
読み取り動作時、ポインタが指示する前記メモリ領域に保存された前記セクタビットマップ値に基づいて、前記不揮発性メモリのページを構成する多数のセクタのうち、少なくとも一つ以上の一部のセクタを選択的に読み取るメモリコントローラと、を含み、
前記メモリコントローラは、
前記ポインタを保存するための第１レジスタと、
第２レジスタと、
前記ポインタに基づいて前記セクタビットマップ値を前記メモリ領域から前記第２レジスタに読み取り、前記第２レジスタに保存されたセクタビットマップ値を解析し、該解析結果に基づいて前記多数のセクタのうち、前記少なくとも一つ以上の一部のセクタを少なくとも一つのランダムデータ出力命令に基づいて、前記外部の不揮発性メモリから読み取るステートマシンと、を含み、
前記セクタビットマップ値の読み出しはファームウェアの制御外で実施されることを特徴とするデータ保存装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データ保存装置の制御技術に係り、特に、ソリッドステートディスクコントローラとソリッドステートディスクコントローラのデータ処理方法とに関する。
【背景技術】
【０００２】
コンピュータシステムのような電子システムのデータ保存装置として磁気ディスクが伝統的に使われてきた。しかし、半導体技術の発展につれてコンピュータシステムと携帯用装置で磁気ディスクの代わりにＥＥＰＲＯＭ基盤（例えば、ＮＡＮＤ型ＥＥＰＲＯＭまたはＮＯＲ型ＥＥＰＲＯＭ）の不揮発性メモリをデータ保存装置として使うソリッドステートディスク（Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｉｓｋ：以下、ＳＳＤ）が次第に広く使われている。
【０００３】
ＳＳＤは、ハードディスクドライブ（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ：以下、ＨＤＤ）で必須的に使われるモータのような機械的な駆動装置を含んでいないので、動作時にＳＳＤでは、熱とノイズとがほとんど発生しない。また、ＳＳＤは、速いアクセスレート（ｆａｓｔ  ａｃｃｅｓｓ  ｒａｔｅ）、高集積度、及び外部衝撃に対する安定性のためにデータ保存装置として脚光を浴びている。また、ＳＳＤのデータ伝送速度は、ＨＤＤのデータ伝送速度よりかなり早い。
【０００４】
データ保存装置としてＳＳＤが使われる時、コントローラは、ホストとＥＥＰＲＯＭ基盤の不揮発性メモリとの間でデータ伝送を制御する。しかし、コントローラは、毎ページ（ｐａｇｅ）のデータを処理する度にファームウェア（ｆｉｒｍｗａｒｅ）の制御下で不揮発性メモリとデータを送受信するので、ＳＳＤの性能は低下する。
【発明の開示】
【発明が解決しようとする課題】
【０００５】
本発明が果たそうとする技術的な課題は、最適化された性能を有するソリッドステートディスクコントローラとソリッドステートディスクコントローラのデータ処理方法とを提供することである。また、本発明が果たそうとする技術的な課題は、ファームウェアの介入なしにハードウェアのみでインターリービング動作を実行することができるデータ処理方法とデータ処理装置とを提供することである。
【課題を解決するための手段】
【０００６】
前記技術的課題を果たすためのソリッドステートディスクコントローラのデータ処理方法は、読み取り動作時、ポインタが指示する揮発性メモリのメモリ領域に保存されたセクタビットマップ値を読み取る段階と、読み取られたセクタビットマップ値に基づいて、外部の不揮発性メモリのページを構成する多数のセクタのうち、少なくとも一つのセクタを選択的に読み取る段階と、を含む。
【０００７】
前記技術的課題を果たすためのソリッドステートディスクコントローラのデータ処理方法は、読み取り動作時、ポインタが指示する揮発性メモリ内の第１メモリ領域に保存された第１セクタビットマップ値に基づいて、第１不揮発性メモリの第１ページを構成する多数のセクタのうち、少なくとも一つのセクタを選択的に読み取る（ａ）段階と、前記揮発性メモリ内の第２メモリ領域に保存された第２セクタビットマップ値に基づいて、第２不揮発性メモリの第２ページを構成する多数のセクタのうち、少なくとも一つのセクタを選択的に読み取る（ｂ）段階と、を含む。
【０００８】
前記ソリッドステートディスクコントローラのデータ処理方法は、インターリービング読み取り動作のために、読み取り命令を前記第１不揮発性メモリと前記第２不揮発性メモリとが接続されたチャンネルに伝送する段階をさらに含む。
【０００９】
前記（ａ）段階は、前記第１メモリ領域に保存された前記第１セクタビットマップ値を読み取る段階と、読み取られた第１セクタビットマップ値を解析し、該解析結果に基づいて前記第１ページを構成する前記多数のセクタのうち、前記少なくとも一つのセクタを少なくとも一つの第１ランダムデータ出力命令に基づいて選択的に読み取る段階と、を含む。
【００１０】
前記（ｂ）段階は、前記第２メモリ領域に保存された前記第２セクタビットマップ値を読み取る段階と、読み取られた第２セクタビットマップ値を解析し、該解析結果に基づいて前記第２ページを構成する前記多数のセクタのうち、前記少なくとも一つのセクタを少なくとも一つの第２ランダムデータ出力命令に基づいて選択的に読み取る段階と、を含む。
【００１１】
前記技術的課題を果たすためのソリッドステートディスクコントローラのデータ処理方法は、プログラム動作時、ポインタが指示する揮発性メモリのメモリ領域に保存されたセクタビットマップ値を読み取る段階と、読み取られたセクタビットマップ値に基づいて、ホストから出力されたデータの少なくとも一つのセクタを外部の不揮発性メモリのページに選択的にプログラムする段階と、を含む。
【００１２】
前記技術的課題を果たすためのソリッドステートディスクコントローラは、セクタビットマップ値を保存するメモリ領域を含む揮発性メモリと、メモリコントローラと、を含む。前記メモリコントローラは、読み取り動作時、ポインタが指示する前記メモリ領域に保存された前記セクタビットマップ値に基づいて、外部の不揮発性メモリのページを構成する多数のセクタのうち、少なくとも一つのセクタを選択的に読み取る。
【００１３】
前記メモリコントローラは、前記ポインタを保存するための第１レジスタと、第２レジスタと、ステートマシンと、を含む。前記ステートマシンは、前記ポインタに基づいて前記セクタビットマップ値を前記メモリ領域から前記第２レジスタに読み取り、前記第２レジスタに保存されたセクタビットマップ値を解析し、該解析結果に基づいて前記多数のセクタのうち、前記少なくとも一つのセクタを少なくとも一つのランダムデータ出力命令に基づいて、前記外部の不揮発性メモリから読み取る。
【００１４】
前記技術的課題を果たすためのソリッドステートディスクコントローラは、セクタビットマップ値を保存するメモリ領域を含む揮発性メモリと、メモリコントローラと、を含む。前記メモリコントローラは、プログラム動作時、ポインタが指示する前記メモリ領域に保存された前記セクタビットマップ値に基づいて、ホストから出力されたデータの少なくとも一つのセクタを外部の不揮発性メモリのページに選択的にプログラムする。
【００１５】
前記技術的課題を果たすためのソリッドステートディスクコントローラは、第１セクタビットマップ値を保存する第１メモリ領域と第２セクタビットマップ値を保存する第２メモリ領域とを含む揮発性メモリと、メモリコントローラと、を含む。前記メモリコントローラは、読み取り動作時、ポインタが指示する前記第１メモリ領域に保存された前記第１セクタビットマップ値に基づいて、第１外部の不揮発性メモリの第１ページを構成する多数のセクタのうち、少なくとも一つのセクタを選択的に読み取り、前記第２メモリ領域に保存された前記第２セクタビットマップ値に基づいて、第２外部の不揮発性メモリの第２ページを構成する多数のセクタのうち、少なくとも一つのセクタを選択的に読み取る。
【００１６】
前記技術的課題を果たすためのデータ保存装置は、不揮発性メモリと、ソリッドステートディスクコントローラと、前記不揮発性メモリと前記ソリッドステートディスクコントローラとの間に接続されたチャンネルと、を含む。前記ソリッドステートディスクコントローラは、セクタビットマップ値を保存するメモリ領域を含む揮発性メモリと、メモリコントローラと、を含む。前記メモリコントローラは、読み取り動作時、ポインタが指示する前記メモリ領域に保存された前記セクタビットマップ値に基づいて、前記不揮発性メモリのページを構成する多数のセクタのうち、少なくとも一つのセクタを選択的に読み取る。
【発明の効果】
【００１７】
本発明の実施形態によるソリッドステートディスクコントローラは、インターリービング読み取り動作時にファームウェアの介入なしに揮発性メモリの多数のメモリ領域のそれぞれに保存されたセクタビットマップ値を自動で読み取り、特定のページから特定の一つのセクタまたはそれ以上のセクタのみを選択的に読み取ることができる。したがって、ソリッドステートディスクコントローラの性能は向上する。
【００１８】
また、本発明の実施形態によるソリッドステートディスクコントローラは、インターリービング書き込み動作時にファームウェアの介入なしに揮発性メモリの多数のメモリ領域のそれぞれに保存されたセクタビットマップ値を自動で読み取り、該読み取られたセクタビットマップ値に基づいて、ホストから出力されたデータのうちから一つのセクタまたはそれ以上のセクタを選択的に特定のページに書き込むかプログラムすることができる。したがって、コントローラの性能が向上する効果がある。
【発明を実施するための最良の形態】
【００１９】
以下、添付した図面を参照して、本発明を詳しく説明する。
図１は、本発明の実施形態によるソリッドステートコントローラを含むシステムのブロック図である。図１を参照すれば、コンピュータシステムまたは移動装置のようなシステム１０は、ホスト２０、ＳＳＤコントローラ３０、及び不揮発性メモリ装置５０を含む。ＳＳＤは、不揮発性メモリ装置５０、またはＳＳＤコントローラ３０と不揮発性メモリ装置５０とを含む。
【００２０】
ホスト２０は、動作命令（例えば、読み取り命令、プログラム命令、または消去命令など）とアドレス（ａｄｄｒｅｓｓｅｓ）とをホストインターフェース４９とシステムバス（ＢＵＳ）とを介してＳＳＤコントローラ３０に出力する。他の実施形態において、ホスト２０は、動作命令とアドレスとをホストインターフェース４９を介して直接ＳＳＤコントローラ３０に出力することもできる。ＳＳＤコントローラ３０は、揮発性メモリ３１、メモリコントローラ（または、フラッシュメモリコントローラ）３９、バッファメモリ４７、及びホストインターフェース４９を含む。
【００２１】
ＤＲＡＭまたはＳＲＡＭとして具現可能な揮発性メモリ３１は、それぞれがセクタビットマップ値を保存する多数のメモリ領域（３３、３５、３７、…）を含む。多数のメモリ領域（３３、３５、３７、…）のそれぞれに保存されたセクタビットマップ値は、別途のハードウェアまたは別途のファームウェアを用いてプログラム（または、設定）される。
【００２２】
メモリコントローラ３９は、セクタビットマップポインタを保存する第１レジスタ（または、セクタビットマップポインタレジスタ）４１、セクタビットマップポインタに基づいて、揮発性メモリ３１から出力されたセクタビットマップ値を保存する第２レジスタ（または、セクタビットマップレジスタ）４３、及びステートマシン（ｓｔａｔｅ  ｍａｃｈｉｎｅ）４５を含む。
【００２３】
ステートマシン４５は、多数の制御信号（ＣＬＥ（Ｃｏｍｍａｎｄ  Ｌａｔｃｈ  Ｅｎａｂｌｅ  ｓｉｇｎａｌ）、ＣＥ（Ｃｈｉｐ  Ｅｎａｂｌｅ  ｓｉｇｎａｌ）、ＷＥ（Ｗｒｉｔｅ  Ｅｎａｂｌｅ  ｓｉｇｎａｌ）、ＡＬＥ（Ａｄｄｒｅｓｓ  Ｌａｔｃｈ  Ｅｎａｂｌｅ  ｓｉｇｎａｌ）、Ｒ／Ｂ（Ｒｅａｄｙ／Ｂｕｓｙ  Ｏｕｔｐｕｔ  ｓｉｇｎａｌ）、ＲＥ（Ｗｒｉｔｅ  Ｅｎａｂｌｅ  ｓｉｇｎａｌ）、など）を使って多数のチャンネル５１、５７、６３、及び６９のうちから対応する少なくとも一つのチャンネルを介して不揮発性メモリ装置５０にデータＤＡＴＡを書き込むか、不揮発性メモリ装置５０からデータＤＡＴＡを読み出す。
【００２４】
ステートマシン４５によって不揮発性メモリ装置５０から読み取られたデータＤＡＴＡは、システムバスＢＵＳを介してバッファメモリ４７に臨時に保存することができる。バッファメモリ４７は、ホスト２０と不揮発性メモリ装置５０との間で伝送されるデータＤＡＴＡを臨時に保存する。ホストインターフェース４９は、ホスト２０との間でデータＤＡＴＡを送受信する。例えば、ホストインターフェース４９は、直列ＡＴＡ（Ｓｅｒｉａｌ  Ａｄｖａｎｃｅｄ  Ｔｅｃｈｎｏｌｏｇｙ  Ａｔｔａｃｈｍｅｎｔ）方式、並列ＡＴＡ（Ｐａｒａｌｌｅｌ  Ａｄｖａｎｃｅｄ  Ｔｅｃｈｎｏｌｏｇｙ  Ａｔｔａｃｈｍｅｎｔ）方式、または他の通信プロトコルを使うことができる。
【００２５】
ＳＳＤコントローラ３０と不揮発性メモリ装置５０は、多数のチャンネル５１、５７、６３、及び６９のうちから対応する少なくとも一つのチャンネルを介してデータＤＡＴＡを送受信する。例えば、それぞれのチャンネル５１、５７、６３、及び６９には、二つのチップ５３と５５、５９と６１、６５と６７、及び７１と７３が接続可能である。しかし、それぞれのチャンネル５１、５７、６３、及び６９に接続されるチップの数は、一つまたは二つ以上にもなり得る。
【００２６】
それぞれのチップ５３、５５、５９、６１、６５、６７、７１、及び７３は、多数のメモリセルを含むメモリセルアレイ（図示せず）とページバッファ（図示せず）とを含む。これら多数のメモリセルのそれぞれは、フラッシュＥＥＰＲＯＭとして具現可能である。フラッシュＥＥＰＲＯＭは、ＳＬＣ（Ｓｉｇｎｌｅ  Ｌｅｖｅｌ  Ｃｅｌｌ）またはＭＬＣ（Ｍｕｌｔｉ  Ｌｅｖｅｌ  Ｃｅｌｌ）として具現可能である。
【００２７】
図２は、図１に図示されたＳＳＤコントローラのデータ処理方法を説明するためのフローチャートであり、図３は、図１に図示されたＳＳＤコントローラのランダムデータ出力動作を説明するための図である。ここで、ｔＲは、メモリセルアレイのメモリセルからページバッファまでのデータ伝送時間と定義される。
【００２８】
図１、図２、及び図３を参照して、第１チャンネル５１に接続された第１チップ５３の第１ページを構成するｎ（ｎは自然数、例えば、ｎ＝８）個のセクタのうちからセクタビットマップ値が“１”である少なくとも一つのセクタのみを読み取るランダムデータ出力動作（ｒａｎｄｏｍ  ｄａｔａ  ｏｕｔｐｕｔ  ｏｐｅｒａｔｉｏｎ）を説明すれば、次の通りである。ここで、一つのセクタは、ｍ（ｍは自然数、例えば、ｍ＝５１２、または１０２４）バイトであり得る。ステートマシン４５は、ホスト２０から出力された読み取り命令に応答して第１チャンネル５１に接続された第１チップ５３の第１ページに保存されたデータＤＡＴＡを読み取るために、多数の制御信号ＣＬＥ、ＣＥ、ＷＥ、ＡＬＥ、Ｒ／Ｂ、ＲＥ、などを発生させる。第１チップ５３は、多数の制御信号ＣＬＥ、ＣＥ、ＷＥ、ＡＬＥ、Ｒ／Ｂ、ＲＥ、などを解析して読み取り命令ＲＥＡＤを実行する。
【００２９】
ステートマシン４５は、第１レジスタ４１に保存されたセクタビットマップポインタを読み取り、該読み取られたセクタビットマップポインタが指示する揮発性メモリ３１の第１メモリ領域３３に保存されたセクタビットマップ値（例えば、０１１０００１０）を読み取り、これらを第２レジスタ４３に保存する（図２のＳ１０）。例えば、セクタビットマップ値（例えば、０１１０００１０）のうちから“１”は有効なセクタ（ｖａｌｉｄ  ｓｅｃｔｏｒ）を意味し、“０”は無効なセクタ（ｉｎｖａｌｉｄ  ｓｅｃｔｏｒ）を意味する。しかし、その反対であり得る。
【００３０】
ステートマシン４５は、第２レジスタ４３に保存されたセクタビットマップ値（例えば、０１１０００１０）を読み取って解析し、該解析結果に基づいて第１ページ（または、第１チップ５３のページバッファ）からセクタ２、セクタ６、及びセクタ７を順次に読み取るために、セクタアドレスとランダムデータ出力命令（Ｒａｎｄｏｍ  Ｄａｔａ  Ｏｕｔｐｕｔ）とを順次に出力する（図２のＳ２０、及び図３の（ａ））。すなわち、ステートマシン４５は、第２レジスタ４３に保存されたセクタビットマップ値（例えば、０１１０００１０）のうちからセクタビットマップ値が“１”であるセクタ（例えば、セクタ２、セクタ６、及びセクタ７）のみを第１ページ（または、第１チップ５３のページバッファ）からランダムデータ出力動作によって読み取る。
【００３１】
ステートマシン４５は、読み取られたセクタ２、セクタ６、及びセクタ７をバッファメモリ４７に保存するために、システムバスＢＵＳを介してバッファメモリ４７に伝送することができる。また、ステートマシン４５は、読み取られたセクタ２、セクタ６、及びセクタ７をバッファメモリ４７に保存するために、直接バッファメモリ４７に伝送することもできる。したがって、本発明の実施形態によるＳＳＤコントローラ３０は、一つのページからすべてのセクタを読み取るのではなく、セクタビットマップ値に基づいて一つのページから少なくとも一つの有効なセクタのみを選択的に読み取ることができるので、ＳＳＤコントローラ３０の性能は向上する。
【００３２】
図４は、図１に図示されたＳＳＤコントローラによって実行されるハードウェアインターリービング読み取り動作を説明するためのフローチャートであり、図５は、図１に図示されたＳＳＤコントローラのハードウェアインターリービング読み取り動作のためのランダムデータ出力動作を説明するための図である。図１、図４、及び図５を参照して、第１チャンネル５１に接続された第１チップ５３の第１ページを構成するｎ個のセクタのうちからセクタビットマップ値が“１”であるセクタと第１チャンネル５１に接続された第５チップ５５の第２ページを構成するｎ個のセクタのうちからセクタビットマップ値が“１”であるセクタのみとをインターリービング動作（ｉｎｔｅｒｌｅａｖｉｎｇ  ｏｐｅｒａｔｉｏｎ）で読み取るランダムデータ出力動作（ｒａｎｄｏｍ  ｄａｔａ  ｏｕｔｐｕｔ  ｏｐｅｒａｔｉｏｎ）を説明すれば、次の通りである。
【００３３】
ステートマシン４５は、ホスト２０から出力された読み取り命令（例えば、図５のＲＥＡＤに相応する）に応答して第１チップ５３の第１ページに保存されたデータと第５チップ５５の第２ページに保存されたデータとを読み取るために、多数の制御信号ＣＬＥ、ＣＥ、ＷＥ、ＡＬＥ、Ｒ／Ｂ、ＲＥ、などを第１チャンネル５１に出力する（図５（ａ）、及び図４のＳ１１）。
【００３４】
ステートマシン４５は、第１レジスタ４１に保存されたセクタビットマップポインタを読み取り、該読み取られたセクタビットマップポインタが指示する揮発性メモリ３１の第１メモリ領域３３に保存された第１セクタビットマップ値（例えば、０１１０００１０）を読み取り、これらを第２レジスタ４３に保存し、第２レジスタ４３に保存された第２セクタビットマップ値（例えば、１０１０１０００）に基づいて、第１チップ５３の第１ページを構成するｎ個のセクタのうちからセクタ２、セクタ６、及びセクタ７をランダムデータ出力動作で読み取る（図５（ａ）、及び図４のＳ２１）。
【００３５】
すなわち、ステートマシン４５は、第２レジスタ４３に保存されたセクタビットマップ値（例えば、０１１０００１０）のうちからセクタビットマップ値が“１”であるセクタ（例えば、セクタ２、セクタ６、及びセクタ７）のみを第１ページ（または、第１チップ５３のページバッファ、例えば、図５（ｂ））からランダムデータ出力動作で読み取る。ステートマシン４５は、読み取られたセクタ２、セクタ６、及びセクタ７をバッファメモリ４７に保存するために、システムバスＢＵＳを介してまたは直接バッファメモリ４７に伝送することができる。
【００３６】
第１ページに対するランダムデータ出力動作が終われば、ステートマシン４５は、揮発性メモリ３１の第２メモリ領域３５に保存された第２セクタビットマップ値（例えば、１０１０１０００）を読み取り、これらを第２レジスタ４３に保存し、第２レジスタ４３に保存された第２セクタビットマップ値（例えば、１０１０１０００）に基づいて、第２チップ５５の第２ページを構成するｎ個のセクタのうちからセクタ１２、セクタ１４、及びセクタ１６のみを第２ページ（または、第２チップ５５のページバッファ）からランダムデータ出力動作で読み取る（図５（ｂ）、及びＳ３１）。第２メモリ領域３５は、第１メモリ領域３３を指示するセクタビットマップポインタを＋１または−１に増加または減少させて指示されるメモリ領域であり得る。
【００３７】
すなわち、ステートマシン４５は、第２レジスタ４３に保存されたセクタビットマップ値（例えば、１０１０１０００）のうちからセクタビットマップ値が“１”であるセクタ（例えば、セクタ１２、セクタ１４、及びセクタ１６）のみを第２ページ（または、第２チップ５５のページバッファ）からランダムデータ出力動作で読み取る。ステートマシン４５は、読み取られたセクタ１２、セクタ１４、及びセクタ１６をバッファメモリ４７に保存するために、システムバスＢＵＳを介してまたは直接バッファメモリ４７に伝送する。
【００３８】
したがって、本発明の実施形態によるＳＳＤコントローラ３０は、インターリービング読み取り動作時にファームウェアの介入なしに揮発性メモリ３１の多数のメモリ領域のそれぞれに保存されたセクタビットマップ値を自動で読み取り、特定のページから特定の一つのセクタまたはそれ以上のセクタのみを選択的に読み取ることができるので、コントローラ３０の性能は向上する。本明細書では、説明の便宜上、読み取り動作を中心に説明したが、本発明の実施形態によるポインタを利用したデータ処理方法は、書き込み動作（ｗｒｉｔｅ  ｏｐｅｒａｔｉｏｎ）またはプログラム動作（ｐｒｏｇｒａｍ  ｏｐｅｒａｔｉｏｎ）にそのまま適用可能である。
【００３９】
例えば、書き込み動作（または、プログラム動作）時、ステートマシン４５は、第１レジスタ４１に保存されたセクタビットマップポインタを読み取り、該読み取られたセクタビットマップポインタが指示する揮発性メモリ３１の第１メモリ領域３３に保存されたセクタビットマップ値（例えば、０１１０００１０）を読み取り、これらを第２レジスタ４３に保存する。
【００４０】
そして、ステートマシン４５は、第２レジスタ４３に保存されたセクタビットマップ値（例えば、０１１０００１０）を読み取って解析し、該解析結果（例えば、セクタビットマップ値が“１”であるかまたは“０”であるか）に基づいて、ホスト２０から出力されたデータのうちからセクタ２、セクタ６、及びセクタ７のみをチャンネル５１を介して第１チップ５３に選択的に書き込み（または、プログラム）をすることができる。
【００４１】
また、ステートマシン４５は、第１チャンネル５１に接続された第１チップ５３の第１ページにセクタビットマップ値が“１”である少なくとも一つのセクタと第１チャンネル５１に接続された第５チップ５５の第２ページにセクタビットマップ値が“１”である少なくとも一つのセクタのみとをインターリービング動作で書き込み動作（または、プログラム動作）を実行しうる。
【００４２】
例えば、ステートマシン４５は、ホスト２０から出力された書き込み命令（または、プログラム命令）に応答して第１レジスタ４１に保存されたセクタビットマップポインタを読み取る。そして、ステートマシン４５は、読み取られたセクタビットマップポインタが指示する揮発性メモリ３１の第１メモリ領域３３に保存された第１セクタビットマップ値（例えば、０１１０００１０）を読み取り、これらを第２レジスタ４３に保存し、第２レジスタ４３に保存された第２セクタビットマップ値（例えば、０１１０００１０）に基づいて、ホスト２０から出力されたデータのセクタ２、セクタ６、及びセクタ７を選択的に第１チップ５３の第１ページに書き込むことができる。
【００４３】
そして、第１ページに対する書き込み（または、プログラム）動作が終われば、ステートマシン４５は、揮発性メモリ３１の第２メモリ領域３５に保存された第２セクタビットマップ値（例えば、１０１０１０００）を読み取り、これらを第２レジスタ４３に保存し、第２レジスタ４３に保存された第２セクタビットマップ値（例えば、１０１０１０００）に基づいて、ホスト２０から出力されたデータのセクタ１２、セクタ１４、及びセクタ１６のみを選択的に第２チップ５５の第２ページに書き込むことができる。
【００４４】
したがって、本発明の実施形態によるＳＳＤコントローラ３０は、インターリービング書き込み（または、プログラム）動作時にファームウェアの介入なしに揮発性メモリ３１の多数のメモリ領域のそれぞれに保存されたセクタビットマップ値を自動で読み取り、該読み取られたセクタビットマップ値に基づいてホストから出力されたデータのうちから一つのセクタまたはそれ以上のセクタを選択的に特定のページに書き込むかプログラムすることができる。したがって、すべてのデータを特定のページに不要に書き込まなくてもよく、プログラムしなくても良いので、コントローラ３０の性能は向上する。
【００４５】
本発明は、図面に図示された一実施形態を参考にして説明されたが、これは例示的なものに過ぎず、当業者ならば、これより多様な変形及び均等な他実施形態が可能であるという点を理解できるであろう。したがって、本発明の真の技術的保護範囲は、特許請求の範囲の技術的思想によって決まるべきである。
【産業上の利用可能性】
【００４６】
本発明の実施形態による装置と方法は、コントローラ及びデータ保存装置で利用できる。
【図面の簡単な説明】
【００４７】
本発明の詳細な説明で引用される図面をより十分に理解するために、各図面の詳細な説明が提供される。
【図１】本発明の実施形態によるソリッドステートディスクコントローラを含むシステムのブロック図である。
【図２】図１に図示されたソリッドステートディスクコントローラのデータ処理方法を説明するためのフローチャートである。
【図３】図１に図示されたソリッドステートディスクコントローラのランダムデータ出力動作を説明するための図である。
【図４】図１に図示されたソリッドステートディスクコントローラによって実行されるハードウェアインターリービング読み取り動作を説明するためのフローチャートである。
【図５】図１に図示されたソリッドステートディスクコントローラのハードウェアインターリービング読み取り動作のためのランダムデータ出力動作を説明するための図面である。
【符号の説明】
【００４８】
３０：ＳＳＤコントローラ
３１：揮発性メモリ
３９：メモリコントローラ
４１：第１レジスタ
４３：第２レジスタ
４５：ステートマシン
４７：バッファメモリ
【図１】
0005368735.tif 000002
【図２】
0005368735.tif 000003
【図３】
0005368735.tif 000004
【図４】
0005368735.tif 000005
【図５】
0005368735.tif 000006