(57)【特許請求の範囲】
【請求項１】
メモリセルの複数のグループを含むメモリであって、第１アクセス時間を有する第１記憶構成を使用して第１データを記憶すると同時に、第１アクセス時間より長い第２アクセス時間を有する第２記憶構成を使用して第２データを記憶して、各グループの各メモリセルが第１データの少なくとも１ビット及び第２データの１つ以上のビットを記憶するように構成された前記メモリを準備する処理と、
メモリに記憶するためにデータアイテムを受け容れる処理であって、前記データアイテムの各々は、１以上のデータバイトを含み、且つ、メモリセルの少なくとも１つのグループに記憶される当該処理と、
前記受け容れられたデータアイテムを、高速アクセスクラスと通常アクセスクラスとに分類する処理と、
前記高速アクセスクラスのデータアイテムを、第１記憶構成を使用して前記メモリに記憶すると共に、前記通常アクセスクラスのデータアイテムを、第２記憶構成を使用して前記メモリに記憶する処理と、
前記データアイテムの各々の読み出しアクセスの頻度をトラッキングする処理と、
メモリの１つ以上のソースグループであって、各々のグレードに基づき選択される当該ソースグループからメモリの１つ以上のターゲットグループへデータをコピーするコンパクト化プロセスを実行する処理と、
高速アクセスクラスとして分類されたデータアイテムの読み出しアクセス数、及び通常アクセスクラスとして分類されたデータアイテムの読み出しアクセス数に基づき、前記グループの各々にグレードを割り当てる処理と、
第１記憶構成を使用して、高速アクセスクラスとして分類される前記データアイテムを前記ターゲットグループに記憶する処理と、
第２記憶構成を使用して、通常アクセスクラスとして分類される前記データアイテムを前記ターゲットグループに記憶する処理と、
が実行されるデータ記憶方法。
【請求項２】
第１記憶構成を使用してデータアイテムを記憶する前記処理は、メモリの最下位ビット（ＬＳＢ）ページにデータアイテムを記憶することを含み、そして第２記憶構成を使用してデータアイテムを記憶する前記処理は、メモリの最上位ビット（ＭＳＢ）ページにデータアイテムを記憶することを含む、請求項１に記載の方法。
【請求項３】
データアイテムを分類する前記処理は、第１アクセス頻度でアクセスされる、頻繁にアクセスされるデータアイテムを高速アクセスクラスに分類すること、及び第１アクセス頻度より少ない第２アクセス頻度でアクセスされる、あまりアクセスされないデータアイテムを通常アクセスクラスに分類することを含む、請求項１又は２に記載の方法。
【請求項４】
データアイテムを分類する前記処理は、管理データを高速アクセスクラスに分類すること、及びユーザデータを通常アクセスクラスに分類することを含む、請求項１又は２に記載の方法。
【請求項５】
データアイテムを分類する前記処理は、メモリの第１の数の物理的ページへ各々マップされる第１のデータアイテムを高速アクセスクラスに分類すること、及び前記第１の数より大きい第２の数の物理的ページへ各々マップされる第２のデータアイテムを通常アクセスクラスに分類することを含む、請求項１又は２に記載の方法。
【請求項６】
データアイテムを分類する前記処理は、データアイテムの、高速アクセスクラス及び通常アクセスクラスへの規定の固定分類を適用することを含む、請求項１又は２に記載の方法。
【請求項７】
データアイテムがホストから受け容れられ、そしてデータアイテムを分類する前記処理は、データアイテムの、高速アクセスクラス及び通常アクセスクラスへの分類をホストから受信することを含む、請求項１又は２に記載の方法。
【請求項８】
データアイテムを分類する前記処理は、データアイテムに適用されるメモリアクセスオペレーションを監視することにより、データアイテムの、高速アクセスクラス及び通常アクセスクラスへの分類を適応式に決定することを含み、頻繁にアクセスされたデータアイテムは前記高速アクセスクラスに分類される、請求項１又は２に記載の方法。
【請求項９】
データアイテムを記憶する前記処理は、高速アクセスクラスに属するデータアイテムを第１バッファにバッファリングし、通常アクセスクラスに属するデータアイテムを第２バッファにバッファリングし、そして第１及び第２バッファにバッファリングされたデータアイテムを、各々、第１及び第２の記憶構成を使用して記憶することを含む、請求項１又は２に記載の方法。
【請求項１０】
（１）メモリセルの複数のグループを含むメモリと通信するように結合され、そして第１アクセス時間を有する第１記憶構成を使用して第１データを記憶すると同時に、第１アクセス時間より長い第２アクセス時間を有する第２記憶構成を使用して第２データを記憶して、各グループの各メモリセルが第１データの少なくとも１ビット及び第２データの１つ以上のビットを保持するように構成されたインターフェイスと、
（２）(a)前記メモリへの記憶のためにデータアイテムであって、１以上のデータバイトを含み、且つ、メモリセルの少なくとも１つのグループに記憶される前記データアイテムの各々を受け容れ、
(b)その受け容れたデータアイテムを高速アクセスクラス及び通常アクセスクラスへ分類し、高速アクセスクラスのデータアイテムを、第１記憶構成を使用してメモリに記憶し、
(c)通常アクセスクラスのデータアイテムを、第２記憶構成を使用して前記メモリに記憶し、
(d)前記データアイテムの各々の読み出しアクセスの頻度をトラッキングし、
(e)メモリの１つ以上のソースグループであって、各々のグレードに基づき選択される当該ソースグループからメモリの１つ以上のターゲットグループへデータをコピーするコンパクト化プロセスを実行し、
(f)高速アクセスクラスとして分類されたデータアイテムの読み出しアクセス数、及び通常アクセスクラスとして分類されたデータアイテムの読み出しアクセス数に基づき、前記グループの各々にグレードを割り当て、
(g)第１記憶構成を使用して、高速アクセスクラスとして分類される前記データアイテムを前記ターゲットグループに記憶し、
(h)第２記憶構成を使用して、通常アクセスクラスとして分類される前記データアイテムを前記ターゲットグループに記憶する、
ように構成された記憶回路と、
を備えたデータ記憶装置。
【請求項１１】
前記記憶回路は、前記メモリの最下位ビット（ＬＳＢ）ページにデータアイテムを記憶することにより第１記憶構成を使用してデータアイテムを記憶し、そして前記メモリの最上位ビット（ＭＳＢ）ページにデータアイテムを記憶することにより第２記憶構成を使用してデータアイテムを記憶するように構成された、請求項１０に記載の装置。
【請求項１２】
前記記憶回路は、第１アクセス頻度でアクセスされる、頻繁にアクセスされるデータアイテムを高速アクセスクラスに分類し、及び第１アクセス頻度より少ない第２アクセス頻度でアクセスされる、あまりアクセスされないデータアイテムを通常アクセスクラスに分類するように構成された、請求項１０又は１１に記載の装置。
【請求項１３】
前記記憶回路は、管理データを高速アクセスクラスに分類し、及びユーザデータを通常アクセスクラスに分類するように構成された、請求項１０又は１１に記載の装置。
【請求項１４】
前記記憶回路は、前記メモリの第１の数の物理的ページへ各々マップされる第１のデータアイテムを高速アクセスクラスに分類し、及び前記第１の数より大きい第２の数の物理的ページへ各々マップされる第２のデータアイテムを通常アクセスクラスに分類するように構成された、請求項１０又は１１に記載の装置。
【請求項１５】
前記記憶回路は、データアイテムの、高速アクセスクラス及び通常アクセスクラスへの規定の固定分類を適用するように構成された、請求項１０又は１１に記載の装置。
【請求項１６】
前記インターフェイスは、データアイテムをホストから受入れるように構成され、そして前記記憶回路は、データアイテムの、高速アクセスクラス及び通常アクセスクラスへの分類をホストから受信するように構成された、請求項１０又は１１に記載の装置。
【請求項１７】
前記記憶回路は、データアイテムに適用されるメモリアクセスオペレーションを監視することにより、データアイテムの、高速アクセスクラス及び通常アクセスクラスへの分類を適応式に決定し、頻繁にアクセスされたデータアイテムは前記高速アクセスクラスに分類されるように構成された、請求項１０又は１１に記載の装置。
【請求項１８】
前記記憶回路は、第１及び第２バッファを備え、そして前記記憶回路は、高速アクセスクラスに属するデータアイテムを前記第１バッファにバッファリングし、通常アクセスクラスに属するデータアイテムを前記第２バッファにバッファリングし、そして前記第１及び第２バッファにバッファリングされたデータアイテムを、各々、前記第１及び第２の記憶構成を使用して記憶するように構成された、請求項１０又は１１に記載の装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、全般的に、メモリシステムに関するものであり、より詳細には、マルチレベルメモリ装置にデータを記憶するための方法及びシステムに関する。
【背景技術】
【０００２】
データの使用パターンに基づいてメモリにデータを記憶するための種々の技術が知られている。例えば、参考としてここに開示を援用する米国特許出願公告２００９／００４９２３４号は、第１及び第２のメモリレイヤを含むソリッドステートメモリにデータを記憶する記憶スキームを説明している。受信したデータがホットデータであるかコールドデータであるか決定するために第１の評価が実行される。ホットデータと評価された受信データは、第１のメモリレイヤに記憶され、そしてコールドデータと評価された受信データは、第２のメモリレイヤに記憶される。更に、第１のメモリレイヤに記憶されたデータがホットデータであるかコールドデータであるか決定するために第２の評価が実行される。この第２の評価中にコールドデータと評価されたデータは、第１のメモリレイヤから第２のメモリレイヤへ移行される。
【０００３】
別の例として、参考としてここに開示を援用する米国特許出願公告２０１１／００１０４８９号は、フラッシュメモリ装置の複数の論理ブロックを管理するための論理ブロック管理方法を説明している。この方法は、フラッシュメモリコントローラを準備し、論理ブロックを複数の論理ゾーンにグループ分けすることを含み、各論理ブロックは、論理ゾーンの１つへマップされる。又、この方法は、各論理ブロックの使用カウント値をカウントし、そしてその使用カウント値に基づいて論理ブロックと論理ゾーンとの間のマッピング関係を動的に調整することも含む。従って、論理ブロック管理方法は、論理ゾーンを有効に利用して、論理ブロックの使用パターンを決定し、そして異なるメカニズムを使用してデータを書き込み、フラッシュメモリ記憶装置の性能を高める。
【発明の概要】
【０００４】
ここに述べる本発明の実施形態は、データ記憶方法を提供する。この方法は、メモリセルの複数のグループを含むメモリであって、第１アクセス時間を有する第１記憶構成を使用して第１データを記憶すると同時に、第１アクセス時間より長い第２アクセス時間を有する第２記憶構成を使用して第２データを記憶して、各グループの各メモリセルが第１データの少なくとも１ビット及び第２データの１つ以上のビットを記憶するように構成されたメモリを準備することを含む。データアイテムはメモリに記憶することが受け容れられる。受け容れられたデータアイテムは、高速アクセスクラスと通常アクセスクラスに分類される。高速アクセスクラスのデータアイテムは、第１記憶構成を使用してメモリに記憶され、そして通常アクセスクラスのデータアイテムは、第２記憶構成を使用してメモリに記憶される。
【０００５】
ある実施形態では、第１記憶構成を使用してデータアイテムを記憶することは、メモリの最下位ビット（ＬＳＢ）ページにデータアイテムを記憶することを含み、そして第２記憶構成を使用してデータアイテムを記憶することは、メモリの最上位ビット（ＭＳＢ）ページにデータアイテムを記憶することを含む。
【０００６】
ここに開示する実施形態では、データアイテムを分類することは、第１アクセス頻度でアクセスされる、頻繁にアクセスされるデータアイテムを高速アクセスクラスに分類すること、及び第１アクセス頻度より少ない第２アクセス頻度でアクセスされる、あまりアクセスされないデータアイテムを通常アクセスクラスに分類することを含む。別の実施形態では、データアイテムを分類することは、管理データを高速アクセスクラスに分類すること、及びユーザデータを通常アクセスクラスに分類することを含む。
【０００７】
別の実施形態では、データアイテムを分類することは、メモリの第１の数の物理的ページへ各々マップされる第１のデータアイテムを高速アクセスクラスに分類すること、及び第１の数より大きい第２の数の物理的ページへ各々マップされる第２のデータアイテムを通常アクセスクラスに分類することを含む。
【０００８】
ある実施形態では、データアイテムを分類することは、データアイテムの、高速アクセスクラス及び通常アクセスクラスへの規定の固定分類を適用することを含む。別の実施形態では、データアイテムがホストから受け容れられ、そしてデータアイテムを分類することは、データアイテムの、高速アクセスクラス及び通常アクセスクラスへの分類をホストから受け取ることを含む。更に、それとは別に、データアイテムを分類することは、データアイテムに適用されるメモリアクセスオペレーションを監視することにより、データアイテムの、高速アクセスクラス及び通常アクセスクラスへの分類を適応式に決定することを含む。
【０００９】
ある実施形態では、データアイテムを記憶することは、高速アクセスクラスに属するデータアイテムを第１バッファにバッファリングし、通常アクセスクラスに属するデータアイテムを第２バッファにバッファリングし、そして第１及び第２バッファにバッファリングされたデータアイテムを、各々、第１及び第２の記憶構成を使用して記憶することを含む。
【００１０】
一実施形態において、データアイテムを記憶することは、メモリの１つ以上のソースブロックからメモリの１つ以上のターゲットブロックへデータをコピーして、高速アクセスクラスに属するデータアイテムが第１記憶構成を使用してターゲットブロックに記憶され、且つ通常アクセスクラスに属するデータアイテムが第２記憶構成を使用してターゲットブロックに記憶されるようにするコンパクト化プロセスを実行することを含む。
【００１１】
コンパクト化プロセスを実行することは、メモリの複数のブロックに各グレードを指定して、ブロックのグレードがそのブロックに記憶されたデータアイテムのアクセス頻度を表わすようにし、そしてグレードに基づいてソースブロックとして働くように候補ブロックを選択することを含む。それに加えて又はそれとは別に、コンパクト化プロセスを実行することは、メモリの複数のブロックに各グレードを指定して、ブロックのグレードが、そのブロックに記憶されたデータアイテムの、高速アクセス及び通常アクセスクラスへの分類と、そのブロックにデータを記憶するのに使用される実際の記憶構成との間の一致を表わすようにし、そしてグレードに基づいてソースブロックとして働くように候補ブロックを選択することを含む。
【００１２】
更に、本発明の一実施形態によれば、インターフェイス及び記憶回路を備えたデータ記憶装置が提供される。インターフェイスは、メモリセルの複数のグループを含むメモリと通信するように結合され、そして第１アクセス時間を有する第１記憶構成を使用して第１データを記憶すると同時に、第１アクセス時間より長い第２アクセス時間を有する第２記憶構成を使用して第２データを記憶して、各グループの各メモリセルが第１データの少なくとも１ビット及び第２データの１つ以上のビットを保持するように構成される。記憶回路は、メモリへの記憶のためにデータアイテムを受け容れ、その受け容れたデータアイテムを高速アクセスクラス及び通常アクセスクラスへ分類し、高速アクセスクラスのデータアイテムを、第１記憶構成を使用してメモリに記憶し、そして通常アクセスクラスのデータアイテムを、第２記憶構成を使用してメモリに記憶するように構成される。
【００１３】
又、本発明の一実施形態によれば、メモリ及び記憶回路を備えたデータ記憶装置が提供される。メモリは、メモリセルの複数のグループを含み、そして第１アクセス時間を有する第１記憶構成を使用して第１データを記憶すると同時に、第１アクセス時間よりも長い第２アクセス時間を有する第２記憶構成を使用して第２データを記憶して、各グループの各メモリセルが第１データの少なくとも１ビット及び第２データの１つ以上のビットを保持するように構成される。記憶回路は、メモリへの記憶のためにデータアイテムを受け容れ、その受け容れたデータアイテムを高速アクセスクラス及び通常アクセスクラスへ分類し、高速アクセスクラスのデータアイテムを、第１記憶構成を使用してメモリに記憶し、そして通常アクセスクラスのデータアイテムを、第２記憶構成を使用してメモリに記憶するように構成される。
【００１４】
本発明は、添付図面を参照したその実施形態の以下の詳細な説明からより完全に理解されよう。
【図面の簡単な説明】
【００１５】
【図１】本発明の一実施形態によるソリッドステートドライブ（ＳＳＤ）を概略的に示すブロック図である。
【図２】本発明の一実施形態によるマルチレベルセル（ＭＬＣ）フラッシュメモリへのデータ記憶方法を概略的に示すフローチャートである。
【図３】本発明の一実施形態によるメモリブロックコンパクト化方法を概略的に示すフローチャートである。
【発明を実施するための形態】
【００１６】
概略
マルチレベルセル（ＭＬＣ）メモリ装置は、２つ以上のデータビットを各々保持する複数のメモリセルを備えている。異なるＭＬＣビットは、典型的に、異なるアクセス時間を有する。例えば、典型的な２ビット／セルＭＬＣフラッシュ装置では、メモリセルのグループは、各々、高速アクセス時間を有する最下位ビット（ＬＳＢ）ページと、長いアクセス時間を有する最上位ビット（ＭＳＢ）ページとを保持する。ＬＳＢページ及びＭＳＢページは、各々、「下位ページ」及び「上位ページ」とも称される。
【００１７】
以下に述べる本発明の実施形態は、ＭＬＣメモリ装置にデータを記憶するための改良された方法及びシステムを提供する。ここに開示する技術は、ＭＬＣメモリを、２つの異なる記憶構成、即ち通常記憶構成及び高速記憶構成、を使用してデータを記憶できるものと考える。例えば、２ビット／セルフラッシュ装置では、高速記憶構成は、ＬＳＢページにおける記憶を含み、そして通常記憶構成は、装置のＭＳＢページにおける記憶を含む。
【００１８】
記憶のために受け容れられたデータアイテムは、高速アクセスクラス及び通常アクセスクラスへと分類され、即ち高速アクセス時間で記憶されねばならないアイテムと、通常アクセス時間で記憶されねばならないアイテムとに分類される。前者のデータアイテムは、高速記憶構成を使用して（例えば、ＬＳＢページに）記憶され、そして後者のデータアイテムは、通常記憶構成を使用して（例えば、ＭＳＢページに）記憶される。規範的な実施形態では、高速記憶構成は、頻繁にアクセスされる（しばしば「ホット」と称される）データアイテムを記憶するのに使用され、一方、通常記憶構成は、あまりアクセスされない（「コールド」）データアイテムを記憶するのに使用される。記憶構成をデータの使用頻度に一致させることにより、メモリの平均アクセス時間を著しく短縮することができる。
【００１９】
ここに開示する技術では、メモリセルの同じグループが高速及び通常の両アクセス時間で記憶するのに使用され、メモリの各メモリセルは、高速記憶構成を使用して記憶された少なくとも１つのビット、及び通常記憶構成を使用して記憶された少なくとも１つのビットを保持する。典型的な例では、両形式のデータアイテム（高速アクセス時間及び通常アクセス時間）がＭＬＣフラッシュ装置の同じ消去ブロックの異なるページに記憶される。
【００２０】
原理的には、高速及び通常のアクセス時間を与えるのに２つの異なるメモリ形式（例えば、ＳＬＣ装置及びＭＬＣ装置）を使用することができるが、この種の解決策は、非効率的であり且つ柔軟性がない。ここに開示する技術は、慣習的なＭＬＣ解決策に比して記憶性能を改善し、メモリを簡単化し、そして高速及び通常のアクセス時間で記憶するために記憶スペースを柔軟に割り当てできるようにする。というのは、同じメモリ装置に異なる記憶構成を混在させるからである。
【００２１】
図１は、本発明の一実施形態によるソリッドステートディスク（ＳＳＤ）２４を概略的に示すブロック図である。ＳＳＤ２４は、ホスト２８に代わってデータを記憶する。ホスト２８は、例えば、複数のＳＳＤ２４を含む企業用記憶システムのホストプロセッサ、ノートブック又はラップトップコンピュータのようなコンピューティング装置のホストプロセッサ、又は他の適当なホストを含む。
【００２２】
ＳＳＤ２４は、ホスト２８に代わって１つ以上の不揮発性メモリ装置３２にデータを記憶するＳＳＤコントローラ３６を備えている。ＳＳＤコントローラ３６は、ホスト２８と通信するホストインターフェイス４０、メモリ装置３２と通信するメモリインターフェイス４４、及びＳＳＤコントローラのオペレーションを管理するプロセッサ４８を備えている。ＳＳＤコントローラ３６は、更に、内部メモリを備え、この例では、ダイナミックランダムアクセスメモリ（ＤＲＡＭ）５２を備えている。
【００２３】
ここに示す例では、メモリ装置３２は、マルチレベルセル（ＭＬＣ）ＮＡＮＤフラッシュ装置又はダイを含む。各メモリ装置３２は、消去ブロック（メモリブロック又は簡略化のために単にブロックと称される）に配列された複数のメモリセルを含む。各ブロックのメモリセルは、単一の消去コマンドで一緒に消去される。
【００２４】
各ブロックは、一緒に書き込み及び読み取りされるメモリセルの複数のグループを含む。メモリ装置アーキテクチャーに基づいて、メモリセルの各グループは、例えば、所与のブロックの全行、所与のブロックのある行における奇数順のメモリセル、所与のブロックのある行における偶数順のメモリセル、又は単一のコマンドで読み取り及び書き込みされるメモリセルの他の適当なグループを含む。
【００２５】
ここに示す例では、メモリ装置３２は、２ビット／セル装置を含む。そのような装置では、各メモリセルは、最下位ビット（ＬＳＢ）及び最上位ビット（ＭＳＢ）としばしば称される２つのデータビットを保持する。メモリセルの各グループは、２つのページ、即ちグループ内のメモリセルのＬＳＢに記憶されるＬＳＢページと、グループ内のメモリセルのＭＳＢに記憶されるＭＳＢページとを保持する。
【００２６】
各メモリ装置３２は、個別のＬＳＢ及びＭＳＢ読み取り及び書き込みコマンドをサポートする。典型的に、ＬＳＢ読み取り及び書き込みコマンドは、ＭＳＢ読み取り及び書き込みコマンドより著しく高速である。換言すれば、ＬＳＢページのアクセス時間は、ＭＳＢページのアクセス時間より著しく高速である。ここで使用する「アクセス時間」という語は、読み取り及び／又は書き込みレイテンシーを指す。読み取り及び書き込みレイテンシーは、典型的に、ＳＳＤコントローラとメモリ装置との間のインターフェイスに書き込み又は読み取りコマンドが与えられる時間から、そのインターフェイスに応答が与えられる時間まで、測定される。規範的なメモリ装置のＬＳＢ及びＭＳＢアクセス時間を以下のテーブルに示す。
0005907255.tif 000002
【００２７】
ある実施形態では、ＳＳＤコントローラ３６は、メモリ装置３２に記憶するためのデータアイテムをホスト２８から受け容れる。ＳＳＤコントローラは、そのデータアイテムを、ある分類基準に基づいて、高速アクセスクラス及び通常アクセスクラスへ分類する。ＳＳＤコントローラは、高速アクセスクラスのデータアイテムをメモリ装置３２のＬＳＢページに記憶すると共に、通常アクセスクラスのデータアイテムをメモリ装置のＭＳＢページに記憶する。
【００２８】
図１の実施形態では、各データアイテムは、各論理的アドレスと一緒にホスト２８から受け容れられる。ＳＳＤコントローラは、論理的アドレスを、ある論理的／物理的アドレスマッピングに基づいてメモリ装置３２内の各物理的記憶位置（例えば、物理的ページ）へ変換し、そして各データアイテムを適当な物理的記憶位置に記憶する。以下の説明では、データアイテム及びそれらの各論理的アドレスは、論理的ブロックアドレス（ＬＢＡ）と称される。しかしながら、別の実施形態では、他の適当な形式のデータアイテム及びアドレススキームを使用することができる。
【００２９】
ＳＳＤコントローラ３６は、受け容れられたＬＢＡを高速アクセスクラス及び通常アクセスクラスへ分類する分類ユニット５６を備えている。異なるクラスに属するＬＢＡは、次いで、個別のバッファ、この例では、先入れ先出し（ＦＩＦＯ）メモリにバッファリングされる。通常アクセスクラスに属するＬＢＡ（例えば、通常読み取りレイテンシーで読み取られるべきＬＢＡ）は、ＭＳＢ書き込みＦＩＦＯ６０へ送られ、そして高速アクセスクラスに属するＬＢＡ（例えば、高速読み取りレイテンシーで読み取られるべきＬＢＡ）は、ＬＳＢ書き込みＦＩＦＯ６４へ送られる。ＳＳＤコントローラ３６は、ＭＳＢ書き込みＦＩＦＯ６０にバッファリングされたＬＢＡをメモリ装置３２のＭＳＢページに記憶しそしてＬＳＢ書き込みＦＩＦＯ６４にバッファリングされたＬＢＡをメモリ装置のＬＳＢページに記憶する。
【００３０】
図１のＳＳＤ及びＳＳＤコントローラの構成は、概念的明瞭化のために単純に示された規範的な構成に過ぎない。別の実施形態では、他の適当なＳＳＤ及びＳＳＤコントローラ構成を使用することができる。例えば、ここに述べる実施形態は、主として、ＬＳＢ及びＭＳＢページを保持する２ビット／セルメモリ装置を参照する。別の実施形態では、メモリ装置３２は、適当な記憶密度及び適当な数のページ／メモリグループを有する他の適当な形式のメモリ、例えば、３ビット／セル、４ビット／セル又は５ビット／セルのメモリを含む。
【００３１】
更に、それとは別に、メモリ装置は、同じメモリセルに高速アクセス時間及び通常アクセス時間の記憶構成を混在させるメモリセルの他の適当なグループを含んでもよい。ある実施形態では、メモリは、異なるアクセス時間を有する多数の記憶構成をサポートし、そして受け容れられたデータアイテムがそれに応じて多数のクラスに分類される。例えば、３ビット以上／セルを記憶するＭＬＣメモリでは、高速アクセスクラスがＬＳＢページに対応し、そして通常アクセスクラスが他の全て（高レイテンシーの）ページに対応する。
【００３２】
本発明の原理を理解する上で必要のない要素は、明瞭化のために図面から省略されている。図１に示す規範的な構成では、メモリ装置３２及びＳＳＤコントローラ３６は、個別の集積回路（ＩＣ）として実施される。しかしながら、別の実施形態では、メモリ装置及びＳＳＤコントローラは、単一のマルチチップパッケージ（ＭＣＰ）又はシステムオンチップ（ＳｏＣ）において個別の半導体ダイに集積化されて、内部バスにより相互接続されてもよい。更にそれとは別に、１つ以上のメモリ装置が配置される同じダイにＳＳＤ回路の幾つか又は全部が存在してもよい。更に、それとは別に、ＳＳＤコントローラの機能の幾つか又は全部がソフトウェアで具現化されて、ホスト２８で実行されてもよい。ある実施形態では、ホスト２８及びＳＳＤコントローラ３６は、同じダイに製造されてもよいし、又は同じ装置パッケージ内の個別のダイに製造されてもよい。
【００３３】
ＳＳＤコントローラ３６の機能の幾つか又は全部がハードウェアで具現化されてもよい。或いは又、ＳＳＤコントローラの要素、例えば、プロセッサ４８及び分類ユニット５６は、適当なソフトウェアを実行する１つ以上のマイクロプロセッサ、或いはハードウェア及びソフトウェア要素の組み合わせを使用して、具現化されてもよい。ある実施形態では、プロセッサ４８は、ここに述べる機能を実行するためにソフトウェアでプログラムされた汎用プロセッサを含む。ソフトウェアは、例えば、ネットワークを経て電子的な形態でプロセッサにダウンロードされてもよいし、それとは別に又はそれに加えて、磁気、光学又は電子メモリのような非一時的な有形媒体に設けられ及び／又は記憶されてもよい。ＳＳＤコントローラ回路は、おそらくメモリ装置３２内のある回路と組み合わせて、ここでは、ここに開示する技術を実施する記憶回路と称される。
【００３４】
ＬＳＢ及びＭＳＢページにおける選択的データ記憶
種々の実施形態において、ＳＳＤコントローラ３６の分類ユニット５６は、異なる分類基準を使用して、受け容れられたＬＢＡを通常アクセスクラス及び高速アクセスクラスへ分類する。１つの実施形態において、ユニット５６は、頻繁にアクセスされる（例えば、読み取られる）ＬＢＡを高速アクセスクラスに、そしてあまりアクセスされないＬＢＡを通常アクセスクラスに分類する。ホストが後で種々のＬＢＡにアクセスするときには、全平均アクセス時間が著しく短縮される。
【００３５】
この文脈において、「頻繁にアクセスされる」及び「あまりアクセスされない」という語は、特定の又は絶対的なアクセス頻度を意味するものではなく、むしろ、アクセス頻度間の相対的な関係を意味する。換言すれば、データアイテムは、頻繁にアクセスされるデータアイテムのアクセス頻度が、あまりアクセスされないデータアイテムのアクセス頻度より高くなるように、適当な仕方で、頻繁にアクセスされるもの及びあまりアクセスされないものとして分類される。
【００３６】
別の実施形態では、ユニット５６は、管理データ（例えば、重要なデータ及び／又はコントロールデータ）を高速アクセスクラスに、そして他のデータ（例えば、ユーザデータ）を通常アクセスクラスに分類する。この基準は、典型的に、管理データが頻繁にアクセスされると仮定している。更にそれとは別に、ユニット５６は、他の適当な分類基準又は基準の組み合わせに基づいて、受け容れられたデータアイテムを分類してもよい。
【００３７】
図２は、本発明の一実施形態によりＳＳＤ２４にデータを記憶する方法を概略的に示すフローチャートである。この方法は、ＳＳＤコントローラ３６が、導入ステップ７０において、ホストインターフェイス４０を経てホスト２８から記憶するためにＬＢＡを受け容れることで始まる。
【００３８】
ＳＳＤコントローラの分類ユニット５６は、分類ステップ７４において、受け容れられたＬＢＡを分類する。ユニット５６は、ＬＢＡを、短いアクセス時間でアクセスされるべきＬＢＡ（例えば、頻繁に読み取られるＬＢＡ）の高速アクセスクラスと、通常のアクセス時間でアクセスされるべきＬＢＡ（例えば、あまり読み取られないＬＢＡ）の通常アクセスクラスとに分類する。ユニット５６は、高速アクセスクラスのＬＢＡをＬＳＢ書き込みＦＩＦＯ６４に、そして通常アクセスクラスのＬＢＡをＭＳＢ書き込みＦＩＦＯ６０に与える。
【００３９】
ＳＳＤコントローラ３６は、ＬＳＢ書き込みＦＩＦＯ６４にバッファリングされたＬＢＡ（例えば、頻繁に読み取られるＬＢＡ）を、ＬＳＢ記憶ステップ７８において、メモリ装置３２のＬＳＢページに記憶する。又、ＳＳＤコントローラは、ＭＳＢ書き込みＦＩＦＯ６０にバッファリングされたＬＢＡ（例えば、あまり読み取られないＬＢＡ）を、ＭＳＢ記憶ステップ８２において、メモリ装置のＭＳＢページに記憶する。
【００４０】
ある実施形態では、ＳＳＤコントローラは、ＬＳＢ書き込みＦＩＦＯからのエントリー及びＭＳＢ書き込みＦＩＦＯからのエントリーを読み取り、そしてそれらのエントリーをセルグループのＬＳＢページ及びＭＳＢページに各々記憶することにより、メモリセルの所与のグループ（例えば、所与のブロックの行）をプログラムする。書き込みＦＩＦＯの一方が空である場合には、ＳＳＤコントローラは、他方の書き込みＦＩＦＯからの２つのエントリーをセルグループのＬＳＢページ及びＭＳＢページに記憶する。
【００４１】
この方法は、次いで、前記ステップ７０へループバックし、ＳＳＤは、ホストから後続のＬＢＡを受け容れる。
【００４２】
ある実施形態では、ＬＢＡを通常アクセスクラス及び高速アクセスクラスへ分類することは、固定であり、即ち時間と共に変化しない予め構成された分類である。例えば、ユニット５６は、頻繁にアクセスされるＬＢＡの範囲と、あまりアクセスされないＬＢＡの他の範囲とで予め構成され、そして受け容れられたＬＢＡをそれらの範囲に基づいて分類する。この具現化は、比較的簡単であり、例えば、規定のＬＢＡ範囲の（頻繁にアクセスされる）管理データを（例えば、ＬＢＡスペースの下端に）記憶するオペレーティングシステムと共に使用される。
【００４３】
他の実施形態では、ＳＳＤコントローラ３６には、ホストによる分類が、それらの間のインターフェイスを経て通知される。例えば、ホストは、どちらのＬＢＡ範囲が頻繁にアクセスされそしてどちらのＬＢＡ範囲があまりアクセスされないかをＳＳＤコントローラに指示する。この種の指示は、前もってＳＳＤコントローラに与えられるか、又はＳＳＤに記憶するために送られる各ＬＢＡと一緒に与えられる。
【００４４】
ある記憶プロトコルは、ホストがそのような指示をＳＳＤに与えられるようにするコマンドをサポートする。ある実施形態では、ホスト２８及びＳＳＤコントローラ３６は、例えば、参考としてここに援用する２０１１年７月１２日付けの“NVM Express”改訂１．０ｂに指定されたＮＶＭエクスプレスプロトコルを使用して通信する。ＮＶＭエクスプレスプロトコルは、論理的ブロックの範囲についての属性を指示するためにホストによって使用されるデータセットマネージメント（ＤＳＭ）コマンドを指定する。その属性は、例えば、データが読み取られ又は書き込まれる頻度、及び／又はデータの要求されるアクセスレイテンシーを含む。例えば、前記ＮＶＭエクスプレス仕様書の第６．６及び６．８章並びに図１２１を参照されたい。
【００４５】
ある実施形態では、ユニット５６は、受け容れられたＬＢＡを、ＤＳＭコマンドで与えられる属性に基づいて分類する。例えば、パーソナルコンピュータ用途では、ホストは、ＤＳＭコマンドを使用して、コンピュータの冬眠スペースとして使用すべきＬＢＡ範囲を指定する。ユニット５６は、この範囲のＬＢＡをＬＳＢページに記憶することによりこのＬＢＡ範囲を高速読み出しについて最適化する。この技術は、冬眠からのコンピュータウェイクアップ時間を短縮する。
【００４６】
固定の分類と比較して、ホスト通知に基づく分類は、実施が比較的簡単であるが、高い融通性も発揮する。又、この実施は、例えば、規定のＬＢＡ範囲の管理データを（例えば、ＬＢＡスペースの下端に）記憶するオペレーティングシステムと共に効果的である。
【００４７】
別の実施形態では、ＳＳＤ２４のプロセッサ４８は、ＬＢＡの分類をホストからの通知に関わらず適応式に且つ自律的に決定する。典型的に、プロセッサ４８は、種々のＬＢＡで遂行されるメモリアクセス（例えば、読み出し）オペレーションの統計値を追跡し、そしてそれに応じて、分類を定義する。例えば、プロセッサ４８は、頻繁にアクセスされるＬＢＡと、あまりアクセスされないＬＢＡとの間を自動的に区別するための適当な技術を適用し、次いで、そのＬＢＡを高速アクセスクラス及び通常アクセスクラスへ適宜マップさせる。ある実施形態では、この機能は、プロセッサ４８において実施されるフラッシュ変換レイヤ（ＦＴＬ）に埋め込まれる。この動的なマッピングは、上述した固定の又はホスト支援型の方法と結合される。
【００４８】
ある実施形態では、プロセッサ４８は、各ＬＢＡ又はＬＢＡ範囲について、各読み取りカウンタを維持し、そしてＬＢＡ又はＬＢＡ範囲からの各読み取りオペレーションに対してカウンタをインクリメントする。それらのカウンタは、望ましい数のビット、即ち望ましい解像度又はサイズを有する。１つの実施形態において、各カウンタは、単一ビットを有する（例えば、“０”＝ＬＢＡ否読み取り、“１”＝ＬＢＡ読み取り）。１つの実施形態において、各ＬＢＡ（又は範囲）のカウンタは、論理的／物理的アドレスマッピングにおいてそのＬＢＡ（又は範囲）のエントリーの一部分として記憶される。カウンタを含む論理的／物理的アドレスマッピングは、例えば、ＤＲＡＭ５２に記憶される。
【００４９】
これらの実施形態では、プロセッサ４８は、ＬＢＡを、それらの読み取られたカウンタ値に基づいて分類する。例えば、プロセッサ４８は、カウンタ値がスレッシュホールドを越えるＬＢＡを高速アクセスクラスに分類し、そしてカウンタ値がそのスレッシュホールドより低いＬＢＡを通常アクセスクラスに分類する。その結果、頻繁にアクセスされるＬＢＡは、ＬＳＢページに記憶され、そしてあまりアクセスされないＬＢＡは、ＭＳＢページに記憶される。
【００５０】
ブロックコンパクト化の間のＬＳＢ及びＭＳＢページへの記憶
典型的なフラッシュメモリでは、データがページ単位でメモリ装置３２に書き込まれるが、消去は、メモリブロック全体に適用される。データは、消去されたページのみに書き込まれ、それ故、データをその場で更新することはできない。データの更新は、更新されたデータを別の物理的記憶位置へ書き込み、以前のデータを無効とマークし、そして論理的／物理的アドレスマッピングを動的に更新することを含む。
【００５１】
前記特徴のために、メモリ装置３２のメモリブロックは、無効のデータページを徐々に累積し、その更新されたものは、他の物理的記憶位置に記憶される。無効ページの数を減少するために、ＳＳＤコントローラ３６のプロセッサ４８は、コンパクト化、又は「ガーベージコレクション」プロセスを実行する。この背景プロセスは、コンパクト化のために１つ以上のメモリブロック（ソースブロックと称される）を選択し、その選択されたソースブロックからの有効データを１つ以上の他のブロック（ターゲットブロックと称される）の他の記憶位置へコピーし、次いで、ソースブロックを消去する。消去されたブロックは、その後のプログラミングの準備ができる。
【００５２】
ある実施形態では、ＳＳＤコントローラ３６（例えば、プロセッサ４８及び／又はユニット５６）は、コンパクト化プロセスの一部分として、高速アクセスクラスに属するデータをＬＳＢページに、そして通常アクセスクラスに属するデータをＭＳＢページに記憶する。例えば、上述した読み取りカウンタを使用するときには、プロセッサ４８は、最初、読み取りカウンタをリセットする。データの読み出し中に、プロセッサ４８は、種々のＬＢＡの読み取りカウンタをインクリメントする。
【００５３】
ブロックのコンパクト化を遂行するとき（１つ以上のソースブロックから１つ以上のターゲットブロックへページをコピーするとき）、プロセッサ４８は、高いカウンタ値を有するＬＢＡに属するページをターゲットブロックのＬＳＢページへコピーし、そして低いカウンタ値を有するＬＢＡに属するページをターゲットブロックのＭＳＢページへコピーする。ページをコピーした後に、読み取りカウンタがリセットされる。
【００５４】
更に、ある実施形態では、プロセッサ４８は、次のことを表わす各読み出しグレードを各ブロックに指定する。
・ブロックのデータが読み取られる頻度（例えば、頻繁にある／あまりない）；及び／又は
・ブロック内のＬＳＢ及びＭＳＢページへのデータ配布と分類基準との間の一致の程度（例えば、ブロック内のＬＳＢページが、頻繁に読み取られるデータを実際に記憶し及びＭＳＢページが、あまり読み取られないデータを実際に記憶する程度）。
【００５５】
ブロックの読み出しグレードは、例えば、ブロックからのＬＳＢページの読み出しオペレーションの合計数から、ブロックからのＭＳＢページの読み出しオペレーションの合計数を差し引いたものとして定義される。或いは又、前記ガイドラインを満足する他の適当な読み出しグレードを使用することもできる。これらの実施形態では、プロセッサ４８は、コンパクト化のための候補ブロックを選択するときに、低いグレードのブロックに高い優先順位を指定する。グレードベースの基準は、「ホール」（無効データの領域）の数、又はブロック内の無効ページの数のような他の選択基準と結合されてもよい。
【００５６】
図３は、本発明の一実施形態によるメモリブロックコンパクト化方法を概略的に示すフローチャートである。この方法は、ＳＳＤコントローラ３６のプロセッサ４８が、候補選択ステップ９０において、コンパクト化のソースブロックを選択することで始まる。プロセッサ４８は、例えば、上述したように、ブロックに指定された読み出しグレードに基づいて、ソースブロックを選択する。
【００５７】
プロセッサ４８は、選択されたソースブロックからターゲットブロックへ有効ページをコピーする。読み出しレイテンシーを減少するために、プロセッサは、高速アクセスクラスに属するソースブロックのページを、ＬＳＢコピーステップ９４において、ターゲットブロックのＬＳＢページへコピーする。通常アクセスクラスに属するソースブロックのページは、ＭＳＢコピーステップ９８において、ターゲットブロックのＭＳＢページへコピーされる。次いで、プロセッサ４８は、消去ステップ１０２において、ソースブロックを消去する。
【００５８】
以上の例は、単一ソースブロックから単一ターゲットブロックへデータをコピーするコンパクト化プロセスを参照したものである。しかしながら、一般的には、コンパクト化プロセスは、望ましい数のソースブロックから望ましい数のターゲットブロックへデータを一緒にコピーすることができる。ソースブロックの数を増加すると、コンパクト化の効率が改善される。
【００５９】
例えば、頻繁に読み取られるページを高い割合で含む一方のブロックと、頻繁に読み取られるページを低い割合でしか含まない他方のブロック、の一対のブロックについて考える。この２つのブロックを一緒にコンパクト化することは、典型的に、各ブロックを別々にコンパクト化する場合より著しく効率的となる。そのような共同コンパクト化プロセスは、典型的に、頻繁に読み取られるページ（大部分は第１のソースブロックからの）をターゲットブロックのＬＳＢページに、そしてあまり読み取られないページ（大部分は第２のソースブロックからの）をターゲットブロックのＭＳＢページに記憶する。
【００６０】
ここに述べる実施形態は、主として、高速アクセスデータをＬＳＢページにそして通常アクセスデータをＭＳＢページに記憶することに向けられたが、ここに述べる方法及びシステムは、他の記憶構成で使用することもできる。例えば、高速アクセス記憶構成は、データ（例えば、ＬＢＡ）を少数の物理的ページ（例えば、単一の物理的ページ）に記憶することを含み、そして通常アクセス記憶構成は、データを非常に多数の物理的ページに分割することを含む。
【００６１】
以上に述べた実施形態は、一例に過ぎず、本発明は、図示して上述したものに限定されないことが明らかであろう。むしろ、本発明の範囲は、上述した種々の特徴の組み合わせ及び準組み合わせと、従来開示されておらずに以上の説明を読んだときに当業者に明らかとなるその変更及び修正と、の両方を包含する。参考としてここに援用された文書は、本出願の一体的部分と考えるべきであるが、それらの援用された文書において、本明細書に明確に又は暗示的になされた定義と矛盾するように用語が定義されるものについては、本明細書の定義のみを考慮すべきである。
【符号の説明】
【００６２】
２４：ソリッドステートディスクＳＳＤ
２８：ホスト
３２：不揮発性メモリ装置
３６：ＳＳＤコントローラ
４０：ホストインターフェイス
４４：メモリインターフェイス
４８：プロセッサ
５２：ＤＲＡＭ
５６：分類ユニット
６０：ＭＳＢ書き込みＦＩＦＯ
６４：ＬＳＢ書き込みＦＩＦＯ
【図１】
0005907255.tif 000003
【図２】
0005907255.tif 000004
【図３】
0005907255.tif 000005