(57)【特許請求の範囲】
【請求項１】
大容量記憶装置へのデータの書き込み方法であって、
前記大容量記憶装置において受け取られた書き込みコマンドを復号することと、
前記書き込みコマンドの復号に応答して、連結リストを生成することであって、前記連結リストは、外部装置から受け取られるべきユーザデータのための２つ以上の項目と、前記大容量記憶装置により生成されたメタデータのための２つ以上の項目とを有し、前記ユーザデータのための２つ以上の項目および前記メタデータのための２つ以上の項目は定義されたデータ構造に対応する定義された順序を有する、ことと、
前記書き込みコマンドに応答して、前記外部装置からユーザデータを受け取り、ユーザデータのための前記連結リストの前記２つ以上の項目に従って、揮発性メモリへ前記ユーザデータを記憶させることと、
前記外部装置からの前記ユーザデータの受け取りを中断することなく、受け取った前記ユーサデータに関するメタデータを生成することと、
メタデータのための前記連結リストの前記２つ以上の項目に従って、前記受け取られたユーザデータに関連したメタデータを前記揮発性メモリへ記憶させることと、
前記ユーザデータおよび前記メタデータを、前記連結リストにより定義されるデータ構造を有するように、前記揮発性メモリから非揮発性メモリへストリーミングすることと、を含む、方法。
【請求項２】
前記連結リストを生成することが、各項目に対応するデータのユニットのサイズおよび対応するデータが記憶される前記揮発性メモリの開始アドレスを定義する、項目を生成することを含む、請求項１に記載の方法。
【請求項３】
メタデータを記憶させることが、前記書き込みコマンドに関連した前記ユーザデータのすべてを受け取る前に、前記メタデータの少なくとも一部分を記憶させることを含む、請求項１〜２のいずれかに記載の方法。
【請求項４】
前記受け取られたデータに応答して、前記メタデータの少なくとも一部分を生成することをさらに含む、請求項１〜２のいずれかに記載の方法。
【請求項５】
ユーザデータの第１および第２の部分として前記外部装置から前記ユーザデータを受け取り、ユーザデータに対する前記連結リストの前記２つ以上の項目に従って、ユーザデータの前記第１および第２の部分を揮発性メモリへ記憶させることと、
前記ユーザデータの受け取られた前記第１の部分の状態表示情報、前記ユーザデータの受け取られた前記第１の部分のエラー訂正符号データ、および前記ユーザデータの受け取られた前記第１の部分のマッピング情報のうちの少なくとも１つを含む、ユーザデータの前記受け取られた第１の部分に関連した第１のメタデータを生成することと、
前記ユーザデータの受け取られた前記第２の部分の状態表示情報、前記ユーザデータの受け取られた前記第２の部分のエラー訂正符号データ、および前記ユーザデータの受け取られた前記第２の部分のマッピング情報のうちの少なくとも１つを含む、前記受け取られた第２の部分のユーザデータに関連した第２のメタデータを生成することと、
前記ユーザデータの前記第２の部分のすべてを受取る前に、メタデータに対する前記連結リストの２つ以上の項目に従って、前記第１のメタデータを前記揮発性メモリへ記憶させることと、
前記ユーザデータの前記第２の部分を受け取った後、メタデータに対する前記連結リストの前記２つ以上の項目に従って、前記第２のメタデータを前記揮発性メモリへ記憶させることと、
をさらに含む、請求項１〜２のいずれかに記載の方法。
【請求項６】
前記連結リストを生成することが、各項目に対応するデータのユニットのサイズ、および対応するデータが記憶される前記揮発性メモリの開始アドレスを定義する項目を生成することを含み、ユーザデータに対するデータのユニットのサイズが、メタデータに対するデータのユニットのサイズとは異なる、請求項５に記載の方法。
【請求項７】
前記定義されたデータ構造は、前記非揮発性メモリの前記ページの前記データ構造であり、前記非揮発性メモリの前記ページの前記データ構造が、ユーザデータ部分とインターリーブされたメタデータ部分を含む、請求項５に記載の方法。
【請求項８】
大容量記憶装置であって、
マスターコントローラと、
前記マスターコントローラに接続された揮発性メモリと、
前記マスターコントローラに接続され、非揮発性メモリ装置を含む、１つ以上のメモリモジュールと、を含み、
前記マスターコントローラが、受け取られた書き込みコマンドに応答して連結リストを生成するように構成され、
前記連結リストが、外部装置から受け取られるか、または外部装置へ出力されるユーザデータに対する２つ以上の項目を含み、
前記連結リストが、前記大容量記憶装置により生成されるメタデータに対する２つ以上の項目を含み、
前記ユーザデータに対する２つ以上の前記項目および前記メタデータに対する２つ以上の項目が、定義されたデータ構造に対応する定義された順序を有し、
前記マスターコントローラは、さらに、前記書き込みコマンドに応答した前記ユーサデータの受け取りを中断することなく、前記書き込みコマンドに応答して受け取られた前記ユーサデータに関する前記メタデータを生成するように構成されている、大容量記憶装置。
【請求項９】
前記定義されたデータ構造が、前記受け取られた書き込みコマンドによりアドレス指定される非揮発性メモリ装置の物理ページのデータ構造に対応している、請求項８に記載の大容量記憶装置。
【請求項１０】
それぞれの連結リスト項目が、その項目に対応するデータのユニットのサイズ、およびデータの対応するユニットが記憶される前記揮発性メモリの開始アドレスの表示を含む、請求項８〜９のいずれかに記載の大容量記憶装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、概して、半導体メモリに関し、特に、１つ以上の実施形態において、本開示は、方法およびソリッドステート大容量記憶装置のためのデータストリーミングの制御を提供する装置に関する。
【背景技術】
【０００２】
電子装置は、一般に、それに対して利用可能である、いくつかのタイプの大容量記憶装置を有する。一般的例は、ハードディスクドライブ（ＨＤＤ）である。ＨＤＤは、比較的低価格で大量の記憶が可能であり、現在の消費者用のＨＤＤは、１テラバイトを超える容量を使用することができる。
【０００３】
ＨＤＤは、概して、回転磁気媒体またはプラター上にデータを記憶する。データは、典型的に、プラター上に磁束反転のパターンとして記憶される。典型的なＨＤＤへデータを書き込むためには、プラターが高速で回転し、それと同時に、プラター上で浮動している書き込みヘッドが、一連の磁気パルスを生成して、そのデータを表すようにプラター上で磁粉を整列させる。典型的なＨＤＤからデータを読み込むためには、高速で回転したプラター上で浮動する磁気抵抗読み込みヘッドにおいて、抵抗変化が誘導される。実践において、得られたデータ信号は、アナログ信号であり、上がり下がりは、データパターンの磁束反転の結果である。次いで、ＰＲＭＬ方式（ｐａｒｔｉａｌ  ｒｅｓｐｏｎｓｅ  ｍａｘｉｍｕｍ  ｌｉｋｅｌｉｈｏｏｄ）と呼ばれるデジタル信号処理技術が用いられ、データ信号を生成することに関わった可能性のあるデータパターンを決定するために、アナログデータ信号をサンプリングする。
【０００４】
ＨＤＤは、それらの機械的特性のために、ある欠点を有する。ＨＤＤは、衝撃、振動、または強磁場により、破損または過度の読み込み／書き込みエラーを起こしやすい。加えて、それらは、携帯電子装置において、比較的大きな電力を消費する部品である。
【０００５】
大容量記憶装置の別の例は、ソリッドステートドライブ（ＳＳＤ）である。回転媒体上においてデータを記憶する代わりに、ＳＳＤは、それらのデータを記憶するのに、半導体メモリ装置を用いるが、多くの場合、それらのホストシステムには、典型的なＨＤＤであるかのように見えるインターフェースおよびフォームファクターを含む。ＳＳＤのメモリ装置は、典型的に、非揮発性フラッシュメモリ装置である。
【０００６】
フラッシュメモリ装置は、広範の電子応用に対する、非揮発性メモリの一般的ソースへと発展した。フラッシュメモリ装置は、典型的に、高密度メモリ、高信頼性、および低消費電力を可能とする１トランジスタメモリセルを使用する。セルのしきい電圧における変化は、電荷蓄積ノード（例えば、フローティングゲートまたはトラップ層）、もしくは他の物理現象（例えば、相位変化または分極）のプログラミングを通して、各セルのデータ値を決定する。フラッシュメモリおよび他の非揮発性メモリの一般的な用途は、パーソナルコンピュータ、携帯端末（ＰＤＡ）、デジタルカメラ、デジタルメディアプレーヤー、デジタルレコーダー、ゲーム、家庭用電気器具、車両、無線装置、携帯電話、およびリムーバブルメモリモジュールを含み、かつその非揮発性メモリの用途は、拡大し続けている。
【０００７】
ＨＤＤとは異なり、ＳＳＤの操作は、概して、それらのソリッドステートの特質のため、振動、衝撃、または磁場関連には影響されない。同様に、可動部が無いので、ＳＳＤは、ＨＤＤよりも必要とする電力が少ない。しかしながら、ＳＳＤは、現在、ＨＤＤの同じフォームファクターと比較した場合、かなり低い記憶容量を有し、かつ同等の記憶容量に対し、大いに高価格である。
【０００８】
電子システムのデータ記憶装置およびデータ製作／消費装置間のデータの効率的な動きにおいて、直接メモリアクセス（ＤＭＡ）は、記憶装置への直接アクセスを可能にし、その間電子システムの主プロセッサが他のタスクを行うことを可能とする。かかるシステムにおいて、データは、たびたび、定義されたサイズのパケットで、記憶装置へ転送、または記憶装置から転送される。これらパケットは、大容量記憶装置により受け取られると、多くの場合、連結リストプロトコルを使用することにより、揮発性記憶へと記憶される。これは、大容量記憶装置の非揮発性記憶域にデータが書き込まれることを待つことなく、効率的なデータ転送を容易にする。
【０００９】
フラッシュメモリ装置は、概して、ユーザデータと共に記憶され、多くの場合メタデータと呼ばれる、ある種の非ユーザデータを用いる。一例として、大容量記憶装置により生成される、状態表示器、エラー訂正符号データ、マッピング情報等は、ユーザデータと共に記憶され得る。これら２つのデータタイプを一緒に記憶することで、メモリ装置に対しユーザデータの定義された単位のストリーミングをもたらし、次いで、メタデータによって、続く書き込みラッチを充たすため、ユーザデータのストリーミングをインタラプトする。メタデータが、メモリ装置へ一度書き込まれると、ユーザデータの、別の定義されたユニットが、ストリーミングされ得る。この周期的なユーザデータのインタラプトは、大容量記憶装置が、その非揮発性記憶域の異なるデータタイプ間のトラフィックを、管理する際に、非効率を引き起こす。
【００１０】
上述の理由、および本明細書を読み、かつ理解すると当業者に明白となる他の理由のため、大容量記憶装置のためのデータストリーミングの代替的な制御の必要性が、当技術分野に存在する。
【図面の簡単な説明】
【００１１】
【図１】本開示の実施形態に従う、少なくとも１つのメモリモジュールを有する電子システムの機能ブロック図である。
【図２】本開示の実施形態に従う、図１のマスターコントローラのさらなる細部を表した回路ブロックである。
【図３】本開示の実施形態に従う、一実施形態のデータ構造のページの表示である。
【図４Ａ】本開示の実施形態に従う、連結リストの表示である。
【図４Ｂ】本開示の実施形態に従って、種々のデータユニットが、どのように記憶され、かつアクセスされるかを概念的に表す揮発性メモリの一部の表示である。
【図５】本開示の実施形態に従う、大容量記憶装置へデータを書き込む方法のフローチャートである。
【図６】本開示の実施形態に従う、大容量記憶装置からデータを読み込む方法のフローチャートである。
【発明を実施するための形態】
【００１２】
以下の本実施形態の詳細説明において、本明細書の一部を形成し、実施形態が実践され得る具体的な実施形態の例証の手段として示される、付随の図面が参照される。これらの実施形態は、当業者が本発明を実践することを可能にするために、十分細部にわたり説明されており、かつ他の実施形態を用いることが可能であり、その過程、電気的または機械的変更を、本開示の範囲から逸脱することなくなし得ることを理解されたい。以下の詳細説明は、したがって、限定的意味に解釈されるべきではない。
【００１３】
図１は、ソリッドステートドライブ（ＳＳＤ）１００のブロック図であり、すなわち、本開示の一実施形態に従う、電子システム１２０の一部としてプロセッサ１３０と通信（例えば、接続されて）する大容量記憶装置である。該電子システム１２０は、それが、そのプロセッサ１３０を通し、ＳＳＤの操作を制御するという点で、ＳＳＤ１００のホストであるとみなすことができる。電子システムのいくつかの例は、パーソナルコンピュータ、ノートパソコン、携帯端末（ＰＤＡ）、デジタルカメラ、デジタルメディアプレーヤー、デジタルレコーダー、電子ゲーム等を含む。プロセッサ１３０は、ディスクドライブコントローラまたは他の外部プロセッサで有り得る。典型的に、プロセッサ１３０およびＳＳＤ１００を接続するために使用される、標準プロトコルを利用する通信バス１３２がそこに存在する。通信バス１３２は、典型的に、複数信号より成り、アドレス、データ、電力、および種々のＩ／Ｏ信号を含む。通信バス１３２のタイプは、システム１２０で用いられるドライブインターフェースのタイプに依存する。いくつかの従来のディスクドライブインターフェースバスプロトコルの例は、ＩＤＥ、ＡＴＡ、ＳＡＴＡ、ＰＡＴＡ、ファイバーチャンネル、およびＳＣＳＩである。他のドライブインターフェースが存在し、かつ当技術分野において公知である。図１は、本開示の実施形態に焦点を合わせるために、単純化されていることが理解されるべきである。付加の、または異なる構成要素、接続、およびＩ／Ｏ信号が、当技術分野において公知であるように、本開示の範囲から逸脱することなく実装され得る。例えば、ＳＳＤ１００は、揮発性メモリ１１４のための専用コントローラである電力調節／配電回路等を含み得る。しかしながら、かかる付加コンポーネントは、本開示の理解のためには必要ではない。
【００１４】
本開示の一実施形態に従う、ＳＳＤ１００は、図１で示されるように、プロセッサ１３０、例えば、ドライブコントローラが通信バス１３２を介し、ＳＳＤ１００と相互作用することを可能とするインターフェース１０２を含む。インターフェース１０２は、当業者には周知の多くの標準コネクタのうちの１つで有り得る。これらのインターフェース１０２コネクタのいくつかの例は、ＩＤＥ、ＡＴＡ、ＳＡＴＡ、およびＰＣＭＣＩＡコネクタである。種々の本開示の実施形態は、多種多様のＨＤＤ従来タイプを模倣するように構成され得るので、他のディスクドライブコネクタもまた、インターフェース１０２において用いられ得る。
【００１５】
図１のＳＳＤ１００はまた、マスターコントローラ１０４、いくつかのメモリモジュール１０６１〜１０６Ｎ、および揮発性メモリ１１４を含む。マスターコントローラ１０４により実行されるいくつかの機能は、ＳＳＤ１００内での操作を管理し、通信バス１３２を介し、ＳＳＤ１００にとって外部装置であるプロセッサ１３０等と通信することである。メモリモジュール１０６１〜１０６Ｎは、ＳＳＤ１００のための、大容量記憶媒体として作動する。揮発性メモリ１１４は、ＳＳＤ１００へのデータ転送、かつＳＳＤ１００からのデータ転送のためのバッファ記憶装置として作動する。
【００１６】
マスターコントローラ１０４は、ＳＳＤ１００の種々の操作を管理する。説明されたように、ＳＳＤは、標準ＨＤＤの簡単に取り替えられる代替として使用され得、標準インターフェースおよび通信プロトコルを有する多くの標準ＨＤＤがそこに存在する。したがって、マスターコントローラ１０４の多くの機能の１つは、これら標準ＨＤＤプロトコルの１つの操作を模倣することである。マスターコントローラ１０４の別の機能は、ＳＳＤ１００にインストールされたメモリモジュール１０６の操作を管理することである。マスターコントローラ１０４は、多種多様の標準通信プロトコルを使用し、メモリモジュール１０６と通信するように構成可能である。例えば、本開示の一実施形態において、マスターコントローラ１０４は、ＳＡＴＡプロトコルを使用し、メモリモジュール１０６とやりとりする。他の実施形態は、メモリモジュール１０６と通信するために、他の通信プロトコルを用い得る。マスターコントローラ１０４はまた、誤り訂正符号（ＥＣＣ）検査等のメモリモジュールに関する付加的機能を実行し得る。マスターコントローラ１０４の実装は、ハードウェアまたはハードウェア／ソフトウェアの組み合わせの使用により達成され得る。例えば、マスターコントローラ１０４は、状態機械により、全体が、または部分的に実装され得る。マスターコントローラ１０４はさらに、本開示の１つ以上の方法を実行するように構成される。
【００１７】
メモリモジュール１０６は、内部通信バス１１２を使用し、マスターコントローラ１０４と接続される。マスターコントローラ１０４およびメモリモジュール１０６間の通信は、示されている、一般的バス１１２、および／またはマスターコントローラ１０４および各メモリモジュール１０６間の個別接続を用いることによって、実装され得る。
【００１８】
制御回路１１０は、非揮発性メモリ装置１１６の、その対応するメモリモジュール１０６１〜１０６Ｎ上での操作を管理する。メモリ装置１１６は、フラッシュメモリ装置で有り得る。制御回路１１０はまた、メモリモジュール１０６１〜１０６Ｎと通信するために、マスターコントローラ１０４により用いられる、通信プロトコルを変換するように作動する。例えば、本開示の一実施形態において、マスターコントローラ１０４は、メモリモジュール１０６１〜１０６Ｎと相互作用するために、ＳＡＴＡプロトコルを用い得る。かかる実施形態では、制御回路１１０は、ＳＡＴＡインターフェースを模倣するように構成される。制御回路１１０はまた、メモリモジュールに記憶されるデータへのアクセス、および摩耗均一化を調節するために、セキュリティー機能記憶等の他のメモリ機能を管理する。
【００１９】
上述のように、外部装置から受け取られたユーザデータのストリームへの、大容量記憶装置で生成されたデータの挿入は、その挿入が大容量記憶装置で実行される間に、ストリーミングがインタラプトされるので非効率を引き起こし得る。種々の実施形態は、その２つのデータタイプの入力を包含する連結リストを生成することによって、この問題を対処する。その入力は、定義された順序を有する。例えば、連結リストは、ユーザデータのための３つの項目を有し、その後にメタデータのための１つの項目が続くように定義され得る。これは、定義されたデータ構造を有するデータのストリーミングを促進する。
【００２０】
連結リストプロトコルは、転送するデータのユニットのサイズ、およびそのデータのユニットに対する開始アドレスを定義することによって、データの効率的なストリーミングを提供する。このようにして、データは、開始アドレスからストリーミングを開始し、およびその後の連続アドレスを通して、定義されたサイズが転送されるまで続けられる。連結リストにおける次の項目は、次いで、データの次のユニットのサイズ、およびその開始アドレスを定義し、その処理が繰り返され得る。
【００２１】
前システムにおいて、大容量記憶装置によりユーザデータが受け取られると、それは揮発性メモリへと記憶されることとなる。連結リストが生成され、揮発性メモリで記憶されるデータユニットのサイズ、およびそれらの各データユニットが記憶されるであろう開始アドレスを定義することとなる。マスターコントローラが、その後、それらのデータユニットを、その非揮発性メモリモジュールへストリーミングすると、いくつかの転送されたユニットに対してポーリングすることとなり、次いで、ユーザデータの特定の数のユニットが転送された後、メタデータの転送を開始するために、メモリモジュールへのデータ転送をインタラプトすることとなる。メタデータ転送の完了後、そのマスターコントローラは、次いで、連結リストを再び参照して、連結リストの次の項目に従って、ユーザデータのストリーミングを再開始することとなる。
【００２２】
本明細書で説明される種々の実施形態は、ユーザデータ項目内に、メタデータに対する連結リスト項目を挿入する。メタデータ項目が挿入される前に作成される、ユーザデータ項目の数についての値が定義される。例えば、ユーザデータは、特定のサイズのユニットで、ＳＤＤ１００により受け取られる。したがって、ユーザデータの各連結リスト項目は、受け取られるユーザデータのユニットを示すサイズ、および、マスターコントローラ１０４により選択される、その受け取られたユニットの、揮発性メモリ１１４内における記憶のための開始アドレスを定義することとなる。セクターによりデータユニットを定義する、または５１２バイトをセクターサイズとして使用するための条件は存在しないが、セクターは、多くの場合５１２バイトであることを理解されたい。この例を続けると、ページごとに４ＫＢのユーザデータおよび８０バイトのメタデータのために構成されたメモリ装置へユーザデータを書き込むこと、およびそのページを、各２ＫＢの２つのセクションのユーザデータへ分割することを所望する場合、ユーザデータの各セクションの後に、各４０バイトのメタデータのセクションが続く場合、この例における値は、４が選択され、それにより、受け取られたユーザデータに対する４つの連結リスト項目が作成され、それらはそれぞれ、定義された５１２バイトのサイズを有し、４０バイトのサイズを定義するメタデータの連結リスト項目が続く。
【００２３】
ユーザデータの受け取り、メタデータ項目の挿入のためにインタラプトされる必要はなく、その入力に対応するメタデータは、連結リスト項目の作成前に生成されなくてもよい。マスターコントローラ１０４が、対応するメタデータユニットのサイズを知っているため、マスターコントローラは、メタデータユニットサイズおよび開始アドレスにより定義されるその揮発性メモリ１１４における記憶域を、単に確保するにすぎない。あるメタデータが、受け取られたユーザデータに基づいて計算、例えば、エラー訂正符号（ＥＣＣ）データの生成を要求し得る際、マスターコントローラは、次のユーザデータを受け取ることができる前に、そのデータの計算を要求するために、データの流れをインタラプトする。そのデータの記憶場所を単に確保し、説明されたように、その連結リスト項目を作成することにより、メタデータが一度、生成ならびに記憶されると、ユーザデータおよびその対応するメタデータは、インタラプトなしで、メモリモジュール１０６へストリーミングすることができ、それにより、マスターコントローラ１０４が、摩耗均一化、および信号処理等の他のタスクに対して、その処理リソースを用いることを可能にする。
【００２４】
前述の例は、メモリモジュールへの書き込みのためのユーザデータの受け取りに対する実施形態を説明したが、本明細書で説明される概念はまた、メモリモジュールからのユーザデータを読み込むことに適用することができる。したがって、連結リストは、メモリモジュールから受け取るユーザデータユニットおよびメタデータユニットのサイズおよび場所を定義するように、作成されることとなる。データは、次いで、メモリモジュールからストリーミングされ、連結リストにおいて定義されたアドレスへと記憶されることとなる。ユーザデータは、次いで、通信バス１３２上での出力に対し利用可能となる。
【００２５】
図２は、本開示の一実施形態に従う図１のマスターコントローラ１０４のさらなる細部を表す回路ブロックである。図２において、マスターコントローラ１０４は、プロセッサ２１８を含む。プロセッサ２１８は、ＳＳＤ１００の一般操作を提供する。例えば、プロセッサ２１８は、信号処理を行って、メモリモジュール１０６から受け取った信号を評価し、摩耗均一化を行って、種々のメモリ装置の、比較的均一な使用量を維持することができる。プロセッサ２１８はさらに、外部装置から受け取ったコマンドを復号することができる。一実施形態では、プロセッサ２１８は、本明細書で説明されるように、連結リストを生成する。
【００２６】
マスターコントローラ１０４はさらに、揮発性メモリ１１４および非揮発性メモリモジュール１０６の制御およびアクセスのために、それぞれ揮発性メモリコントローラ２２２および非揮発性メモリコントローラ２２４を含み得る。種々の実施形態では、プロセッサ２１８が連結リストを生成するように構成され得、非揮発性メモリコントローラ２２４を、プロセッサ２１８による、さらなるトラフィックなしで、連結リストにより定義されたように、メモリモジュール１０６から、およびメモリモジュール１０６へ、データをストリーミングするように構成することができる。
【００２７】
図３は、本開示の実施形態に従った、ページ３３０のデータ構造の一実施形態の表示である。ページ３３０は、１つ以上のユーザデータ部分３３２および１つ以上のメタデータ部分３３４を有する。メタデータ部分３３４は、概して、外部装置によるその後の読み出しのため、メモリ装置上での記憶のために、外部装置から受け取られることがないデータを含有する。例としては、ページ３３０の論理アドレス、ＥＣＣデータ、状態表示情報を含まれる。一例として、各ユーザデータ部分３３２は、２，０４８バイトのユーザデータを含有し、各メタデータ部分３３４は、４８バイトのメタデータを含有する。ページ３３０はさらに、設計者が選択し得る、他の目的のための付加データ部分（未表示）を含み得る。
【００２８】
書き込み操作中、ユーザデータをＳＳＤ１００へ提供する外部装置は、概して、メタデータを認識しないため、それは、典型的に、ユーザデータを、このデータのストリーム中の論理アドレス、例えば、ページ３３０に対応するアドレスへとプログラムされるように、提供することとなる。上述のように、このユーザデータのストリームは、定義されたサイズの１つ以上のユニット、例えば、データのセクターのユニットを含有し得る。種々の実施形態では、ユーザデータを論理アドレスへ書き込むコマンドを受け取ることに応答して、マスターコントローラ１０４は、ユーザデータのユニットサイズ、および記憶のための場所を定義するように、連結リストを生成する。マスターコントローラ１０４はさらに、メタデータのユニットサイズ、および記憶のために場所を定義するように、連結リストでの項目を作成する。連結リストの構造は、ページ３３０の所望のデータ構造に従うこととなる。例えば、ユーザデータ部分３３２ａおよび３３２ｂが、それぞれ２，０４８バイトであり、メタデータ部分３３４ａおよび３３４ｂが、それぞれ４８バイトであり、ユーザデータユニットは、それぞれ５１２バイトであり、メタデータユニットが、それぞれ４８バイトである場合、ページ３３０の読み込みまたは書き込みのための連結リストは、４つ（２，０４８バイト／５１２バイト）のユーザデータ項目を含有し、その後１つのメタデータ項目が続き、その後４つのユーザデータ項目が続き、その後１つのメタデータ項目が続くこととなる。各ユーザデータ項目は、５１２バイトのサイズを定義し、各メタデータ項目は、４８バイトのサイズを定義することとなる。
【００２９】
図４Ａは、本開示の一実施形態に従った、連結リスト４４０の表示である。連結リスト４４０は、１つ以上のユーザデータ項目４４２および１つ以上のメタデータ項目４４４を含む。各ユーザデータ入力４４２およびメタデータ項目４４４における破線は、各項目が、その項目に対するデータユニットのサイズおよびそのデータユニットに対する開始アドレスの双方を定義することを示す。
【００３０】
図４Ｂは、種々のデータユニットが、メモリモジュールへ転送するために、どのように記憶およびアクセスされるかを概念的に示す、揮発性メモリ１１４の一部の表示である。揮発性メモリ１１４は、１つ以上のサブセグメント４４６を有する。各サブセグメント４４６は、揮発性メモリ１１４内での、隣接アドレス空間を表すが、個々のサブセグメント４４６は、同じサイズを有する必要はない。ユーザデータユニット、例えば、図４Ｂのユーザデータ０〜７がＳＳＤ１００により受け取られると、各ユーザデータユニットは、連結リスト４４０により定義されるように、サブセグメント４４６に記憶される。サブセグメント４４６は、隣接アドレス空間を表すが、個々のユーザデータユニットは、隣接するサブセグメント４４６に記憶される必要がないことを理解されたい。例えば、そこには、ユーザデータ２の終了する場所とユーザデータ３が開始する場所の間に記憶場所が存在し得る。これらの記憶場所は、未使用、もしくは、それらはすでに、プロセッサ２１８により使用される他のデータの記憶のために、指定されているかもしれない。
【００３１】
メタデータユニット、例えば、図４Ｂのメタデータ０〜１は、ユーザデータユニットが受け取られている間、またはそのデータ転送が終了した後に、揮発性メモリ１１４へ書き込まれ得る。メタデータユニットは、連結リスト４４０により定義されたように、サブセグメント４４６に記憶される。ユーザデータと同様に、個々のメタデータユニットは、隣接サブセグメント４４６へ記憶される必要はない。しかしながら、メタデータユニットのデータは、個々のサブセグメント４４６の連続アドレス空間で記憶される。
【００３２】
連結リスト４４０の項目は、それらの項目に対応するデータが受け取られる前に、プログラムされる。しかしながら、連結リスト４４０全体が、データ転送完了前に生成される必要はない。例えば、ホスト装置が、書き込みコマンドをＳＳＤ１００に発行する場合、該書き込みコマンドの後に、８つのユーザデータユニットが続き得る。したがって、連結リスト項目は、第１のユーザデータユニットに対しては、第１のユーザデータユニットを受け取る前に作成されるが、その後の連結リスト項目は、第１のユーザデータユニットが受け取られている間に作成され得る。また、メタデータユニットに対する連結リスト項目は、その後のストリーミングのため、メタデータを揮発性メモリ１１４へ書き込む前に作成されるが、メタデータの生成前に、作成される必要はない。
【００３３】
種々の実施形態はさらに、メタデータユニットが、いつ揮発性メモリ１１４へ転送されるのか、もしくはそれらがいつメモリモジュール１０６へ転送されるのかを制御する。例えば、メタデータは、その対応する連結リスト項目が、有効な開始アドレスでプログラムされるまでは、揮発性メモリ１１４へと転送されるべきではない。加えて、あるメタデータは、ユーザデータの転送が完了する後まで生成され得ないため、かかるメタデータのメモリモジュール１０６へのストリーミングは、連結リストにより定義されるサブセグメントが、有効なメタデータを含有する後まで、遅延すべきである。したがって、非揮発性メモリコントローラ２２４は、メタデータの揮発性メモリ１１４のストリーミングに対するメタデータの記憶を、対応する連結リスト項目４４４が生成されるまで禁止し、揮発性メモリ１１４からのメタデータのストリーミングを、連結リストにより定義されるサブセグメント４４６が、有効なメタデータを含有する後まで、禁止するように構成され得る。
【００３４】
ユーザデータユニットおよびメタデータユニットの、データの非揮発性記憶のメモリモジュールへの転送のために、メモリコントローラ２２４は、次いで、連結リスト４４０に従って、非揮発性揮発性メモリからデータをストリーミングする。したがって、図４Ｂで描写されるように、ユーザデータ０が、メモリモジュールへと提供され、ユーザデータ１〜３がその後に続く。ユーザデータ３の転送の完了次第、メタデータ０が転送され、ユーザデータ４〜７、および次いでメタデータ１が続く。このようにして、ユーザデータおよびメタデータが、メタデータの挿入のために、プロセッサ２１８による、データストリーミング操作のインタラプトを必要とせずに、定義されたデータ構造を有して、メモリモジュールへと提供される。メタデータは、概して、外部装置へと提供されないため、ＳＳＤ１００の読み込みコマンドに応答する際、揮発性メモリ１１４から通信バス１３２へのデータストリーミングは、連結リスト４４０においてメタデータ項目４４４を省くべきである。
【００３５】
図５は、本開示の実施形態に従った、大容量記憶装置へのデータ書き込みの方法のフローチャートである。５５０で、書き込みコマンドが、復号される。該復号は、概して、大容量記憶装置のマスターコントローラのプロセッサにより実行される。
【００３６】
書き込みコマンドは、少なくともユーザデータが書き込まれる論理アドレスを定義する、外部提供されるコマンドである。書き込みコマンドはさらに、大容量記憶装置へと書き込まれる、ユーザデータを提供する。書き込みコマンドは、ユーザデータユニットサイズを定義し得るが、これは、プロトコルにより定義され得る。したがって、所与のプロトコルの書き込みコマンドは、コマンドに続くユーザデータユニットの数、および各ユニットのサイズを、コマンドと共にその情報を明示的に提供する必要なしに、定義し得る。
【００３７】
５５２で、書き込みコマンドの復号に応答して、連結リストが生成される。連結リストは、定義された数の、ユーザデータに対する項目、定義された数の、メタデータに対する項目、および定義された項目の順序を有する。上述のように、各連結リスト項目は、記憶されるデータのユニットサイズ、およびそのデータのユニットが記憶される開始アドレスを定義する。連結リスト項目は、対応するアドレスで記憶されるデータのタイプを定義する必要はない。例えば、大容量記憶装置のマスターコントローラのプロセッサは、特定の数の項目のアドレスにおいて、ユーザデータユニットを記憶するため、連結リストを、次の項目のアドレスにおいてメタデータを記憶する前に、生成するように、構成され得る。連結リストは、十分な項目を、すなわち、ある数の項目と、それぞれの項目のサイズの組み合わせを、書き込みコマンドと関連したすべてのユーザデータが、定義された記憶場所を有するように、含有すべきである。連結リストはまた、メタデータのために少なくとも１つの項目を含有する。
【００３８】
５５４で、書き込みコマンドに応答して受け取られたユーザデータは、ユーザデータに対する連結リスト項目よって定義されたアドレスおよびユニットサイズに従って、記憶される。例えば、ホストは、大容量記憶装置へユーザデータユニットの転送を開始し得る。第１のユーザデータユニットが受け取られると、第１のユーザデータユニットのデータは、開始アドレスにより定義された場所より始めて、揮発性メモリへ書き込まれ、第１のユーザデータユニットのデータは、次いで、連結リスト項目によって定義されたサイズに達するまで、隣接メモリ空間のその後のアドレスへと書き込まれる。受け取られた次のユーザデータユニットは、そこで、書き込みコマンドに関連したすべてのユーザデータが受け取られるまで、ユーザデータに対する次の連結リスト項目に従って、揮発性メモリへと記憶される等、となる。
【００３９】
５５６で、メタデータは、受け取られたユーザデータに関連する大容量記憶装置により生成されるメタデータは、メタデータに対する連結リスト項目により定義されたユニットサイズとアドレスに従って、記憶される。図５では、メタデータは、ユーザデータの受け取りに続くように描写されているが、いくつか、またはすべてのメタデータは、すべてのユーザデータが受け取られる前に、その連結リスト項目に従って、記憶され得る。例えば、該書き込みコマンドは、８つのユーザデータユニットに関連し得る。この例については、大容量記憶装置は、最初の４つのユーザデータユニットを受け取り、それらのユーザデータユニットに対するメタデータを生成し、最後の４つのユーザデータユニットが受け取られる前に、揮発性メモリへそのメタデータを記憶することができる。
【００４０】
５５８で、ユーザデータおよびメタデータは、連結リストにより定義されたデータ構造を有して、非揮発性メモリへストリーミングされ得る。例えば、連結リストが、各５１２バイトの４つのユーザデータ項目、１つの４８バイトのメタデータ項目、各５１２バイトの４つのユーザデータ入力、および１つの４８バイトのメタデータ項目を有する場合、非揮発性メモリに提供されるデータの構造は、２，０４８バイトのユーザデータを有し、４８バイトのメタデータが続き、その後２，０４８バイトのユーザデータが続き、さらに４８バイトのメタデータが続くこととなる。
【００４１】
図６は、本開示の実施形態に従う、大容量記憶装置からデータを読み込む方法のフローチャートである。６６０で、読み込みコマンドが、復号される。該復号は、概して、大容量記憶装置のマスターコントローラのプロセッサにより実行することができる。
【００４２】
読み込みコマンドは、ユーザデータが読み込まれる、少なくとも１つの論理アドレスを定義する、外部から提供されるコマンドである。読み込みコマンドは、ユーザデータユニットサイズを定義し得るが、これは、データを含有する記憶装置のデータ構造により定義され得る。したがって、記憶装置のデータ構造は、読み込むべきユーザデータユニットの数および各ユニットのサイズを、その情報をコマンドと共に明示的に提供することを必要とすることなく、定義し得る。
【００４３】
６６２で、読み込みコマンドの復号に応答して、連結リストが生成される。連結リストは、ユーザデータに対する定義された数の項目、メタデータに対する定義された数の項目、および定義された項目の順序を有する。上述のように、各連結リスト項目は、記憶されるデータのユニットサイズおよびデータのユニットが記憶される開始アドレスを定義し、そのデータは、外部装置から受け取られるか、大容量記憶装置のメモリモジュールから受け取られるかである。連結リスト項目は、それらの対応するアドレスで記憶されるデータのタイプを定義する必要はない。例えば、大容量記憶装置のマスターコントローラのプロセッサは、次の入力のアドレスでメタデータユニットが記憶される前に、入力の特定の数のアドレスでユーザデータユニットを記憶するために、連結リストを生成するように構成されることが可能である。連結リストは、十分な項目、すなわち、ある数の項目と、それぞれの項目のサイズの組み合わせを、読み込みコマンドに関連したすべてのデータが、定義された記憶場所を有するように、含有するべきである。連結リストはまた、メタデータに対する少なくとも１つの項目を含有する。
【００４４】
６６４で、データは、読み込みコマンドに応答して、大容量記憶装置のメモリ装置から読み込まれ、そのデータに対する連結リスト項目により定義されたアドレスおよびユニットサイズにより、揮発性メモリへストリーミングされる。例えば、読み込みコマンドは、メモリ装置から読み込まれるデータのページをもたらし得る。このデータのページは、次いで、連結リスト項目に従って、揮発性メモリへ書き込まれる。例えば、連結リストが、各５１２バイトの４つのユーザデータ入力、４８バイトの１つのメタデータ項目、各５１２バイトの４つのユーザデータ入力、および４８バイトの１つのメタデータ項目を有する場合、第１の２，０４８バイトのデータは、最初の４つのユーザデータ入力に従って記憶され、次の４８バイトのデータは、最初のメタデータ項目に従って記憶され、次の２，０４８バイトのデータは、最後の４つのユーザデータ入力に従って記憶され、次の４８バイトのデータは、最後のメタデータ項目に従って記憶される。一実施形態では、非揮発性メモリコントローラは、マスターコントローラのプロセッサによる介入なしで、非揮発性メモリ装置からデータを揮発性メモリコントローラへストリーミングするように構成される。このようにして、データが、連結リストに従って揮発性メモリへ追加されている間、プロセッサは、他のタスクを操作することが自由にでき、揮発性メモリへのデータ転送に関与する必要がない。
【００４５】
６６６で、ユーザデータは、外部装置へ出力される。メタデータは、概して、大容量記憶装置により内部で使用され、外部装置による使用を意図しない。故に、連結リストは、メタデータに対する連結リスト項目を単に省くことにより、読み出されたデータのユーザデータ部分のみを転送するためのみに用いることができる。
【００４６】
本明細書で具体的な実施形態を例証かつ説明したが、表示された具体的な実施形態に対し、同じ目的を達成するように意図されたいずれの設定も代用され得ることが、当業者によって理解されるであろう。本開示の多くの改変は、当業者には明白である。故に、本出願は、本開示のいずれの改変または変形をも網羅することを意図する。
【図１】
0005263561.tif 000002
【図２】
0005263561.tif 000003
【図３】
0005263561.tif 000004
【図４Ａ】
0005263561.tif 000005
【図４Ｂ】
0005263561.tif 000006
【図５】
0005263561.tif 000007
【図６】
0005263561.tif 000008