(57)【要約】      （修正有）【課題】動作性能が向上したソリッドステートドライブ及びそのメタデータアクセス方法を提供する。【解決手段】ソリッドステートドライブは、互いに異なる種類の第１メモリ６１０及び第２メモリ６２０と、第１メモリ及び第２メモリを制御するメモリコントローラ５００とを含む。メモリコントローラは、ホストからメタデータアクセス要請を受信し、メタデータアクセス要請に応じて第１メモリ及び第２メモリのコンディションをそれぞれ判断して少なくとも一つを選択するコンディションチェッカー５２０を含み、コンディションチェッカーが選択したメモリにアクセスする。【選択図】図３
2020017262.tif 000002
【特許請求の範囲】
【請求項１】
互いに異なる種類の第１及び第２メモリと、
前記第１及び第２メモリを制御するメモリコントローラとを含み、
前記メモリコントローラは、
ホストからメタデータアクセス要請を受信し、
前記メタデータアクセス要請に応じて前記第１及び第２メモリのコンディションをそれぞれ判断して少なくとも一つを選択するコンディションチェッカーを含み、
前記コンディションチェッカーが選択したメモリにアクセスするソリッドステートドライブ。
【請求項２】
前記コンディションチェッカーは、温度、Ｐ／Ｅサイクル、プログラムリテンションタイム及びイレーズリテンションタイムのうち少なくとも一つを考慮して前記第１及び第２メモリのコンディションを判断する請求項１に記載のソリッドステートドライブ。
【請求項３】
前記第１及び第２メモリは、それぞれＮＡＮＤフラッシュメモリ、ＰＲＡＭ、ＲＲＡＭ及びＭＲＡＭのうちいずれか一つである請求項１または２に記載のソリッドステートドライブ。
【請求項４】
前記メタデータアクセス要請は、メタデータ読み込み要請であり、
前記第１及び第２メモリは、同じメタデータをそれぞれ保存しており、
前記コンディションチェッカーは、前記第１及び第２メモリのうちいずれか一つを選択し、
前記メモリコントローラは、前記第１及び第２メモリのうち前記コンディションチェッカーが選択したメモリで前記メタデータを読み込む請求項１乃至３のいずれか一項に記載のソリッドステートドライブ。
【請求項５】
前記メタデータアクセス要請は、メタデータプログラム要請であり、
前記メモリコントローラは、前記第１及び第２メモリのうち前記コンディションチェッカーが選択したメモリにメタデータをプログラムする請求項１乃至３のいずれか一項に記載のソリッドステートドライブ。
【請求項６】
前記メモリコントローラは、前記第１及び第２メモリのうち前記コンディションチェッカーが選択したメモリに先にメタデータをプログラムし、
前記第１及び第２メモリのうち前記コンディションチェッカーが選択しないメモリのコンディションがよくなると、前記コンディションチェッカーが選択しないメモリに前記メタデータをプログラムする請求項５に記載のソリッドステートドライブ。
【請求項７】
前記第２メモリは、前記メモリコントローラと互いに異なるチャネルを介して接続する第１及び第２チャネルメモリを含む請求項１に記載のソリッドステートドライブ。
【請求項８】
前記コンディションチェッカーは、前記メタデータアクセス要請に応じて、前記第１メモリ、前記第１チャネルメモリ及び前記第２チャネルメモリのコンディションをそれぞれ判断していずれか一つを選択する請求項７に記載のソリッドステートドライブ。
【請求項９】
前記第１及び第２メモリと異なる種類の第３メモリをさらに含み、
前記コンディションチェッカーは、前記メタデータアクセス要請に応じて前記第１ないし第３メモリのうち少なくとも一つを選択し、
前記メモリコントローラは、前記コンディションチェッカーが選択したメモリにアクセスする請求項１に記載のソリッドステートドライブ。
【請求項１０】
前記メタデータアクセス要請は、メタデータプログラム要請であり、
前記コンディションチェッカーは、前記第１ないし第３メモリのうちいずれか一つを除いた残りを選択し、
前記メモリコントローラは、前記コンディションチェッカーが選択したメモリにメタデータをプログラムする請求項９に記載のソリッドステートドライブ。
【請求項１１】
前記メモリコントローラは、前記第１ないし第３メモリのうち前記コンディションチェッカーが選択したメモリに先にメタデータをプログラムし、
前記第１ないし第３メモリのうち前記コンディションチェッカーが選択しないメモリのコンディションがよくなると、前記コンディションチェッカーが選択しないメモリに前記メタデータをプログラムする請求項１０に記載のソリッドステートドライブ。
【請求項１２】
前記メタデータは、セキュリティメタデータ、ファームウェアメタデータ及びデバッグメタデータのうち少なくとも一つを含む請求項１乃至１１のいずれか一項に記載のソリッドステートドライブ。
【請求項１３】
第１メタデータが保存された第１メモリと、
前記第１メタデータと同じ第２メタデータが保存され、前記第１メモリと異なる種類の第２メモリと、
前記第１及び第２メモリを制御するメモリコントローラであって、前記メモリコントローラは、前記第１及び第２メモリのコンディションを判断してより優越したコンディションのメモリを選択するコンディションチェッカーを含むメモリコントローラとを含み、
前記メモリコントローラは、ホストからメタデータ読み込み要請を受信し、前記メタデータ読み込み要請に応じて前記第１及び第２メタデータのうち前記コンディションチェッカーが選択したメモリに保存されたメタデータを読み込むソリッドステートドライブ。
【請求項１４】
前記コンディションチェッカーは、前記第１及び第２メモリの現在状態情報を受信し、前記現在状態情報に基づいて前記第１及び第２メモリのコンディションを判断し、
前記現在状態情報は、前記第１及び第２メモリの温度、Ｐ／Ｅサイクル、プログラムリテンションタイム及びイレーズリテンションタイムのうち少なくとも一つを含む請求項１３に記載のソリッドステートドライブ。
【請求項１５】
前記コンディションチェッカーは、前記第１及び第２メモリそれぞれに対する前記現在状態情報に対応する特性値が保存された特性テーブルを含む請求項１４に記載のソリッドステートドライブ。
【請求項１６】
前記コンディションチェッカーは、前記第１及び第２メモリそれぞれに対する前記現在状態情報に対応する特性パラメータを含む請求項１４に記載のソリッドステートドライブ。
【請求項１７】
ホストからメタデータ読み込み要請を受け、
互いに異なる種類の第１及び第２メモリのコンディションを判断して前記第１及び第２メモリのうちいずれか一つを選択し、
前記第１及び第２メモリのうち選択されたメモリのメタデータを読み込むことを含むソリッドステートドライブのメタデータアクセス方法。
【請求項１８】
前記ホストからメタデータプログラム要請を受け、
前記第１及び第２メモリそれぞれのコンディションを判断して前記第１及び第２メモリのうち少なくとも一つを選択し、
前記第１及び第２メモリのうち選択されたメモリに前記メタデータをプログラムすることをさらに含む請求項１７に記載のソリッドステートドライブのメタデータアクセス方法。
【請求項１９】
前記第１及び第２メモリのうち選択されたメモリに前記メタデータをプログラムした後に、前記第１及び第２メモリのうち選択されないメモリのコンディションがよくなる場合、前記メタデータを前記第１及び第２メモリのうち選択されないメモリにプログラムすることをさらに含む請求項１８に記載のソリッドステートドライブのメタデータアクセス方法。
【請求項２０】
前記第２メモリは、互いに異なるチャネルの第１及び第２チャネルメモリを含み、
前記第１及び第２メモリのコンディションを判断していずれか一つを選択することは、
前記第１メモリ、前記第１及び第２チャネルメモリそれぞれのコンディションを判断していずれか一つを選択することを含む請求項１８に記載のソリッドステートドライブのメタデータアクセス方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ソリッドステートドライブ及びそのメタデータアクセス方法に関する。
【背景技術】
【０００２】
ソリッドステートドライブ（ＳＳＤ；ｓｏｌｉｄ  ｓｔａｔｅ  ｄｒｉｖｅ）は、メモリ半導体であるＮＡＮＤフラッシュメモリ（ｎａｎｄ  ｆｌａｓｈ  ｍｅｍｏｒｙ）を用いて情報を保存するストレージ装置を意味する。ハードディスクドライブ（ＨＤＤ；ｈａｒｄ  ｄｉｓｋ  ｄｒｉｖｅ）に比べて速度が速くかつ機械的遅延や失敗率、発熱及び騒音も少なく、小型化及び軽量化できる長所がある。ハードディスクドライブとは異なり物理的な駆動装置がないため騒音がなく、データ処理速度が速い。
【０００３】
しかし、既存のソリッドステートドライブにＮＡＮＤフラッシュメモリと異種のメモリを追加して複合ソリューションを形成する新たなソリッドステートドライブが開発されている。このような複合ソリューション装置は、互いに異なるメモリの特性に応じた運営によって、よりよい動作性能を有し得る。
【発明の概要】
【発明が解決しようとする課題】
【０００４】
本発明が解決しようとする課題は、動作性能が向上したソリッドステートドライブを提供することにある。
【０００５】
本発明が解決しようとする別の課題は、動作性能が向上したソリッドステートドライブのメタデータアクセス方法を提供することにある。
【０００６】
本発明が解決しようとする課題は、以上で言及した課題に制限されず、言及されないまた別の課題は、下記記載から当業者に明確に理解されるであろう。
【課題を解決するための手段】
【０００７】
前記課題を解決するための本発明のいくつかの実施形態によるソリッドステートドライブは、互いに異なる種類の第１及び第２メモリと、前記第１及び第２メモリを制御するメモリコントローラとを含み、前記メモリコントローラは、ホストからメタデータアクセス要請を受信し、前記メタデータアクセス要請に応じて前記第１及び第２メモリのコンディションをそれぞれ判断して少なくとも一つを選択するコンディションチェッカーを含み、前記コンディションチェッカーが選択したメモリにアクセスする。
【０００８】
前記課題を解決するための本発明のいくつかの実施形態によるソリッドステートドライブは、第１メタデータが保存された第１メモリ、前記第１メタデータと同じ第２メタデータが保存され、前記第１メモリと異なる種類の第２メモリ、及び前記第１及び第２メモリを制御するメモリコントローラであって、前記メモリコントローラは、前記第１及び第２メモリのコンディションを判断してより優越したコンディションのメモリを選択するコンディションチェッカーを含むメモリコントローラを含み、前記メモリコントローラは、ホストからメタデータ読み込み要請を受信し、前記メタデータ読み込み要請に応じて前記第１及び第２メタデータのうち前記コンディションチェッカーが選択したメモリに保存されたメタデータを読み込む。
【０００９】
前記他の課題を解決するための本発明のいくつかの実施形態によるソリッドステートドライブのメタデータアクセス方法は、ホストからメタデータ読み込み要請を受け、互いに異なる種類の第１及び第２メモリのコンディションを判断して前記第１及び第２メモリのうちいずれか一つを選択し、前記第１及び第２メモリのうち選択されたメモリのメタデータを読み込むことを含む。
【図面の簡単な説明】
【００１０】
【図１】本発明のいくつかの実施形態によるソリッドステートドライブのシステムを説明するためのブロック図である。
【図２】図１のソリッドステートドライブを説明するためのブロック図である。
【図３】図２のメモリコントローラとメモリを詳細に説明するためのブロック図である。
【図４】図３のコンディションチェッカーの動作を詳細に説明するための特性テーブルの例示図である。
【図５】図３のメモリコントローラをインターフェースの観点から説明するためのブロック図である。
【図６】図３の第２メモリの構造を詳細に説明するためのブロック図である。
【図７】図６の第２メモリのメモリブロックに対する例示的な等価回路図である。
【図８】図６の第２メモリのメモリブロックに対する例示的な斜視図である。
【図９】本発明のいくつかの実施形態によるソリッドステートドライブの第２メモリのメモリブロックに対する例示的な斜視図である。
【図１０】本発明のいくつかの実施形態によるソリッドステートドライブのプログラム動作を説明するためのタイムダイヤグラムである。
【図１１】本発明のいくつかの実施形態によるソリッドステートドライブを説明するためのブロック図である。
【図１２】本発明のいくつかの実施形態によるソリッドステートドライブを説明するためのブロック図である。
【図１３】本発明のいくつかの実施形態によるソリッドステートドライブを説明するためのブロック図である。
【図１４】本発明のいくつかの実施形態によるソリッドステートドライブのプログラム動作を説明するためのタイムダイヤグラムである。
【図１５】本発明のいくつかの実施形態によるソリッドステートドライブのプログラム動作を説明するためのタイムダイヤグラムである。
【図１６】本発明のいくつかの実施形態によるソリッドステートドライブのプログラム動作を説明するためのタイムダイヤグラムである。
【図１７】本発明のいくつかの実施形態によるソリッドステートドライブのメタデータアクセス方法を説明するためのフローチャートである。
【図１８】本発明のいくつかの実施形態によるソリッドステートドライブのメタデータアクセス方法を説明するためのフローチャートである。
【発明を実施するための形態】
【００１１】
以下では、図１ないし図１０を参照して本発明のいくつかの実施形態による半導体装置について説明する。
【００１２】
図１は本発明のいくつかの実施形態によるソリッドステートドライブのシステムを説明するためのブロック図である。図１を参照すると、本発明のいくつかの実施形態によるソリッドステートドライブのシステムは、ホスト（ＨＯＳＴ）１０及びソリッドステートドライブ２０を含む。
【００１３】
ホスト１０は、ソリッドステートドライブ２０の外部でソリッドステートドライブ２０と結合され得る。ホスト１０は、ソリッドステートドライブ２０とホストインターフェースを介して接続され得る。ホスト１０は、ソリッドステートドライブ２０のデータ処理動作（例えば、プログラム（ｐｒｏｇｒａｍ）動作、イレーズ（ｅｒａｓｅ）動作及び読み込み（ｒｅａｄ）動作）を制御し得る。
【００１４】
ホスト１０は、ホストプロセッサ、集積回路（ｉｎｔｅｇｒａｔｅｄ  ｃｉｒｃｕｉｔ（ＩＣ））、マザーボード（ｍｏｔｈｅｒｂｏａｒｄ）、システムオンチップ（ｓｙｓｔｅｍ  ｏｎ  ｃｈｉｐ（ＳｏＣ））、アプリケーションプロセッサ（ａｐｐｌｉｃａｔｉｏｎ  ｐｒｏｃｅｓｓｏｒ（ＡＰ））、モバイル（ｍｏｂｉｌｅ）ＡＰ、ウェブ（ｗｅｂ）サーバ、データサーバ、またはデータベースサーバで実現できるが、これに制限されない。
【００１５】
ソリッドステートドライブ２０は、ホストインターフェースを介してホスト１０と命令及び／またはデータのやりとりをし得る。ソリッドステートドライブ２０は、フラッシュベースストレージ（ｆｌａｓｈ  ｂａｓｅｄ  ｓｔｏｒａｇｅ）で実現できるが、これに制限されない。例えば、ソリッドステートドライブ２０は、ＳＳＤ（ｓｏｌｉｄ−ｓｔａｔｅ  ｄｒｉｖｅ  ｏｒ  ｓｏｌｉｄ−ｓｔａｔｅ  ｄｉｓｋ）またはエンベデッドＳＳＤ（ｅｍｂｅｄｄｅｄ  ＳＳＤ（ｅＳＳＤ））で実現できるが、これに制限されない。
【００１６】
ホスト１０とソリッドステートドライブ２０は、互いに接続されて一つのデータ処理システムを実現できる。前記データ処理システムは、例えば、ＰＣ（ｐｅｒｓｏｎａｌ  ｃｏｍｐｕｔｅｒ）、ワークステーション（ｗｏｒｋｓｔａｔｉｏｎ）、データセンタ、インターネットデータセンタ（ｉｎｔｅｒｎｅｔ  ｄａｔａ  ｃｅｎｔｅｒ（ＩＤＣ））、ＤＡＳ（ｄｉｒｅｃｔ  ａｔｔａｃｈｅｄ  ｓｔｏｒａｇｅ）システム、ＳＡＮ（ｓｔｏｒａｇｅ  ａｒｅａ  ｎｅｔｗｏｒｋ）システム、ＮＡＳ（ｎｅｔｗｏｒｋ  ａｔｔａｃｈｅｄ  ｓｔｏｒａｇｅ）システム、ＲＡＩＤ（ｒｅｄｕｎｄａｎｔ  ａｒｒａｙ  ｏｆ  ｉｎｅｘｐｅｎｓｉｖｅ  ｄｉｓｋｓ、ｏｒ  ｒｅｄｕｎｄａｎｔ  ａｒｒａｙ  ｏｆ  ｉｎｄｅｐｅｎｄｅｎｔ  ｄｉｓｋｓ）システム、またはモバイル装置で実現できるが、これに制限されない。
【００１７】
また、前記モバイル装置は、ラップトップコンピュータ（ｌａｐｔｏｐ  ｃｏｍｐｕｔｅｒ）、携帯電話機、スマートフォン（ｓｍａｒｔ  ｐｈｏｎｅ）、タブレット（ｔａｂｌｅｔ）ＰＣ、ＰＤＡ（ｐｅｒｓｏｎａｌ  ｄｉｇｉｔａｌ  ａｓｓｉｓｔａｎｔ）、ＥＤＡ（ｅｎｔｅｒｐｒｉｓｅ  ｄｉｇｉｔａｌ  ａｓｓｉｓｔａｎｔ）、デジタルスチルカメラ（ｄｉｇｉｔａｌ  ｓｔｉｌｌ  ｃａｍｅｒａ）、デジタルビデオカメラ（ｄｉｇｉｔａｌ  ｖｉｄｅｏ  ｃａｍｅｒａ）、ＰＭＰ（ｐｏｒｔａｂｌｅ  ｍｕｌｔｉｍｅｄｉａ  ｐｌａｙｅｒ）、ＰＮＤ（ｐｅｒｓｏｎａｌ  ｎａｖｉｇａｔｉｏｎ  ｄｅｖｉｃｅまたはｐｏｒｔａｂｌｅ  ｎａｖｉｇａｔｉｏｎ  ｄｅｖｉｃｅ）、携帯型ゲーム機コンソール（ｈａｎｄｈｅｌｄ  ｇａｍｅ  ｃｏｎｓｏｌｅ）、モバイルインターネット装置（ｍｏｂｉｌｅ  ｉｎｔｅｒｎｅｔ  ｄｅｖｉｃｅ（ＭＩＤ））、ウェアラブルコンピュータ、モノのインターネット（ｉｎｔｅｒｎｅｔ  ｏｆ  ｔｈｉｎｇｓ（ＩｏＴ））装置、ＩｏＥ（ｉｎｔｅｒｎｅｔ  ｏｆ  ｅｖｅｒｙｔｈｉｎｇ（ＩｏＥ））装置、ドローン（ｄｒｏｎｅ）、またはｅ−プック（ｅ−ｂｏｏｋ）で実現できるが、これに制限されない。
【００１８】
図２は図１のソリッドステートドライブを説明するためのブロック図である。図２を参照すると、本発明のいくつかの実施形態によるソリッドステートドライブは、ホストインターフェース３００、プロセッシングコア１００、揮発性メモリ（Ｖｏｌａｔｉｌｅ  Ｍｅｍｏｒｙ）２００、パワーコントロールモジュール（Ｐｏｗｅｒ  Ｃｏｎｔｒｏｌ  Ｍｏｄｕｌｅ）４００、メモリコントローラ（Ｍｅｍｏｒｙ  Ｃｏｎｔｒｏｌｌｅｒ）５００及び不揮発性メモリ６００を含む。
【００１９】
ホストインターフェース３００は、ホスト１０とソリッドステートドライブ２０との間の命令及び／またはデータの伝送経路であり得る。実施形態によって、ホストインターフェース３００は、ＳＡＴＡ（ｓｅｒｉａｌ  ａｄｖａｎｃｅｄ  ｔｅｃｈｎｏｌｏｇｙ  ａｔｔａｃｈｍｅｎｔ）インターフェース、ＳＡＴＡｅ（ＳＡＴＡ  ｅｘｐｒｅｓｓ）インターフェース、ＳＡＳ（ｓｅｒｉａｌ  ａｔｔａｃｈｅｄ  ｓｍａｌｌ  ｃｏｍｐｕｔｅｒ  ｓｙｓｔｅｍ  ｉｎｔｅｒｆａｃｅ（ＳＣＳＩ））インターフェース、ＰＣＩｅ（ｐｅｒｉｐｈｅｒａｌ  ｃｏｍｐｏｎｅｎｔ  ｉｎｔｅｒｃｏｎｎｅｃｔ  ｅｘｐｒｅｓｓ）インターフェース、ＮＶＭｅ（ｎｏｎ−ｖｏｌａｔｉｌｅ  ｍｅｍｏｒｙ  Ｅｘｐｒｅｓｓ）インターフェース、ＡＨＣＩ（ａｄｖａｎｃｅｄ  ｈｏｓｔ  ｃｏｎｔｒｏｌｌｅｒ  ｉｎｔｅｒｆａｃｅ）インターフェース、またはマルチメディアカード（ｍｕｌｔｉｍｅｄｉａ  ｃａｒｄ（ＭＭＣ））インターフェースで実現できるが、これに制限されない。
【００２０】
実施形態によって、ホストインターフェース３００は、電気信号または光信号を伝送し得る。
【００２１】
プロセッシングコア１００は、ソリッドステートドライブ２０内でソリッドステートドライブ２０の動作を行い得る。具体的に、ホスト１０によって伝送されるデータ処理命令に対する作業及び不揮発性メモリ６００のリフレッシュ作業などを行い得る。
【００２２】
プロセッシングコア１００は、第１コア（ｃｏｒｅ  １）１０１及び第２コア１０２（ｃｏｒｅ  ２）を含み得る。第１コア１０１と第２コア１０２は、互いに同種のコアであってもよいし、互いに異なる異種のコアであってもよい。第１コア１０１及び第２コア１０２は、複数の作業を分けて行い得る。
【００２３】
図２においてプロセッシングコア１００は、第１コア１０１及び第２コア１０２の２個で示すが、これに制限されない。本発明のいくつかの実施形態ではプロセッシングコアの個数が１個であるか、３個以上であり得る。
【００２４】
揮発性メモリ２００は、プロセッシングコア１００とともにデータ処理命令に対する作業及び不揮発性メモリ６００のリフレッシュ作業を行い得る。揮発性メモリ２００は、例えば、ＤＲＡＭ（Ｄｙｎａｍｉｃ  ｒａｎｄｏｍ  ａｃｃｅｓｓ  ｍｅｍｏｒｙ）であり得る。揮発性メモリ２００は、前記作業を行うためのバッファーメモリの役割を行い得る。
【００２５】
パワーコントロールモジュール（ｐｏｗｅｒ  ｃｏｎｔｒｏｌ  ｍｏｄｕｌｅ）４００は、ソリッドステートドライブ２０に供給される電力を制御し得る。パワーコントロールモジュール４００は、ホスト（図１の１０）から電力を供給され、これを制御し得る。またはパワーコントロールモジュール４００は、内部に位置したバッテリから電力を供給され得る。
【００２６】
メモリコントローラ５００は、不揮発性メモリ６００を制御し得る。メモリコントローラ５００は、ホスト（図１の１０）からの要請を受けて不揮発性メモリ６００にアクセスし得る。これによって、メモリコントローラ５００は、不揮発性メモリ６００に与えられる命令及び／またはデータの伝送または処理を制御し得る。
【００２７】
具体的に、メモリコントローラ５００は、不揮発性メモリ６００にプログラム動作、読み込み動作及びイレーズ動作を行い得る。メモリコントローラ５００については詳細に後述する。
【００２８】
不揮発性メモリ６００は、ホストの要請に応じて内部にデータをプログラムするか内部に保存されたデータを読み込みさせる。不揮発性メモリ６００は、第１メモリ６１０と第２メモリ６２０とを含み得る。
【００２９】
第１メモリ６１０及び第２メモリ６２０は、互いに異なる種類であり得る。例えば、第１メモリ６１０及び第２メモリ６２０は、それぞれＰＲＡＭ（Ｐｈａｓｅ−ｃｈａｎｇｅ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）、ＲＲＡＭ（登録商標（Ｒｅｓｉｓｔｉｖｅ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ））、ＭＲＡＭ（Ｍａｇｎｅｔｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）及びＮＡＮＤフラッシュメモリ（ＮＡＮＤ  ｆｌａｓｈ  ｍｅｍｏｒｙ）のうちいずれか一つであり得る。便宜上、以下では第１メモリ６１０がＰＲＡＭであり、第２メモリ６２０がＮＡＮＤフラッシュメモリであると仮定する。
【００３０】
図２において第１メモリ６１０は、第１チャネルＣｈ１に接続され、第２メモリ６２０は、複数であり、第２チャネルＣｈ２、第３チャネルＣｈ３及び第４チャネルＣｈ４に接続され得る。すなわち、第２メモリ６２０は、第２チャネルＣｈ２に接続される第１チャネルメモリ６２１、第３チャネルＣｈ３に接続される第２チャネルメモリ６２２及び第４チャネルＣｈ４に接続される第３チャネルメモリ６２３を含み得る。
【００３１】
この時、図２の構成は、一つの例示にほかならず、メモリはいくらでも他の形態で配置され得る。すなわち、第１メモリ６１０が複数で複数のチャネルに接続されてもよく、第２メモリ６２０が単数で一つのチャネルに接続されてもよい。また、全体メモリの数は制限されない。
【００３２】
上述したように、第２メモリ６２０は、３次元ＮＡＮＤフラッシュメモリアレイを含み得る。第２メモリ６２０は、シリコン基板及びメモリセルの動作に関連した回路の上に配置される活性領域を有するメモリセルのアレイの一つまたはそれ以上の物理レベルにモノリシックに（ｍｏｎｏｌｉｔｈｉｃａｌｌｙ）形成され得る。メモリセルの動作に関連した回路は、基板内にまたは基板上に位置し得る。モノリシック（ｍｏｎｏｌｉｔｈｉｃａｌｌｙ）という用語は、３次元アレイの各レベルの層が３次元アレイの下位レベルの層上に直接堆積されることを意味する。
【００３３】
本発明の技術的思想による例示的な実施形態として、３次元メモリアレイは、垂直の方向性を有し、少なくとも一つのメモリセルが異なる一つのメモリセル上に位置する垂直ＮＡＮＤストリングを含む。少なくとも一つのメモリセルは、電荷トラップ層を含む。それぞれの垂直ＮＡＮＤストリングは、メモリセル上に位置する少なくとも一つの選択トランジスタを含み得る。少なくとも一つの選択トランジスタは、メモリセルと同じ構造を有し得、メモリセルとともにモノリシックに形成され得る。これについては詳細に後述する。
【００３４】
システムバス７００が、ホストインターフェース３００と、揮発性メモリ２００と、プロセッシングコア１００と、不揮発性メモリ６００と接続されたメモリコントローラ５００と、パワーコントロールモジュール４００との間を接続し得る。すなわち、データ及び要請の移動は、システムバス７００を介して行われる。
【００３５】
図３は図２のメモリコントローラとメモリを詳細に説明するためのブロック図であり、図４は図３のコンディションチェッカーの動作を詳細に説明するための特性テーブルの例示図である。
【００３６】
図３を参照すると、メモリコントローラ５００は、フラッシュ変換レイヤ（ｆｌａｓｈ  ｔｒａｎｓｌａｔｉｏｎ  ｌａｙｅｒ）５１０、コンディションチェッカー（ｃｏｎｄｉｔｉｏｎ  ｃｈｅｃｋｅｒ）５２０及び特性テーブル５３０（ｃｈａｒａｃｔｅｒｉｓｔｉｃ  ｔａｂｌｅ）を含み得る。
【００３７】
フラッシュ変換レイヤ５１０は、ホスト（図１の１０）からのデータアクセス要請に応じて、論理アドレスを物理アドレスに変換して不揮発性メモリ６００に提供し得る。
【００３８】
また、フラッシュ変換レイヤ５１０は、不揮発性メモリ６００の多様なセル領域（例えば、チップ単位、ブロック単位及びページ単位など）に対する管理動作を行い得る。例えば不揮発性メモリ６００の多数のブロックに対するガーベッジコレクション及びバッドブロック管理動作を行い得る。
【００３９】
また、フラッシュ変換レイヤ５１０は、ウェアレベリング（ｗｅａｒ  ｌｅｖｅｌｉｎｇ）を行い得る。ウェアレベリングとはＮＡＮＤフラッシュメモリのセル間の作業を分散させることを意味する。ＮＡＮＤフラッシュメモリのセルは過度に頻繁にプログラム及びイレーズ過程を経る場合、使用不可能状態（ｗｅａｒｉｎｇ  ｏｆｆ）になる。したがって、ＮＡＮＤフラッシュメモリのセル間の作業を分散して各ブロックがＰ／Ｅサイクル（ｐｒｏｇｒａｍ／ｅｒａｓｅ  ｃｙｃｌｅ）の限界に同時に到達するようにすることである。
【００４０】
コンディションチェッカー５２０は、各メモリのコンディションをチェックし得る。すなわち、コンディションチェッカー５２０は、第１メモリ６１０及び第２メモリ６２０の現在のコンディションがいかなる状態であるか判断し得る。
【００４１】
第１メモリ６１０及び第２メモリ６２０は、それぞれ同じメタデータを含み得る。すなわち、第１メモリ６１０は、第１メタデータＭＤ１を保存し、第２メモリ６２０は、第２メタデータＭＤ２を保存し得る。
【００４２】
第１メタデータＭＤ１及び第２メタデータＭＤ２は、互いに同じ内容を有するミラー（ｍｉｒｒｏｒ）データとし得る。メタデータは、ソリッドステートドライブ２０の初期駆動のための重要なデータであり得る。すなわち、メタデータは、セキュリティ認証のためのデータ、ファームウェアの初期駆動のためのデータ及びファームウェアデバッグのためのデータを含み得る。
【００４３】
本発明のいくつかの実施形態によるソリッドステートドライブ２０は、このようなメタデータをミラーリングして互いに異なる種類のメモリに保存することで、メタデータの損傷に備える。
【００４４】
メモリコントローラ５００は、ホスト１０から前記メタデータアクセス要請すなわち、前記メタデータ読み込み要請が来るとこれを受信し、これに応じて、コンディションチェッカー５２０が第１メモリ６１０と第２メモリ６２０のうちどのメモリがよりコンディションが優越するかを判断し得る。
【００４５】
コンディションチェッカー５２０は、第１メモリ６１０の現在コンディションを判断し、第２メモリ６２０の現在コンディションを判断し得る。コンディションチェッカー５２０は、第１メモリ６１０のコンディションと第２メモリ６２０のコンディションとを比べてよりよいコンディションを有するメモリを選択し得る。
【００４６】
コンディションチェッカー５２０のメモリコンディションの比較方法は、多様である。例えば、コンディションチェッカー５２０は、特性テーブル５３０を参照し得る。図３において特性テーブル５３０は、コンディションチェッカー５２０の外部に位置する場合を示すが、これに制限されない。すなわち、特性テーブル５３０は、コンディションチェッカー５２０の内部に位置してもよく、最初からメモリコントローラ５００の外部の他のメモリに保存されていてもよい。すなわち、特性テーブル５３０の位置は、コンディションチェッカー５２０が参照できれば、特に制限されない。
【００４７】
特性テーブル５３０は、第１メモリ６１０に対する特性テーブルと第２メモリ６２０に対する特性テーブルとを含み得る。特性テーブル５３０は状態値（Ｓｔａｔｕｓ  ｖａｌｕｅ）に対応するコンディション点数（Ｃｏｎｄｉｔｉｏｎ  ｐｏｉｎｔ）を含み得る。
【００４８】
前記状態値は、現在メモリの状態に対する値であり得る。前記状態値は、例えば、温度、Ｐ／Ｅサイクル、プログラムリテンションタイム及びイレーズリテンションタイムのうち少なくとも一つであり得る。ただし、本実施形態はこれに制限されず、ほかの状態値に対するコンディション点数が特性テーブル５３０に保存され得る。
【００４９】
温度は、高い温度ではＰＲＡＭよりはＮＡＮＤフラッシュメモリのコンディションがさらによい。第１メモリ６１０がＰＲＡＭであり、第２メモリ６２０がＮＡＮＤフラッシュメモリである場合は、コンディションチェッカー５２０は高い温度で第２メモリ６２０により高い点数を与えてもよい。
【００５０】
すなわち、第１メモリ６１０の前記状態値はｔ１〜ｔ４のうちｔ２であり、これに対するコンディション点数はａ２であり得る。これに対して、第２メモリ６２０の前記状態値はｔ３であり、これに対するコンディション点数はａ１〜ａ４とは異なるｂ１〜ｂ４でｂ３であり得る。この時、ｂ１〜ｂ４はａ１〜ａ４とは異なる値であり得る。これはＰＲＡＭとＮＡＮＤフラッシュメモリの特性差に起因し得る。
【００５１】
Ｐ／Ｅサイクルは、ＮＡＮＤフラッシュメモリがＰ／Ｅサイクルが大きくなるほど信頼度が劣化するので、これを反映したコンディション点数が特性テーブル５３０に保存され得る。プログラムリテンションタイムは、最も最近プログラムされた後に放置された時間を意味し、イレーズリテンションタイムは、最も最近イレーズされた後に放置された時間を意味する。プログラムリテンションタイム及びイレーズリテンションタイムが大きくなる場合、ＮＡＮＤフラッシュメモリのセル内の電子／正孔の作用によってＮＡＮＤフラッシュメモリの分布が広くなる。すなわち、プログラムリテンションタイムまたはイレーズリテンションタイムが大きいほどＮＡＮＤフラッシュメモリである第２メモリ６２０の信頼度は低くなる。
【００５２】
特性テーブル５３０は、上述した特性を反映したそれぞれの前記状態値に対応したコンディション点数を保存し得る。コンディションチェッカー５２０は、第１メモリ６１０及び第２メモリ６２０からそれぞれ現在状態情報を受信し得る。この時、前記現在状態情報は、前記状態値を含み得る。
【００５３】
前記状態値は複数で適用され得る。例えば、温度とＰ／Ｅサイクルとをすべて考慮した場合は、温度によるコンディション点数とＰ／Ｅサイクルによるコンディション点数とを合算して第１メモリ６１０と第２メモリ６２０のコンディション点数を比べ得る。
【００５４】
コンディションチェッカー５２０は、第１メモリ６１０と第２メモリ６２０のうちより高いコンディション点数を有するメモリを選択し得る。すなわち、コンディションチェッカー５２０は、異種メモリのうちよりよいコンディションを有するメモリを選択し得る。
【００５５】
メモリコントローラ５００は、ホスト（図１の１０）のメタデータ読み込み要請に対応してコンディションチェッカー５２０が選択したメモリのメタデータを読み込む。すなわち、コンディションチェッカー５２０が第１メモリ６１０を選択した場合、メモリコントローラ５００は、第１メモリ６１０の第１メタデータＭＤ１を読み込み、これとは異なり、コンディションチェッカー５２０が第２メモリ６２０を選択した場合、メモリコントローラ５００は、第２メモリ６２０の第２メタデータＭＤ２を読み込む。
【００５６】
本実施形態はこれによって、よりよいコンディションにあるメタデータにアクセスし得、ソリッドステートドライブ２０の動作性能及び信頼性を大きく向上させ得る。
【００５７】
図５は図３のメモリコントローラをインターフェースの観点から説明するためのブロック図である。図５を参照すると、メモリコントローラ５００のボリュームインターフェース（Ｖｏｌｕｍｅ  Ｉｎｔｅｒｆａｃｅ）５０１を含み得る。ボリュームインターフェース５０１は、セキュリティボリューム（Ｓｅｃｕｒｉｔｙ  Ｖｏｌｕｍｅ）５０２、ファームウェアボリューム（Ｆ／Ｗ  Ｖｏｌｕｍｅ）５０３、デバッグボリューム（Ｄｅｂｕｇ  Ｖｏｌｕｍｅ）５０４及びユーザボリューム（Ｕｓｅｒ  Ｖｏｌｕｍｅ）５０５を含み得る。
【００５８】
セキュリティボリューム５０２は、ソリッドステートドライブ２０のセキュリティ認証のための領域であり得る。ファームウェアボリューム５０３は、ソリッドステートドライブ２０のファームウェア駆動のための領域であり得る。デバッグボリューム５０４は、ソリッドステートドライブ２０のデバッグのための領域であり得る。ユーザボリューム５０５は、ユーザーが直接使用するための領域であり得る。
【００５９】
このような領域は、結局、第１メモリ６１０や第２メモリ６２０のうちいずれか一つでアクセスされなければならないが、ダイナミックセレクタ（Ｄｙｎａｍｉｃ  Ｓｅｌｅｃｔｏｒ）５０６によって第１メモリ６１０と第２メモリ６２０のうちいずれか一つが選択されてアクセスされ得る。ダイナミックセレクタ５０６は、図３のコンディションチェッカー５２０の動作に応じて選択的なアクセスを可能にし得る。
【００６０】
第１メモリ６１０がＰＲＡＭであり、第２メモリ６２０がＮＡＮＤフラッシュメモリであるため、第１メモリ６１０アクセスのためのＰＲＡＭインターフェース（ＰＲＡＭ  Ｉｎｔｅｒｆａｃｅ）５０７と第２メモリ６２０アクセスのためのＮＡＮＤインターフェース（ＮＡＮＤ  Ｉｎｔｅｒｆａｃｅ）５０８とが存在し得る。
【００６１】
ＰＲＡＭインターフェース５０７は、第１メモリ６１０へのアクセスを可能にし、ＮＡＮＤインターフェース５０８は、第２メモリ６２０へのアクセスを可能にし得る。
【００６２】
以下、図６ないし図８を参照して本発明のいくつかの実施形態によるソリッドステートドライブ２０の第２メモリ６２０を構成するＮＡＮＤフラッシュメモリの構造について詳細に説明する。
【００６３】
図６は図３の第２メモリの構造を詳細に説明するためのブロック図であり、図７は図６の第２メモリのメモリブロックに対する例示的な等価回路図である。図８は図６の第２メモリのメモリブロックに対する例示的な斜視図である。
【００６４】
図６は、便宜上第２メモリ６２０のうち第１チャネルメモリ６２１のみを示した。第２チャネルメモリ６２２及び第３チャネルメモリ６２３も第１チャネルメモリ６２１と同一ないし類似の構造を有し得る。
【００６５】
図６を参照すると、第１チャネルメモリ６２１は、複数のメモリブロック（ＢＬＫ１〜ＢＬＫｚ、ｚは２以上の整数）を含む。複数のメモリブロック（ＢＬＫ１〜ＢＬＫｚ）それぞれは、複数のページ（Ｐａｇｅ１〜Ｐａｇｅｍ、ｍは２以上の整数）を含む。
【００６６】
図７を参照すると、メモリブロック（ＢＬＫ）は、複数のビット線（ＢＬ１〜ＢＬｎ、ｎは２以上の整数）に接続されたストリング（Ｓｔｒｉｎｇ）を含む。ここでストリングそれぞれは、ビット線と共通ソース線（ｃｏｍｍｏｎ  ｓｏｕｒｃｅ  ｌｉｎｅ；ＣＳＬ）との間に直列接続された少なくとも一つのストリング選択トランジスタＳＳＴ、複数のメモリセル（ＭＣ１〜ＭＣｍ、ｍは２以上の整数）、少なくとも一つの接地選択トランジスタＧＳＴを含む。
【００６７】
メモリセル（ＭＣ１〜ＭＣｍ）それぞれは、少なくとも一ビットのデータを保存し得る。図面に示していないが、ストリング（Ｓｔｒｉｎｇ）それぞれはストリング選択トランジスタＳＳＴとメモリセル（ＭＣ１〜ＭＣｍ）との間の少なくとも一つのダミーセルと、メモリセル（ＭＣ１〜ＭＣｍ）と接地選択トランジスタＧＳＴとの間の少なくとも一つのダミーセルをさらに含み得る。
【００６８】
図８を参照すると、基板上に４個のサブブロックが形成される。それぞれのサブブロックは、基板上にワード線カット（ＷＬ  ｃｕｔ）の間に少なくとも一つの接地選択線ＧＳＬ、複数のワード線ＷＬｓ、少なくとも一つのストリング選択線ＳＳＬが板形態で積層されることによって形成される。ここで、少なくとも一つのストリング選択線ＳＳＬは、ストリング選択線カット（Ｓｔｒｉｎｇ  Ｃｕｔ）により分離される。一方、図８ではストリング選択線カットが存在するが、本発明のメモリブロックはここに制限されない。本発明のメモリブロック（ＢＬＫａ）は、ストリング選択線カットが存在しないように実現され得る。
【００６９】
第１方向１ｓｔと第２方向２ｎｄは、互いに交差し、第３方向３ｒｄは、第１方向１ｓｔ及び第２方向２ｎｄと交差し得る。第１方向１ｓｔ、第２方向２ｎｄ及び第３方向３ｒｄは、例えば、互いに直交するオルトゴナル（ｏｒｔｈｏｇｏｎａｌ）な方向であり得る。
【００７０】
接地選択線ＧＳＬ、ワード線ＷＬｓ及びストリング選択線ＳＳＬは、第２方向２ｎｄに延在され、ワード線カットとストリング選択線カットとによって第１方向１ｓｔに互いに離隔し得る。また、接地選択線ＧＳＬとワード線ＷＬｓとストリング選択線ＳＳＬは、順次に第３方向３ｒｄに積層され得る。
【００７１】
本発明のいくつかの実施形態において、接地選択線ＧＳＬとワード線ＷＬｓとの間に少なくとも一つのダミーワード線が板形態で積層されるか、ワード線ＷＬｓとストリング選択線ＳＳＬとの間に少なくとも一つのダミーワード線が板形態で積層され得る。
【００７２】
それぞれのワード線カットは、図面に示していないが、共通ソース線（ｃｏｍｍｏｎ  ｓｏｕｒｃｅ  ｌｉｎｅ：  ＣＳＬ）を含む。実施形態において、それぞれのワード線カットに含まれた共通ソース線ＣＳＬは共通に接続する。ビット線に接続されたピラー（ｐｉｌｌａｒ）が少なくとも一つの接地選択線ＧＳＬ、複数のワード線ＷＬｓ、少なくとも一つのストリング選択線ＳＳＬを貫くことでストリングが形成される。
【００７３】
図８ではワード線カット間の対象をサブブロックで示したが、本発明は必ずしもこれに制限されるわけではない。本発明のサブブロックは、ワード線カットとストリング選択線カットとの間の対象をサブブロックと名付ける。
【００７４】
本発明の実施形態によるブロック（ＢＬＫａ）は、二つのワード線が一つに併合された構造、他の言葉でいえばワード線併合構造（ｍｅｒｇｅｄ  ｗｏｒｄｌｉｎｅ  ｓｔｒｕｃｔｕｒｅ）で実現できる。
【００７５】
図９は本発明のいくつかの実施形態によるソリッドステートドライブの第２メモリのメモリブロックに対する例示的な斜視図である。
【００７６】
図９のブロックＢＬＫｂ構造は、図８のブロック（ＢＬＫａ）構造と異なる。図９を参照すると、メモリブロックＢＬＫｂは、説明の便宜上、ワード線の層数が４である場合を示したが、これに制限されない。メモリブロックＢＬＫｂは、隣接した直列接続されたメモリセルの下端をパイプで連結するＰＢｉＣＳ（ｐｉｐｅ−ｓｈａｐｅｄ  ｂｉｔ  ｃｏｓｔ  ｓｃａｌａｂｌｅ）構造で実現できる。
【００７７】
メモリブロックＢＬＫｂは、ｍ×ｎ（ｍ、ｎは自然数）のストリングＮＳを含む。図９ではｍ＝６、ｎ＝２を示している。各ストリングＮＳは、直列接続されたメモリセルＭＣ１〜ＭＣ８を含む。ここで、メモリセルＭＣ１〜ＭＣ８の第１上端は、ストリング選択トランジスタＳＳＴに接続され、メモリセルＭＣ１〜ＭＣ８の第２上端は、接地選択トランジスタＧＳＴに接続され、メモリセルＭＣ１〜ＭＣ８の下端はパイプに接続される。
【００７８】
ワード線ＷＬ１〜ＷＬ８は第１方向１ｓｔに延在され、ストリングＮＳは第２方向に延在され得る。ワード線ＷＬ１〜ＷＬ８とストリングＮＳは、第３方向３ｒｄに互いに離隔し得る。
【００７９】
ストリングＮＳを構成するメモリセルは、複数の半導体層に積層されることによって形成される。各ストリングＮＳは、第１ピラーＰＬ１１、第２ピラーＰＬ１２、第１ピラーＰＬ１１及び第２ピラーＰＬ１２を連結するピラー連結部ＰＬ１３を含む。第１ピラーＰＬ１１は、ビット線（例えば、ＢＬ１）とピラー連結部ＰＬ１３に接続され、ストリング選択線ＳＳＬ、ワード線ＷＬ５〜ＷＬ８の間を貫くことによって形成される。第２ピラーＰＬ１２は、共通ソース線ＣＳＬとピラー連結部ＰＬ１３に接続され、接地選択線ＧＳＬ、ワード線ＷＬ１〜ＷＬ４の間を貫くことによって形成される。図９に示すように、ストリングＮＳは、Ｕ字型ピラー形態で実現される。
【００８０】
この時、第１ピラーＰＬ１１及び第２ピラーＰＬ１２は、第３方向に延在され、ピラー連結部ＰＬ１３は、第２方向２ｎｄに連結され得る。
【００８１】
本発明のいくつかの実施形態において、バックゲートＢＧは基板上に形成され、バックゲートＢＧの内部にピラー連結部ＰＬ１３が実現され得る。実施形態において、バックゲートＢＧは、ブロックＢＬＫｂに共通して存在し得る。バックゲートＢＧは、他のブロックのバックゲートと互いに分離された構造であり得る。
【００８２】
図１０は本発明のいくつかの実施形態によるソリッドステートドライブのプログラム動作を説明するためのタイムダイヤグラムである。
【００８３】
図３及び図１０を参照すると、本発明のいくつかの実施形態によるソリッドステートドライブ２０のプログラムする方法は、読み込む方法とは異なり得る。
【００８４】
メモリコントローラ５００は、ホスト（図１の１０）からメタデータプログラム要請を受信する。メモリコントローラ５００がメタデータプログラム要請を受信する場合、コンディションチェッカー５２０は、第１メモリ６１０と第２メモリ６２０のコンディションをチェックする。
【００８５】
コンディションチェッカー５２０は、上述した方式と同様に第１メモリ６１０と第２メモリ６２０のうちよりよいコンディションを有するメモリを選択し得る。これによって、メモリコントローラ５００は、コンディションチェッカー５２０が選択したメモリに先にメタデータをプログラムする。
【００８６】
コンディションチェッカー５２０が第１メモリ６１０を選択したと仮定すれば、メモリコントローラ５００は、第１時点ｔ１に第１メタデータＭＤ１を第１メモリ６１０にプログラムする。
【００８７】
メモリコントローラ５００は、第１メタデータＭＤ１がプログラムされた時点に直ちに、第２メタデータＭＤ２を、コンディションチェッカー５２０が選択しない第２メモリ６２０にプログラムしないとし得る。
【００８８】
コンディションチェッカー５２０は、コンディションチェッカー５２０が選択しない第２メモリ６２０のコンディションを動的にチェックしてコンディションが第１時点ｔ１よりよくなる第２時点ｔ２に第２メタデータＭＤ２を第２メモリ６２０にプログラムする。第２時点ｔ２は、第１時点ｔ１以後の時点とし得る。
【００８９】
この時、コンディションがよくなる時点は、コンディションチェッカー５２０が特性テーブル５３０を参照して導出したコンディション点数があらかじめ設定された特定数値以上である時を意味する。
【００９０】
時点は異なるが、第１メタデータＭＤ１と第２メタデータＭＤ２は、互いにミラーリングされた同じ内容のデータであり得る。これは、後にメタデータの読み込み時によりよいコンディションのメモリでメタデータを読み込むことができるようにメタデータを重複して保存するためであり得る。
【００９１】
以下、図１１を参照して本発明のいくつかの実施形態によるソリッドステートドライブについて説明する。上述した説明と重複する部分は、省略または簡略化する。
【００９２】
図１１は本発明のいくつかの実施形態によるソリッドステートドライブを説明するためのブロック図である。図１１を参照すると、本発明のいくつかの実施形態によるソリッドステートドライブは、第１チャネルメモリ６２１だけでなく、第２チャネルメモリ６２２及び第３チャネルメモリ６２３にもそれぞれミラーリングされたメタデータが存在し得る。
【００９３】
具体的に、第３チャネルＣｈ３に接続された第２チャネルメモリ６２２には第３メタデータＭＤ３が保存され、第４チャネルＣｈ４に接続された第３チャネルメモリ６２３には第４メタデータＭＤ４が保存され得る。
【００９４】
これによって、コンディションチェッカー５２０は、単に第１メモリ６１０と第２メモリ６２０とのコンディション点数を比べるものではなく、第１メモリ６１０と、第１チャネルメモリ６２１と、第２チャネルメモリ６２２と、第３チャネルメモリ６２３とをともに比べていずれか一つを選択し得る。
【００９５】
ここで、第１メタデータＭＤ１、第２メタデータＭＤ２、第３メタデータＭＤ３及び第４メタデータＭＤ４は、いずれも同じ内容を有するミラーリングされたメタデータとし得る。
【００９６】
本実施形態によるソリッドステートドライブ２０は、互いに異なるチャネルの同種のメモリでも温度、ＰＥサイクル、プログラムリテンションタイム、イレーズリテンションタイムのような状態値が異なり得るので、同種のメモリでも最もコンディションがよいメモリを選択してメタデータを読み込む。
【００９７】
これによって、メタデータが損傷されず、読み込まれてソリッドステートドライブ２０の全体的な動作性能が大きく向上し得る。
【００９８】
以下、図１２を参照して本発明のいくつかの実施形態によるソリッドステートドライブについて説明する。上述した説明と重複する部分は、省略または簡略化する。
【００９９】
図１２は本発明のいくつかの実施形態によるソリッドステートドライブを説明するためのブロック図である。図１２を参照すると、本発明のいくつかの実施形態によるソリッドステートドライブのメモリコントローラ５００は、特性パラメータ５３１を含み得る。
【０１００】
特性パラメータ５３１は、第１メモリ６１０に対する特性パラメータと第２メモリ６２０に対する特性パラメータとを含み得る。特性パラメータ５３１は状態値に乗じられるパラメータであり得る。
【０１０１】
例えば、コンディションチェッカーは、ｙ＝ａ１Ｘ１＋ａ２Ｘ２＋ａ３Ｘ３のような数式を用い得る。ここで、ｙはコンディション点数であり、Ｘ１、Ｘ２、Ｘ３はそれぞれ温度の状態値、Ｐ／Ｅサイクルの状態値及びプログラムリテンションタイムの状態値であり得る。ａ１、ａ２、ａ３はそれぞれＸ１、Ｘ２、Ｘ３に対するパラメータであり、特性パラメータ５３１に保存され得る。
【０１０２】
前記パラメータは、各メモリごとに保存されてコンディションチェッカー５２０が各メモリのコンディション点数を導出するのに用いられる。
【０１０３】
この時、前記数式は、前記のような１次式ではなく、より高い次数を有する多項式であってもよい。これは、メモリ特性を考慮して適切に変形し得る。例えば、特定状態値に対しては１次項を用いるが、他の状態値に対しては２次項を用いることも可能である。
【０１０４】
以下、図１３を参照して本発明のいくつかの実施形態によるソリッドステートドライブについて説明する。上述した説明と重複する部分は省略または簡略化する。
【０１０５】
図１３は本発明のいくつかの実施形態によるソリッドステートドライブを説明するためのブロック図である。図１３を参照すると、本発明のいくつかの実施形態によるソリッドステートドライブは、第３メモリ６３０をさらに含み得る。
【０１０６】
第３メモリ６３０は、第１メモリ６１０及び第２メモリ６２０と異なる種類のメモリであり得る。第１メモリ６１０がＰＲＡＭであり、第２メモリ６２０がＮＡＮＤフラッシュメモリである場合、第３メモリ６３０はＲＲＡＭであり得る。
【０１０７】
第３メモリ６３０は、第５チャネルＣｈ５を介してメモリコントローラ５００と接続され得る。第３メモリ６３０は、第１メタデータＭＤ１及び第２メタデータＭＤ２がミラーリングされた第５メタデータＭＤ５を含み得る。すなわち、第５メタデータＭＤ５は、第１メタデータＭＤ１及び第２メタデータＭＤ２と同じ内容を有するメタデータとし得る。
【０１０８】
コンディションチェッカー５２０は、第１メモリ６１０、第２メモリ６２０及び第３メモリ６３０のコンディション点数をそれぞれ導出し得る。
【０１０９】
コンディションチェッカー５２０は、特性テーブル５３０を参照し得る。特性テーブル５３０は、第１メモリ６１０、第２メモリ６２０及び第３メモリ６３０に対する特性テーブルを別途含み得る。
【０１１０】
コンディションチェッカー５２０は、第１メモリ６１０、第２メモリ６２０及び第３メモリ６３０それぞれのコンディション点数を比べて最もよいコンディションのメモリを選択し得る。
【０１１１】
これによって、メモリコントローラ５００は、コンディションチェッカー５２０が選択したメモリのメタデータを読み込む。
【０１１２】
本実施形態によるソリッドステートドライブは、互いに異なる３個の種類のメモリのコンディションをそれぞれ比べて最もよいメモリのメタデータを読み込む。これによって、さらに安定的でかつ信頼度の高いソリッドステートドライブを提供できる。
【０１１３】
図１３において、３種類のメモリを示したが、本実施形態はこれに制限されない。すなわち、本発明のいくつかの実施形態によるソリッドステートドライブは、４種類以上のメモリを含み得、これらのコンディションをそれぞれ判断してコンディションが最もよいメモリを選択し得る。
【０１１４】
以下、図１、図１３及び図１４を参照して本発明のいくつかの実施形態によるソリッドステートドライブについて説明する。上述した説明と重複する部分は省略または簡略化する。
【０１１５】
図１４は本発明のいくつかの実施形態によるソリッドステートドライブのプログラム動作を説明するためのタイムダイヤグラムである。
【０１１６】
図１、図１３及び図１４を参照すると、本発明のいくつかの実施形態によるソリッドステートドライブのプログラム方法は、最もコンディションがよくないメモリを除いた残りのメモリを先にプログラムする。
【０１１７】
メモリコントローラ５００は、ホスト１０からメタデータプログラム要請を受信し、コンディションチェッカー５２０は、第１メモリ６１０、第２メモリ６２０及び第３メモリ６３０のコンディションをチェックする。
【０１１８】
コンディションチェッカー５２０は、上述した方式と同様に第１メモリ６１０、第２メモリ６２０及び第３メモリ６３０のうちよりよいコンディションを有するメモリを選択し得る。ただし、コンディションチェッカー５２０は、一つではなく複数のメモリを選択し得る。
【０１１９】
具体的に、コンディションチェッカー５２０は、合計３個のメモリのうちコンディションが最もよくないメモリを除いた残りのメモリすなわち、２個のメモリを選択し得る。これによって、メモリコントローラ５００は、コンディションチェッカー５２０が選択したメモリに先にメタデータをプログラムする。
【０１２０】
コンディションチェッカー５２０が第１メモリ６１０と第３メモリ６３０とを選択したと仮定すると、メモリコントローラ５００は、第１時点ｔ１に第１メタデータＭＤ１を第１メモリ６１０にプログラムし、同じ第１時点ｔ１に第５メタデータＭＤ５を第３メモリ６３０にプログラムする。
【０１２１】
メモリコントローラ５００は、第１メタデータＭＤ１及び第５メタデータＭＤ５がプログラムされた時点に直ちに、第２メタデータＭＤ２を、コンディションチェッカー５２０が選択しない第２メモリ６２０にプログラムしないとし得る。
【０１２２】
コンディションチェッカー５２０は、コンディションチェッカー５２０が選択しない第２メモリ６２０のコンディションを動的にチェックしてコンディションが第１時点ｔ１よりよくなる第２時点ｔ２に第２メタデータＭＤ２を第２メモリ６２０にプログラムする。第２時点ｔ２は第１時点ｔ１以後の時点とし得る。
【０１２３】
この時、コンディションがよくなる時点は、コンディションチェッカー５２０が特性テーブル５３０を参照して導出したコンディション点数があらかじめ設定された特定数値以上である時を意味し得る。
【０１２４】
時点は異なるが、第１メタデータＭＤ１、第５メタデータＭＤ５と第２メタデータＭＤ２は、互いにミラーリングされた同じ内容のデータとし得る。これは後にメタデータの読み込み時によりよいコンディションのメモリでメタデータを読み込むことができるようにメタデータを重複して保存するためであり得る。
【０１２５】
本実施形態は、コンディションがよくないメモリにメタデータが直ちにプログラムされず、後にコンディションがよくなった時にプログラムされるようにすることで、メタデータの損傷を防止できる。
【０１２６】
以下、図１、図１３及び図１５を参照して本発明のいくつかの実施形態によるソリッドステートドライブについて説明する。上述した説明と重複する部分は省略または簡略化する。
【０１２７】
図１５は本発明のいくつかの実施形態によるソリッドステートドライブのプログラム動作を説明するためのタイムダイヤグラムである。
【０１２８】
図１、図１３及び図１５を参照すると、本発明のいくつかの実施形態によるソリッドステートドライブのプログラム方法は、最もコンディションがよいメモリを先にプログラムし、以後に残りのメモリを順次にプログラムする。
【０１２９】
コンディションチェッカー５２０は、上述した方式と同様に第１メモリ６１０、第２メモリ６２０及び第３メモリ６３０のうち最もよいコンディションを有するメモリを選択し得る。
【０１３０】
具体的に、コンディションチェッカー５２０は、合計３個のメモリのうちコンディションが最もよいメモリを選択し得る。これによって、メモリコントローラ５００は、コンディションチェッカー５２０が選択したメモリに先にメタデータをプログラムする。
【０１３１】
コンディションチェッカー５２０が第１メモリ６１０を選択したと仮定すると、メモリコントローラ５００は、第１時点ｔ１に第１メタデータＭＤ１を第１メモリ６１０にプログラムする。
【０１３２】
メモリコントローラ５００は、第１メタデータＭＤ１がプログラムされた時点に直ちに、第２メタデータＭＤ２及び第５メタデータＭＤ５を、それぞれ、コンディションチェッカー５２０が選択しない第２メモリ６２０及び第３メモリ６３０にプログラムしないとし得る。
【０１３３】
コンディションチェッカー５２０は、コンディションチェッカー５２０が選択しない第２メモリ６２０及び第３メモリ６３０のコンディションを動的にチェックし得る。次いで、第３メモリ６３０のコンディションが第１時点ｔ１よりよくなる第２時点ｔ２に第５メタデータＭＤ５を第３メモリ６３０にプログラムする。第２時点ｔ２は、第１時点ｔ１以後の時点とし得る。
【０１３４】
同様に、コンディションチェッカー５２０は、プログラムされていない第２メモリ６２０のコンディションをさらに動的にチェックし得る。次いで、第２メモリ６２０のコンディションが第１時点ｔ１及び第２時点ｔ２よりよくなる第３時点ｔ３に第２メタデータＭＤ２を第２メモリ６２０にプログラムする。第３時点ｔ３は、第１時点ｔ１及び第２時点ｔ２以後の時点とし得る。
【０１３５】
この時、コンディションがよくなる時点は、コンディションチェッカー５２０が特性テーブル５３０を参照して導出したコンディション点数があらかじめ設定された特定数値以上である時を意味する。
【０１３６】
時点は異なるが、第１メタデータＭＤ１、第５メタデータＭＤ５と第２メタデータＭＤ２は、互いにミラーリングされた同じ内容のデータとし得る。
【０１３７】
本実施形態は、コンディションがよい時点にそれぞれのメモリがメタデータをプログラムするようにすることで、メタデータの損傷をはるかに容易に防止できる。すなわち、それぞれのメモリが自分のコンディションがよい時点にプログラムされるので、すべてのメタデータの信頼度が非常に高い。
【０１３８】
以下、図１、図１３及び図１６を参照して本発明のいくつかの実施形態によるソリッドステートドライブについて説明する。上述した説明と重複する部分は省略または簡略化する。
【０１３９】
図１６は本発明のいくつかの実施形態によるソリッドステートドライブのプログラム動作を説明するためのタイムダイヤグラムである。
【０１４０】
図１、図１３及び図１６を参照すると、本発明のいくつかの実施形態によるソリッドステートドライブのプログラム方法は、最もコンディションがよくないメモリを除いてメタデータをプログラムする。
【０１４１】
コンディションチェッカー５２０は、上述した方式と同様に第１メモリ６１０、第２メモリ６２０及び第３メモリ６３０のうち最もよくないコンディションを有するメモリを除いた残りのメモリを選択し得る。
【０１４２】
具体的に、コンディションチェッカー５２０は、合計３個のメモリのうちコンディションが最もよくないメモリを除いた２個のメモリを選択し得る。これによって、メモリコントローラ５００は、コンディションチェッカー５２０が選択したメモリに先にメタデータをプログラムする。
【０１４３】
コンディションチェッカー５２０が第１メモリ６１０及び第３メモリ６３０を選択したと仮定すると、メモリコントローラ５００は、第１時点ｔ１に、第１メタデータＭＤ１を第１メモリ６１０にプログラムするとともに第５メタデータＭＤ５を第３メモリ６３０にプログラムする。
【０１４４】
メモリコントローラ５００は、コンディションチェッカー５２０が選択しない第２メモリ６２０にメタデータをプログラムしなくてもよい。もちろん、第１メタデータＭＤ１及び第５メタデータＭＤ５は、互いにミラーリングされた同じ内容のデータとし得る。
【０１４５】
本実施形態は、複数のメモリのうちいずれか一つのみを除いた場合にもメタデータが重複して保存されるので、メタデータの信頼度を十分に向上できるという前提の下に、最もコンディションがよくないメモリに敢えてプログラムを行う作業を除くことができる。
【０１４６】
第１時点ｔ１以後にコンディションチェッカー５２０から選択されない第２メモリ６２０のコンディションを継続して動的にチェックする作業と、第２メモリ６２０にメタデータをプログラムする作業は多くのリソースを消費するので、本実施形態は、これらの作業を除いてリソースを節約してソリッドステートドライブの動作性能を高く維持し得る。同時に本実施形態のソリッドステートドライブは、２個のメモリに２個のメタデータをそれぞれプログラムするので、メタデータの信頼性も高く維持し得る。
【０１４７】
以下、図１、図３及び図１７を参照して本発明のいくつかの実施形態によるソリッドステートドライブのメタデータアクセス方法について説明する。上述した説明と重複する部分は省略または簡略化する。
【０１４８】
図１７は本発明のいくつかの実施形態によるソリッドステートドライブのメタデータアクセス方法を説明するためのフローチャートである。図１７を参照すると、メタデータ読み込み要請を受信する（Ｓ１００）。
【０１４９】
具体的に、図１及び図３を参照すると、メモリコントローラ５００は、ホスト１０からメタデータ読み込み要請が来るとこれを受信し得る。
【０１５０】
図１７を再び参照すると、メモリコンディションを判断してメモリを選択する（Ｓ２００）。
【０１５１】
具体的に、図１及び図３を参照すると、コンディションチェッカー５２０は、第１メモリ６１０の現在コンディションを判断し、第２メモリ６２０の現在コンディションを判断し得る。コンディションチェッカー５２０は、第１メモリ６１０のコンディションと第２メモリ６２０のコンディションとを比べて、よりよいコンディションを有するメモリを選択し得る。例えば、コンディションチェッカー５２０は、特性テーブル５３０を参照して第１メモリ６１０及び第２メモリ６２０のコンディションを判断し得る。
【０１５２】
図１７を再び参照すると、第１メモリを選択した場合には第１メタデータを読み込む（Ｓ３００）。
【０１５３】
具体的に、図１及び図３を参照すると、第１メモリ６１０は、第２メモリ６２０に比べてコンディションがよいので、第１メモリ６１０内の第１メタデータＭＤ１は、第２メモリ６２０内の第２メタデータＭＤ２に比べてより高い信頼性を有し得る。
【０１５４】
図１７を再び参照すると、第２メモリを選択した場合は、第２メタデータを読み込む（Ｓ４００）。
【０１５５】
具体的に、図１及び図３を参照すると、第２メモリ６２０がよりよいコンディションであるため、第２メタデータＭＤ２がより高い信頼性を有し得る。
【０１５６】
本発明のいくつかの実施形態によるソリッドステートドライブのメモリアクセスの方法は、異種メモリにミラーリングされたメタデータをそれぞれ保存し、よりよいコンディションを有するメモリのメタデータを読み込むことで、ソリッドステートドライブの信頼性を向上させることができる。
【０１５７】
以下、図１、図３、図１０及び図１８を参照して本発明のいくつかの実施形態によるソリッドステートドライブのメタデータアクセス方法について説明する。上述した説明と重複する部分は省略または簡略化する。
【０１５８】
図１８は本発明のいくつかの実施形態によるソリッドステートドライブのメタデータアクセス方法を説明するためのフローチャートである。図１８を参照すると、メタデータプログラム要請を受信する（Ｓ１１００）。
【０１５９】
具体的に、図１、図３及び図１０を参照すると、メモリコントローラ５００は、ホスト１０からメタデータプログラム要請が来るとこれを受信し得る。
【０１６０】
図１８を再び参照すると、メモリコンディションを判断してメモリを選択する（Ｓ１２００）。
【０１６１】
具体的に、図１、図３及び図１０を参照すると、メモリコントローラ５００がメタデータプログラム要請を受信する場合、コンディションチェッカー５２０は、第１メモリ６１０及び第２メモリ６２０のコンディションをチェックする。コンディションチェッカー５２０は、上述した方式と同様に第１メモリ６１０と第２メモリ６２０のうちよりよいコンディションを有するメモリを選択し得る。
【０１６２】
図１８を再び参照すると、第１メモリを選択した場合は、メタデータを第１メモリにプログラムする（Ｓ１３００）。
【０１６３】
具体的に、図１、図３及び図１０を参照すると、第１メモリ６１０は、第２メモリ６２０に比べてコンディションがよいため、第１メモリ６１０にのみメタデータをプログラムすることがメタデータの損傷可能性を防止する方向であり得る。この時、第２メモリ６２０にメタデータをプログラムしたとすると、よくないコンディションのメモリにプログラムされることになるメタデータが損傷され得る。
【０１６４】
図１８を再び参照すると、第２メモリのコンディションを判断する（Ｓ１５００）。
【０１６５】
具体的に、図１、図３及び図１０を参照すると、すでに第１メモリ６１０にはメタデータがプログラムされたので、コンディションチェッカー５２０は、メタデータがプログラムされていない第２メモリ６２０に対して動的に（ｄｙｎａｍｉｃａｌｌｙ）コンディションをチェックし得る。
【０１６６】
仮に、第２メモリ６２０のコンディションがよくない場合は、メタデータをプログラムせず、第２メモリ６２０のコンディションがよくなるまで待機し得る。
【０１６７】
図１８を再び参照すると、第２メモリのコンディションがよくなると、第２メモリにメタデータをプログラムする（Ｓ１７００）。
【０１６８】
すなわち、コンディションチェッカー５２０は、コンディションチェッカー５２０が選択しない第２メモリ６２０のコンディションを動的にチェックしてコンディションが第１時点ｔ１よりよくなる第２時点ｔ２に第２メタデータＭＤ２を第２メモリ６２０にプログラムする。第２時点ｔ２は、第１時点ｔ１以後の時点とし得る。
【０１６９】
この時、コンディションがよくなる時点は、コンディションチェッカー５２０が特性テーブル５３０を参照して導出したコンディション点数があらかじめ設定された特定数値以上である時を意味する。
【０１７０】
図１８を再び参照すると、第２メモリ６２０を選択した場合は、メタデータを第２メモリ６２０にプログラムし（Ｓ１４００）、選択されない第１メモリ６１０のコンディションを判断し（Ｓ１６００）、第１メモリ６１０のコンディションがよくなる時点に第１メモリ６１０にメタデータをプログラムする（Ｓ１８００）。
【０１７１】
上述した説明においてメタデータは、各メモリでミラーリングされたデータ、すなわち、同じ内容を含むデータとし得る。これによって、後にメタデータの読み込み動作時によりよいコンディションのメモリでメタデータを読み込む。
【０１７２】
本実施形態は特定メモリのコンディションがよくない場合は、メタデータのプログラムを直ちに行わず、前記特定メモリのコンディションがよくなる時にメタデータのプログラムを行い、ミラーリングされたメタデータの損傷を防止できる。
【０１７３】
上述した実施形態において２種類のメモリのみを例示したが、これは、例示に過ぎず、本実施形態によるソリッドステートドライブのメタデータアクセス方法は、３種類以上のメモリを含むソリッドステートドライブにも適用できる。この場合、Ｓ１２００段階は、単に一つのメモリを選択するのではなく、少なくとも一つのメモリを選択することもできる。
【０１７４】
以上添付する図面を参照して本発明の実施形態について説明したが、本発明が属する技術分野における通常の知識を有する者は、本発明がその技術的思想や必須的な特徴を変更せず、他の具体的な形態で実施され得ることを理解することができる。したがって、上記実施形態は、すべての面において例示的なものであり、限定的なものではないと理解しなければならない。
【符号の説明】
【０１７５】
１０    ホスト
２０    ソリッドステートドライブ
５００  メモリコントローラ
５１０  フラッシュ変換レイヤ
５２０  コンディションチェッカー
５３０  特性テーブル
５３１  特性パラメータ
６００  不揮発性メモリ
６１０  第１メモリ
６２０  第２メモリ
６２１  第１チャネルメモリ
６２２  第２チャネルメモリ
６２３  第３チャネルメモリ
６３０  第３メモリ
【図１】
2020017262.tif 000003
【図２】
2020017262.tif 000004
【図３】
2020017262.tif 000005
【図４】
2020017262.tif 000006
【図５】
2020017262.tif 000007
【図６】
2020017262.tif 000008
【図７】
2020017262.tif 000009
【図８】
2020017262.tif 000010
【図９】
2020017262.tif 000011
【図１０】
2020017262.tif 000012
【図１１】
2020017262.tif 000013
【図１２】
2020017262.tif 000014
【図１３】
2020017262.tif 000015
【図１４】
2020017262.tif 000016
【図１５】
2020017262.tif 000017
【図１６】
2020017262.tif 000018
【図１７】
2020017262.tif 000019
【図１８】
2020017262.tif 000020