(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】5907255
(24)【登録日】2016年4月1日
(45)【発行日】2016年4月26日
(54)【発明の名称】LSB及びMSBページにおける選択的データ記憶
(51)【国際特許分類】
G06F 12/00 20060101AFI20160412BHJP
G06F 12/02 20060101ALI20160412BHJP
【FI】
G06F12/00 560A
G06F12/00 597U
G06F12/02 530C
【請求項の数】18
【全頁数】15
(21)【出願番号】特願2014-510916(P2014-510916)
(86)(22)【出願日】2012年5月13日
(65)【公表番号】特表2014-513848(P2014-513848A)
(43)【公表日】2014年6月5日
(86)【国際出願番号】IB2012052376
(87)【国際公開番号】WO2013005118
(87)【国際公開日】20130110
【審査請求日】2014年4月11日
(31)【優先権主張番号】61/486,284
(32)【優先日】2011年5月15日
(33)【優先権主張国】US
(31)【優先権主張番号】13/426,799
(32)【優先日】2012年3月22日
(33)【優先権主張国】US
(73)【特許権者】
【識別番号】503260918
【氏名又は名称】アップル インコーポレイテッド
(74)【代理人】
【識別番号】100092093
【弁理士】
【氏名又は名称】辻居 幸一
(74)【代理人】
【識別番号】100082005
【弁理士】
【氏名又は名称】熊倉 禎男
(74)【代理人】
【識別番号】100067013
【弁理士】
【氏名又は名称】大塚 文昭
(74)【代理人】
【識別番号】100086771
【弁理士】
【氏名又は名称】西島 孝喜
(74)【代理人】
【識別番号】100122563
【弁理士】
【氏名又は名称】越柴 絵里
(72)【発明者】
【氏名】ルボヴィッツ アミット
【審査官】
塩澤 如正
(56)【参考文献】
【文献】
特開2010−067263(JP,A)
【文献】
特開2008−242503(JP,A)
【文献】
米国特許出願公開第2008/0291731(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 12/00 − G06F 12/06
(57)【特許請求の範囲】
【請求項1】
メモリセルの複数のグループを含むメモリであって、第1アクセス時間を有する第1記憶構成を使用して第1データを記憶すると同時に、第1アクセス時間より長い第2アクセス時間を有する第2記憶構成を使用して第2データを記憶して、各グループの各メモリセルが第1データの少なくとも1ビット及び第2データの1つ以上のビットを記憶するように構成された前記メモリを準備する処理と、
メモリに記憶するためにデータアイテムを受け容れる処理であって、前記データアイテムの各々は、1以上のデータバイトを含み、且つ、メモリセルの少なくとも1つのグループに記憶される当該処理と、
前記受け容れられたデータアイテムを、高速アクセスクラスと通常アクセスクラスとに分類する処理と、
前記高速アクセスクラスのデータアイテムを、第1記憶構成を使用して前記メモリに記憶すると共に、前記通常アクセスクラスのデータアイテムを、第2記憶構成を使用して前記メモリに記憶する処理と、
前記データアイテムの各々の読み出しアクセスの頻度をトラッキングする処理と、
メモリの1つ以上のソースグループであって、各々のグレードに基づき選択される当該ソースグループからメモリの1つ以上のターゲットグループへデータをコピーするコンパクト化プロセスを実行する処理と、
高速アクセスクラスとして分類されたデータアイテムの読み出しアクセス数、及び通常アクセスクラスとして分類されたデータアイテムの読み出しアクセス数に基づき、前記グループの各々にグレードを割り当てる処理と、
第1記憶構成を使用して、高速アクセスクラスとして分類される前記データアイテムを前記ターゲットグループに記憶する処理と、
第2記憶構成を使用して、通常アクセスクラスとして分類される前記データアイテムを前記ターゲットグループに記憶する処理と、
が実行されるデータ記憶方法。
【請求項2】
第1記憶構成を使用してデータアイテムを記憶する前記処理は、メモリの最下位ビット(LSB)ページにデータアイテムを記憶することを含み、そして第2記憶構成を使用してデータアイテムを記憶する前記処理は、メモリの最上位ビット(MSB)ページにデータアイテムを記憶することを含む、請求項1に記載の方法。
【請求項3】
データアイテムを分類する前記処理は、第1アクセス頻度でアクセスされる、頻繁にアクセスされるデータアイテムを高速アクセスクラスに分類すること、及び第1アクセス頻度より少ない第2アクセス頻度でアクセスされる、あまりアクセスされないデータアイテムを通常アクセスクラスに分類することを含む、請求項1又は2に記載の方法。
【請求項4】
データアイテムを分類する前記処理は、管理データを高速アクセスクラスに分類すること、及びユーザデータを通常アクセスクラスに分類することを含む、請求項1又は2に記載の方法。
【請求項5】
データアイテムを分類する前記処理は、メモリの第1の数の物理的ページへ各々マップされる第1のデータアイテムを高速アクセスクラスに分類すること、及び前記第1の数より大きい第2の数の物理的ページへ各々マップされる第2のデータアイテムを通常アクセスクラスに分類することを含む、請求項1又は2に記載の方法。
【請求項6】
データアイテムを分類する前記処理は、データアイテムの、高速アクセスクラス及び通常アクセスクラスへの規定の固定分類を適用することを含む、請求項1又は2に記載の方法。
【請求項7】
データアイテムがホストから受け容れられ、そしてデータアイテムを分類する前記処理は、データアイテムの、高速アクセスクラス及び通常アクセスクラスへの分類をホストから受信することを含む、請求項1又は2に記載の方法。
【請求項8】
データアイテムを分類する前記処理は、データアイテムに適用されるメモリアクセスオペレーションを監視することにより、データアイテムの、高速アクセスクラス及び通常アクセスクラスへの分類を適応式に決定することを含み、頻繁にアクセスされたデータアイテムは前記高速アクセスクラスに分類される、請求項1又は2に記載の方法。
【請求項9】
データアイテムを記憶する前記処理は、高速アクセスクラスに属するデータアイテムを第1バッファにバッファリングし、通常アクセスクラスに属するデータアイテムを第2バッファにバッファリングし、そして第1及び第2バッファにバッファリングされたデータアイテムを、各々、第1及び第2の記憶構成を使用して記憶することを含む、請求項1又は2に記載の方法。
【請求項10】
(1)メモリセルの複数のグループを含むメモリと通信するように結合され、そして第1アクセス時間を有する第1記憶構成を使用して第1データを記憶すると同時に、第1アクセス時間より長い第2アクセス時間を有する第2記憶構成を使用して第2データを記憶して、各グループの各メモリセルが第1データの少なくとも1ビット及び第2データの1つ以上のビットを保持するように構成されたインターフェイスと、
(2)(a)前記メモリへの記憶のためにデータアイテムであって、1以上のデータバイトを含み、且つ、メモリセルの少なくとも1つのグループに記憶される前記データアイテムの各々を受け容れ、
(b)その受け容れたデータアイテムを高速アクセスクラス及び通常アクセスクラスへ分類し、高速アクセスクラスのデータアイテムを、第1記憶構成を使用してメモリに記憶し、
(c)通常アクセスクラスのデータアイテムを、第2記憶構成を使用して前記メモリに記憶し、
(d)前記データアイテムの各々の読み出しアクセスの頻度をトラッキングし、
(e)メモリの1つ以上のソースグループであって、各々のグレードに基づき選択される当該ソースグループからメモリの1つ以上のターゲットグループへデータをコピーするコンパクト化プロセスを実行し、
(f)高速アクセスクラスとして分類されたデータアイテムの読み出しアクセス数、及び通常アクセスクラスとして分類されたデータアイテムの読み出しアクセス数に基づき、前記グループの各々にグレードを割り当て、
(g)第1記憶構成を使用して、高速アクセスクラスとして分類される前記データアイテムを前記ターゲットグループに記憶し、
(h)第2記憶構成を使用して、通常アクセスクラスとして分類される前記データアイテムを前記ターゲットグループに記憶する、
ように構成された記憶回路と、
を備えたデータ記憶装置。
【請求項11】
前記記憶回路は、前記メモリの最下位ビット(LSB)ページにデータアイテムを記憶することにより第1記憶構成を使用してデータアイテムを記憶し、そして前記メモリの最上位ビット(MSB)ページにデータアイテムを記憶することにより第2記憶構成を使用してデータアイテムを記憶するように構成された、請求項10に記載の装置。
【請求項12】
前記記憶回路は、第1アクセス頻度でアクセスされる、頻繁にアクセスされるデータアイテムを高速アクセスクラスに分類し、及び第1アクセス頻度より少ない第2アクセス頻度でアクセスされる、あまりアクセスされないデータアイテムを通常アクセスクラスに分類するように構成された、請求項10又は11に記載の装置。
【請求項13】
前記記憶回路は、管理データを高速アクセスクラスに分類し、及びユーザデータを通常アクセスクラスに分類するように構成された、請求項10又は11に記載の装置。
【請求項14】
前記記憶回路は、前記メモリの第1の数の物理的ページへ各々マップされる第1のデータアイテムを高速アクセスクラスに分類し、及び前記第1の数より大きい第2の数の物理的ページへ各々マップされる第2のデータアイテムを通常アクセスクラスに分類するように構成された、請求項10又は11に記載の装置。
【請求項15】
前記記憶回路は、データアイテムの、高速アクセスクラス及び通常アクセスクラスへの規定の固定分類を適用するように構成された、請求項10又は11に記載の装置。
【請求項16】
前記インターフェイスは、データアイテムをホストから受入れるように構成され、そして前記記憶回路は、データアイテムの、高速アクセスクラス及び通常アクセスクラスへの分類をホストから受信するように構成された、請求項10又は11に記載の装置。
【請求項17】
前記記憶回路は、データアイテムに適用されるメモリアクセスオペレーションを監視することにより、データアイテムの、高速アクセスクラス及び通常アクセスクラスへの分類を適応式に決定し、頻繁にアクセスされたデータアイテムは前記高速アクセスクラスに分類されるように構成された、請求項10又は11に記載の装置。
【請求項18】
前記記憶回路は、第1及び第2バッファを備え、そして前記記憶回路は、高速アクセスクラスに属するデータアイテムを前記第1バッファにバッファリングし、通常アクセスクラスに属するデータアイテムを前記第2バッファにバッファリングし、そして前記第1及び第2バッファにバッファリングされたデータアイテムを、各々、前記第1及び第2の記憶構成を使用して記憶するように構成された、請求項10又は11に記載の装置。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、全般的に、メモリシステムに関するものであり、より詳細には、マルチレベルメモリ装置にデータを記憶するための方法及びシステムに関する。
【背景技術】
【0002】
データの使用パターンに基づいてメモリにデータを記憶するための種々の技術が知られている。例えば、参考としてここに開示を援用する米国特許出願公告2009/0049234号は、第1及び第2のメモリレイヤを含むソリッドステートメモリにデータを記憶する記憶スキームを説明している。受信したデータがホットデータであるかコールドデータであるか決定するために第1の評価が実行される。ホットデータと評価された受信データは、第1のメモリレイヤに記憶され、そしてコールドデータと評価された受信データは、第2のメモリレイヤに記憶される。更に、第1のメモリレイヤに記憶されたデータがホットデータであるかコールドデータであるか決定するために第2の評価が実行される。この第2の評価中にコールドデータと評価されたデータは、第1のメモリレイヤから第2のメモリレイヤへ移行される。
【0003】
別の例として、参考としてここに開示を援用する米国特許出願公告2011/0010489号は、フラッシュメモリ装置の複数の論理ブロックを管理するための論理ブロック管理方法を説明している。この方法は、フラッシュメモリコントローラを準備し、論理ブロックを複数の論理ゾーンにグループ分けすることを含み、各論理ブロックは、論理ゾーンの1つへマップされる。又、この方法は、各論理ブロックの使用カウント値をカウントし、そしてその使用カウント値に基づいて論理ブロックと論理ゾーンとの間のマッピング関係を動的に調整することも含む。従って、論理ブロック管理方法は、論理ゾーンを有効に利用して、論理ブロックの使用パターンを決定し、そして異なるメカニズムを使用してデータを書き込み、フラッシュメモリ記憶装置の性能を高める。
【発明の概要】
【0004】
ここに述べる本発明の実施形態は、データ記憶方法を提供する。この方法は、メモリセルの複数のグループを含むメモリであって、第1アクセス時間を有する第1記憶構成を使用して第1データを記憶すると同時に、第1アクセス時間より長い第2アクセス時間を有する第2記憶構成を使用して第2データを記憶して、各グループの各メモリセルが第1データの少なくとも1ビット及び第2データの1つ以上のビットを記憶するように構成されたメモリを準備することを含む。データアイテムはメモリに記憶することが受け容れられる。受け容れられたデータアイテムは、高速アクセスクラスと通常アクセスクラスに分類される。高速アクセスクラスのデータアイテムは、第1記憶構成を使用してメモリに記憶され、そして通常アクセスクラスのデータアイテムは、第2記憶構成を使用してメモリに記憶される。
【0005】
ある実施形態では、第1記憶構成を使用してデータアイテムを記憶することは、メモリの最下位ビット(LSB)ページにデータアイテムを記憶することを含み、そして第2記憶構成を使用してデータアイテムを記憶することは、メモリの最上位ビット(MSB)ページにデータアイテムを記憶することを含む。
【0006】
ここに開示する実施形態では、データアイテムを分類することは、第1アクセス頻度でアクセスされる、頻繁にアクセスされるデータアイテムを高速アクセスクラスに分類すること、及び第1アクセス頻度より少ない第2アクセス頻度でアクセスされる、あまりアクセスされないデータアイテムを通常アクセスクラスに分類することを含む。別の実施形態では、データアイテムを分類することは、管理データを高速アクセスクラスに分類すること、及びユーザデータを通常アクセスクラスに分類することを含む。
【0007】
別の実施形態では、データアイテムを分類することは、メモリの第1の数の物理的ページへ各々マップされる第1のデータアイテムを高速アクセスクラスに分類すること、及び第1の数より大きい第2の数の物理的ページへ各々マップされる第2のデータアイテムを通常アクセスクラスに分類することを含む。
【0008】
ある実施形態では、データアイテムを分類することは、データアイテムの、高速アクセスクラス及び通常アクセスクラスへの規定の固定分類を適用することを含む。別の実施形態では、データアイテムがホストから受け容れられ、そしてデータアイテムを分類することは、データアイテムの、高速アクセスクラス及び通常アクセスクラスへの分類をホストから受け取ることを含む。更に、それとは別に、データアイテムを分類することは、データアイテムに適用されるメモリアクセスオペレーションを監視することにより、データアイテムの、高速アクセスクラス及び通常アクセスクラスへの分類を適応式に決定することを含む。
【0009】
ある実施形態では、データアイテムを記憶することは、高速アクセスクラスに属するデータアイテムを第1バッファにバッファリングし、通常アクセスクラスに属するデータアイテムを第2バッファにバッファリングし、そして第1及び第2バッファにバッファリングされたデータアイテムを、各々、第1及び第2の記憶構成を使用して記憶することを含む。
【0010】
一実施形態において、データアイテムを記憶することは、メモリの1つ以上のソースブロックからメモリの1つ以上のターゲットブロックへデータをコピーして、高速アクセスクラスに属するデータアイテムが第1記憶構成を使用してターゲットブロックに記憶され、且つ通常アクセスクラスに属するデータアイテムが第2記憶構成を使用してターゲットブロックに記憶されるようにするコンパクト化プロセスを実行することを含む。
【0011】
コンパクト化プロセスを実行することは、メモリの複数のブロックに各グレードを指定して、ブロックのグレードがそのブロックに記憶されたデータアイテムのアクセス頻度を表わすようにし、そしてグレードに基づいてソースブロックとして働くように候補ブロックを選択することを含む。それに加えて又はそれとは別に、コンパクト化プロセスを実行することは、メモリの複数のブロックに各グレードを指定して、ブロックのグレードが、そのブロックに記憶されたデータアイテムの、高速アクセス及び通常アクセスクラスへの分類と、そのブロックにデータを記憶するのに使用される実際の記憶構成との間の一致を表わすようにし、そしてグレードに基づいてソースブロックとして働くように候補ブロックを選択することを含む。
【0012】
更に、本発明の一実施形態によれば、インターフェイス及び記憶回路を備えたデータ記憶装置が提供される。インターフェイスは、メモリセルの複数のグループを含むメモリと通信するように結合され、そして第1アクセス時間を有する第1記憶構成を使用して第1データを記憶すると同時に、第1アクセス時間より長い第2アクセス時間を有する第2記憶構成を使用して第2データを記憶して、各グループの各メモリセルが第1データの少なくとも1ビット及び第2データの1つ以上のビットを保持するように構成される。記憶回路は、メモリへの記憶のためにデータアイテムを受け容れ、その受け容れたデータアイテムを高速アクセスクラス及び通常アクセスクラスへ分類し、高速アクセスクラスのデータアイテムを、第1記憶構成を使用してメモリに記憶し、そして通常アクセスクラスのデータアイテムを、第2記憶構成を使用してメモリに記憶するように構成される。
【0013】
又、本発明の一実施形態によれば、メモリ及び記憶回路を備えたデータ記憶装置が提供される。メモリは、メモリセルの複数のグループを含み、そして第1アクセス時間を有する第1記憶構成を使用して第1データを記憶すると同時に、第1アクセス時間よりも長い第2アクセス時間を有する第2記憶構成を使用して第2データを記憶して、各グループの各メモリセルが第1データの少なくとも1ビット及び第2データの1つ以上のビットを保持するように構成される。記憶回路は、メモリへの記憶のためにデータアイテムを受け容れ、その受け容れたデータアイテムを高速アクセスクラス及び通常アクセスクラスへ分類し、高速アクセスクラスのデータアイテムを、第1記憶構成を使用してメモリに記憶し、そして通常アクセスクラスのデータアイテムを、第2記憶構成を使用してメモリに記憶するように構成される。
【0014】
本発明は、添付図面を参照したその実施形態の以下の詳細な説明からより完全に理解されよう。
【図面の簡単な説明】
【0015】
【
図1】本発明の一実施形態によるソリッドステートドライブ(SSD)を概略的に示すブロック図である。
【
図2】本発明の一実施形態によるマルチレベルセル(MLC)フラッシュメモリへのデータ記憶方法を概略的に示すフローチャートである。
【
図3】本発明の一実施形態によるメモリブロックコンパクト化方法を概略的に示すフローチャートである。
【発明を実施するための形態】
【0016】
概略
マルチレベルセル(MLC)メモリ装置は、2つ以上のデータビットを各々保持する複数のメモリセルを備えている。異なるMLCビットは、典型的に、異なるアクセス時間を有する。例えば、典型的な2ビット/セルMLCフラッシュ装置では、メモリセルのグループは、各々、高速アクセス時間を有する最下位ビット(LSB)ページと、長いアクセス時間を有する最上位ビット(MSB)ページとを保持する。LSBページ及びMSBページは、各々、「下位ページ」及び「上位ページ」とも称される。
【0017】
以下に述べる本発明の実施形態は、MLCメモリ装置にデータを記憶するための改良された方法及びシステムを提供する。ここに開示する技術は、MLCメモリを、2つの異なる記憶構成、即ち通常記憶構成及び高速記憶構成、を使用してデータを記憶できるものと考える。例えば、2ビット/セルフラッシュ装置では、高速記憶構成は、LSBページにおける記憶を含み、そして通常記憶構成は、装置のMSBページにおける記憶を含む。
【0018】
記憶のために受け容れられたデータアイテムは、高速アクセスクラス及び通常アクセスクラスへと分類され、即ち高速アクセス時間で記憶されねばならないアイテムと、通常アクセス時間で記憶されねばならないアイテムとに分類される。前者のデータアイテムは、高速記憶構成を使用して(例えば、LSBページに)記憶され、そして後者のデータアイテムは、通常記憶構成を使用して(例えば、MSBページに)記憶される。規範的な実施形態では、高速記憶構成は、頻繁にアクセスされる(しばしば「ホット」と称される)データアイテムを記憶するのに使用され、一方、通常記憶構成は、あまりアクセスされない(「コールド」)データアイテムを記憶するのに使用される。記憶構成をデータの使用頻度に一致させることにより、メモリの平均アクセス時間を著しく短縮することができる。
【0019】
ここに開示する技術では、メモリセルの同じグループが高速及び通常の両アクセス時間で記憶するのに使用され、メモリの各メモリセルは、高速記憶構成を使用して記憶された少なくとも1つのビット、及び通常記憶構成を使用して記憶された少なくとも1つのビットを保持する。典型的な例では、両形式のデータアイテム(高速アクセス時間及び通常アクセス時間)がMLCフラッシュ装置の同じ消去ブロックの異なるページに記憶される。
【0020】
原理的には、高速及び通常のアクセス時間を与えるのに2つの異なるメモリ形式(例えば、SLC装置及びMLC装置)を使用することができるが、この種の解決策は、非効率的であり且つ柔軟性がない。ここに開示する技術は、慣習的なMLC解決策に比して記憶性能を改善し、メモリを簡単化し、そして高速及び通常のアクセス時間で記憶するために記憶スペースを柔軟に割り当てできるようにする。というのは、同じメモリ装置に異なる記憶構成を混在させるからである。
【0021】
図1は、本発明の一実施形態によるソリッドステートディスク(SSD)24を概略的に示すブロック図である。SSD24は、ホスト28に代わってデータを記憶する。ホスト28は、例えば、複数のSSD24を含む企業用記憶システムのホストプロセッサ、ノートブック又はラップトップコンピュータのようなコンピューティング装置のホストプロセッサ、又は他の適当なホストを含む。
【0022】
SSD24は、ホスト28に代わって1つ以上の不揮発性メモリ装置32にデータを記憶するSSDコントローラ36を備えている。SSDコントローラ36は、ホスト28と通信するホストインターフェイス40、メモリ装置32と通信するメモリインターフェイス44、及びSSDコントローラのオペレーションを管理するプロセッサ48を備えている。SSDコントローラ36は、更に、内部メモリを備え、この例では、ダイナミックランダムアクセスメモリ(DRAM)52を備えている。
【0023】
ここに示す例では、メモリ装置32は、マルチレベルセル(MLC)NANDフラッシュ装置又はダイを含む。各メモリ装置32は、消去ブロック(メモリブロック又は簡略化のために単にブロックと称される)に配列された複数のメモリセルを含む。各ブロックのメモリセルは、単一の消去コマンドで一緒に消去される。
【0024】
各ブロックは、一緒に書き込み及び読み取りされるメモリセルの複数のグループを含む。メモリ装置アーキテクチャーに基づいて、メモリセルの各グループは、例えば、所与のブロックの全行、所与のブロックのある行における奇数順のメモリセル、所与のブロックのある行における偶数順のメモリセル、又は単一のコマンドで読み取り及び書き込みされるメモリセルの他の適当なグループを含む。
【0025】
ここに示す例では、メモリ装置32は、2ビット/セル装置を含む。そのような装置では、各メモリセルは、最下位ビット(LSB)及び最上位ビット(MSB)としばしば称される2つのデータビットを保持する。メモリセルの各グループは、2つのページ、即ちグループ内のメモリセルのLSBに記憶されるLSBページと、グループ内のメモリセルのMSBに記憶されるMSBページとを保持する。
【0026】
各メモリ装置32は、個別のLSB及びMSB読み取り及び書き込みコマンドをサポートする。典型的に、LSB読み取り及び書き込みコマンドは、MSB読み取り及び書き込みコマンドより著しく高速である。換言すれば、LSBページのアクセス時間は、MSBページのアクセス時間より著しく高速である。ここで使用する「アクセス時間」という語は、読み取り及び/又は書き込みレイテンシーを指す。読み取り及び書き込みレイテンシーは、典型的に、SSDコントローラとメモリ装置との間のインターフェイスに書き込み又は読み取りコマンドが与えられる時間から、そのインターフェイスに応答が与えられる時間まで、測定される。規範的なメモリ装置のLSB及びMSBアクセス時間を以下のテーブルに示す。
【0027】
ある実施形態では、SSDコントローラ36は、メモリ装置32に記憶するためのデータアイテムをホスト28から受け容れる。SSDコントローラは、そのデータアイテムを、ある分類基準に基づいて、高速アクセスクラス及び通常アクセスクラスへ分類する。SSDコントローラは、高速アクセスクラスのデータアイテムをメモリ装置32のLSBページに記憶すると共に、通常アクセスクラスのデータアイテムをメモリ装置のMSBページに記憶する。
【0028】
図1の実施形態では、各データアイテムは、各論理的アドレスと一緒にホスト28から受け容れられる。SSDコントローラは、論理的アドレスを、ある論理的/物理的アドレスマッピングに基づいてメモリ装置32内の各物理的記憶位置(例えば、物理的ページ)へ変換し、そして各データアイテムを適当な物理的記憶位置に記憶する。以下の説明では、データアイテム及びそれらの各論理的アドレスは、論理的ブロックアドレス(LBA)と称される。しかしながら、別の実施形態では、他の適当な形式のデータアイテム及びアドレススキームを使用することができる。
【0029】
SSDコントローラ36は、受け容れられたLBAを高速アクセスクラス及び通常アクセスクラスへ分類する分類ユニット56を備えている。異なるクラスに属するLBAは、次いで、個別のバッファ、この例では、先入れ先出し(FIFO)メモリにバッファリングされる。通常アクセスクラスに属するLBA(例えば、通常読み取りレイテンシーで読み取られるべきLBA)は、MSB書き込みFIFO60へ送られ、そして高速アクセスクラスに属するLBA(例えば、高速読み取りレイテンシーで読み取られるべきLBA)は、LSB書き込みFIFO64へ送られる。SSDコントローラ36は、MSB書き込みFIFO60にバッファリングされたLBAをメモリ装置32のMSBページに記憶しそしてLSB書き込みFIFO64にバッファリングされたLBAをメモリ装置のLSBページに記憶する。
【0030】
図1のSSD及びSSDコントローラの構成は、概念的明瞭化のために単純に示された規範的な構成に過ぎない。別の実施形態では、他の適当なSSD及びSSDコントローラ構成を使用することができる。例えば、ここに述べる実施形態は、主として、LSB及びMSBページを保持する2ビット/セルメモリ装置を参照する。別の実施形態では、メモリ装置32は、適当な記憶密度及び適当な数のページ/メモリグループを有する他の適当な形式のメモリ、例えば、3ビット/セル、4ビット/セル又は5ビット/セルのメモリを含む。
【0031】
更に、それとは別に、メモリ装置は、同じメモリセルに高速アクセス時間及び通常アクセス時間の記憶構成を混在させるメモリセルの他の適当なグループを含んでもよい。ある実施形態では、メモリは、異なるアクセス時間を有する多数の記憶構成をサポートし、そして受け容れられたデータアイテムがそれに応じて多数のクラスに分類される。例えば、3ビット以上/セルを記憶するMLCメモリでは、高速アクセスクラスがLSBページに対応し、そして通常アクセスクラスが他の全て(高レイテンシーの)ページに対応する。
【0032】
本発明の原理を理解する上で必要のない要素は、明瞭化のために図面から省略されている。
図1に示す規範的な構成では、メモリ装置32及びSSDコントローラ36は、個別の集積回路(IC)として実施される。しかしながら、別の実施形態では、メモリ装置及びSSDコントローラは、単一のマルチチップパッケージ(MCP)又はシステムオンチップ(SoC)において個別の半導体ダイに集積化されて、内部バスにより相互接続されてもよい。更にそれとは別に、1つ以上のメモリ装置が配置される同じダイにSSD回路の幾つか又は全部が存在してもよい。更に、それとは別に、SSDコントローラの機能の幾つか又は全部がソフトウェアで具現化されて、ホスト28で実行されてもよい。ある実施形態では、ホスト28及びSSDコントローラ36は、同じダイに製造されてもよいし、又は同じ装置パッケージ内の個別のダイに製造されてもよい。
【0033】
SSDコントローラ36の機能の幾つか又は全部がハードウェアで具現化されてもよい。或いは又、SSDコントローラの要素、例えば、プロセッサ48及び分類ユニット56は、適当なソフトウェアを実行する1つ以上のマイクロプロセッサ、或いはハードウェア及びソフトウェア要素の組み合わせを使用して、具現化されてもよい。ある実施形態では、プロセッサ48は、ここに述べる機能を実行するためにソフトウェアでプログラムされた汎用プロセッサを含む。ソフトウェアは、例えば、ネットワークを経て電子的な形態でプロセッサにダウンロードされてもよいし、それとは別に又はそれに加えて、磁気、光学又は電子メモリのような非一時的な有形媒体に設けられ及び/又は記憶されてもよい。SSDコントローラ回路は、おそらくメモリ装置32内のある回路と組み合わせて、ここでは、ここに開示する技術を実施する記憶回路と称される。
【0034】
LSB及びMSBページにおける選択的データ記憶
種々の実施形態において、SSDコントローラ36の分類ユニット56は、異なる分類基準を使用して、受け容れられたLBAを通常アクセスクラス及び高速アクセスクラスへ分類する。1つの実施形態において、ユニット56は、頻繁にアクセスされる(例えば、読み取られる)LBAを高速アクセスクラスに、そしてあまりアクセスされないLBAを通常アクセスクラスに分類する。ホストが後で種々のLBAにアクセスするときには、全平均アクセス時間が著しく短縮される。
【0035】
この文脈において、「頻繁にアクセスされる」及び「あまりアクセスされない」という語は、特定の又は絶対的なアクセス頻度を意味するものではなく、むしろ、アクセス頻度間の相対的な関係を意味する。換言すれば、データアイテムは、頻繁にアクセスされるデータアイテムのアクセス頻度が、あまりアクセスされないデータアイテムのアクセス頻度より高くなるように、適当な仕方で、頻繁にアクセスされるもの及びあまりアクセスされないものとして分類される。
【0036】
別の実施形態では、ユニット56は、管理データ(例えば、重要なデータ及び/又はコントロールデータ)を高速アクセスクラスに、そして他のデータ(例えば、ユーザデータ)を通常アクセスクラスに分類する。この基準は、典型的に、管理データが頻繁にアクセスされると仮定している。更にそれとは別に、ユニット56は、他の適当な分類基準又は基準の組み合わせに基づいて、受け容れられたデータアイテムを分類してもよい。
【0037】
図2は、本発明の一実施形態によりSSD24にデータを記憶する方法を概略的に示すフローチャートである。この方法は、SSDコントローラ36が、導入ステップ70において、ホストインターフェイス40を経てホスト28から記憶するためにLBAを受け容れることで始まる。
【0038】
SSDコントローラの分類ユニット56は、分類ステップ74において、受け容れられたLBAを分類する。ユニット56は、LBAを、短いアクセス時間でアクセスされるべきLBA(例えば、頻繁に読み取られるLBA)の高速アクセスクラスと、通常のアクセス時間でアクセスされるべきLBA(例えば、あまり読み取られないLBA)の通常アクセスクラスとに分類する。ユニット56は、高速アクセスクラスのLBAをLSB書き込みFIFO64に、そして通常アクセスクラスのLBAをMSB書き込みFIFO60に与える。
【0039】
SSDコントローラ36は、LSB書き込みFIFO64にバッファリングされたLBA(例えば、頻繁に読み取られるLBA)を、LSB記憶ステップ78において、メモリ装置32のLSBページに記憶する。又、SSDコントローラは、MSB書き込みFIFO60にバッファリングされたLBA(例えば、あまり読み取られないLBA)を、MSB記憶ステップ82において、メモリ装置のMSBページに記憶する。
【0040】
ある実施形態では、SSDコントローラは、LSB書き込みFIFOからのエントリー及びMSB書き込みFIFOからのエントリーを読み取り、そしてそれらのエントリーをセルグループのLSBページ及びMSBページに各々記憶することにより、メモリセルの所与のグループ(例えば、所与のブロックの行)をプログラムする。書き込みFIFOの一方が空である場合には、SSDコントローラは、他方の書き込みFIFOからの2つのエントリーをセルグループのLSBページ及びMSBページに記憶する。
【0041】
この方法は、次いで、前記ステップ70へループバックし、SSDは、ホストから後続のLBAを受け容れる。
【0042】
ある実施形態では、LBAを通常アクセスクラス及び高速アクセスクラスへ分類することは、固定であり、即ち時間と共に変化しない予め構成された分類である。例えば、ユニット56は、頻繁にアクセスされるLBAの範囲と、あまりアクセスされないLBAの他の範囲とで予め構成され、そして受け容れられたLBAをそれらの範囲に基づいて分類する。この具現化は、比較的簡単であり、例えば、規定のLBA範囲の(頻繁にアクセスされる)管理データを(例えば、LBAスペースの下端に)記憶するオペレーティングシステムと共に使用される。
【0043】
他の実施形態では、SSDコントローラ36には、ホストによる分類が、それらの間のインターフェイスを経て通知される。例えば、ホストは、どちらのLBA範囲が頻繁にアクセスされそしてどちらのLBA範囲があまりアクセスされないかをSSDコントローラに指示する。この種の指示は、前もってSSDコントローラに与えられるか、又はSSDに記憶するために送られる各LBAと一緒に与えられる。
【0044】
ある記憶プロトコルは、ホストがそのような指示をSSDに与えられるようにするコマンドをサポートする。ある実施形態では、ホスト28及びSSDコントローラ36は、例えば、参考としてここに援用する2011年7月12日付けの“NVM Express”改訂1.0bに指定されたNVMエクスプレスプロトコルを使用して通信する。NVMエクスプレスプロトコルは、論理的ブロックの範囲についての属性を指示するためにホストによって使用されるデータセットマネージメント(DSM)コマンドを指定する。その属性は、例えば、データが読み取られ又は書き込まれる頻度、及び/又はデータの要求されるアクセスレイテンシーを含む。例えば、前記NVMエクスプレス仕様書の第6.6及び6.8章並びに
図121を参照されたい。
【0045】
ある実施形態では、ユニット56は、受け容れられたLBAを、DSMコマンドで与えられる属性に基づいて分類する。例えば、パーソナルコンピュータ用途では、ホストは、DSMコマンドを使用して、コンピュータの冬眠スペースとして使用すべきLBA範囲を指定する。ユニット56は、この範囲のLBAをLSBページに記憶することによりこのLBA範囲を高速読み出しについて最適化する。この技術は、冬眠からのコンピュータウェイクアップ時間を短縮する。
【0046】
固定の分類と比較して、ホスト通知に基づく分類は、実施が比較的簡単であるが、高い融通性も発揮する。又、この実施は、例えば、規定のLBA範囲の管理データを(例えば、LBAスペースの下端に)記憶するオペレーティングシステムと共に効果的である。
【0047】
別の実施形態では、SSD24のプロセッサ48は、LBAの分類をホストからの通知に関わらず適応式に且つ自律的に決定する。典型的に、プロセッサ48は、種々のLBAで遂行されるメモリアクセス(例えば、読み出し)オペレーションの統計値を追跡し、そしてそれに応じて、分類を定義する。例えば、プロセッサ48は、頻繁にアクセスされるLBAと、あまりアクセスされないLBAとの間を自動的に区別するための適当な技術を適用し、次いで、そのLBAを高速アクセスクラス及び通常アクセスクラスへ適宜マップさせる。ある実施形態では、この機能は、プロセッサ48において実施されるフラッシュ変換レイヤ(FTL)に埋め込まれる。この動的なマッピングは、上述した固定の又はホスト支援型の方法と結合される。
【0048】
ある実施形態では、プロセッサ48は、各LBA又はLBA範囲について、各読み取りカウンタを維持し、そしてLBA又はLBA範囲からの各読み取りオペレーションに対してカウンタをインクリメントする。それらのカウンタは、望ましい数のビット、即ち望ましい解像度又はサイズを有する。1つの実施形態において、各カウンタは、単一ビットを有する(例えば、“0”=LBA否読み取り、“1”=LBA読み取り)。1つの実施形態において、各LBA(又は範囲)のカウンタは、論理的/物理的アドレスマッピングにおいてそのLBA(又は範囲)のエントリーの一部分として記憶される。カウンタを含む論理的/物理的アドレスマッピングは、例えば、DRAM52に記憶される。
【0049】
これらの実施形態では、プロセッサ48は、LBAを、それらの読み取られたカウンタ値に基づいて分類する。例えば、プロセッサ48は、カウンタ値がスレッシュホールドを越えるLBAを高速アクセスクラスに分類し、そしてカウンタ値がそのスレッシュホールドより低いLBAを通常アクセスクラスに分類する。その結果、頻繁にアクセスされるLBAは、LSBページに記憶され、そしてあまりアクセスされないLBAは、MSBページに記憶される。
【0050】
ブロックコンパクト化の間のLSB及びMSBページへの記憶
典型的なフラッシュメモリでは、データがページ単位でメモリ装置32に書き込まれるが、消去は、メモリブロック全体に適用される。データは、消去されたページのみに書き込まれ、それ故、データをその場で更新することはできない。データの更新は、更新されたデータを別の物理的記憶位置へ書き込み、以前のデータを無効とマークし、そして論理的/物理的アドレスマッピングを動的に更新することを含む。
【0051】
前記特徴のために、メモリ装置32のメモリブロックは、無効のデータページを徐々に累積し、その更新されたものは、他の物理的記憶位置に記憶される。無効ページの数を減少するために、SSDコントローラ36のプロセッサ48は、コンパクト化、又は「ガーベージコレクション」プロセスを実行する。この背景プロセスは、コンパクト化のために1つ以上のメモリブロック(ソースブロックと称される)を選択し、その選択されたソースブロックからの有効データを1つ以上の他のブロック(ターゲットブロックと称される)の他の記憶位置へコピーし、次いで、ソースブロックを消去する。消去されたブロックは、その後のプログラミングの準備ができる。
【0052】
ある実施形態では、SSDコントローラ36(例えば、プロセッサ48及び/又はユニット56)は、コンパクト化プロセスの一部分として、高速アクセスクラスに属するデータをLSBページに、そして通常アクセスクラスに属するデータをMSBページに記憶する。例えば、上述した読み取りカウンタを使用するときには、プロセッサ48は、最初、読み取りカウンタをリセットする。データの読み出し中に、プロセッサ48は、種々のLBAの読み取りカウンタをインクリメントする。
【0053】
ブロックのコンパクト化を遂行するとき(1つ以上のソースブロックから1つ以上のターゲットブロックへページをコピーするとき)、プロセッサ48は、高いカウンタ値を有するLBAに属するページをターゲットブロックのLSBページへコピーし、そして低いカウンタ値を有するLBAに属するページをターゲットブロックのMSBページへコピーする。ページをコピーした後に、読み取りカウンタがリセットされる。
【0054】
更に、ある実施形態では、プロセッサ48は、次のことを表わす各読み出しグレードを各ブロックに指定する。
・ブロックのデータが読み取られる頻度(例えば、頻繁にある/あまりない);及び/又は
・ブロック内のLSB及びMSBページへのデータ配布と分類基準との間の一致の程度(例えば、ブロック内のLSBページが、頻繁に読み取られるデータを実際に記憶し及びMSBページが、あまり読み取られないデータを実際に記憶する程度)。
【0055】
ブロックの読み出しグレードは、例えば、ブロックからのLSBページの読み出しオペレーションの合計数から、ブロックからのMSBページの読み出しオペレーションの合計数を差し引いたものとして定義される。或いは又、前記ガイドラインを満足する他の適当な読み出しグレードを使用することもできる。これらの実施形態では、プロセッサ48は、コンパクト化のための候補ブロックを選択するときに、低いグレードのブロックに高い優先順位を指定する。グレードベースの基準は、「ホール」(無効データの領域)の数、又はブロック内の無効ページの数のような他の選択基準と結合されてもよい。
【0056】
図3は、本発明の一実施形態によるメモリブロックコンパクト化方法を概略的に示すフローチャートである。この方法は、SSDコントローラ36のプロセッサ48が、候補選択ステップ90において、コンパクト化のソースブロックを選択することで始まる。プロセッサ48は、例えば、上述したように、ブロックに指定された読み出しグレードに基づいて、ソースブロックを選択する。
【0057】
プロセッサ48は、選択されたソースブロックからターゲットブロックへ有効ページをコピーする。読み出しレイテンシーを減少するために、プロセッサは、高速アクセスクラスに属するソースブロックのページを、LSBコピーステップ94において、ターゲットブロックのLSBページへコピーする。通常アクセスクラスに属するソースブロックのページは、MSBコピーステップ98において、ターゲットブロックのMSBページへコピーされる。次いで、プロセッサ48は、消去ステップ102において、ソースブロックを消去する。
【0058】
以上の例は、単一ソースブロックから単一ターゲットブロックへデータをコピーするコンパクト化プロセスを参照したものである。しかしながら、一般的には、コンパクト化プロセスは、望ましい数のソースブロックから望ましい数のターゲットブロックへデータを一緒にコピーすることができる。ソースブロックの数を増加すると、コンパクト化の効率が改善される。
【0059】
例えば、頻繁に読み取られるページを高い割合で含む一方のブロックと、頻繁に読み取られるページを低い割合でしか含まない他方のブロック、の一対のブロックについて考える。この2つのブロックを一緒にコンパクト化することは、典型的に、各ブロックを別々にコンパクト化する場合より著しく効率的となる。そのような共同コンパクト化プロセスは、典型的に、頻繁に読み取られるページ(大部分は第1のソースブロックからの)をターゲットブロックのLSBページに、そしてあまり読み取られないページ(大部分は第2のソースブロックからの)をターゲットブロックのMSBページに記憶する。
【0060】
ここに述べる実施形態は、主として、高速アクセスデータをLSBページにそして通常アクセスデータをMSBページに記憶することに向けられたが、ここに述べる方法及びシステムは、他の記憶構成で使用することもできる。例えば、高速アクセス記憶構成は、データ(例えば、LBA)を少数の物理的ページ(例えば、単一の物理的ページ)に記憶することを含み、そして通常アクセス記憶構成は、データを非常に多数の物理的ページに分割することを含む。
【0061】
以上に述べた実施形態は、一例に過ぎず、本発明は、図示して上述したものに限定されないことが明らかであろう。むしろ、本発明の範囲は、上述した種々の特徴の組み合わせ及び準組み合わせと、従来開示されておらずに以上の説明を読んだときに当業者に明らかとなるその変更及び修正と、の両方を包含する。参考としてここに援用された文書は、本出願の一体的部分と考えるべきであるが、それらの援用された文書において、本明細書に明確に又は暗示的になされた定義と矛盾するように用語が定義されるものについては、本明細書の定義のみを考慮すべきである。
【符号の説明】
【0062】
24:ソリッドステートディスクSSD
28:ホスト
32:不揮発性メモリ装置
36:SSDコントローラ
40:ホストインターフェイス
44:メモリインターフェイス
48:プロセッサ
52:DRAM
56:分類ユニット
60:MSB書き込みFIFO
64:LSB書き込みFIFO