(57)【特許請求の範囲】
【請求項１】
複数の物理ブロックを有するメモリアレイに結合され、前記メモリアレイをフォーマットする制御回路を備えたメモリコントローラであって、
前記メモリアレイにシステムデータを書き込み、該メモリアレイでは、該システムデータ内の第１のファイル割当てテーブルが前記複数の物理ブロックの内の第１の物理ブロックの境界で開始するよう、システムデータまたはユーザデータを記憶するためには使用されないメモリセルの第１のパディングを前記第１の物理ブロックとは異なる第２の物理ブロックに含ませることにより、前記第１のファイル割当てテーブルが前記第１の物理ブロックの一方の境界で開始し、さらに、システムデータまたはユーザデータを記憶するためには使用されないメモリセルの第２のパディングを前記第１の物理ブロックに含ませることにより、前記第１のファイル割当てテーブルと前記第２のパディングとの合計が前記第１の物理ブロックの他方の境界で終了し、かつ、
前記メモリアレイにユーザデータを書き込み、前記メモリアレイでは、該ユーザデータが前記メモリアレイにおける前記第１および第２の物理ブロックと異なる第３の物理ブロックの境界で開始するよう、
構成された制御回路を備えたメモリコントローラ。
【請求項２】
前記制御回路は、
該システムデータ内の第２のファイル割当てテーブルが前記複数の物理ブロックの内の前記第１、第２および第３の物理ブロックと異なる第４の物理ブロックの境界で開始するよう、前記第２のパディングを前記第１の物理ブロックに含ませることにより、前記第２のファイル割当てテーブルが前記第４の物理ブロックの一方の境界で開始し、さらに、システムデータまたはユーザデータを記憶するためには使用されないメモリセルの第３のパディングを前記第４の物理ブロックに含ませることにより、前記第２のファイル割当てテーブルと前記第３のパディングとの合計が前記第４の物理ブロックの他方の境界で終了するよう、
さらに構成される、請求項１記載のメモリコントローラ。
【請求項３】
前記制御回路は、
前記第２のパディングが前記第１のファイル割当てテーブルと前記第２のファイル割当てテーブルとの間に含まれるよう、
さらに構成される、請求項２記載のメモリコントローラ。
【請求項４】
前記制御回路は、
前記第３のパディングが前記第２のファイル割当てテーブルと前記ユーザデータとの間に含まれるよう、
さらに構成される、請求項３記載のメモリコントローラ。
【請求項５】
前記制御回路は、
前記第１のパディングを前記第２の物理ブロックに含ませることにより、該システムデータ内のパーティションブートレコード、前記メモリアレイに関する情報を含み、前記メモリアレイの動作を可能にするために前記メモリアレイによって使用される予約データ、及び、前記第１のパディングの合計が前記第２の物理ブロックの境界で終了するよう、
さらに構成される、請求項１から請求項４のいずれか１項に記載のメモリコントローラ。
【請求項６】
前記制御回路は、
前記第１のパディングが前記予約データと前記第１のファイル割当てテーブルとの間に含まれるよう、
さらに構成される、請求項５記載のメモリコントローラ。
【請求項７】
複数の物理ブロックを有するメモリアレイをフォーマットする方法であって、
システムデータ内の第１のファイル割当てテーブルが前記複数の物理ブロックの内の第１の物理ブロックの境界で開始するよう、システムデータまたはユーザデータを記憶するためには使用されないメモリセルの第１のパディングを前記第１の物理ブロックとは異なる第２の物理ブロックに含ませることにより、前記第１のファイル割当てテーブルが前記第１の物理ブロックの一方の境界で開始するよう、さらに、システムデータまたはユーザデータを記憶するためには使用されないメモリセルの第２のパディングを前記第１の物理ブロックに含ませることにより、前記第１のファイル割当てテーブルと前記第２のパディングとの合計が前記第１の物理ブロックの他方の境界で終了するよう、前記メモリアレイに前記システムデータを書き込むことと、
ユーザデータが前記メモリアレイにおける前記第１および第２の物理ブロックと異なる第３の物理ブロックの境界で開始するよう、前記メモリアレイに前記ユーザデータを書き込むことと、
を含む方法。
【請求項８】
前記システムデータ内の第２のファイル割当てテーブルが前記第１乃至第３の物理ブロックと異なり且つ前記第1および第３の物理テーブルの間にある第４の物理ブロックの境界で開始するよう、システムデータまたはユーザデータを記憶するためには使用されないメモリセルの第３のパディングを前記第４の物理ブロックに含ませることにより、前記第２のファイル割当てテーブルが前記第４の物理ブロックの一方の境界で開始すると共に、前記第２のファイル割当てテーブルと前記第３のパディングとの合計が前記第４の物理ブロックの他方の境界で終了するよう、前記メモリアレイに前記システムデータを書き込むこと、をさらに含む請求項７記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、一般に、半導体メモリデバイス、方法およびシステムに関し、より詳細にはソリッドステートドライブフォーマッティングに関する。
【背景技術】
【０００２】
メモリデバイスは、典型的には、コンピュータまたはその他の電子デバイス内部の半導体集積回路として提供される。揮発性メモリおよび不揮発性メモリを含む、多くの異なるタイプのメモリがある。揮発性メモリは、そのデータを維持するために電力を必要とすることがあり、とりわけ、ランダムアクセスメモリ（ＲＡＭ）、ダイナミックランダムアクセスメモリ（ＤＲＡＭ）、およびシンクロナスダイナミックランダムアクセスメモリ（ＳＤＲＡＭ）を含む。不揮発性メモリは、電力が供給されていないときに、保存した情報を保持することによって永続データを提供することができ、とりわけ、ＮＡＮＤフラッシュメモリ、ＮＯＲフラッシュメモリ、リードオンリーメモリ（ＲＯＭ）、電気的消去書込み可能型ＲＯＭ（ＥＥＰＲＯＭ）、消去可能型ＲＯＭ（ＥＰＲＯＭ）、および相変化ランダムアクセスメモリ（ＰＣＲＡＭ）を含み得る。
【０００３】
複数のメモリデバイスを組み合せて、ソリッドステートドライブ（ＳＳＤ）を形成することができる。ソリッドステートドライブは、様々な他のタイプの不揮発性メモリおよび揮発性メモリのうち、不揮発性メモリ、たとえば、ＮＡＮＤフラッシュメモリおよびＮＯＲフラッシュメモリを含むことができ、ならびに／あるいは、揮発性メモリ、たとえば、ＤＲＡＭおよびＳＲＡＭを含むことができる。
【０００４】
ソリッドステートドライブは、性能、サイズ、重量、耐久性、動作温度範囲、および電力消費量の点でハードドライブに勝る利点を有し得るので、ＳＳＤは、コンピューター用の主な記憶装置としてハードディスクドライブの代わりに使用することができる。たとえば、ＳＳＤは、移動する部分がなく、それにより、シーク時間、待ち時間、磁気ディスクドライブと関連付けられたその他の電気力学的遅延を回復することができることに起因して、磁気ディスクドライブと比較したときに、すぐれた性能を有し得る。ＳＳＤ製造業者は、不揮発性フラッシュメモリを使用して、内部バッテリー供給を使用しななくてもよいフラッシュＳＳＤを創出することができ、したがって、ドライブをより多目的でコンパクトにすることができる。
【０００５】
ＳＳＤは、複数のメモリデバイス、たとえば、複数のメモリチップを含むことができる（本明細書で使用する場合、「複数の」ものは、かかるもののうち１つまたは複数を指すことがあり、たとえば、複数のメモリデバイスは、１つまたは複数のメモリデバイスを指すことがある）。当業者には明らかなように、メモリチップは、複数のダイを含むことができる。それぞれのダイは、複数のメモリアレイと、その上の周辺回路とを含むことができる。メモリアレイは、複数の物理ブロックに編成された複数のメモリセルを含むことができ、この物理ブロックを、複数のページへと編成することができる。
【０００６】
いくつかの記憶アプリケーションの場合、ＳＳＤを、ハード（ディスク）ドライブの代わりに、またはハード（ディスク）ドライブを補完するために使用することができる。これらの例では、ＳＳＤｓは、ハードドライブの機能に順応するように設計された環境に設置することができる。ＳＳＤとハードドライブとの間の最も小さな消去可能ユニットの粒状度または量子化の差（たとえば、ハードドライブに対する５１２バイトセクタ対ＳＳＤ中の１２８ｋまたは２５６ｋブロック）に起因して、コンピューティングデバイス中のハードドライブの代わりに、またはコンピューティングデバイス中のハードドライブの補完として使用されるＳＳＤは、ピーク性能レベルで動作しないことがある。
【図面の簡単な説明】
【０００７】
【図１】本開示の１つまたは複数の実施形態にしたがって動作することができる電子メモリシステムの機能ブロック図である。
【図２】本開示の１つまたは複数の実施形態によるメモリアレイの一部分の図である。
【図３】本開示の１つまたは複数の実施形態による複数のメモリアレイに関するファイルシステムの図である。
【図４】本開示の１つまたは複数の実施形態による、ブロック境界と整列したユーザデータを有する複数のメモリアレイに関するファイルシステムの図である。
【図５】本開示の１つまたは複数の実施形態による、ブロック境界と位置合わせされたファイル割当てテーブルおよびユーザデータを有する複数のメモリアレイに関するファイルシステムの図である。
【発明を実施するための形態】
【０００８】
本開示は、ソリッドステートドライブフォーマッティングのための方法およびデバイスを含む。１つのデバイス実施形態は、複数のメモリアレイに結合された制御回路を含み、各メモリアレイは、メモリセルの複数の物理ブロックを有する。メモリアレイは、システムデータが物理ブロック境界で終了する様にはシステムデータを複数のメモリアレイに書き込み、ユーザデータが物理ブロック境界から開始する様にユーザデータを複数のメモリアレイを書き込むように構成された制御回路によってフォーマットすることができる。
【０００９】
以下に、添付の図面を参照して本開示を詳細に記載するが、添付の図面は本開示の一部を形成し、どのように本開示の１つまたは複数の実施形態を実施することができるかを例として示すものである。これらの実施形態は、当業者が本開示の実施形態を実施できるように十分に詳細に記載され、本開示の範囲から逸脱することなく、その他の実施形態を利用することができ、プロセス、電気的および／または構造的な変更をなし得ることを理解されたい。本明細書で使用されている様に特に図面の参照番号に関する表記「Ｎ」、「Ｍ」、「Ｒ」および「Ｓ」は、本開示の１つまたは複数の実施形態とともに、そのように表示された複数の具体的なフィーチャを含むことができることを示す。
【００１０】
本明細書の各図は、最初の１桁または複数の桁が図番号に対応し、残りの桁が図面のエレメントまたは構成要素を特定するナンバリング規約に従う。異なる図面の同様のエレメントまたは構成要素は、同様の桁を使用していることによって識別することができる。たとえば、１３０は、図１の参照エレメント「３０」を指すことができ、同様のエレメントは図２において２３０として示されている。理解されるように、本明細書の様々な実施形態で示されるエレメントは、本開示の複数のさらなる実施形態を提供するように、付加、交換、および／または除去することができる。さらに、理解されるように、各図に提供されるエレメントの比率および相対的な縮尺は、本発明の実施形態を例示することを意図するものであり、限定的な意味で解釈されるべきではない。
【００１１】
図１は、本開示の１つまたは複数の実施形態にしたがって動作することができる電子メモリシステム１２０の機能ブロック図である。図１に例示された実施形態では、メモリシステム１２０は、たとえば、ソリッドステートドライブ（ＳＳＤ）であり得る。図１に例示されるように、システム１２０は、メモリコントローラ１０１と、ホストインターフェースコネクタ１０３と、複数のメモリアレイ１３０−１，．．．，１３０−Ｎ、たとえば、複数のフラッシュアレイのような複数の固体メモリアレイとを含むことができる。
【００１２】
インターフェース１０３を使用して、メモリシステム１２０とホストシステム１０２のような別のデバイスとの間で情報を通信することができる。ホストシステム１０２は、メモリアクセスデバイス、たとえばプロセッサを含むことができる。当業者には、「プロセッサ」は、並行処理システム、コプロセッサなどのような１つまたは複数のプロセッサを意図できることが理解できよう。ホストシステムの例には、ラップトップコンピュータ、パーソナルトップコンピュータ、デジタルカメラ、デジタル記録再生デバイス、ＰＤＡ、メモリカードリーダ、インターフェースハブなどが含まれる。１つまたは複数の実施形態では、インターフェース１０３は、標準化されたインターフェースの形態とすることができる。たとえば、ホストインターフェースコネクタ１０３は、その他のコネクタまたはインターフェースのうち、シリアルアドバンスドテクノロジーアタッチメント（ＳＡＴＡ）、周辺構成機器相互接続エクスプレス（ＰＣＩｅ）、またはユニバーサルシリアルバス（ＵＳＢ）とすることができる。しかしながら、一般には、インターフェース１０３は、メモリシステム１２０とインターフェース１０３に対して適合可能レセプタを有するホストシステム１０２との間で、制御信号、アドレス信号、データ信号またはその他の信号をパスするためのインターフェースを提供することができる。
【００１３】
メモリコントローラ１０１は、その他のオペレーションのうち、データを検知し、プログラムし、消去するために、アレイ１３０−１，．．．，１３０−Ｎと通信することができる。メモリコントローラ１０１は、１つまたは複数の集積回路および／または個別の構成要素とすることができる回路を有することができる。１つまたは複数の実施形態では、メモリコントローラ１０１中の回路は、複数のメモリアレイにわたるアクセスを制御し、および／または外部ホストとメモリシステム１２０との間に変換レイヤを提供するための制御回路を含むことができる。したがって、メモリコントローラは、適時に適当なＩ／Ｏ接続で適当な信号を受信するために、メモリアレイのＩ／Ｏ接続（図１には図示されていない）に選択的に結合することができる。同様に、ホスト１０２とメモリシステム１２０との間の通信プロトコルは、アレイ１３０−１から１３０−Ｎのようなメモリアレイのアクセスに必要とされるものとは異なってもよい。次いで、メモリコントローラ１０１は、メモリアレイへの所望のアクセスを達成するために、ホスト、たとえば１０２から受信したコマンドを適当なコマンドに変換することができる。
【００１４】
メモリアレイ１３０−１，．．．，１３０−Ｎは、たとえば、ＮＡＮＤアーキテクチャを有するフラッシュメモリセルのアレイとすることができる不揮発性メモリセルとすることができる。ＮＡＮＤアーキテクチャでは、「行」のメモリセルの制御ゲートをワード線と結合することができ、「列」のメモリセルのドレイン領域をビット線に結合することができる。メモリセルのソース領域はソース線に結合することができる。当業者には理解できるように、メモリセルをビット線およびソース線に接続する様式は、アレイがＮＡＮＤアーキテクチャかどうか、ＮＯＲアーキテクチャかどうか、ＡＮＤアーキテクチャかどうか、または何らかのその他のメモリアレイアーキテクチャかどうかに左右される。
【００１５】
図１の実施形態は、追加の回路を含むことができるが、本開示の諸実施形態を不明瞭にしないように追加の回路は例示しない。たとえば、メモリシステム１２０はＩ／Ｏ回路を通ってＩ／Ｏ接続を介して提供されるアドレス信号にラッチするためのアドレス回路を含むことができる。アドレス信号を行デコーダおよび列デコーダによって受信および復号して、メモリ１３０−１，．．．，１３０−Ｎにアクセスすることができる。当業者には、アドレス入力接続の数は、メモリ１３０−１，．．．，１３０−Ｎの密度およびアーキテクチャに依存し、アドレスの数は、メモリセルの数の増加と、メモリブロックおよびアレイの数の増加の両方とともに増加することとが理解できよう。
【００１６】
図２は、本開示の１つまたは複数の実施形態による、メモリアレイ２３０の一部分の図を示す。図２には示されていないが、当業者には、メモリアレイ２３０は、その動作に関連付けられた様々な周辺回路に沿って、特定の半導体ダイ上に配置できることが理解できよう。
【００１７】
図２に示されるように、アレイ２３０は、メモリセルの複数の物理ブロック２４０−０（ブロック０），２４０−１（ブロック１），．．．，２４０−Ｍ（ブロックＭ）を有する。図１に示した例では、表示「Ｍ」は、アレイ２３０が複数の物理ブロックを含むことができることを示すために使用される。メモリセルは、シングルレベルのセルおよび／またはマルチレベルのセルとすることができる。一例として、アレイ２３０中の物理ブロックの数は、１２８個のブロック、５１２個のブロック、または１，０２４個のブロックとすることができるが、実施形態は、アレイ２３０中の具体的には１２８個  の特定の倍数、または任意の特定の数の物理ブロックに限定されるものではない。さらに、実施形態は、アレイ中で使用されるメモリのタイプ、たとえば、不揮発性、揮発性などに限定されるものではない。図２に例示された実施形態では、メモリアレイ２３０は、たとえば、ＮＡＮＤフラッシュメモリアレイ２３０とすることができる。
【００１８】
この例では、物理ブロック２４０−０，２４０−１，．．．，２４０−Ｍはそれぞれ、ユニットとして一緒に消去することができるメモリセルを含み、たとえば、各物理ブロック中のセルは、実質的に同時に消去することができる。たとえば、各物理ブロック中のセルは、単一の動作で一緒に消去することができる。各物理ブロック、たとえば、２４０−０，２４０−１，．．．，２４０−Ｍは、アクセス線、たとえばワード線に結合されたメモリセルの複数の物理行、たとえば、２５０−０，２５０−１，．．．，２５０−Ｒを含んでいる。表示「Ｒ」は、物理ブロック、たとえば、２４０−０，２４０−１，．．．，２４０−Ｍが複数の行を含むことができることを示すために使用される。いくつかの実施形態では、各物理ブロック中の行の数、たとえば、ワード線の数は、３２とすることができるが、実施形態は、１物理ブロックにつき、特定の数の行２５０−０，２５０−１，．．．，２５０−Ｒに限定されるものではない。
【００１９】
当業者には明らかなように、各行２５０−０，２５０−１，．．．，２５０−Ｒは、１つまたは複数のページのデータを記憶することができる。ページとは、たとえば、一緒にまたはメモリセルの機能グループとして複数のセルをプログラムする、および／または読み取る単位を指す。図１に示された実施形態では、各行２５０−０，２５０−１，．．．，２５０−Ｒは、１ページのデータを記憶する。しかしながら、本開示の実施形態はそのように限定されるものではない。たとえば、本開示のいくつかの実施形態では、各行は、複数のページのデータを記憶することができる。たとえば、行内の各セルは、上側ページのデータに向かうビットに寄与することができ、下側ページのデータに向かうビットに寄与することができる。１つまたは複数の実施形態では、メモリアレイは、メモリセルの複数の物理ブロックを含むことができ、各物理ブロックは、複数のページへと編成することができる。
【００２０】
本開示の１つまたは複数の実施形態では、図２に示したように、行２５０−０のような行は、複数の物理セクタ２５２−０，２５２−１，．．．，２５２−Ｓにしたがってデータを記憶することができる。表示「Ｓ」は、行、たとえば、２５０−０，２５０−１，．．．，２５０−Ｒが複数の物理セクタを含むことができることを示すために使用される。各物理セクタ２５２−０，２５２−１，．．．，２５２−Ｓは、論理セクタに対応するデータを記憶することができ、誤り訂正コード（ＥＣＣ）情報および論理ブロックアドレス（ＬＢＡ）情報、ならびにユーザデータのようなオーバーヘッド情報を含むことができる。当業者には明らかなように、論理ブロックアドレス指定は、情報の論理セクタを識別するために、ホストによってしばしば使用されるスキームである。一例として、データの論理セクタは、複数バイト、たとえば、２５６バイト、５１２バイトまたは１，０２４バイトのデータとすることができる。実施形態は、これらの例に限定されるものではない。
【００２１】
物理ブロック２４０−０，２４０−１，．．．，２４０−Ｍ、行２５０−０，２５０−１，．．．，２５０−Ｒ、セクタ２５２−０，２５２−１，．．．，２５２−Ｓ、およびページに関するその他の構成が可能であることを留意されたい。たとえば、物理ブロック２４０−０，２４０−１，．．．，２４０−Ｍの行２５０−０，２５０−１，．．．，２５０−Ｒは、それぞれ、たとえば、５１２バイトを超える、または５１２バイト未満のデータを含むことができる単一の論理セクタに対応するデータを記憶することができる。
【００２２】
図３は、本開示の１つまたは複数の実施形態による複数のメモリアレイ３３０に関するファイルシステムの図を示す。１つまたは複数の実施形態では、複数の物理ブロックを使用してシステムデータを記憶することができ、複数の物理ブロックを使用してユーザデータを記憶することができる。図３に例示された実施形態では、システムデータは、パーティションブートレコード（ＰＢＲ）３６４と、予約データ３６６と、第１のファイル割当てテーブル３６８と、第２のファイル割当てテーブル３７０を含むことができる。システムデータは、複数のメモリアレイ３３０に関するファイルシステムの構造および動作に関係するデータを含むことができる。一例として、ファイル割当てテーブル、たとえば３６８および３７０は、メモリアレイ、たとえば３３０のどの区域が記憶されたデータを有し、利用可能または利用不可能である可能性があるか、また、メモリアレイ中のどこにデータが記憶されるかに関する情報を集中化するファイル割当てデーを含んでいることがある。様々な実施形態では、２つのファイル割当てテーブルは、ファイル割当てテーブルのうちの１つの潜在的な失敗に対するバックアップとして作用するファイル割当てテーブルのうちの１つとともに使用することができる。たとえば、予約データ３６６は、メモリアレイに関する情報を含んでいるデータを含むことができ、メモリアレイの動作を可能にするために、メモリアレイによって使用することができる。
【００２３】
図３に例示された実施形態では、ユーザデータは、たとえば、図１に示されたホスト１０２のようなホストデバイスから受信したデータとすることができる。ユーザデータ３６２は、複数回、書き込み、読み取り、および消去することができる。
【００２４】
１つまたは複数の実施形態では、ホスト１０２のようなホストデバイス、および／またはコントローラ１０１のようなコントローラ中の制御回路は、たとえば、データが所望の様式でメモリアレイに書き込まれるように、コマンドをメモリアレイに通信することができる。ホストデバイスおよび／または制御回路からのコマンドは、各コマンドと関連付けられたデータ用のページの始めに、データを書き込むように構成することができる。また、１つまたは複数の実施形態では、ホストデバイスおよび／または制御回路からのコマンドは、消去されたブロックにデータを書き込むとき、物理ブロックの第１のページ、たとえば、物理ブロック境界にデータを書き込むように構成することができる。１つまたは複数の実施形態では、フォーマットされたメモリデバイスは、メモリアレイのページの第１のメモリセル、たとえば、ページ境界にデータを書き込むために、および／または空白の、たとえば、消去されたページの始めにデータを書き込むために、ホストデバイスおよび／または制御回路からのコマンドを使用することができる。
【００２５】
１つまたは複数の実施形態では、メモリアレイをフォーマットすることは、ＰＢＲデータを書き込むことを含むことができ、ＰＢＲは、システムおよびユーザデータ用のメモリアレイ中のスペースに割り当てることができる。ＰＢＲデータ構造は、ユーザデータおよびシステムデータが物理ブロックの始めから開始するように構築および／または構成することができる。書き込みコマンドがメモリアレイによって受信されると、ＰＢＲは、コマンドに、メモリアレイ中のモジュラス増分がそれぞれ、確実に物理ブロックおよび／またはページの始めになるように計算されるモジュラスに対応して、メモリアレイ中の次の利用可能なロケーションにデータを書き込ませる。
【００２６】
１つまたは複数の実施形態では、フォーマットすることは、メモリアレイ中のシステムデータおよびユーザデータのロケーションを決定するために、メモリアレイに関するシステムデータおよび／またはメタデータを使用することを含む。１つまたは複数の実施形態では、システムデータおよび／またはメタデータは、その他のパラメータのうち、メモリアレイサイズ、ページサイズ、ブロックサイズ、ファイルシステムタイプ、メディアタイプ、およびメモリセルタイプのような物理パラメータを含むことができる。記憶スペース、たとえばユーザデータを記憶するために利用できるセクタは、割当てユニットに量子化することができる。割当てユニット、たとえばクラスタは、複数のセクタを含むことができる。割当てユニット中のセクタの数は、メモリアレイに関するシステムデータおよび／またはメタデータによって特定することができる。たとえば、メモリアレイ中のセクタは５１２バイトで構成することができ、割当てユニットは、８個のセクタを有し、それにより、４０９６バイトの割当てユニットを生じることができる。したがって、この例では、それぞれが４０９６バイトを含んでいる連続する割当てユニットは、以前の割当てユニットの論理アドレスに８を付加することによって、ホストによりアドレス指定することができる。
【００２７】
１つまたは複数の実施形態では、ページ中のセクタの数、たとえばページサイズである、書き込み動作に関するセクタの最低数量、および／またはブロック中のページの数、たとえばブロックサイズである、消去動作に関するページの最低数量を、メモリアレイメタデータおよび／またはシステムデータによって規定される割当てユニットとともに使用して、メモリアレイに関するモジュラスを決定することができる。このモジュラスを使用して、システムデータおよびユーザデータの構成成分の開始ロケーションを決定するためにメモリアレイをフォーマットすることができる。
【００２８】
たとえば、ＳＳＤは、１ページに４個、８個または１６個のセクタ（ただし、１セクタは５１２バイトとすることができる）を有することができ、ＳＳＤは、１物理ブロックにつき１２８ページ、２５６ページまたは５１２ページを有することができ、したがって、物理ブロックサイズは、１３１０７２バイト、２６２１４４バイトおよび５２４２８８バイトとなる。本開示の実施形態はこの例に限定されるものではなく、セクタ、ページおよび物理ブロックは、任意のバイト数で構成することができる。
【００２９】
１つまたは複数の実施形態では、メモリアレイをフォーマットすることは、システムデータおよびユーザデータの構成成分の開始ロケーションを決定するときに使用するためのモジュラスを決定するために、ページサイズ、ブロックサイズ、および割当てユニットを使用することを含むことができる。フォーマット中、ホストは、メモリアレイのＳＳＤの組織に関する知識、具体的には、書き込み動作または消去動作の最低サイズに影響を与えるそれらの要件、ならびに、メモリアレイ用の、たとえば、フォーマットを決定するために使用されるＦＡＴ１およびＦＡＴ２サイズのような選択されたファイルシステムのメタデータ構造に関するホストの知識、たとえば、システムデータおよびユーザデータの構成成分のロケーションを使用することができる。たとえば、ＰＢＲ、予約データ、ＦＡＴ１、ＦＡＴ２、およびユーザデータの開始ロケーションは、モジュラス、ならびにメモリアレイに関するメタデータおよび／またはシステムデータを使用して規定することができる。このフォーマッティングは、物理ブロックの始めにこれらの部分のそれぞれを整列させる。
【００３０】
デバイスがフォーマットされると、ホストは、モジュラスおよび割当てユニットと整列するユーザデータを読み取る、または書き込むように要求する。たとえば、ＦＡＴタイプファイルシステムは、割当てユニットを、１割当てユニットにつき最大６４セクタの小容量デバイスに関する論理ブロックマッピングへの１：１割当てユニットで開始する、増加する２の累乗で５１２バイトセクタの複数のグループに編成するのが最も一般的である。たとえば、割当てユニットごとに６４セクタの場合には、ホストによるアクセスは、固定されたオフセットが、先行システム、またはインターレースシステム、たとえば、メタデータ、エントリのサイズに依存するアドレスに付加さているモジュラス６４であるアドレスで見られることになる。
【００３１】
ＳＳＤが、ページ境界に整列されていない書き込みコマンドを受信すると、書き込みコマンドの開始論理ブロックによって示されるセクタに先行するページ中のそれらのセクタは、書き込みコマンドによってアクセスされるページにコピーされ、その結果、余計なオーバーヘッドを生じ、また、それらのセクタの古いロケーションも消去する必要があるので、メモリアレイにさらなる書き込みが生じる。フォーマットされたＳＳＤは、性能が向上し、非整列フォーマットによって引き起こされる追加の書き込みを最小限に抑えることによって、ＳＳＤの寿命が延びる。
【００３２】
１つまたは複数の実施形態では、余計なオーバーヘッド、および／または新しいデータがホストによって書き込まれたときにデバイスが実行しなければならない余計な読み取り／書き込み動作の量を最小にするフォーマットが望まれる。
【００３３】
１つまたは複数の実施形態では、ＳＳＤのページサイズおよび／または消去ブロックサイズに関する知識、たとえばメタデータおよび／またはシステムデータの知識が全くないホストは、メモリアレイ容量が２の累乗に量子化できるという事実に基づいて、メモリアレイをフォーマットすることができる。メモリアレイは、システムデータおよびユーザデータの構成成分、たとえば、割当てユニットの論理アドレスを、２の累乗に基づいて整列させることによってフォーマットすることができる。２の累乗に基づいてシステムデータおよび割当てユニットを整列させる１つまたは複数の実施形態では、ホストコマンドで受信された論理アドレスのメモリアレイ変換は、受信した論理アドレスに追加のオフセットを付加することができず、あるいは、オフセットが使用される場合には、追加のオフセットもまた２の累乗である。
【００３４】
本開示の実施形態にしたがってデータを書き込むことによってメモリアレイをフォーマットすることは、メモリアレイ上に新しいデータを書き込むことに関連付けられた動作オーバーヘッド量を低減させることができる。オーバーヘッドとは、ハードドライブとＳＳＤとの間の最も小さな書き込み可能または消去可能ユニットのサイズの差による、フラッシュ（ページまたはブロック）アドレスに対する書き込みコマンドアドレスの非整列に起因して、書き込みコマンドによってアドレス指定されたメモリセルに加えて、コピーまたは移動しなければならない複数の追加のメモリセルを指すことができる。オーバーヘッドの低減は、メモリアレイをフォーマットすることは、空白の、たとえば、消去されたページの始めにデータを書き込ませることになるので、ページ上新しいデータストリングを書き込むために、書き込まれたページを部分的に移動させる必要性がないことに少なくとも部分的に基づくことができる。
【００３５】
また、論理ブロックおよび／または物理ブロック、ならびに／あるいはページ、メモリアレイがフォーマットされるときにより効率的に使用することができる。割当てユニットおよびシステムデータを論理ページ境界および／または論理ブロック境界、たとえば消去ブロックに整列させるフォーマットは、ホスト書き込みコマンドの論理アドレスに、物理ブロックまたはページの境界と一致させることができる。フォーマッティングは、データを、たとえば、物理ブロックの境界にある空白の、たとえば、消去された物理ブロックの始めに書き込ませることができる。ホスト書き込みコマンドの論理アドレスが、論理および／または物理ページ、ならびに／あるいはブロックの始めから開始するので、物理ブロックおよび／またはページ中のデータは、フォーマットされたメモリアレイで消去および再書き込みする頻繁度がへりこれにより整列しないフォーマットの場合のように、書き込みコマンド中で示される論理アドレスに先立つページおよび／または物理ブロック中のそれらのセクタを移動またはコピーさせる必要はない。
【００３６】
１つまたは複数の実施形態では、メモリアレイをフォーマットすることは、メモリアレイ（たとえば図１の１３０−１．．．１３０−Ｎ）上の消耗率を制御するように実装することができる摩耗レベリングを補完することができる。当業者には明らかなように、固体メモリアレイは、複数のプログラムおよび／または消去サイクル後に失敗を経験することがあるので、摩耗レベリングは、固体メモリアレイの寿命を増大させることができる。
【００３７】
様々な実施形態では、摩耗レベリングは、ブロックを再生するために移動される有効ブロック量を最小限にするための動的摩耗レベリングを含むことができる。動的摩耗レベリングは、複数の無効なページ（すなわち、異なるページに再書き込みされた、および／または無効なページではもはや必要ではないデータを有するページ）を有するブロックが、ブロックを消去することによって再生される、ガーベッジコレクションと呼ばれる技法を含むことができる。静的摩耗レベリングは、ブロックの寿命を延長するために高い消去数を有するブロックに静的データを書き込むことを含む。
【００３８】
１つまたは複数の実施形態では、複数のブロックは、メモリアレイにデータを書き込むことに関連付けられた書き込み増幅量を低減させるためのスペアブロックとして指定することができる。スペアブロックは、データを書き込むことができないブロックとして指定することができるメモリアレイのブロックとすることができる。書き込み増幅は、データを固体メモリアレイに書き込むときに行われるプロセスである。メモリアレイにデータをランダムに書き込むときには、メモリアレイは、アレイ中のフリースペースを走査する。メモリアレイ中のフリースペースは、プログラムされていないメモリセルの個別のセル、ページ、および／またはブロックとすることができる。データを書き込むのに十分なフリースペースがある場合、データは、メモリアレイ中のフリースペースに書き込まれる。１つのロケーションに十分なフリースペースがない場合、メモリアレイ中のデータは、メモリアレイにすでに存在しているデータを、メモリアレイに書き込まれるべき新たなデータのためのフリースペースを残す新たなロケーションに、消去、移動および再書き込みすることによって再構成される。メモリアレイ中の古いデータを再構成は、新たなデータを書き込むためにおこなわなければならないメモリアレイの書き込み量は、メモリアレイ中のフリースペースの量と、メモリアレイ上に書き込まれるべき新たなデータサイズとに基づいて増幅されるので、書き込み増幅と呼ぶことができる。フリースペースとして指定される（すなわち、静的データが書き込まれない）メモリアレイ上のスペースの量を増大させることによって、書き込み増幅を低減することができ、したがって、少ない量のデータが再構成されるので、書き込まれるべきデータの量のんど増幅させがへる。
【００３９】
１つまたは複数の実施形態では、メモリアレイをフォーマットすることは、書き込み増幅の量を低減させ、また、書き込み増幅を所望のレベルに制御するために必要とされる指定されたフリースペースの量を低減させるために使用することができる。フォーマットされたメモリアレイは、効率的な様式で、データで満たされており、物理ブロックおよびページの境界から開始、したがって、フォーマットされたメモリアレイ中のデータストングは、物理ブロックおよび／またはページの中央では始まらず、その結果、新たなデータ用のメモリアレイのスペースをフリーにするために、データストリングを別のロケーションに再書き込みしなければならない機会が減少する。
【００４０】
図４は、本開示の１つまたは複数の実施形態による、ブロック境界に整列したユーザデータを有する複数のメモリアレイ４３０用のファイルシステムの図を示す。図４において、複数のメモリアレイ４３０用のファイルシステムは、パーティションブートレコード４６４と、予約データ４６６と、第１のファイル割当てテーブル４６８（ファイル割当てテーブル１）と、第２のファイル割当てテーブル４７０（ファイル割当てテーブル２）とを含む。図４に例示された実施形態では、予約された部分４６６と第１のファイル割当てテーブル４６８はパディング４７２によって分離されている。パディング４７２は、システムデータまたはユーザデータを記憶するためには使用されない複数のメモリセルとすることができ、たとえば、パディング４７２のセルは、消去状態のままとすることができる。パディング４７２は、第２のファイル割当てテーブル４７０がブロック境界、たとえば４７４で終了するように、メモリアレイ４３０内に配置することができる。また、パディング４７２は、ユーザデータ４６２がブロック境界、たとえば４７４から開始するように、メモリアレイ４３０内に配置することができる。ユーザデータ４６２は、ブロック境界と整列させることができ、このユーザデータは、メモリアレイ４３０中の物理ブロック境界から開始することができる。
【００４１】
１つまたは複数の実施形態では、ソリッドステートドライブに書き込まれたシステムデータおよびユーザデータは、ソリッドステートドライブソリッドステートドライブの物理構造と整列させることができる。つまり、消去されたブロックに書き込まれるときには、物理ブロックの始めにデータが書き込まれ、消去されたページに書き込まれるときには、ページの始めにデータが書き込まれる。また、いくつかの実施形態では、データは、部分的に書き込まれたページには書き込まれず、次の利用可能な消去されたページにデータが書き込まれる。
【００４２】
１つまたは複数の実施形態では、ソリッドステートドライブ中のメモリアレイに関連付けられた様々な物理パラメータを、その他のメモリタイプのうち、ランダムアクセスメモリ（ＲＡＭ）のようなソリッドステートドライブ上のメモリに記憶することができ、ソリッドステートドライブ上のメモリを介して、ソリッドステートドライブ中の制御回路に通信することができる。１つまたは複数の実施形態では、様々な物理パラメータは、ソリッドステートドライブ上のメモリから物理パラメータを受信したホストデバイスから通信することができる。物理パラメータは、その他のパラメータのうち、メモリアレイサイズ、ページサイズ、ブロックサイズ、ファイルシステムタイプ、メディアタイプ、およびメモリセルタイプを含むことができる。
【００４３】
１つまたは複数の実施形態では、物理パラメータが制御回路によって、またはホストデバイスによって知られると、データをメモリアレイに書き込むためのモジュラスが、制御回路またはホストデバイスによって計算される。モジュラスは、データを書き込むときに使用されるメモリセルの最小増分数とすることができる。このモジュラスは、メモリセルの総数、ブロックサイズ、ページサイズ、およびメモリアレイのメモリセルタイプに基づいて計算することができる。
【００４４】
１つまたは複数の実施形態では、ソリッドステートドライブのそれぞれの部分を、ソリッドステートドライブの物理パラメータと整列させることができる。様々な実施形態では、ソリッドステートドライブ上のデータの部分同士の間に、パディング、たとえばパディング４７２を設けることができる。パディングは、使用されないままでいる複数のセル、たとえば、消去された状態のままのセルとすることができ、データを書き込むためには使用されない。いくつかの実施形態では、ソリッドステートドライブの予約データとファイル割当てテーブルとの間にパディングを設けることができる。たとえば、図４に例示された実施形態では、予約データ４６６とファイル割当てテーブル４６８との間にパディング４７２を設けることができる。パディングは、ファイル割当てテーブルが、ブロック境界、たとえば４７４で終了するように配置することができ、それにより、ユーザデータの始点をファイル割当てテーブルが終了するブロック境界に続くブロックの始めに整列させることできる。
【００４５】
１つまたは複数の実施形態では、予約データと第１のファイル割当てテーブルとの間にパディングを提供することができ、それにより、第１のファイル割当てテーブルの始めをブロック境界と整列させる。様々な実施形態では、第１のファイル割当てテーブルと第２のファイル割当てテーブルの間にパディングを設けることができ、第２のファイル割当てテーブルをブロック境界に整列させる。様々な実施形態では、第２のファイル割当てテーブルとユーザデータの間にパディングを設けることができ、ユーザデータをブロック境界に整列させる。１つまたは複数の実施形態では、ソリッドステートドライブ上のデータの一部分をブロック境界と整列させるように、メモリアレイ中の様々なその他のロケーションにおいてパディングを使用する、たとえば、配置することができる。
【００４６】
図５は、本開示の１つまたは複数の実施形態にしたがって動作することができる、ブロック境界に整列しているファイル割当てテーブルおよびユーザデータを有する複数のメモリアレイ５３０用のファイルシステムの図を示している。図５において、複数のメモリアレイ５３０用のファイルシステムは、パーティションブートレコード５６４と、予約データ５６６と、第１のファイル割当てテーブル５６８（ファイル割当てテーブル１）と、第２のファイル割当てテーブル５７０（ファイル割当てテーブル２）とを有する。予約データ５６６と第１のファイル割当てテーブル５６８は、パディング５７６によって分離されている。パディング５７６は、図４について記載されたパディング４７２のようなパディングとすることができる。たとえば、パディング５７６は、データを記録するためには使用されない複数のメモリセルとすることができ、たとえば、データはセルに書き込む、またはセルから読み取ることができない。パディング５７６の一部であるメモリセルはブロック境界５７８で終了し、それにより、ブロック境界５７８で第１のファイル割当てテーブル５６８が開始する。第１のファイル割当てテーブル５６８に書き込まれたファイル割当てデータは、図５に例示されるように、境界５７８に続くブロックの始めと整列することができる。
【００４７】
図５において、第１のファイル割当てテーブル５６８と第２のファイル割当てテーブル５７０は、パディング５８０によって分離されている。パディング５８０の一部であるメモリセルはブロック境界５８２で終了し、それにより、ブロック境界５８２で第２のファイル割当てテーブル５７０が開始する。
【００４８】
図５において、第２のファイル割当てテーブル５７０とユーザデータ５６２は、パディング５８４によって分離されている。パディング５８４の一部であるメモリセルは、ユーザデータ５６２がブロック境界５８６で開始するように配置することができる。ユーザデータ５６２はブロック境界に整列することができ、ユーザデータは、メモリアレイ５３０中の物理ブロック境界で開始することができる。
【００４９】
結論
本開示は、ソリッドステートドライブフォーマッティングのための方法およびデバイスを含む。１つのデバイス実施形態は、複数のメモリアレイに結合された制御回路を含み、各メモリアレイは、メモリセルの複数の物理ブロックを有する。メモリアレイは、システムデータが物理ブロック境界で終了する場合には、複数のメモリアレイにシステムデータを書き込むように、ユーザデータは物理ブロック境界から開始する場合には、複数のメモリアレイにユーザデータを書き込むように構成された制御回路によってフォーマットされる。
【００５０】
具体的な実施形態を本明細書に例示し、記載してきたが、当業者には、同じ結果を達成するために計算された構成を、図示された具体的な実施形態と置換し得ることが理解できよう。本開示は、本開示の１つまたは複数の実施形態の適応例または変形例を網羅することを意図するものである。上述の記載は、例示的なものであり、限定的なものではないことを理解されたい。上述の記載を検討すると、上記実施形態の組み合わせ、および本明細書に具体的には記載されていないその他の実施形態が当業者には明らかになるであろう。本開示の１つまたは複数の実施形態の範囲は、上記構造および方法が使用されるその他の適用例を含む。したがって、本開示の１つまたは複数の実施形態の範囲は、添付の特許請求の範囲を参照して、そのような請求の範囲が与える等価物の全範囲とともに決定されるべきである。
【００５１】
前述の詳細な説明において、いくつかのフィーチャは、本開示を合理化するために、単一の実施形態にまとめてグループ化される。本開示の方法は、本開示の開示された実施形態が、各請求項に明示されるよりも多くのフィーチャを使用しなければならないという意図を反映して解釈するべきではない。むしろ、以下の特許請求の範囲が反映するように、本発明の主題は、単一の開示された実施形態のすべてのフィーチャよりも少ないフィーチャにおいて存在する。したがって、以下の特許請求の範囲は詳細な説明に組み込まれ、各請求項は、別個の実施形態の上に立脚する。
【図３】
0005823875.tif 000002
【図４】
0005823875.tif 000003
【図５】
0005823875.tif 000004
【図１】
0005823875.tif 000005
【図２】
0005823875.tif 000006