JP2014513848A - Lsb及びmsbページにおける選択的データ記憶 - Google Patents

Lsb及びmsbページにおける選択的データ記憶 Download PDF

Info

Publication number
JP2014513848A
JP2014513848A JP2014510916A JP2014510916A JP2014513848A JP 2014513848 A JP2014513848 A JP 2014513848A JP 2014510916 A JP2014510916 A JP 2014510916A JP 2014510916 A JP2014510916 A JP 2014510916A JP 2014513848 A JP2014513848 A JP 2014513848A
Authority
JP
Japan
Prior art keywords
data
memory
access class
data items
storage
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2014510916A
Other languages
English (en)
Other versions
JP5907255B2 (ja
Inventor
アミット ルボヴィッツ
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Apple Inc
Original Assignee
Apple Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Apple Inc filed Critical Apple Inc
Publication of JP2014513848A publication Critical patent/JP2014513848A/ja
Application granted granted Critical
Publication of JP5907255B2 publication Critical patent/JP5907255B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/065Replication mechanisms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0253Garbage collection, i.e. reclamation of unreferenced memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0619Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/067Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/10Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1016Performance improvement
    • G06F2212/1024Latency reduction
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7202Allocation control and policies
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7205Cleaning, compaction, garbage collection, erase control
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7207Details relating to flash memory management management of metadata or control data

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Computer Security & Cryptography (AREA)
  • Read Only Memory (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Memory System (AREA)

Abstract

データを記憶する方法は、メモリセルの複数のグループを含むメモリ(32)を準備することを含み、このメモリは、第1アクセス時間を有する第1記憶構成を使用して第1データを記憶すると同時に、第1アクセス時間よりも長い第2アクセス時間を有する第2記憶構成を使用して第2データを記憶して、各グループの各メモリセルが第1データの少なくとも1ビット及び第2データの1つ以上のビットを記憶するように構成される。受け容れられたデータアイテムは、高速アクセスクラス及び通常アクセスクラスへ分類される。高速アクセスクラスのデータアイテムは、第1記憶構成を使用してメモリに記憶され、そして通常アクセスクラスのデータアイテムは、第2記憶構成を使用してメモリに記憶される。
【選択図】図1

Description

本発明は、全般的に、メモリシステムに関するものであり、より詳細には、マルチレベルメモリ装置にデータを記憶するための方法及びシステムに関する。
データの使用パターンに基づいてメモリにデータを記憶するための種々の技術が知られている。例えば、参考としてここに開示を援用する米国特許出願公告2009/0049234号は、第1及び第2のメモリレイヤを含むソリッドステートメモリにデータを記憶する記憶スキームを説明している。受信したデータがホットデータであるかコールドデータであるか決定するために第1の評価が実行される。ホットデータと評価された受信データは、第1のメモリレイヤに記憶され、そしてコールドデータと評価された受信データは、第2のメモリレイヤに記憶される。更に、第1のメモリレイヤに記憶されたデータがホットデータであるかコールドデータであるか決定するために第2の評価が実行される。この第2の評価中にコールドデータと評価されたデータは、第1のメモリレイヤから第2のメモリレイヤへ移行される。
別の例として、参考としてここに開示を援用する米国特許出願公告2011/0010489号は、フラッシュメモリ装置の複数の論理ブロックを管理するための論理ブロック管理方法を説明している。この方法は、フラッシュメモリコントローラを準備し、論理ブロックを複数の論理ゾーンにグループ分けすることを含み、各論理ブロックは、論理ゾーンの1つへマップされる。又、この方法は、各論理ブロックの使用カウント値をカウントし、そしてその使用カウント値に基づいて論理ブロックと論理ゾーンとの間のマッピング関係を動的に調整することも含む。従って、論理ブロック管理方法は、論理ゾーンを有効に利用して、論理ブロックの使用パターンを決定し、そして異なるメカニズムを使用してデータを書き込み、フラッシュメモリ記憶装置の性能を高める。
ここに述べる本発明の実施形態は、データ記憶方法を提供する。この方法は、メモリセルの複数のグループを含むメモリであって、第1アクセス時間を有する第1記憶構成を使用して第1データを記憶すると同時に、第1アクセス時間より長い第2アクセス時間を有する第2記憶構成を使用して第2データを記憶して、各グループの各メモリセルが第1データの少なくとも1ビット及び第2データの1つ以上のビットを記憶するように構成されたメモリを準備することを含む。データアイテムはメモリに記憶することが受け容れられる。受け容れられたデータアイテムは、高速アクセスクラスと通常アクセスクラスに分類される。高速アクセスクラスのデータアイテムは、第1記憶構成を使用してメモリに記憶され、そして通常アクセスクラスのデータアイテムは、第2記憶構成を使用してメモリに記憶される。
ある実施形態では、第1記憶構成を使用してデータアイテムを記憶することは、メモリの最下位ビット(LSB)ページにデータアイテムを記憶することを含み、そして第2記憶構成を使用してデータアイテムを記憶することは、メモリの最上位ビット(MSB)ページにデータアイテムを記憶することを含む。
ここに開示する実施形態では、データアイテムを分類することは、第1アクセス頻度でアクセスされる、頻繁にアクセスされるデータアイテムを高速アクセスクラスに分類すること、及び第1アクセス頻度より少ない第2アクセス頻度でアクセスされる、あまりアクセスされないデータアイテムを通常アクセスクラスに分類することを含む。別の実施形態では、データアイテムを分類することは、管理データを高速アクセスクラスに分類すること、及びユーザデータを通常アクセスクラスに分類することを含む。
別の実施形態では、データアイテムを分類することは、メモリの第1の数の物理的ページへ各々マップされる第1のデータアイテムを高速アクセスクラスに分類すること、及び第1の数より大きい第2の数の物理的ページへ各々マップされる第2のデータアイテムを通常アクセスクラスに分類することを含む。
ある実施形態では、データアイテムを分類することは、データアイテムの、高速アクセスクラス及び通常アクセスクラスへの規定の固定分類を適用することを含む。別の実施形態では、データアイテムがホストから受け容れられ、そしてデータアイテムを分類することは、データアイテムの、高速アクセスクラス及び通常アクセスクラスへの分類をホストから受け取ることを含む。更に、それとは別に、データアイテムを分類することは、データアイテムに適用されるメモリアクセスオペレーションを監視することにより、データアイテムの、高速アクセスクラス及び通常アクセスクラスへの分類を適応式に決定することを含む。
ある実施形態では、データアイテムを記憶することは、高速アクセスクラスに属するデータアイテムを第1バッファにバッファリングし、通常アクセスクラスに属するデータアイテムを第2バッファにバッファリングし、そして第1及び第2バッファにバッファリングされたデータアイテムを、各々、第1及び第2の記憶構成を使用して記憶することを含む。
一実施形態において、データアイテムを記憶することは、メモリの1つ以上のソースブロックからメモリの1つ以上のターゲットブロックへデータをコピーして、高速アクセスクラスに属するデータアイテムが第1記憶構成を使用してターゲットブロックに記憶され、且つ通常アクセスクラスに属するデータアイテムが第2記憶構成を使用してターゲットブロックに記憶されるようにするコンパクト化プロセスを実行することを含む。
コンパクト化プロセスを実行することは、メモリの複数のブロックに各グレードを指定して、ブロックのグレードがそのブロックに記憶されたデータアイテムのアクセス頻度を表わすようにし、そしてグレードに基づいてソースブロックとして働くように候補ブロックを選択することを含む。それに加えて又はそれとは別に、コンパクト化プロセスを実行することは、メモリの複数のブロックに各グレードを指定して、ブロックのグレードが、そのブロックに記憶されたデータアイテムの、高速アクセス及び通常アクセスクラスへの分類と、そのブロックにデータを記憶するのに使用される実際の記憶構成との間の一致を表わすようにし、そしてグレードに基づいてソースブロックとして働くように候補ブロックを選択することを含む。
更に、本発明の一実施形態によれば、インターフェイス及び記憶回路を備えたデータ記憶装置が提供される。インターフェイスは、メモリセルの複数のグループを含むメモリと通信するように結合され、そして第1アクセス時間を有する第1記憶構成を使用して第1データを記憶すると同時に、第1アクセス時間より長い第2アクセス時間を有する第2記憶構成を使用して第2データを記憶して、各グループの各メモリセルが第1データの少なくとも1ビット及び第2データの1つ以上のビットを保持するように構成される。記憶回路は、メモリへの記憶のためにデータアイテムを受け容れ、その受け容れたデータアイテムを高速アクセスクラス及び通常アクセスクラスへ分類し、高速アクセスクラスのデータアイテムを、第1記憶構成を使用してメモリに記憶し、そして通常アクセスクラスのデータアイテムを、第2記憶構成を使用してメモリに記憶するように構成される。
又、本発明の一実施形態によれば、メモリ及び記憶回路を備えたデータ記憶装置が提供される。メモリは、メモリセルの複数のグループを含み、そして第1アクセス時間を有する第1記憶構成を使用して第1データを記憶すると同時に、第1アクセス時間よりも長い第2アクセス時間を有する第2記憶構成を使用して第2データを記憶して、各グループの各メモリセルが第1データの少なくとも1ビット及び第2データの1つ以上のビットを保持するように構成される。記憶回路は、メモリへの記憶のためにデータアイテムを受け容れ、その受け容れたデータアイテムを高速アクセスクラス及び通常アクセスクラスへ分類し、高速アクセスクラスのデータアイテムを、第1記憶構成を使用してメモリに記憶し、そして通常アクセスクラスのデータアイテムを、第2記憶構成を使用してメモリに記憶するように構成される。
本発明は、添付図面を参照したその実施形態の以下の詳細な説明からより完全に理解されよう。
本発明の一実施形態によるソリッドステートドライブ(SSD)を概略的に示すブロック図である。 本発明の一実施形態によるマルチレベルセル(MLC)フラッシュメモリへのデータ記憶方法を概略的に示すフローチャートである。 本発明の一実施形態によるメモリブロックコンパクト化方法を概略的に示すフローチャートである。
概略
マルチレベルセル(MLC)メモリ装置は、2つ以上のデータビットを各々保持する複数のメモリセルを備えている。異なるMLCビットは、典型的に、異なるアクセス時間を有する。例えば、典型的な2ビット/セルMLCフラッシュ装置では、メモリセルのグループは、各々、高速アクセス時間を有する最下位ビット(LSB)ページと、長いアクセス時間を有する最上位ビット(MSB)ページとを保持する。LSBページ及びMSBページは、各々、「下位ページ」及び「上位ページ」とも称される。
以下に述べる本発明の実施形態は、MLCメモリ装置にデータを記憶するための改良された方法及びシステムを提供する。ここに開示する技術は、MLCメモリを、2つの異なる記憶構成、即ち通常記憶構成及び高速記憶構成、を使用してデータを記憶できるものと考える。例えば、2ビット/セルフラッシュ装置では、高速記憶構成は、LSBページにおける記憶を含み、そして通常記憶構成は、装置のMSBページにおける記憶を含む。
記憶のために受け容れられたデータアイテムは、高速アクセスクラス及び通常アクセスクラスへと分類され、即ち高速アクセス時間で記憶されねばならないアイテムと、通常アクセス時間で記憶されねばならないアイテムとに分類される。前者のデータアイテムは、高速記憶構成を使用して(例えば、LSBページに)記憶され、そして後者のデータアイテムは、通常記憶構成を使用して(例えば、MSBページに)記憶される。規範的な実施形態では、高速記憶構成は、頻繁にアクセスされる(しばしば「ホット」と称される)データアイテムを記憶するのに使用され、一方、通常記憶構成は、あまりアクセスされない(「コールド」)データアイテムを記憶するのに使用される。記憶構成をデータの使用頻度に一致させることにより、メモリの平均アクセス時間を著しく短縮することができる。
ここに開示する技術では、メモリセルの同じグループが高速及び通常の両アクセス時間で記憶するのに使用され、メモリの各メモリセルは、高速記憶構成を使用して記憶された少なくとも1つのビット、及び通常記憶構成を使用して記憶された少なくとも1つのビットを保持する。典型的な例では、両形式のデータアイテム(高速アクセス時間及び通常アクセス時間)がMLCフラッシュ装置の同じ消去ブロックの異なるページに記憶される。
原理的には、高速及び通常のアクセス時間を与えるのに2つの異なるメモリ形式(例えば、SLC装置及びMLC装置)を使用することができるが、この種の解決策は、非効率的であり且つ柔軟性がない。ここに開示する技術は、慣習的なMLC解決策に比して記憶性能を改善し、メモリを簡単化し、そして高速及び通常のアクセス時間で記憶するために記憶スペースを柔軟に割り当てできるようにする。というのは、同じメモリ装置に異なる記憶構成を混在させるからである。
図1は、本発明の一実施形態によるソリッドステートディスク(SSD)24を概略的に示すブロック図である。SSD24は、ホスト28に代わってデータを記憶する。ホスト28は、例えば、複数のSSD24を含む企業用記憶システムのホストプロセッサ、ノートブック又はラップトップコンピュータのようなコンピューティング装置のホストプロセッサ、又は他の適当なホストを含む。
SSD24は、ホスト28に代わって1つ以上の不揮発性メモリ装置32にデータを記憶するSSDコントローラ36を備えている。SSDコントローラ36は、ホスト28と通信するホストインターフェイス40、メモリ装置32と通信するメモリインターフェイス44、及びSSDコントローラのオペレーションを管理するプロセッサ48を備えている。SSDコントローラ36は、更に、内部メモリを備え、この例では、ダイナミックランダムアクセスメモリ(DRAM)52を備えている。
ここに示す例では、メモリ装置32は、マルチレベルセル(MLC)NANDフラッシュ装置又はダイを含む。各メモリ装置32は、消去ブロック(メモリブロック又は簡略化のために単にブロックと称される)に配列された複数のメモリセルを含む。各ブロックのメモリセルは、単一の消去コマンドで一緒に消去される。
各ブロックは、一緒に書き込み及び読み取りされるメモリセルの複数のグループを含む。メモリ装置アーキテクチャーに基づいて、メモリセルの各グループは、例えば、所与のブロックの全行、所与のブロックのある行における奇数順のメモリセル、所与のブロックのある行における偶数順のメモリセル、又は単一のコマンドで読み取り及び書き込みされるメモリセルの他の適当なグループを含む。
ここに示す例では、メモリ装置32は、2ビット/セル装置を含む。そのような装置では、各メモリセルは、最下位ビット(LSB)及び最上位ビット(MSB)としばしば称される2つのデータビットを保持する。メモリセルの各グループは、2つのページ、即ちグループ内のメモリセルのLSBに記憶されるLSBページと、グループ内のメモリセルのMSBに記憶されるMSBページとを保持する。
各メモリ装置32は、個別のLSB及びMSB読み取り及び書き込みコマンドをサポートする。典型的に、LSB読み取り及び書き込みコマンドは、MSB読み取り及び書き込みコマンドより著しく高速である。換言すれば、LSBページのアクセス時間は、MSBページのアクセス時間より著しく高速である。ここで使用する「アクセス時間」という語は、読み取り及び/又は書き込みレイテンシーを指す。読み取り及び書き込みレイテンシーは、典型的に、SSDコントローラとメモリ装置との間のインターフェイスに書き込み又は読み取りコマンドが与えられる時間から、そのインターフェイスに応答が与えられる時間まで、測定される。規範的なメモリ装置のLSB及びMSBアクセス時間を以下のテーブルに示す。
Figure 2014513848
ある実施形態では、SSDコントローラ36は、メモリ装置32に記憶するためのデータアイテムをホスト28から受け容れる。SSDコントローラは、そのデータアイテムを、ある分類基準に基づいて、高速アクセスクラス及び通常アクセスクラスへ分類する。SSDコントローラは、高速アクセスクラスのデータアイテムをメモリ装置32のLSBページに記憶すると共に、通常アクセスクラスのデータアイテムをメモリ装置のMSBページに記憶する。
図1の実施形態では、各データアイテムは、各論理的アドレスと一緒にホスト28から受け容れられる。SSDコントローラは、論理的アドレスを、ある論理的/物理的アドレスマッピングに基づいてメモリ装置32内の各物理的記憶位置(例えば、物理的ページ)へ変換し、そして各データアイテムを適当な物理的記憶位置に記憶する。以下の説明では、データアイテム及びそれらの各論理的アドレスは、論理的ブロックアドレス(LBA)と称される。しかしながら、別の実施形態では、他の適当な形式のデータアイテム及びアドレススキームを使用することができる。
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ページに記憶する。
図1のSSD及びSSDコントローラの構成は、概念的明瞭化のために単純に示された規範的な構成に過ぎない。別の実施形態では、他の適当なSSD及びSSDコントローラ構成を使用することができる。例えば、ここに述べる実施形態は、主として、LSB及びMSBページを保持する2ビット/セルメモリ装置を参照する。別の実施形態では、メモリ装置32は、適当な記憶密度及び適当な数のページ/メモリグループを有する他の適当な形式のメモリ、例えば、3ビット/セル、4ビット/セル又は5ビット/セルのメモリを含む。
更に、それとは別に、メモリ装置は、同じメモリセルに高速アクセス時間及び通常アクセス時間の記憶構成を混在させるメモリセルの他の適当なグループを含んでもよい。ある実施形態では、メモリは、異なるアクセス時間を有する多数の記憶構成をサポートし、そして受け容れられたデータアイテムがそれに応じて多数のクラスに分類される。例えば、3ビット以上/セルを記憶するMLCメモリでは、高速アクセスクラスがLSBページに対応し、そして通常アクセスクラスが他の全て(高レイテンシーの)ページに対応する。
本発明の原理を理解する上で必要のない要素は、明瞭化のために図面から省略されている。図1に示す規範的な構成では、メモリ装置32及びSSDコントローラ36は、個別の集積回路(IC)として実施される。しかしながら、別の実施形態では、メモリ装置及びSSDコントローラは、単一のマルチチップパッケージ(MCP)又はシステムオンチップ(SoC)において個別の半導体ダイに集積化されて、内部バスにより相互接続されてもよい。更にそれとは別に、1つ以上のメモリ装置が配置される同じダイにSSD回路の幾つか又は全部が存在してもよい。更に、それとは別に、SSDコントローラの機能の幾つか又は全部がソフトウェアで具現化されて、ホスト28で実行されてもよい。ある実施形態では、ホスト28及びSSDコントローラ36は、同じダイに製造されてもよいし、又は同じ装置パッケージ内の個別のダイに製造されてもよい。
SSDコントローラ36の機能の幾つか又は全部がハードウェアで具現化されてもよい。或いは又、SSDコントローラの要素、例えば、プロセッサ48及び分類ユニット56は、適当なソフトウェアを実行する1つ以上のマイクロプロセッサ、或いはハードウェア及びソフトウェア要素の組み合わせを使用して、具現化されてもよい。ある実施形態では、プロセッサ48は、ここに述べる機能を実行するためにソフトウェアでプログラムされた汎用プロセッサを含む。ソフトウェアは、例えば、ネットワークを経て電子的な形態でプロセッサにダウンロードされてもよいし、それとは別に又はそれに加えて、磁気、光学又は電子メモリのような非一時的な有形媒体に設けられ及び/又は記憶されてもよい。SSDコントローラ回路は、おそらくメモリ装置32内のある回路と組み合わせて、ここでは、ここに開示する技術を実施する記憶回路と称される。
LSB及びMSBページにおける選択的データ記憶
種々の実施形態において、SSDコントローラ36の分類ユニット56は、異なる分類基準を使用して、受け容れられたLBAを通常アクセスクラス及び高速アクセスクラスへ分類する。1つの実施形態において、ユニット56は、頻繁にアクセスされる(例えば、読み取られる)LBAを高速アクセスクラスに、そしてあまりアクセスされないLBAを通常アクセスクラスに分類する。ホストが後で種々のLBAにアクセスするときには、全平均アクセス時間が著しく短縮される。
この文脈において、「頻繁にアクセスされる」及び「あまりアクセスされない」という語は、特定の又は絶対的なアクセス頻度を意味するものではなく、むしろ、アクセス頻度間の相対的な関係を意味する。換言すれば、データアイテムは、頻繁にアクセスされるデータアイテムのアクセス頻度が、あまりアクセスされないデータアイテムのアクセス頻度より高くなるように、適当な仕方で、頻繁にアクセスされるもの及びあまりアクセスされないものとして分類される。
別の実施形態では、ユニット56は、管理データ(例えば、重要なデータ及び/又はコントロールデータ)を高速アクセスクラスに、そして他のデータ(例えば、ユーザデータ)を通常アクセスクラスに分類する。この基準は、典型的に、管理データが頻繁にアクセスされると仮定している。更にそれとは別に、ユニット56は、他の適当な分類基準又は基準の組み合わせに基づいて、受け容れられたデータアイテムを分類してもよい。
図2は、本発明の一実施形態によりSSD24にデータを記憶する方法を概略的に示すフローチャートである。この方法は、SSDコントローラ36が、導入ステップ70において、ホストインターフェイス40を経てホスト28から記憶するためにLBAを受け容れることで始まる。
SSDコントローラの分類ユニット56は、分類ステップ74において、受け容れられたLBAを分類する。ユニット56は、LBAを、短いアクセス時間でアクセスされるべきLBA(例えば、頻繁に読み取られるLBA)の高速アクセスクラスと、通常のアクセス時間でアクセスされるべきLBA(例えば、あまり読み取られないLBA)の通常アクセスクラスとに分類する。ユニット56は、高速アクセスクラスのLBAをLSB書き込みFIFO64に、そして通常アクセスクラスのLBAをMSB書き込みFIFO60に与える。
SSDコントローラ36は、LSB書き込みFIFO64にバッファリングされたLBA(例えば、頻繁に読み取られるLBA)を、LSB記憶ステップ78において、メモリ装置32のLSBページに記憶する。又、SSDコントローラは、MSB書き込みFIFO60にバッファリングされたLBA(例えば、あまり読み取られないLBA)を、MSB記憶ステップ82において、メモリ装置のMSBページに記憶する。
ある実施形態では、SSDコントローラは、LSB書き込みFIFOからのエントリー及びMSB書き込みFIFOからのエントリーを読み取り、そしてそれらのエントリーをセルグループのLSBページ及びMSBページに各々記憶することにより、メモリセルの所与のグループ(例えば、所与のブロックの行)をプログラムする。書き込みFIFOの一方が空である場合には、SSDコントローラは、他方の書き込みFIFOからの2つのエントリーをセルグループのLSBページ及びMSBページに記憶する。
この方法は、次いで、前記ステップ70へループバックし、SSDは、ホストから後続のLBAを受け容れる。
ある実施形態では、LBAを通常アクセスクラス及び高速アクセスクラスへ分類することは、固定であり、即ち時間と共に変化しない予め構成された分類である。例えば、ユニット56は、頻繁にアクセスされるLBAの範囲と、あまりアクセスされないLBAの他の範囲とで予め構成され、そして受け容れられたLBAをそれらの範囲に基づいて分類する。この具現化は、比較的簡単であり、例えば、規定のLBA範囲の(頻繁にアクセスされる)管理データを(例えば、LBAスペースの下端に)記憶するオペレーティングシステムと共に使用される。
他の実施形態では、SSDコントローラ36には、ホストによる分類が、それらの間のインターフェイスを経て通知される。例えば、ホストは、どちらのLBA範囲が頻繁にアクセスされそしてどちらのLBA範囲があまりアクセスされないかをSSDコントローラに指示する。この種の指示は、前もってSSDコントローラに与えられるか、又はSSDに記憶するために送られる各LBAと一緒に与えられる。
ある記憶プロトコルは、ホストがそのような指示をSSDに与えられるようにするコマンドをサポートする。ある実施形態では、ホスト28及びSSDコントローラ36は、例えば、参考としてここに援用する2011年7月12日付けの“NVM Express”改訂1.0bに指定されたNVMエクスプレスプロトコルを使用して通信する。NVMエクスプレスプロトコルは、論理的ブロックの範囲についての属性を指示するためにホストによって使用されるデータセットマネージメント(DSM)コマンドを指定する。その属性は、例えば、データが読み取られ又は書き込まれる頻度、及び/又はデータの要求されるアクセスレイテンシーを含む。例えば、前記NVMエクスプレス仕様書の第6.6及び6.8章並びに図121を参照されたい。
ある実施形態では、ユニット56は、受け容れられたLBAを、DSMコマンドで与えられる属性に基づいて分類する。例えば、パーソナルコンピュータ用途では、ホストは、DSMコマンドを使用して、コンピュータの冬眠スペースとして使用すべきLBA範囲を指定する。ユニット56は、この範囲のLBAをLSBページに記憶することによりこのLBA範囲を高速読み出しについて最適化する。この技術は、冬眠からのコンピュータウェイクアップ時間を短縮する。
固定の分類と比較して、ホスト通知に基づく分類は、実施が比較的簡単であるが、高い融通性も発揮する。又、この実施は、例えば、規定のLBA範囲の管理データを(例えば、LBAスペースの下端に)記憶するオペレーティングシステムと共に効果的である。
別の実施形態では、SSD24のプロセッサ48は、LBAの分類をホストからの通知に関わらず適応式に且つ自律的に決定する。典型的に、プロセッサ48は、種々のLBAで遂行されるメモリアクセス(例えば、読み出し)オペレーションの統計値を追跡し、そしてそれに応じて、分類を定義する。例えば、プロセッサ48は、頻繁にアクセスされるLBAと、あまりアクセスされないLBAとの間を自動的に区別するための適当な技術を適用し、次いで、そのLBAを高速アクセスクラス及び通常アクセスクラスへ適宜マップさせる。ある実施形態では、この機能は、プロセッサ48において実施されるフラッシュ変換レイヤ(FTL)に埋め込まれる。この動的なマッピングは、上述した固定の又はホスト支援型の方法と結合される。
ある実施形態では、プロセッサ48は、各LBA又はLBA範囲について、各読み取りカウンタを維持し、そしてLBA又はLBA範囲からの各読み取りオペレーションに対してカウンタをインクリメントする。それらのカウンタは、望ましい数のビット、即ち望ましい解像度又はサイズを有する。1つの実施形態において、各カウンタは、単一ビットを有する(例えば、“0”=LBA否読み取り、“1”=LBA読み取り)。1つの実施形態において、各LBA(又は範囲)のカウンタは、論理的/物理的アドレスマッピングにおいてそのLBA(又は範囲)のエントリーの一部分として記憶される。カウンタを含む論理的/物理的アドレスマッピングは、例えば、DRAM52に記憶される。
これらの実施形態では、プロセッサ48は、LBAを、それらの読み取られたカウンタ値に基づいて分類する。例えば、プロセッサ48は、カウンタ値がスレッシュホールドを越えるLBAを高速アクセスクラスに分類し、そしてカウンタ値がそのスレッシュホールドより低いLBAを通常アクセスクラスに分類する。その結果、頻繁にアクセスされるLBAは、LSBページに記憶され、そしてあまりアクセスされないLBAは、MSBページに記憶される。
ブロックコンパクト化の間のLSB及びMSBページへの記憶
典型的なフラッシュメモリでは、データがページ単位でメモリ装置32に書き込まれるが、消去は、メモリブロック全体に適用される。データは、消去されたページのみに書き込まれ、それ故、データをその場で更新することはできない。データの更新は、更新されたデータを別の物理的記憶位置へ書き込み、以前のデータを無効とマークし、そして論理的/物理的アドレスマッピングを動的に更新することを含む。
前記特徴のために、メモリ装置32のメモリブロックは、無効のデータページを徐々に累積し、その更新されたものは、他の物理的記憶位置に記憶される。無効ページの数を減少するために、SSDコントローラ36のプロセッサ48は、コンパクト化、又は「ガーベージコレクション」プロセスを実行する。この背景プロセスは、コンパクト化のために1つ以上のメモリブロック(ソースブロックと称される)を選択し、その選択されたソースブロックからの有効データを1つ以上の他のブロック(ターゲットブロックと称される)の他の記憶位置へコピーし、次いで、ソースブロックを消去する。消去されたブロックは、その後のプログラミングの準備ができる。
ある実施形態では、SSDコントローラ36(例えば、プロセッサ48及び/又はユニット56)は、コンパクト化プロセスの一部分として、高速アクセスクラスに属するデータをLSBページに、そして通常アクセスクラスに属するデータをMSBページに記憶する。例えば、上述した読み取りカウンタを使用するときには、プロセッサ48は、最初、読み取りカウンタをリセットする。データの読み出し中に、プロセッサ48は、種々のLBAの読み取りカウンタをインクリメントする。
ブロックのコンパクト化を遂行するとき(1つ以上のソースブロックから1つ以上のターゲットブロックへページをコピーするとき)、プロセッサ48は、高いカウンタ値を有するLBAに属するページをターゲットブロックのLSBページへコピーし、そして低いカウンタ値を有するLBAに属するページをターゲットブロックのMSBページへコピーする。ページをコピーした後に、読み取りカウンタがリセットされる。
更に、ある実施形態では、プロセッサ48は、次のことを表わす各読み出しグレードを各ブロックに指定する。
・ブロックのデータが読み取られる頻度(例えば、頻繁にある/あまりない);及び/又は
・ブロック内のLSB及びMSBページへのデータ配布と分類基準との間の一致の程度(例えば、ブロック内のLSBページが、頻繁に読み取られるデータを実際に記憶し及びMSBページが、あまり読み取られないデータを実際に記憶する程度)。
ブロックの読み出しグレードは、例えば、ブロックからのLSBページの読み出しオペレーションの合計数から、ブロックからのMSBページの読み出しオペレーションの合計数を差し引いたものとして定義される。或いは又、前記ガイドラインを満足する他の適当な読み出しグレードを使用することもできる。これらの実施形態では、プロセッサ48は、コンパクト化のための候補ブロックを選択するときに、低いグレードのブロックに高い優先順位を指定する。グレードベースの基準は、「ホール」(無効データの領域)の数、又はブロック内の無効ページの数のような他の選択基準と結合されてもよい。
図3は、本発明の一実施形態によるメモリブロックコンパクト化方法を概略的に示すフローチャートである。この方法は、SSDコントローラ36のプロセッサ48が、候補選択ステップ90において、コンパクト化のソースブロックを選択することで始まる。プロセッサ48は、例えば、上述したように、ブロックに指定された読み出しグレードに基づいて、ソースブロックを選択する。
プロセッサ48は、選択されたソースブロックからターゲットブロックへ有効ページをコピーする。読み出しレイテンシーを減少するために、プロセッサは、高速アクセスクラスに属するソースブロックのページを、LSBコピーステップ94において、ターゲットブロックのLSBページへコピーする。通常アクセスクラスに属するソースブロックのページは、MSBコピーステップ98において、ターゲットブロックのMSBページへコピーされる。次いで、プロセッサ48は、消去ステップ102において、ソースブロックを消去する。
以上の例は、単一ソースブロックから単一ターゲットブロックへデータをコピーするコンパクト化プロセスを参照したものである。しかしながら、一般的には、コンパクト化プロセスは、望ましい数のソースブロックから望ましい数のターゲットブロックへデータを一緒にコピーすることができる。ソースブロックの数を増加すると、コンパクト化の効率が改善される。
例えば、頻繁に読み取られるページを高い割合で含む一方のブロックと、頻繁に読み取られるページを低い割合でしか含まない他方のブロック、の一対のブロックについて考える。この2つのブロックを一緒にコンパクト化することは、典型的に、各ブロックを別々にコンパクト化する場合より著しく効率的となる。そのような共同コンパクト化プロセスは、典型的に、頻繁に読み取られるページ(大部分は第1のソースブロックからの)をターゲットブロックのLSBページに、そしてあまり読み取られないページ(大部分は第2のソースブロックからの)をターゲットブロックのMSBページに記憶する。
ここに述べる実施形態は、主として、高速アクセスデータをLSBページにそして通常アクセスデータをMSBページに記憶することに向けられたが、ここに述べる方法及びシステムは、他の記憶構成で使用することもできる。例えば、高速アクセス記憶構成は、データ(例えば、LBA)を少数の物理的ページ(例えば、単一の物理的ページ)に記憶することを含み、そして通常アクセス記憶構成は、データを非常に多数の物理的ページに分割することを含む。
以上に述べた実施形態は、一例に過ぎず、本発明は、図示して上述したものに限定されないことが明らかであろう。むしろ、本発明の範囲は、上述した種々の特徴の組み合わせ及び準組み合わせと、従来開示されておらずに以上の説明を読んだときに当業者に明らかとなるその変更及び修正と、の両方を包含する。参考としてここに援用された文書は、本出願の一体的部分と考えるべきであるが、それらの援用された文書において、本明細書に明確に又は暗示的になされた定義と矛盾するように用語が定義されるものについては、本明細書の定義のみを考慮すべきである。
24:ソリッドステートディスクSSD
28:ホスト
32:不揮発性メモリ装置
36:SSDコントローラ
40:ホストインターフェイス
44:メモリインターフェイス
48:プロセッサ
52:DRAM
56:分類ユニット
60:MSB書き込みFIFO
64:LSB書き込みFIFO

Claims (25)

  1. メモリセルの複数のグループを含むメモリであって、第1アクセス時間を有する第1記憶構成を使用して第1データを記憶すると同時に、第1アクセス時間より長い第2アクセス時間を有する第2記憶構成を使用して第2データを記憶して、各グループの各メモリセルが第1データの少なくとも1ビット及び第2データの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記憶構成を使用してターゲットブロックに記憶され、且つ通常アクセスクラスに属するデータアイテムが第2記憶構成を使用してターゲットブロックに記憶されるようにするコンパクト化プロセスを実行することを含む、請求項1又は2に記載の方法。
  11. 前記コンパクト化プロセスを実行することは、メモリの複数のブロックに各グレードを指定して、ブロックのグレードがそのブロックに記憶されたデータアイテムのアクセス頻度を表わすようにし、そしてグレードに基づいてソースブロックとして働くように候補ブロックを選択することを含む、請求項10に記載の方法。
  12. 前記コンパクト化プロセスを実行することは、メモリの複数のブロックに各グレードを指定して、ブロックのグレードが、そのブロックに記憶されたデータアイテムの、高速アクセス及び通常アクセスクラスへの分類と、そのブロックにデータを記憶するのに使用される実際の記憶構成との間の一致を表わすようにし、そしてグレードに基づいてソースブロックとして働くように候補ブロックを選択することを含む、請求項10に記載の方法。
  13. メモリセルの複数のグループを含むメモリと通信するように結合され、そして第1アクセス時間を有する第1記憶構成を使用して第1データを記憶すると同時に、第1アクセス時間より長い第2アクセス時間を有する第2記憶構成を使用して第2データを記憶して、各グループの各メモリセルが第1データの少なくとも1ビット及び第2データの1つ以上のビットを保持するように構成されたインターフェイスと、
    メモリへの記憶のためにデータアイテムを受け容れ、その受け容れたデータアイテムを高速アクセスクラス及び通常アクセスクラスへ分類し、高速アクセスクラスのデータアイテムを、第1記憶構成を使用してメモリに記憶し、そして通常アクセスクラスのデータアイテムを、第2記憶構成を使用してメモリに記憶するように構成された記憶回路と、
    を備えたデータ記憶装置。
  14. 前記記憶回路は、メモリの最下位ビット(LSB)ページにデータアイテムを記憶することにより第1記憶構成を使用してデータアイテムを記憶し、そしてメモリの最上位ビット(MSB)ページにデータアイテムを記憶することにより第2記憶構成を使用してデータアイテムを記憶するように構成された、請求項13に記載の装置。
  15. 前記記憶回路は、第1アクセス頻度でアクセスされる、頻繁にアクセスされるデータアイテムを高速アクセスクラスに分類し、及び第1アクセス頻度より少ない第2アクセス頻度でアクセスされる、あまりアクセスされないデータアイテムを通常アクセスクラスに分類するように構成された、請求項13又は14に記載の装置。
  16. 前記記憶回路は、管理データを高速アクセスクラスに分類し、及びユーザデータを通常アクセスクラスに分類するように構成された、請求項13又は14に記載の装置。
  17. 前記記憶回路は、メモリの第1の数の物理的ページへ各々マップされる第1のデータアイテムを高速アクセスクラスに分類し、及び前記第1の数より大きい第2の数の物理的ページへ各々マップされる第2のデータアイテムを通常アクセスクラスに分類するように構成された、請求項13又は14に記載の装置。
  18. 前記記憶回路は、データアイテムの、高速アクセスクラス及び通常アクセスクラスへの規定の固定分類を適用するように構成された、請求項13又は14に記載の装置。
  19. 前記インターフェイスは、データアイテムをホストから受け容れるように構成され、そして前記記憶回路は、データアイテムの、高速アクセスクラス及び通常アクセスクラスへの分類をホストから受け取るように構成された、請求項13又は14に記載の装置。
  20. 前記記憶回路は、データアイテムに適用されるメモリアクセスオペレーションを監視することにより、データアイテムの、高速アクセスクラス及び通常アクセスクラスへの分類を適応式に決定するように構成された、請求項13又は14に記載の装置。
  21. 前記記憶回路は、第1及び第2バッファを備え、そして前記記憶回路は、高速アクセスクラスに属するデータアイテムを第1バッファにバッファリングし、通常アクセスクラスに属するデータアイテムを第2バッファにバッファリングし、そして第1及び第2バッファにバッファリングされたデータアイテムを、各々、第1及び第2の記憶構成を使用して記憶するように構成された、請求項13又は14に記載の装置。
  22. 前記記憶回路は、メモリの1つ以上のソースブロックからメモリの1つ以上のターゲットブロックへデータをコピーして、高速アクセスクラスに属するデータアイテムが第1記憶構成を使用してターゲットブロックに記憶され、且つ通常アクセスクラスに属するデータアイテムが第2記憶構成を使用してターゲットブロックに記憶されるようにするコンパクト化プロセスを実行するように構成された、請求項13又は14に記載の装置。
  23. 前記記憶回路は、メモリの複数のブロックに各グレードを指定して、ブロックのグレードがそのブロックに記憶されたデータアイテムのアクセス頻度を表わすようにし、そしてグレードに基づいてソースブロックとして働くように候補ブロックを選択するように構成された、請求項22に記載の装置。
  24. 前記記憶回路は、メモリの複数のブロックに各グレードを指定して、ブロックのグレードが、そのブロックに記憶されたデータアイテムの、高速アクセス及び通常アクセスクラスへの分類と、そのブロックにデータを記憶するのに使用される実際の記憶構成との間の一致を表わすようにし、そしてグレードに基づいてソースブロックとして働くように候補ブロックを選択するように構成された、請求項22に記載の装置。
  25. メモリセルの複数のグループを含み、そして第1アクセス時間を有する第1記憶構成を使用して第1データを記憶すると同時に、第1アクセス時間より長い第2アクセス時間を有する第2記憶構成を使用して第2データを記憶して、各グループの各メモリセルが第1データの少なくとも1ビット及び第2データの1つ以上のビットを保持するように構成されたメモリと、
    前記メモリへの記憶のためにデータアイテムを受け容れ、その受け容れたデータアイテムを高速アクセスクラス及び通常アクセスクラスへ分類し、高速アクセスクラスのデータアイテムを、第1記憶構成を使用してメモリに記憶し、そして通常アクセスクラスのデータアイテムを、第2記憶構成を使用してメモリに記憶するように構成された記憶回路と、
    を備えたデータ記憶装置。
JP2014510916A 2011-05-15 2012-05-13 Lsb及びmsbページにおける選択的データ記憶 Active JP5907255B2 (ja)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201161486284P 2011-05-15 2011-05-15
US61/486,284 2011-05-15
US13/426,799 US8782370B2 (en) 2011-05-15 2012-03-22 Selective data storage in LSB and MSB pages
US13/426,799 2012-03-22
PCT/IB2012/052376 WO2013005118A1 (en) 2011-05-15 2012-05-13 Selective data storage in lsb and msb pages

Publications (2)

Publication Number Publication Date
JP2014513848A true JP2014513848A (ja) 2014-06-05
JP5907255B2 JP5907255B2 (ja) 2016-04-26

Family

ID=46178419

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014510916A Active JP5907255B2 (ja) 2011-05-15 2012-05-13 Lsb及びmsbページにおける選択的データ記憶

Country Status (7)

Country Link
US (2) US8782370B2 (ja)
EP (2) EP3686742A1 (ja)
JP (1) JP5907255B2 (ja)
KR (1) KR101388410B1 (ja)
CN (1) CN103608782B (ja)
TW (1) TWI460590B (ja)
WO (1) WO2013005118A1 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2017501489A (ja) * 2014-12-05 2017-01-12 華為技術有限公司Huawei Technologies Co.,Ltd. コントローラ、フラッシュメモリ装置、データブロック安定性を識別する方法、及びデータをフラッシュメモリ装置に記憶する方法
JP2018136970A (ja) * 2014-12-29 2018-08-30 東芝メモリ株式会社 情報処理装置

Families Citing this family (48)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9058281B2 (en) * 2012-06-01 2015-06-16 Seagate Technology Llc Allocating memory usage based on quality metrics
US9081664B2 (en) * 2012-08-10 2015-07-14 Kabushiki Kaisha Toshiba Memory system capable of preventing data destruction
US9361167B2 (en) * 2012-10-24 2016-06-07 SanDisk Technologies, Inc. Bit error rate estimation for wear leveling and for block selection based on data type
CN103853665B (zh) * 2012-12-03 2017-06-06 华为技术有限公司 存储空间分配方法及设备
US8984251B2 (en) * 2012-12-04 2015-03-17 Apple Inc. Hinting of deleted data from host to storage device
TWI498812B (zh) * 2013-01-07 2015-09-01 Mstar Semiconductor Inc 資料存取方法以及使用此資料存取方法的電子裝置
CN103077121B (zh) * 2013-01-07 2016-01-27 深圳市江波龙电子有限公司 一种闪存存储设备中数据管理的方法及装置
KR102068342B1 (ko) * 2013-03-07 2020-01-20 삼성전자주식회사 메모리 제어기 및 그것을 포함하는 메모리 시스템
CN103164344B (zh) * 2013-03-12 2015-09-16 深圳市江波龙电子有限公司 一种闪存存储设备中数据管理的方法及装置
CN103246615B (zh) * 2013-04-24 2015-09-16 深圳市江波龙电子有限公司 一种闪存存储设备中数据管理的方法及装置
WO2014209234A1 (en) * 2013-06-26 2014-12-31 Agency For Science, Technology And Research Method and apparatus for hot data region optimized dynamic management
US9298389B2 (en) * 2013-10-28 2016-03-29 Lenovo Enterprise Solutions (Singapore) Pte. Ltd. Operating a memory management controller
US9501422B2 (en) 2014-06-11 2016-11-22 Vmware, Inc. Identification of low-activity large memory pages
US9330015B2 (en) * 2014-06-11 2016-05-03 Vmware, Inc. Identification of low-activity large memory pages
US9563367B2 (en) 2014-08-26 2017-02-07 HGST Netherlands B.V. Latency command processing for solid state drive interface protocol
CN104503707B (zh) 2014-12-24 2018-03-06 华为技术有限公司 读取数据的方法以及装置
KR20160150384A (ko) * 2015-06-22 2016-12-30 에스케이하이닉스 주식회사 데이터 저장 장치 및 그것의 동작 방법
KR20170001237A (ko) * 2015-06-26 2017-01-04 에스케이하이닉스 주식회사 상태 읽기를 수행하는 메모리 시스템 및 그것의 동작 방법
US20170139826A1 (en) * 2015-11-17 2017-05-18 Kabushiki Kaisha Toshiba Memory system, memory control device, and memory control method
KR20170099437A (ko) * 2016-02-23 2017-09-01 에스케이하이닉스 주식회사 메모리 시스템 및 이의 동작 방법
KR102553170B1 (ko) * 2016-06-08 2023-07-10 에스케이하이닉스 주식회사 메모리 시스템 및 메모리 시스템의 동작 방법
US10783146B2 (en) 2016-07-19 2020-09-22 Sap Se Join operations in hybrid main memory systems
US10540098B2 (en) 2016-07-19 2020-01-21 Sap Se Workload-aware page management for in-memory databases in hybrid main memory systems
US10387127B2 (en) 2016-07-19 2019-08-20 Sap Se Detecting sequential access data and random access data for placement on hybrid main memory for in-memory databases
US11977484B2 (en) 2016-07-19 2024-05-07 Sap Se Adapting in-memory database in hybrid memory systems and operating system interface
US10698732B2 (en) * 2016-07-19 2020-06-30 Sap Se Page ranking in operating system virtual pages in hybrid memory systems
US10452539B2 (en) 2016-07-19 2019-10-22 Sap Se Simulator for enterprise-scale simulations on hybrid main memory systems
US10437798B2 (en) 2016-07-19 2019-10-08 Sap Se Full system simulator and memory-aware splay tree for in-memory databases in hybrid memory systems
US10474557B2 (en) 2016-07-19 2019-11-12 Sap Se Source code profiling for line-level latency and energy consumption estimation
US9672905B1 (en) * 2016-07-22 2017-06-06 Pure Storage, Inc. Optimize data protection layouts based on distributed flash wear leveling
CN108170367B (zh) * 2016-12-07 2021-04-20 瑞昱半导体股份有限公司 内存控制电路及其方法
JP2018160194A (ja) 2017-03-23 2018-10-11 東芝メモリ株式会社 メモリシステムおよび方法
US11010379B2 (en) 2017-08-15 2021-05-18 Sap Se Increasing performance of in-memory databases using re-ordered query execution plans
US10942854B2 (en) 2018-05-09 2021-03-09 Micron Technology, Inc. Prefetch management for memory
US11010092B2 (en) 2018-05-09 2021-05-18 Micron Technology, Inc. Prefetch signaling in memory system or sub-system
US10714159B2 (en) 2018-05-09 2020-07-14 Micron Technology, Inc. Indication in memory system or sub-system of latency associated with performing an access command
US10754578B2 (en) 2018-05-09 2020-08-25 Micron Technology, Inc. Memory buffer management and bypass
US11340810B2 (en) * 2018-10-09 2022-05-24 Western Digital Technologies, Inc. Optimizing data storage device operation by grouping logical block addresses and/or physical block addresses using hints
CN109947678B (zh) * 2019-03-26 2021-07-16 联想(北京)有限公司 一种存储装置、电子设备及数据交互方法
KR20200123898A (ko) 2019-04-22 2020-11-02 삼성전자주식회사 상이한 동작 모드들에서 동작하는 뱅크들을 포함하는 불휘발성 메모리 장치, 메모리 컨트롤러의 동작 방법, 및 불휘발성 메모리 장치 및 메모리 컨트롤러를 포함하는 저장 장치
WO2021035555A1 (zh) * 2019-08-27 2021-03-04 华为技术有限公司 一种固态硬盘的数据存储方法、装置及固态硬盘ssd
CN112445412B (zh) * 2019-08-28 2024-06-11 华为技术有限公司 一种数据存储方法及装置
US11231876B2 (en) * 2019-09-24 2022-01-25 Western Digital Technologies, Inc. Initial data placement in hybrid object storage system
CN111258505B (zh) * 2020-01-21 2023-09-26 合肥兆芯电子有限公司 快闪存储器的数据合并方法、控制电路单元与存储装置
US20210382818A1 (en) * 2020-06-08 2021-12-09 Western Digital Technologies, Inc. Solid-State Storage Devices that Reduce Read Time for Read Time-Sensitive Data
US11366774B2 (en) * 2020-09-24 2022-06-21 Adesto Technologies Corporation Memory latency reduction in XIP mode
CN112860185B (zh) * 2021-01-29 2022-11-25 西藏宁算科技集团有限公司 基于lru算法的高可用缓存方法、存储装置以及电子设备
JP7516300B2 (ja) * 2021-03-17 2024-07-16 キオクシア株式会社 メモリシステム

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008242503A (ja) * 2007-03-23 2008-10-09 Canon Inc メモリ管理装置及び方法、並びにプログラム
US20080291731A1 (en) * 2007-05-21 2008-11-27 Sandisk Il Ltd. Methods For Optimizing Page Selection In Flash-Memory Devices
JP2010067263A (ja) * 2008-07-18 2010-03-25 Marvell World Trade Ltd メモリへの選択的アクセス

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA2498154A1 (en) 2002-09-16 2004-03-25 Tigi Corporation Storage system architectures and multiple caching arrangements
US7352618B2 (en) * 2004-12-15 2008-04-01 Samsung Electronics Co., Ltd. Multi-level cell memory device and associated read method
US7707379B2 (en) 2006-07-13 2010-04-27 International Business Machines Corporation Dynamic latency map for memory optimization
US7707380B2 (en) 2006-09-29 2010-04-27 Qimonda Ag Memories, method of storing data in memory and method of determining memory cell sector quality
KR100771521B1 (ko) * 2006-10-30 2007-10-30 삼성전자주식회사 멀티 레벨 셀을 포함하는 플래시 메모리 장치 및 그것의데이터 쓰기 방법
KR101498673B1 (ko) * 2007-08-14 2015-03-09 삼성전자주식회사 반도체 드라이브, 그것의 데이터 저장 방법, 그리고 그것을포함한 컴퓨팅 시스템
TWI375953B (en) * 2008-02-21 2012-11-01 Phison Electronics Corp Data reading method for flash memory, controller and system therof
JP4461187B1 (ja) * 2008-12-24 2010-05-12 株式会社東芝 不揮発性半導体メモリドライブ装置、情報処理装置および不揮発性半導体メモリドライブ装置における記憶領域の管理方法
US20100169602A1 (en) * 2008-12-29 2010-07-01 Jared E Hulbert Method and Apparatus for Efficient Memory Placement
US8239613B2 (en) * 2008-12-30 2012-08-07 Intel Corporation Hybrid memory device
TWI397071B (zh) 2008-12-31 2013-05-21 A Data Technology Co Ltd 記憶體儲存裝置及其控制方法
TWI400707B (zh) 2009-07-09 2013-07-01 Phison Electronics Corp 快閃記憶體邏輯區塊管理方法及其控制電路與儲存系統
US8332578B2 (en) * 2009-07-31 2012-12-11 Intel Corporation Method and system to improve the performance of a multi-level cell (MLC) NAND flash memory
US8438361B2 (en) * 2010-03-10 2013-05-07 Seagate Technology Llc Logical block storage in a storage device
US9183134B2 (en) * 2010-04-22 2015-11-10 Seagate Technology Llc Data segregation in a storage device
JP2012033002A (ja) * 2010-07-30 2012-02-16 Toshiba Corp メモリ管理装置およびメモリ管理方法
TWI451435B (zh) * 2010-10-08 2014-09-01 Phison Electronics Corp 非揮發性記憶體儲存裝置、記憶體控制器與資料儲存方法
US9684590B2 (en) * 2010-10-25 2017-06-20 Seagate Technology Llc Storing corresponding data units in a common storage unit
US8874872B2 (en) * 2011-01-21 2014-10-28 Seagate Technology Llc Garbage collection management in memories

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008242503A (ja) * 2007-03-23 2008-10-09 Canon Inc メモリ管理装置及び方法、並びにプログラム
US20080291731A1 (en) * 2007-05-21 2008-11-27 Sandisk Il Ltd. Methods For Optimizing Page Selection In Flash-Memory Devices
JP2010067263A (ja) * 2008-07-18 2010-03-25 Marvell World Trade Ltd メモリへの選択的アクセス

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2017501489A (ja) * 2014-12-05 2017-01-12 華為技術有限公司Huawei Technologies Co.,Ltd. コントローラ、フラッシュメモリ装置、データブロック安定性を識別する方法、及びデータをフラッシュメモリ装置に記憶する方法
US9772790B2 (en) 2014-12-05 2017-09-26 Huawei Technologies Co., Ltd. Controller, flash memory apparatus, method for identifying data block stability, and method for storing data in flash memory apparatus
JP2018136970A (ja) * 2014-12-29 2018-08-30 東芝メモリ株式会社 情報処理装置

Also Published As

Publication number Publication date
EP2525293A1 (en) 2012-11-21
KR20120127698A (ko) 2012-11-23
US8914600B2 (en) 2014-12-16
US20140325172A1 (en) 2014-10-30
TW201248405A (en) 2012-12-01
EP2525293B1 (en) 2020-03-11
TWI460590B (zh) 2014-11-11
CN103608782A (zh) 2014-02-26
CN103608782B (zh) 2016-09-07
US8782370B2 (en) 2014-07-15
JP5907255B2 (ja) 2016-04-26
KR101388410B1 (ko) 2014-04-22
EP3686742A1 (en) 2020-07-29
WO2013005118A1 (en) 2013-01-10
US20120290768A1 (en) 2012-11-15

Similar Documents

Publication Publication Date Title
JP5907255B2 (ja) Lsb及びmsbページにおける選択的データ記憶
TWI647702B (zh) 記憶體控制器、記憶體系統及於一記憶體中管理資料配置的方法
US11030094B2 (en) Apparatus and method for performing garbage collection by predicting required time
US20160062885A1 (en) Garbage collection method for nonvolatile memory device
US10949355B2 (en) Methods and apparatus for workload based dynamic cache control in SSD
US11747989B2 (en) Memory system and method for controlling nonvolatile memory
JP6139381B2 (ja) メモリシステムおよび方法
US11436136B2 (en) Memory system including non-volatile buffer and control method thereof
JP2018049522A (ja) メモリシステム及び制御方法
EP2565792A1 (en) Block management schemes in hybrid SLC/MLC memory
US10402338B2 (en) Method and apparatus for erase block granularity eviction in host based caching
US20130103893A1 (en) System comprising storage device and related methods of operation
US11392309B2 (en) Memory system for performing migration operation and operating method thereof
EP3926451B1 (en) Communication of data relocation information by storage device to host to improve system performance
KR102349381B1 (ko) 데이터 저장 장치 및 그것의 동작 방법
TW202314471A (zh) 儲存裝置及其操作方法
Yong et al. Design and implementation of virtual stream management for NAND flash-based storage
Sun et al. LBA scrambler: A NAND flash aware data management scheme for high-performance solid-state drives
US10698621B2 (en) Block reuse for memory operations
KR20230166803A (ko) 높은 퍼지 성능을 제공하는 스토리지 장치 및 그것의 메모리 블록 관리 방법
KR20230115196A (ko) 메모리 블록을 할당 해제하는 스토리지 컨트롤러, 그것의 동작하는 방법, 및 그것을 포함하는 스토리지 장치의 동작하는 방법

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20131120

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20140411

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20141210

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20150113

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20150413

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20150706

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20151005

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20160229

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20160307

R150 Certificate of patent or registration of utility model

Ref document number: 5907255

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250