(57)【要約】【課題】異なる最小アドレス可能データユニットサイズを有する不揮発性メモリユニットの中から選択するための装置、システムおよび方法、ならびにコンピュータ可読媒体を提供する。【解決手段】装置は、ホストインターフェースおよびメモリデバイスに連結可能なコントローラを含む。メモリデバイスは、異なる最小アドレス可能データユニットサイズを有する２つ以上の非階層不揮発性メモリユニットを含む。コントローラは、ホストインターフェースを介してメモリデバイスに記憶されているデータオブジェクトのワークロード指標を判定することを少なくとも行うように構成される。コントローラは、ワークロード指標に応じて選択されるメモリユニットの最小アドレス可能データユニットサイズに対応するデータオブジェクトのワークロード指標に応答して、メモリユニットのうちの１つを選択する。データオブジェクトは、応答して選択されたメモリユニットに記憶される。【選択図】図４
2014179086.tif 000002
【特許請求の範囲】
【請求項１】
ホストインターフェースと、異なる最小アドレス可能データユニットサイズを有する２つ以上の非階層不揮発性メモリユニットを備えるメモリデバイスと、に連結可能なコントローラであって
前記ホストインターフェースを介して前記メモリデバイスに記憶されているデータオブジェクトのワークロード指標を判定することと、
前記ワークロード指標に応じて選択されるメモリユニットの前記最小アドレス可能データユニットサイズに対応する前記データオブジェクトの前記ワークロード指標に応答して、前記メモリユニットのうちの１つを選択することと、
応答して前記選択されたメモリユニットに、前記データオブジェクトを記憶することと、
を少なくとも行うように構成されるコントローラを備える、装置。
【請求項２】
前記メモリユニットのうちの少なくとも１つは、個々のビットレベルでアドレス可能である、請求項１に記載の装置。
【請求項３】
前記ワークロード指標は、前記データオブジェクトのランダム度測定を含み、比較的高いランダム度を有するオブジェクトは、比較的小さい最小アドレス可能データユニットサイズを有する前記メモリユニットに対応する、請求項１に記載の装置。
【請求項４】
前記ワークロード指標は、前記データオブジェクトに関連する最近の活動のレベルおよび／または頻度を含み、最近の活動の比較的高いレベルおよび／または頻度を有するオブジェクトは、比較的小さい最小アドレス可能データユニットサイズを有する前記メモリユニットに対応する、請求項１に記載の装置。
【請求項５】
前記ホストインターフェースは、均一な論理ブロックサイズの論理ブロックへのアクセスを提供し、前記異なる最小アドレス可能データユニットサイズのうちの少なくとも１つは、前記均一な論理ブロックサイズよりも小さい、請求項１に記載の装置。
【請求項６】
前記２つ以上のメモリユニットは、スループットメトリック、待機時間メトリック、耐久性メトリック、および使用可能領域メトリックのうちの任意の組み合わせを含む少なくとも１つの他の異なる特性を有し、前記メモリユニットのうちの前記選択された１つは、前記ワークロード指標に応じて複合特性に応答して選択され、前記複合特性は、前記異なる最小アドレス可能データユニットサイズおよび前記少なくとも１つの他の異なる特性に基づく、請求項１に記載の装置。
【請求項７】
前記少なくとも１つの他の異なる特性のうちの選択された特性は、前記選択された特性に関連する前記メモリユニットのうちの少なくとも１つの状態が閾値に到達したときに、前記複合特性よりも優先される、請求項６に記載の装置。
【請求項８】
前記選択された特性は、前記耐久性メトリックを含む、請求項７に記載の装置。
【請求項９】
前記選択された特性は、前記使用可能領域メトリックを含む、請求項７に記載の装置。
【請求項１０】
前記メモリユニットのうちの少なくとも１つは、抵抗メモリユニットを含む、請求項１に記載の装置。
【請求項１１】
ホストコマンドの対象であるデータオブジェクトのワークロード指標を判定することと、
前記ワークロード指標に応じて選択されるメモリユニットの前記最小アドレス可能データユニットサイズに対応する前記データオブジェクトの前記ワークロード指標に応答して、異なる最小アドレス可能データユニットサイズを有する２つ以上の非階層不揮発性メモリユニットからメモリユニットを選択することと、
応答して前記選択されたメモリユニットに、前記データオブジェクトを記憶することと、を含む、方法。
【請求項１２】
前記メモリユニットのうちの少なくとも１つは、個々のビットレベルでアドレス可能である、請求項１１に記載の方法。
【請求項１３】
前記ワークロード指標は、前記データオブジェクトに関連する最近の活動のレベルおよび／または頻度を含み、最近の活動の比較的高いレベルおよび／または頻度を有するオブジェクトは、比較的小さい最小アドレス可能データユニットサイズを有する前記メモリユニットに対応する、請求項１１に記載の方法。
【請求項１４】
前記ワークロード指標は、前記データオブジェクトのランダム度測定を含み、比較的高いランダム度を有するオブジェクトは、比較的小さい最小アドレス可能データユニットサイズを有する前記メモリユニットに対応する、請求項１１に記載の方法。
【請求項１５】
前記ワークロード指標は、時間的局所性メトリックを含む、請求項１１に記載の方法。
【請求項１６】
前記２つ以上のメモリユニットは、スループットメトリック、待機時間メトリック、耐久性メトリック、および使用可能領域メトリックのうちの任意の組み合わせを含む少なくとも１つの他の異なる特性を有し、前記メモリユニットのうちの前記選択された１つは、前記ワークロード指標に応じて複合特性に応答して選択され、前記複合特性は、前記異なる最小アドレス可能データユニットサイズおよび前記少なくとも１つの他の異なる特性に基づく、請求項１１に記載の方法。
【請求項１７】
前記少なくとも１つの他の異なる特性のうちの選択された特性は、前記選択された特性に関連する前記メモリユニットのうちの少なくとも１つの状態が閾値に到達したときに、前記複合特性よりも優先される、請求項１６に記載の方法。
【請求項１８】
前記選択された特性は、前記耐久性メトリックおよび前記使用可能領域メトリックのうちの１つ以上を含む、請求項１７に記載の方法。
【請求項１９】
請求項１に記載の方法を行うようにプロセッサにより操作可能な命令を記憶する、非一時的コンピュータ可読媒体。
【請求項２０】
異なる最小アドレス可能データユニットサイズを有する２つ以上の非階層不揮発性メモリユニットと、
ホストコマンドの対象であるデータオブジェクトのワークロード指標を判定するための手段と、
前記ワークロード指標に応じて選択されるメモリユニットの前記最小アドレス可能データユニットサイズに対応する前記データオブジェクトの前記ワークロード指標に応答して、前記２つ以上のメモリユニットからメモリユニットを選択するための手段と、
応答して前記選択されたメモリユニットに、前記データオブジェクトを記憶するための手段と、を含む、システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は異なる最小アドレス可能データユニットサイズを有する不揮発性メモリユニットの中から選択するための装置、システムおよび方法、ならびにコンピュータ可読媒体に関する。
【発明の概要】
【課題を解決するための手段】
【０００２】
本開示は、異なる最小アドレス可能データユニットサイズを有する不揮発性メモリユニットの中から選択することに関する。一実施形態において、装置は、ホストインターフェースおよびメモリデバイスに連結可能なコントローラを含む。メモリデバイスは、異なる最小アドレス可能データユニットサイズを有する２つ以上の非階層不揮発性メモリユニットを含む。コントローラは、ホストインターフェースを介してメモリデバイスに記憶されているデータオブジェクトのワークロード指標を判定することを少なくとも行うように構成される。コントローラは、ワークロード指標に応じて選択されるメモリユニットの最小アドレス可能データユニットサイズに対応するデータオブジェクトのワークロード指標に応答して、メモリユニットのうちの１つを選択する。データオブジェクトは、応答して選択されたメモリユニットに記憶される。
【０００３】
別の実施形態において、システムは、異なる最小アドレス可能データユニットサイズを有する２つ以上の非階層不揮発性メモリユニットを含む。システムは、ホストコマンドの対象であるデータオブジェクトのワークロード指標を判定するための手段を含む。システムは、さらに、２つ以上のメモリユニットからメモリユニットを選択するための手段を含む。選択は、ワークロード指標に応じて選択されるメモリユニットの最小アドレス可能データユニットサイズに対応するデータオブジェクトのワークロード指標に応答して生じる。システムは、さらに、応答して選択されたメモリユニットに、データオブジェクトを記憶するための手段を含む。
【０００４】
種々の実施形態のこれらおよび他の機能および態様は、以下の発明を実施するための形態および添付の図面を考慮して理解され得る。
【図面の簡単な説明】
【０００５】
以下の図面では、複数の図において同様／同一のコンポーネントを特定するために同一の参照番号が使用され得る。
【図１】図１は、種々の態様によるデータ記憶デバイスのブロック図である。
【図２】図２は、本明細書に記載される実施形態に従い、メモリユニットにデータを記憶するためのプロセスを示す。
【図３Ａ】図３Ａは、時間的および空間的局所性に基づいてメモリユニットを選択するための方法を説明する。
【図３Ｂ】図３Ｂは、関連する時間的局所性とともに２つのデータオブジェクトを含む例を説明する。
【図４】図４は、異なる種類または構成のメモリを有する領域を含むメモリデバイスを示す。
【発明を実施するための形態】
【０００６】
種々の例示的な実施形態の以下の記載において、本明細書の一部を成し、かつ種々の例示的な実施形態の説明目的で示される、添付の図面を参照する。本明細書に添付の特許請求の範囲から逸脱することなく、構造上および操作上の変更がなされ得るため、他の実施形態が利用され得ることが理解されるべきである。
【０００７】
本開示は、概して、多くの異なる種類のメモリを含むメモリシステムに関する。各種類のメモリは、物理的特性および記憶アーキテクチャを有する。メモリの種類は、例えば、フラッシュメモリ、回転磁気メモリ（例えば、ハードディスクドライブ等）等、ならびに相変化メモリ（ＰＣＭ）、抵抗ランダムアクセスメモリ（ＲＲＡＭ（登録商標））、スピントルクＲＡＭ（ＳＴＲＡＭ）、磁気ＲＡＭ（ＭＲＡＭ）、および／または不揮発性ＳＲＡＭ（ＮＶＲＡＭ）を含むより新しいソリッドステートメモリ技術を含むことができる。これらのメモリの種類のそれぞれは、異なる特性および利点を有し得るが、一方で、異なるメモリの種類を用いたメモリデバイスの効果的な使用は、媒体の経年劣化、媒体の待機時間、媒体の耐久性、媒体の使用可能領域に応答して、および／または媒体のワークロードに基づいて、媒体の物理的変化を効果的に管理することを含み得る。
【０００８】
オブジェクトの観察される使用状況、例えば、オブジェクトのアクセスパターンに基づいて、データオブジェクト（例えば、コンピュータファイル）をある記憶メモリ特性に関連付けることができる。メモリ特性は、メモリサイズ、書き込み待機時間、読み取り待機時間、電力消費、保持時間、信頼性、最小アドレス可能データユニットサイズ、および／または他の特性等の要因を包含することができる。データオブジェクトは、例えば、アクセスの頻度、書き込みの頻度、アクセスの連続性、信頼性、および／または長い保持時間を含む記憶に特異的な態様も有し得る。
【０００９】
データオブジェクトの記憶に特異的な態様を、メモリ特性と合致させることは、メモリコンポーネントおよびデータ記憶デバイス全体の両方の効率を向上させ得る。例えば、頻繁に書き込まれるデータは、高耐久性メモリに記憶され得る。いくつかのデータオブジェクトは、低待機時間メモリの種類等の高速アクセス時間のメモリの種類と対になると、他のデータオブジェクトよりも有益である。効率的な利用は、メモリシステムに記憶される記憶特性が、データが記憶されるメモリの種類と一致する場合に達成され得る。種々の実施によると、記憶に特異的なニーズをメモリ特性と合致させることは、ワークロード属性を判定することを含み得る。
【００１０】
図１において、ブロック図は、本明細書に記載される実施形態によるデータ記憶デバイス１００を説明する。このデバイス１００は、ソリッドステートメモリの任意の組み合わせを利用するソリッドステートドライブ（ＳＳＤ）（またはそのサブコンポーネント）として構成され得る。デバイス１００の特徴は、ソリッドステートメモリおよび磁気ディスクの組み合わせを使用するハイブリッドハードディスクドライブ等の他の種類のデータ記憶デバイスに適用可能であり得る。デバイス１００の特徴は、標準的なハードドライブデータインターフェースを利用しない特定用途のソリッドステートおよび／またはディスクデータ記憶デバイス（またはそのサブコンポーネント）にも適用可能であり得る。
【００１１】
デバイス１００は、デバイス１００の不揮発性メモリの一部または全てを含む１つ以上のメモリユニット１０２、１０３を含み得る。メモリユニット１０２、１０３は、例えば、メモリダイまたはチップ、そのパーティション（例えば、プレーン）、あるいはその凝集（例えば、複数のパッケージ、マルチチップパッケージ）等の１つ以上のそれぞれ別々の物理ユニット１０４、１０５を含み得る。この例において、メモリユニット１０２、１０３は、非階層ユニットであり、それぞれの物理ユニット１０４、１０５はそれぞれ、互いに異なる種類の不揮発性メモリ記憶媒体を含む。
【００１２】
物理ユニット１０４、１０５のそれぞれにおいて、メモリは、より小さいブロック１０６、１０７にグループ化され得る。物理ユニット１０４、１０５の基になる媒体は異なるため、ブロック１０６、１０７のメモリサイズは異なり得る。アドレス可能性および性能等の他の多くの特性が異なり得る。デバイス１００の特徴の一部は、非階層混合媒体記憶部に適用可能であるが、一方で、後述される概念のほとんどは、単一のメモリユニットおよび単一の記憶媒体の種類を用いるデバイスに採用され得る。
【００１３】
メモリユニット１０４、１０５が非階層である実施形態において、メモリユニットは、アドレス可能ビット特性と、スループットメトリック、待機時間メトリック、耐久性メトリック、および使用可能領域メトリックのうちの任意の組み合わせを含む少なくとも１つの他の異なる特性と、を有し得る。メモリユニット１０４  １０５は、ワークロード指標に応じて複合特性に応答して選択される。いくつかの場合において、少なくとも１つの他の特性のうちの選択された特性は、選択された特性に関連するメモリユニット１０４、１０５が閾値に到達したときに、より高い優先順位を有する。選択された特性は、例えば、耐久性メトリック、および／または使用可能領域メトリックを含む。
【００１４】
デバイス１００は、ホストインターフェース１１２を介してホスト１１４から受信される要求の処理を促進する１つ以上のシステムコントローラ１１０を含み得る。ホストインターフェースは、均一な論理ブロックサイズの論理ブロックへのアクセスを提供し得る。いくつかの場合において、最小アドレス可能データユニットサイズは、ホストの均一な論理ブロックサイズよりも小さい。コントローラ１１０は、概して、論理アドレスを参照し、ホスト１１４から読み取りまたは書き込み要求を受信し得る。とりわけ、システムコントローラ１１０は、論理アドレスを物理アドレスに翻訳し、それぞれの読み取りまたは書き込み操作を、メモリユニット１０２、１０３の適切な物理アドレス上で行うように指示する。
【００１５】
デバイス１００は、とりわけ、不揮発性メモリユニット１０２、１０３の揮発性キャッシュ１１７に使用され得る揮発性ランダムアクセスメモリ１１５（ＲＡＭ）を含み得る。概して、揮発性キャッシュ１１７は、不揮発性メモリ１０２、１０３の一部をミラーリングする階層メモリ構造であるが、不揮発性メモリ１０２、１０３よりも早急に読み取られ得、および／または書き込まれ得る。例えば、短時間の間に繰り返し読み取り／書き込み活動が行われるデータ等のいくつかの状況では、揮発性キャッシュ１１７は性能を向上させる。
【００１６】
システムコントローラ１１０は、メモリユニット１０２、１０３の媒体の状態を判定し、変更する１つ以上の記憶コントローラ１１６に連結される。記憶コントローラ１１６は、読み取りまたは書き込みのために特定のメモリセルの選択を可能にする論理回路（例えば、ゲートアレイ、マルチプレクサ等）を含み得る。記憶コントローラは、エラー訂正符号ＥＣＣおよび／またはエラー検出符号ＥＤＣ論理を促進する回路を含み得る。
【００１７】
記憶コントローラ１１６は、セルの読み取りおよび書き込みに使用される信号を提供するアナログ信号処理回路（例えば、フィルタ、増幅器）、ならびにメモリ媒体に記憶されるアナログ情報とデバイス内の他の場所で利用されるデジタル情報との間を翻訳するために使用されるデジタル・アナログ変換器（ＤＡＣ）およびアナログ・デジタル変換器（ＡＤＣ）も含み得、あるいはこれらの種類のアナログ回路は、メモリデバイスに存在し得、かつ情報は、例えば、低密度パリティコードＥＣＣ機能を達成するように、記憶コントローラに通信し戻され得る。記憶コントローラ１１６は、データオブジェクトのワークロード指標に応答してメモリユニット１０２、１０３を選択するように構成され得る。
【００１８】
エンコーダ／デコーダモジュール１１８は、メモリユニット１０２、１０３によって使用されるデジタルコーディング形式とユーザデータ形式との間を翻訳するように記憶コントローラ１１６とともに動作する。エンコーダ／デコーダモジュール１１８は、記憶コントローラ１１６の一部であり得るか、または別々のユニットであり得る。複数のメモリユニット１０２、１０３が使用される場合、デバイス１００は、特定のメモリの種類に合わせてカスタマイズされる方法で、それらのそれぞれの操作を少なくとも行う複数の記憶コントローラ１１６およびエンコーダ／デコーダ１１８を含み得る。別々のコントローラは、特定のメモリアーキテクチャに適切なそれら独自の論理・物理マッピングも利用し得る。そのような場合、システム／一次コントローラ１１０は、論理ホストアドレスを、メモリユニット１０２、１０３により使用可能な内部論理アドレスに変換し得る。
【００１９】
一次コントローラ１１０（ならびに記憶コントローラ１１６およびエンコーダ／デコーダ１１８）は、後述される操作を行うようにデバイス１００により操作可能な命令を記憶する、本明細書においてコンピュータ可読媒体１２０として表される、メモリ、論理回路、ファームウェア、またはソフトウェアからの命令に応答して動作し得る。例えば、適応型プログラム／読み取りモジュール１２２は、メモリユニット１０２、１０３への読み取りまたは書き込み時に記憶コントローラ１１６によって使用されるパラメータを変更し得る。適応型ＥＣＣモジュール１２４は、エンコーダ／デコーダ１１８とともに動作して、後述されるＥＣＣパラメータを修正し得る。
【００２０】
コンピュータ可読媒体１２０は、データがメモリユニット１０２、１０３内にどのように記憶されるかに関連する種々の態様を決定し得るフォーマットモジュール１２６も含む。特定のメモリ構造内のデータのインターリービング等、フォーマットモジュール１２６のいくつかの態様は、記憶コントローラ１１６内に含まれ得る。特定のデータを記憶するために異なるメモリユニット１０２、１０３の中から選ぶこと等、フォーマットモジュール１２６の他の態様は、例えば、論理・物理マッピング等、より高いレベルで実施され得る。管理モジュール１２８もまた、例えば、ホスト活動の追跡、バックグラウンドプロセスの開始等、高いレベルで動作し得る。デバイス１００は、使用状況メトリック、構成設定等のデータに対する不揮発性メモリの予約された一部を含むデータベース１３０を含み得る。
【００２１】
概して、管理モジュール１２８、システムコントローラ１１０、ホストインターフェース１１２、およびデータベース１３０のうちの１つ以上は、ホストコマンドの対象であるデータオブジェクトのワークロード指標を判定するための手段として集合的に機能し得る。同様に、フォーマットモジュール１２６、管理モジュール１２８、システムコントローラ１１０、記憶コントローラ１１６、およびデータベース１３０のうちの１つ以上は、ワークロード指標に応じて選択されるメモリユニットの最小アドレス可能データユニットサイズに対応するデータオブジェクトのワークロード指標に応答して、２つ以上のメモリユニット１０２、１０３からメモリユニットを選択するための手段として集合的に機能し得る。フォーマットモジュール１２６、管理モジュール１２８、システムコントローラ１１０、記憶コントローラ１１６のうちの１つ以上は、応答して選択されるメモリユニットに、データオブジェクトを記憶するための手段として集合的に機能し得る。
【００２２】
前述のように、メモリユニット１０２、１０３は、異なる種類のメモリ記憶媒体を含み得る。例えば、メモリユニット１０２、１０３はそれぞれ、フラッシュメモリ、ＨＤＤ、ＰＣＭ、ＲＲＡＭ（登録商標）、ＳＴＲＡＭ、ＭＲＡＭ、および／またはＮＶＲＡＭ等の異なるそれぞれの媒体を含み得る。いくつかの場合において、２つを超えるメモリユニットが存在し得る。
【００２３】
いくつかの場合において、異なるセットのメモリは、それらの全体的な使用率および／または有効性を、互いにまたは中央システムに通信することもできる。この通信は、その後、あるメモリの種類の使用率が低いかまたは高いかを判定するために使用され得る。この通信は、メモリの種類を選択して、データオブジェクトに記憶するときに考慮され得る。いくつかの場合において、通信されたデータは、データの種類のワークロード指標よりも高い優先順位が与えられる。
【００２４】
図２は、本明細書に記載される実施形態に従い、メモリユニットにデータを記憶するためのプロセスを示す。メモリデバイスに記憶されているデータオブジェクトのワークロード指標が判定される２１０。ワークロード指標は、データオブジェクトに関連する最近の活動のレベルおよび／または頻度を含み得る。そのような場合、最近の活動の比較的高いレベルおよび／または頻度を有するオブジェクトは、比較的小さい最小アドレス可能データユニットサイズを有するメモリユニットに対応し得る。ワークロード指標は、データオブジェクトのランダム度測定を含み得る。そのような場合、比較的高いランダム度を有するオブジェクトは、比較的小さい最小アドレス可能データユニットサイズを有するメモリユニットに対応する。ワークロード指標は、任意に、時間的局所性メトリックを含み得る。
【００２５】
異なる最小アドレス可能データユニットサイズを有する２つ以上のメモリユニットのうちの少なくとも１つのメモリユニットは、データオブジェクトのワークロード指標に応答して選択される２２０。メモリユニットは、スループットメトリック、待機時間メトリック、耐久性メトリック、および使用可能領域メトリックのうちの任意の組み合わせを含む少なくとも１つの他の異なる特性を有する非階層ユニットであり得る。そのような場合、メモリユニットのうちの選択された１つは、ワークロード指標に応じて複合特性に応答して選択され得、複合特性は、異なる最小アドレス可能データユニットサイズおよび少なくとも１つの他の異なる特性に基づく。さらに、そのような場合、少なくとも１つの他の特性のうちの選択された特性は、選択された特性に関連するメモリユニットのうちの少なくとも１つの状態が閾値に到達したときに、複合特性よりも優先される。その場合、選択された特性は、耐久性メトリックおよび使用可能領域メトリックのうちの１つ以上を含み得る。種々の実施によると、メモリユニットのうちの少なくとも１つは、個々のビットレベルでアドレス可能であり得る。データオブジェクトは、選択されたメモリユニットに記憶される２３０。
【００２６】
前述のように、データオブジェクトは、データの種類の種々の態様およびメモリの種類の特性に基づいて、メモリの種類を割り当てられ得る。メモリの種類の特性は、少なくとも、過去のまたは予測されるワークロード、メモリのスループットまたは待機時間、メモリの耐久性、メモリの実際のまたは予測される消耗、メモリの使用可能領域を含む。メモリの使用可能領域は、メモリの種類またはユニットにおける領域の割合および／またはメモリデバイスにおける使用可能領域の割合の関数であり得る。いくつかの場合において、データオブジェクトは、１つを超える媒体の種類の特性および／またはワークロード指標を考慮するメモリの種類に割り当てられる。例えば、データオブジェクトは、メモリの種類のアクセス速度およびアドレス可能データユニットサイズに基づいて、メモリの種類を割り当てられ得る。
【００２７】
メモリの種類のワークロード指標は、種々の要因に基づき得る。例えば、ワークロードは、データオブジェクトのランダム度測定、データオブジェクトに関連する最近の活動のレベルおよび／または頻度、アクセス頻度の高いまたは低いデータであるかにかかわらず、データオブジェクトのサイズ、および／またはデータオブジェクトの場所に基づき得る。いくつかの場合において、ワークロード指標は、データオブジェクトに関連する最近の活動のレベルおよび／または頻度を含む。最近の活動の比較的高いレベルおよび／または頻度を有するデータオブジェクトは、比較的小さい最小アドレス可能データユニットサイズを有するメモリユニットに対応し得る。
【００２８】
最近の活動の比較的高いレベルおよび／または頻度を有するデータオブジェクトは、比較的小さい最小アドレス可能データユニットサイズを有するメモリユニットに対応する。これらのワークロード属性は、その後、データを適合するメモリの種類と合致させるために使用することができる。いくつかの場合において、ワークロードは、入力書き込みデータを監視し、その後の読み取りを測定することによって判定することができる。記憶に特異的な属性は、データ書き込み頻度および読み取り頻度等の要因を考慮に入れることができる。
【００２９】
種々の実施形態によると、ワークロード指標は、時間的および空間的局所性に対して時間的に関連付けられたコマンドを監視することによって判定することができる。時間的局所性は、ある時点で参照またはアクセスされ、近い将来に再び参照される情報を含む。空間的局所性は、最近アクセスされた近くの情報である情報を含む。いくつかの場合において、データオブジェクトは、少なくとも１つの他のデータオブジェクトと組み合わされる。グループ化は、ワークロード属性に基づき得る。いくつかの場合において、グループ化は、共通の時間的および／または局所性を有するデータオブジェクトに基づく。
【００３０】
種々の実施によると、特定の特性を有るデータオブジェクトは、対にされるか、またはグループ化され、適合する特性を有するメモリの種類に記憶される。図３Ａは、本明細書に記載される実施形態に従い、時間的および空間的局所性に基づいて非階層不揮発性メモリユニットを選択するための方法を説明する。第１のデータオブジェクトは、ホストコマンドを介して受信される３１０。第１のデータオブジェクトのワークロード指標に応答して、第１のデータオブジェクトを記憶するためにメモリユニットが選択される３２０。第１のデータオブジェクトは、選択されたメモリユニットに記憶される３３０。
【００３１】
第２のデータオブジェクトは、ホストコマンドを介して受信される３４０。第２のデータオブジェクトが第１のデータオブジェクトに時間的に関連しているかが判定される３４２。この判定３４２は、空間的局所性を第１のデータオブジェクトと比較することも含み得る。第２のデータオブジェクトが、第１のデータオブジェクトに時間的に（かつ可能性として空間的に）関連していると判定された３４２場合、第２のデータオブジェクトを記憶するために、第１のデータオブジェクトが記憶されているメモリユニットが選択される３５４。第２のデータオブジェクトが、第１のデータオブジェクトに時間的に関連していないと判定された３４２場合、第２のデータオブジェクトのワークロード指標に応答して、第２のデータオブジェクトを記憶するためにメモリユニットが選択される３５２。この場合、第２のデータオブジェクトを記憶するために選択されたメモリユニットは、第１のデータオブジェクトが記憶されているメモリユニットと同一のメモリユニットおよび／または異なるメモリユニットであり得る。
【００３２】
図３Ｂは、関連する時間的局所性および２つのメモリユニット３６０、３６５とともに２つのデータオブジェクトを含む例を説明する。図３Ｂによると、第１のデータオブジェクト３５０は、ホストコマンド３５１を介して受信され、第１のメモリユニット３６０に書き込まれる。第２のデータオブジェクト３７０は、ホストコマンド３７１を介して受信され、第１のデータオブジェクト３５０に時間的に関連していると判定される。この判定は、最近処理されたコマンドのデータベース等を調べて、ホストコマンド３５１、３７１間の時間を比較することを含み得る。
【００３３】
時間的親和性の結果として、第２のデータオブジェクト３７０は、第１のデータオブジェクト３５０が記憶されているメモリユニットと同じメモリユニットに書き込まれる。この例において、第１のデータオブジェクト３５０は、第１のメモリユニット３６０に記憶されているので、第２のデータオブジェクト３７０も第１のメモリユニット３６０に記憶される。関連する時間的局所性とともにデータを記憶すると、データは関連する空間的局所性も有し得る。これは、データが後で連続して読み取られることを可能にし得、メモリデバイスのスループットを向上させ得る。
【００３４】
また、データオブジェクト３５０、３７０の空間的局所性は、オブジェクト３５０、３７０の論理ブロックアドレスに基づいて判定され得、ホストコマンド３５１、３７１に提供される。これは、データオブジェクト３５０、３７０が同じメモリユニット３６０に書き込まれるべきであるという目安となり得る。この判定は、時間的局所性とは別になされ得る。しかしながら、ランダムデータは、強い時間的親和性なく空間的局所性を有し得、その場合、データを物理的に記憶して連続して読み取られるようにすることに大きな利点はない場合がある。しかしながら、ランダムデータは、ランダムデータにより適している特性を有するユニットのうちの１つに基づいて、メモリユニット３６０、３６５のうちの特定のユニットの対象となり得る。
【００３５】
前述のように、いくつかのワークロード指標は、メモリユニットを選択するときに、他のワークロード指標よりも高い優先順位を有する。空間的局所性は、例えば、電力消費等の他のワークロード指標よりも高い優先順位を有し得る。メモリユニットの他の特性は、この優先順位付けを調整し得る。例えば、あるメモリユニットがその他のメモリユニットより満杯になってきている場合、他の何らかの性能メトリックの低減を意味するとしても、優先順位は、満杯でないユニットを埋めるように調整され得る。
【００３６】
図１に関連して上述したように、メモリデバイスは、異なる種類または構成のメモリを有する領域を含み得る。メモリユニット４００、４０２が、（例えば、図１に示されるフォーマットモジュール１２６を用いて）コントローラ４０４によって書き込まれ、読み取られ得る図４にこの一例が示される。メモリユニット４００、４０２は、異なるまたは同一のメモリの種類であり得るが、しかしながら、例えば、物理ブロックまたはページサイズ等、異なる記憶ユニットサイズを有し得る。この例において、メモリユニット４０２は、Ｎの最小ページサイズを有し、メモリユニット４００は、２Ｎの最小ページサイズを有する。最小論理ブロックサイズも２Ｎに対応する場合、メモリユニット４００の１ページは、１つの論理ブロックを記憶し得、メモリユニット４０２の２ページは、１つの論理ブロックを記憶するために使用される。
【００３７】
コントローラ４０４は、データがどのように使用され得るかに応じて、データを記憶するためにユニット４００および４０２のうちの１つを選択し得る。例えば、データがランダムに更新されることが予想される場合、より小さいページサイズのユニット４０２にデータを記憶することがより効率的であり得る。したがって、データの論理ブロックがランダムであると判定された場合、メモリユニット４０２のブロック４０６、４０７に記憶され得る。ページの一部のみが、ホストコマンドによって変更されたと判定された場合（例えば、揮発性キャッシュ内の既存のエントリを介して）、ブロック４０６、４０７のうちの一方のみが書き換えられる必要があり得る。そのような選択は、ユニット４０２のページを並列に書き込むことができるかにかかわらず、ユニット４００、４０２の関連する待機時間およびスループット、ユニット４００、４０２のページをプログラムするために必要とされる関連する電力消費等の他の要因に依存し得る。
【００３８】
コントローラ４０４は、一方または両方のメモリユニット４００、４０２内のどこにデータが記憶されるかを決定するために、他のシステムデータも利用し得る。例えば、コントローラは、ユニット４００、４０２内の両方の消耗、ならびにアクセス頻度が高いまたは低いデータであるか等のワークロードメトリックを追跡することができ得る。そのような場合、メモリユニット４００、４０２の最も消耗したブロックが、最もアクセス頻度の低いデータを取得するように選択され得る。いくつかの実施形態において、コントローラ４０４は、メモリユニット４００、４０２の最小アドレス可能データユニットサイズに基づいて、どこにデータが記憶されるかを判定する。例えば、メモリユニット４００が個々のビットレベルでアドレス可能な場合、コントローラは、特定のデータを記憶するためにメモリユニット４００を選択し得る。さらに、または付加的に、コントローラは、他の要因に基づいてメモリユニットを選択し得る。
【００３９】
また、コントローラ４０４は、定期的に、不良ユニット（例えば、ワードライン）を再割り当てし得、不良ユニットを使用中止にし得る。例えば、２つの物理ページが、通知されたページサイズを記憶するのに十分な信頼性がない場合、それらの提示された容量は半分にされ得、それらは、大幅に増加したＥＣＣコードを有する単一の論理ユニットに組み合わされる可能性がある。これは、信頼性または保持等のメトリックの再特徴付けも含み得る。
【００４０】
上述の種々の実施形態は、特定の結果を提供するように相互作用する回路および／またはソフトウェアモジュールを用いて実施され得る。コンピューティング技術分野の当業者であれば、当技術分野で一般的に周知の知識を用いて、モジュラーレベルで、または全体として、かかる記載された機能を容易に実施することができる。例えば、本明細書に説明される流れ図は、プロセッサにより実行されるためのコンピュータ可読命令／コードを作成するために使用され得る。かかる命令は、コンピュータ可読媒体に記憶され得、当技術分野で周知であるように、実行のためにプロセッサに転送され得る。上記に示された構造および手順は、上述のデータ記憶デバイスにおけるキャッシングの管理を促進するために使用することができる実施形態の代表的な例にすぎない。
【００４１】
例示的な実施形態の前述の記述は、説明および記述の目的で提供されている。包括的であるよう、または開示された正確な形態に本発明の概念を限定するよう意図されない。多くの修正および変形が、上記の教示に照らして可能である。開示された実施形態の任意または全ての特徴は、個々に、または任意の組み合わせで適用することができ、限定するよう意図されず、例示にすぎない。本発明の範囲は、この発明を実施するための形態により限定されず、むしろ本明細書に添付された特許請求の範囲により決定されるよう意図される。
【図１】
2014179086.tif 000003
【図２】
2014179086.tif 000004
【図３Ａ】
2014179086.tif 000005
【図３Ｂ】
2014179086.tif 000006
【図４】
2014179086.tif 000007
【手続補正書】
【提出日】平成26年7月29日(2014.7.29)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
ホストインターフェースと、異なる最小アドレス可能データユニットサイズを有する２つ以上の非階層不揮発性メモリユニットを備えるメモリデバイスと、に連結可能なコントローラであって
前記ホストインターフェースを介して前記メモリデバイスに記憶されているデータオブジェクトのワークロード指標を判定することと、
前記ワークロード指標に応じて選択されるメモリユニットの前記最小アドレス可能データユニットサイズに対応する前記データオブジェクトの前記ワークロード指標に応答して、前記メモリユニットのうちの１つを選択することと、
応答して前記選択されたメモリユニットに、前記データオブジェクトを記憶することと、
を少なくとも行うように構成されるコントローラを備える、装置。
【請求項２】
前記メモリユニットのうちの少なくとも１つは、個々のビットレベルでアドレス可能である、請求項１に記載の装置。
【請求項３】
前記ワークロード指標は、前記データオブジェクトのランダム度測定を含み、比較的高いランダム度を有するオブジェクトは、比較的小さい最小アドレス可能データユニットサイズを有する前記メモリユニットに対応する、請求項１に記載の装置。
【請求項４】
前記ワークロード指標は、前記データオブジェクトに関連する最近の活動のレベルおよび／または頻度を含み、最近の活動の比較的高いレベルおよび／または頻度を有するオブジェクトは、比較的小さい最小アドレス可能データユニットサイズを有する前記メモリユニットに対応する、請求項１に記載の装置。
【請求項５】
前記ホストインターフェースは、均一な論理ブロックサイズの論理ブロックへのアクセスを提供し、前記異なる最小アドレス可能データユニットサイズのうちの少なくとも１つは、前記均一な論理ブロックサイズよりも小さい、請求項１から請求項４のいずれか１項に記載の装置。
【請求項６】
前記２つ以上のメモリユニットは、スループットメトリック、待機時間メトリック、耐久性メトリック、および使用可能領域メトリックのうちの任意の組み合わせを含む少なくとも１つの他の異なる特性を有し、前記メモリユニットのうちの前記選択された１つは、前記ワークロード指標に応じて複合特性に応答して選択され、前記複合特性は、前記異なる最小アドレス可能データユニットサイズおよび前記少なくとも１つの他の異なる特性に基づく、請求項１から請求項５のいずれか１項に記載の装置。
【請求項７】
前記少なくとも１つの他の異なる特性のうちの選択された特性は、前記選択された特性に関連する前記メモリユニットのうちの少なくとも１つの状態が閾値に到達したときに、前記複合特性よりも優先される、請求項６に記載の装置。
【請求項８】
前記選択された特性は、前記耐久性メトリックを含む、請求項７に記載の装置。
【請求項９】
前記選択された特性は、前記使用可能領域メトリックを含む、請求項７に記載の装置。
【請求項１０】
前記メモリユニットのうちの少なくとも１つは、抵抗メモリユニットを含む、請求項１から請求項９のいずれか１項に記載の装置。
【請求項１１】
ホストコマンドの対象であるデータオブジェクトのワークロード指標を判定することと、
前記ワークロード指標に応じて選択されるメモリユニットの前記最小アドレス可能データユニットサイズに対応する前記データオブジェクトの前記ワークロード指標に応答して、異なる最小アドレス可能データユニットサイズを有する２つ以上の非階層不揮発性メモリユニットからメモリユニットを選択することと、
応答して前記選択されたメモリユニットに、前記データオブジェクトを記憶することと、を含む、方法。
【請求項１２】
前記メモリユニットのうちの少なくとも１つは、個々のビットレベルでアドレス可能である、請求項１１に記載の方法。
【請求項１３】
前記ワークロード指標は、前記データオブジェクトに関連する最近の活動のレベルおよび／または頻度を含み、最近の活動の比較的高いレベルおよび／または頻度を有するオブジェクトは、比較的小さい最小アドレス可能データユニットサイズを有する前記メモリユニットに対応する、請求項１１に記載の方法。
【請求項１４】
前記ワークロード指標は、前記データオブジェクトのランダム度測定を含み、比較的高いランダム度を有するオブジェクトは、比較的小さい最小アドレス可能データユニットサイズを有する前記メモリユニットに対応する、請求項１１に記載の方法。
【請求項１５】
前記ワークロード指標は、時間的局所性メトリックを含む、請求項１１に記載の方法。
【請求項１６】
前記２つ以上のメモリユニットは、スループットメトリック、待機時間メトリック、耐久性メトリック、および使用可能領域メトリックのうちの任意の組み合わせを含む少なくとも１つの他の異なる特性を有し、前記メモリユニットのうちの前記選択された１つは、前記ワークロード指標に応じて複合特性に応答して選択され、前記複合特性は、前記異なる最小アドレス可能データユニットサイズおよび前記少なくとも１つの他の異なる特性に基づく、請求項１１から請求項１５のいずれか１項に記載の方法。
【請求項１７】
前記少なくとも１つの他の異なる特性のうちの選択された特性は、前記選択された特性に関連する前記メモリユニットのうちの少なくとも１つの状態が閾値に到達したときに、前記複合特性よりも優先される、請求項１６に記載の方法。
【請求項１８】
前記選択された特性は、前記耐久性メトリックおよび前記使用可能領域メトリックのうちの１つ以上を含む、請求項１７に記載の方法。
【請求項１９】
請求項１１に記載の方法を行うようにプロセッサにより操作可能な命令を記憶する、非一時的コンピュータ可読媒体。
【請求項２０】
異なる最小アドレス可能データユニットサイズを有する２つ以上の非階層不揮発性メモリユニットと、
ホストコマンドの対象であるデータオブジェクトのワークロード指標を判定するための手段と、
前記ワークロード指標に応じて選択されるメモリユニットの前記最小アドレス可能データユニットサイズに対応する前記データオブジェクトの前記ワークロード指標に応答して、前記２つ以上のメモリユニットからメモリユニットを選択するための手段と、
応答して前記選択されたメモリユニットに、前記データオブジェクトを記憶するための手段と、を含む、システム。