CN103608782A - Lsb页面和msb页面中的选择性数据存储 - Google Patents
Lsb页面和msb页面中的选择性数据存储 Download PDFInfo
- Publication number
- CN103608782A CN103608782A CN201280023874.8A CN201280023874A CN103608782A CN 103608782 A CN103608782 A CN 103608782A CN 201280023874 A CN201280023874 A CN 201280023874A CN 103608782 A CN103608782 A CN 103608782A
- Authority
- CN
- China
- Prior art keywords
- data item
- data
- access
- storer
- kept
- 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
Links
- 238000013500 data storage Methods 0.000 title claims abstract description 10
- 238000000034 method Methods 0.000 claims abstract description 34
- 230000006835 compression Effects 0.000 claims description 17
- 238000007906 compression Methods 0.000 claims description 17
- 238000007726 management method Methods 0.000 claims description 11
- 238000004321 preservation Methods 0.000 claims description 6
- 238000012545 processing Methods 0.000 claims description 4
- 230000013011 mating Effects 0.000 claims description 3
- 238000012544 monitoring process Methods 0.000 claims description 3
- 238000012005 ligant binding assay Methods 0.000 description 63
- 238000010586 diagram Methods 0.000 description 6
- 230000008569 process Effects 0.000 description 6
- 230000006870 function Effects 0.000 description 4
- 241001269238 Data Species 0.000 description 3
- 238000013507 mapping Methods 0.000 description 3
- 230000005059 dormancy Effects 0.000 description 2
- 239000007787 solid Substances 0.000 description 2
- 238000013519 translation Methods 0.000 description 2
- 238000004883 computer application Methods 0.000 description 1
- 230000002349 favourable effect Effects 0.000 description 1
- 239000004615 ingredient Substances 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000007334 memory performance Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
- G06F3/065—Replication mechanisms
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0253—Garbage collection, i.e. reclamation of unreferenced memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0614—Improving the reliability of storage systems
- G06F3/0619—Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/064—Management of blocks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/067—Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C7/00—Arrangements for writing information into, or reading information out from, a digital store
- G11C7/10—Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1016—Performance improvement
- G06F2212/1024—Latency reduction
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7202—Allocation control and policies
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7205—Cleaning, compaction, garbage collection, erase control
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7207—Details relating to flash memory management management of metadata or control data
Abstract
一种用于数据存储的方法,包括:提供存储器(32),该存储器包括多组存储单元并被配置为同时使用具有第一访问时间的第一存储配置保存第一数据和使用具有第二访问时间的第二存储配置保存第二数据,第二访问时间长于第一访问时间,使得每组的每个存储单元保存第一数据的至少一位和第二数据的一个或多个位。数据项被接收用于保存在存储器中。将所接收的数据项分类到快速访问类和正常访问类中。使用第一存储配置将快速访问类中的数据项保存在存储器中,使用第二存储配置将正常访问类中的数据项保存在存储器中。
Description
发明领域
本发明总体上涉及存储器系统,尤其涉及用于多级存储器设备中数据存储的方法和系统。
发明背景
根据数据的使用模式将数据保存在存储器中的各种技术在本领域中是公知的。例如,美国专利申请公开2009/0049234,其公开内容通过引用被并入此处,描述了一种将数据保存在包括第一和第二存储器层的固态存储器中的存储方案。执行第一评估来确定所接收的数据是否是热数据或冷数据。将被评估为热数据的所接收数据保存在第一存储器层,将被评估为冷数据的所接收数据保存在第二存储器层。此外,执行第二评估来确定保存在第一存储器层中的数据是否为热数据或冷数据。然后将在第二评估期间被评估为冷数据的数据从第一存储器层迁移到第二存储器层。
作为另一例子,美国专利申请公开2011/0010489,其公开内容通过引用被并入此处,描述了一种用于管理闪存设备的多个逻辑块的逻辑块管理方法。该方法包括提供闪存控制器,以及将逻辑块分组到多个逻辑区域,其中每个逻辑块映射到多个逻辑区域中的一个。该方法还包括对每个逻辑块的使用计数值进行计数,以及根据使用计数值动态地调整逻辑块与逻辑区域之间的映射关系。相应地,该逻辑块管理方法能有效地利用逻辑区域来确定逻辑块的使用模式并使用不同机制写入数据,以便改善闪存存储设备的性能。
发明内容
此处所述的本发明的一个实施例提供了一种用于数据存储的方法。该方法包括提供存储器,该存储器包括多组存储单元,并被配置为同时使用具有第一访问时间的第一存储配置保存第一数据和使用具有第二访问时间的第二存储配置保存第二数据,第二访问时间长于第一访问时间,使得每组的每个存储单元保存第一数据的至少一位和第二数据的一个或多个位。数据项被接收用于保存在存储器中。所接收的数据项被分类到快速访问类和正常访问类中。使用第一存储配置将快速访问类中的数据项保存在存储器中,使用第二存储配置将正常访问类中的数据项保存在存储器中。
在一些实施例中,使用第一存储配置保存数据项包括将数据项保存在存储器的最低有效位(Least Significant Bit,LSB)页面中,以及使用第二存储配置保存数据项包括将数据项保存在存储器的最高有效位(Most Significant Bit,MSB)页面中。
在一个已公开的实施例中,将数据项分类包括将以第一访问频率访问的频繁被访问的数据项分类到快速访问类中,以及将以第二访问频率访问的很少被访问的数据项分类到正常访问类中,第二访问频率小于第一访问频率。在另一个实施例中,将数据项分类包括将管理数据分类到快速访问类中,以及将用户数据分类到正常访问类中。
在另一个实施例中,将数据项分类包括将各个被映射到存储器物理页面的第一编号的第一数据项分类到快速访问类中,以及将各个被映射到物理页面的第二编号的第二数据项分类到正常访问类中,第二编号大于第一编号。
在一些实施例中,将数据项分类包括:应用预定义的固定分类把数据项分成快速访问类和正常访问类。在替代的实施例中,从主机接收数据项,并且将数据项分类包括从主机接收分为快速访问类和正常访问类的数据项分类。此外,作为替换,将数据项分类包括:通过监控到数据项的存储器访问操作,自适应地确定分成快速访问类和正常访问类的数据项分类。
在一些实施例中,保存数据项包括将属于快速访问类的数据项缓存在第一缓冲器中,将属于正常访问类的数据项缓存在第二缓冲器中,以及分别使用第一存储配置和第二存储配置保存被缓存在第一缓冲器和第二缓冲器中的数据项。
在一个实施例中,保存数据项包括运行压缩处理,将数据从存储器的一个或多个源块复制到存储器的一个或多个目标块,使得使用第一存储配置将属于快速访问类的数据项保存在目标块中,以及使用第二存储配置将属于正常访问类的数据项保存在目标块中。
运行压缩处理可包括:给存储器的多个块分配相应的等级,使得块的等级指示出保存在块中的数据项的访问频率,以及基于等级选择候选块作为源块。此外或者作为替换,运行压缩处理可包括:给存储器的多个块分配相应的等级,使得块的等级指示出:分为快速访问类和正常访问类的保存在块中的数据项分类与用于将数据保存在块中的实际存储配置之间的匹配,以及基于等级选择候选块作为源块。
此外提供了按照该本发明实施例的用于数据存储的设备,该设备包括接口和存储电路。该接口被耦合用于与存储器进行通信,该存储器包括多组存储单元,并被配置为同时使用具有第一访问时间的第一存储配置保存第一数据和使用具有第二访问时间的第二存储配置保存第二数据,第二访问时间长于第一访问时间,使得每组的每个存储单元保留第一数据的至少一位和第二数据的一个或多个位。该存储电路被配置为接收用于保存在存储器中的数据项,将所接收的数据项分类到快速访问类和正常访问类中,使用第一存储配置将快速访问类中的数据项保存在存储器中,使用第二存储配置将正常访问类中的数据项保存在存储器中。
还提供了按照该本发明实施例的用于数据存储的设备,该设备包括存储器和存储电路。该存储器包括多组存储单元,并被配置为同时使用具有第一访问时间的第一存储配置保存第一数据和使用具有第二访问时间的第二存储配置保存第二数据,第二访问时间长于第一访问时间,使得每组的每个存储单元保留第一数据的至少一位和第二数据的一个或多个位。该存储电路被配置为接收用于保存在存储器中的数据项,将所接收的数据项分类到快速访问类和正常访问类中,使用第一存储配置将快速访问类中的数据项保存在存储器中,使用第二存储配置将正常访问类中的数据项保存在存储器中。
根据以下实施例的详细说明并结合附图将更加彻底地理解本发明,其中:
附图说明
图1是示意性地示出了按照本发明实施例的固态驱动器(Solid State Drive,SSD)的框图;以及
图2是示意性地示出了按照本发明实施例的用于多级单元(Multi-LevelCell,MLC)闪存中数据存储的方法的流程图;以及
图3是示意性地示出了按照本发明实施例的用于存储块压缩的方法的流程图。
具体实施方式
概述
多级单元(Multi-Level Cell,MLC)存储器设备包括多个存储单元,每个存储单元保留两个或更多数据位。不同MLC位通常具有不同的访问时间。例如,在典型的2位/单元MLC闪存设备中,存储单元组可能各自保留具有快速访问时间的最低有效位(Least Significant Bit,LSB)页面和具有更长访问时间的最高有效位(Most SignificantBit,MSB)页面。LSB页面和MSB页面有时被分别称为“下页面”和“上页面”。
在下文描述的本发明实施例提供了用于在MLC存储器设备中保存数据的改进的方法和系统。所公开的技术将MLC存储器视为能够使用两种不同的存储配置保存数据:正常存储配置和快速存储配置。在2位/单元闪存设备中,例如,快速存储配置包括LSB页面中的存储,正常存储配置包括在设备的MSB页面中的存储。
被接收存储的数据项被分类为快速访问类和正常访问类,即分类为以快速访问时间保存的数据项和以正常访问时间保存的数据项。使用快速存储配置(例如,在LSB页面中)保存前者的数据项,使用正常存储配置(例如,在MSB页面中)保存后者的数据项。在一个示例性实施例中,快速存储配置用于保存频繁被访问(常常被成为“热”)的数据项,而正常存储配置用于保存很少被访问(“冷”)的数据项。通过将存储配置与数据的使用频率进行匹配,存储器的平均访问时间能够得以大幅度减少。
在所公开的技术中,同样的存储单元组同时采用快速访问时间和正常访问时间:存储器的每个存储单元保留使用快速存储配置保存的至少一位和使用正常存储配置保存的至少一位。在一个典型示例中,数据项的两种类型(快速访问时间和正常访问时间)被保存在MLC闪存设备的同一擦除块的不同页面。
原则上能够使用两种不同的存储器类型(例如,SLC设备和MLC设备),用于提供快速访问时间和正常访问时间,但是这类方案是低效的和不灵活的。与传统的MLC方案比较,所公开的技术提高了存储器性能,简化了存储器,并能够采用快速访问时间和正常访问时间来灵活分配存储空间,因为它们在相同的存储器设备中混合了不同的存储配置。
系统描述
图1是示意性地示出了按照本发明实施例的固态盘(Solid State Disk,SSD)24的框图。SSD24为主机28保存数据。主机28可包括,例如,在包括多个SSD24的企业存储系统中的主处理器,在诸如笔记本或膝上型计算机的计算设备中的主处理器,或者任何其他适当的主机。
SSD24包括SSD控制器36,并在一个或更多非易失性存储器设备32中为主机28保存数据。SSD控制器36包括与主机28通信的主机接口40,与存储器设备32通信的存储器接口44,以及管理SSD控制器操作的处理器48。SSD控制器36还包括内部存储器,在当前例子中为动态随机访问存储器(DynamicRandom Access Memory,DRAM)52。
在当前例子中,存储器设备32包括多级单元(Multi-Level Cell,MLC)NAND闪存设备或冲模。每个存储器设备32包括排列在擦除块(被称为存储块或为简便起见简称块)中的多个存储单元。在单个擦除命令下每块的存储单元被一并擦除。
每块包括被一起写入和读取的多组存储单元。根据存储器设备体系结构,每组存储单元可包括,例如,给定块的整行,给定块某一行中的奇数次序存储单元,给定块某一行中的偶数次序存储单元,或在单个命令下被读取和写入的任何其他适当的存储单元组。
在当前例子中,存储器设备32包括2位/单元设备。这种设备中,每个存储单元保留数据的两位,常常被称为最低有效位(Least Significant Bit,LSB)和最高有效位(Most Significant Bit,MSB)。每组存储单元保留两个页面:被保存在组中存储单元的多个LSB中的LSB页面,以及被保存在组中存储单元的多个MSB中的MSB页面。
每个存储器设备32支持独立的LSB和MSB读和写命令。一般地,LSB读和写命令显著地快于MSB读和写命令。换言之,LSB页面的访问时间显著地快于MSB页面的访问时间。此处使用的术语“访问时间(access time)”指的是读取和/或写入等待时间。一般地,读和写等待时间起算于SSD控制器和存储器设备之间的接口提供读或写指令的时间,直到那个接口提供响应的时间。在一个示例存储器设备中,在下列表格中给出LSB访问时间和MSB访问时间:
LSB | MSB | |
读等待时间 | 50μS | 100μS |
写等待时间 | 0.5mS | 2mS |
在一些实施例中,SSD控制器36从主机28接收数据项用于保存在存储器设备32中。该SSD控制器依照一些分类标准将数据项分类到快速访问类和正常访问类中。SSD控制器将快速访问类中的数据项保存在存储器设备32的LSB页面中,将正常访问类的数据项保存在该存储器设备的MSB页面中。
在图1的实施例中,从主机28接收每个数据项和相应的逻辑地址。SSD控制器依照某一逻辑地址到物理地址的映射将逻辑地址转换到相应的存储器设备32中的物理存储单元(例如,物理页面),并将每个数据项保存到合适的物理存储单元。在随后的描述中,数据项和它们各自的逻辑地址两者在此处被称为逻辑块选址(Logical BlockAddresses,LBAs)。然而,在替换的实施例中,可以使用任何其他适当类型的数据项和编址方案。
SSD控制器36包括分类单元56,其将所接收的LBAs分类到快速访问类和正常访问类。然后将属于不同类别的LBAs缓存到独立的缓冲器中,在当前例子中为先进先出(First-In First-Out,FIFO)存储器。提供属于正常访问类的LBAs(例如,那些应该采用正常读等待时间的LBAs)给MSB写FIFO60,提供属于快速访问类的LBAs(例如,那些应该采用快速读等待时间的LBAs)给LSB写FIFO64。SSD控制器36将缓存在MSB写FIFO60中的LBAs保存在存储器设备32的MSB页面中,将缓存在LSB写FIFO64中的LBAs保存在该存储器设备的LSB页面中。
图1的SSD和SSD控制器配置是示例性配置,其被示出纯粹是为了概念的清楚。在替换的实施例中,可以使用任何其他适当的SSD和SSD控制器配置。例如,此处所述的实施例主要涉及保留LSB和MSB页面的2位/单元存储器设备。在替换的实施例中,存储器设备32可包括每个存储器组具有任何适当的存储密度和任何适当的页面数的任何其他适当类型的存储器,例如,3位/单元,4位/单元或5位/单元存储器。
此外作为替换,存储器设备可包括在相同的存储单元中混合快速访问时间和正常访问时间存储配置的任何其他适当的存储单元组。在一些实施例中,存储器可支持具有不同访问时间的更大数目的存储配置,所接收的数据项可以被相应地分类到更大数目的类中。例如,在保存三个或更多位/单元的MLC存储器中,快速访问类可对应于LSB页面,正常访问类可对应于所有其他(更多等待时间)页面。
为清楚起见,从图中省略掉对于理解本发明的原理不需要的元件。在图1给出的示例性配置中,存储器设备32和SSD控制器36被实现为独立的集成电路(Integrated Circuits,ICs)。然而,在替换的实施例中,存储器设备和SSD控制器可以被集成在单个多芯片封装(Multi-Chip Package,MCP)或片上系统(System on Chip,SoC)中的独立半导体冲模上,可以通过内部总线将存储器设备和SSD控制器互连。此外作为替换,可将一些或所有SSD电路保存在同一冲模上,在其上可以处理一个或更多存储器设备。此外作为替换,可以用软件实现并通过主机28执行SSD控制器的一些或所有功能。在一些实施例中,可以将主机28和SSD控制器36制造在同一冲模上,或在同一设备封装的独立冲模上。
可以用硬件实现SSD控制器36的一些或所有功能。作为替换,可以使用执行适当软件的一个或多个微处理器或硬件和软件元件的组合来实现SSD控制器的元件,例如,处理器48或分类单元56。在一些实施例中,处理器48包括通用处理器,其用软件来编程以执行此处所述的功能。可以经由网络下载软件到电子形式的处理器,例如,或其可以,作为替换或此外被提供和/或保存在非易失性有形介质上,例如,磁性、光学或电子存储器。SSD控制器电路可与存储器设备32中的一些电路结合,此处被称为执行所公开技术的存储电路。
LSB页面和MSB页面中的选择性数据存储
在各种实施例中,SSD控制器36的分类单元56可使用不同分类标准将所接收的LBAs分类到正常访问类和快速访问类。在一个实施例中,单元56将频繁被访问(例如,读取)的LBAs分类到快速访问类中,将很少被访问的LBAs分类到正常访问类中。当主机后来访问各种LBAs时,总的平均访问时间得以显著地减少。
目前的上下文中,术语“频繁被访问(frequently-accessed)”和“很少被访问(rarely-accessed)”不意味着任何特定的或绝对的访问次数,而是访问频率之间的相对关系。换言之,可以任何适当的方式将数据项分类为频繁被访问的和很少被访问的,使得频繁被访问的数据项的访问频率高于很少被访问的数据项的访问频率。
在另一个实施例中,单元56将管理数据(例如,关键数据和/或控制数据)分类到快速访问类中,将其他数据(例如,用户数据)分类到正常访问类中。这种标准通常假定管理数据是频繁被访问的。作为替换,单元56可依照任何其他适当的分类标准或标准组合分类所接收的数据项。
图2是示意性地示出了按照本发明实施例的用于SSD24中数据存储的方法流程图。该方法始于SSD控制器36通过主机接口40从主机28接收用于存储的LBAs,在输入步骤70。
在分类步骤74,SSD控制器中的分类单元56将所接收的LBAs进行分类。单元56将LBAs分类到采用较少访问时间访问的LBAs的快速访问类(例如,频繁被读取的LBAs)和采用正常访问时间访问的LBAs的正常访问类(例如,很少被读取的LBAs)中。单元56提供快速访问类中的LBAs给LSB写FIFO64,提供正常访问类中的LBAs给MSB写FIFO60。
在LSB保存步骤78,SSD控制器36将缓存在LSB写FIFO64中的LBAs(例如,频繁被读取的LBAs)保存在存储器设备32的LSB页面中。在MSB保存步骤82,SSD控制器将缓存在MSB写FIFO60中的LBAs保存在该存储器设备的MSB页面中。
在一些实施例中,SSD控制器通过从LSB写FIFO读取一个条目和从MSB写FIFO读取一个条目编程给定的存储单元组(例如,给定块的一行),并分别将这些条目保存在该单元组的LSB页面和MSB页面中。如果写FIFO的之一是空的,SSD控制器从该单元组的LSB页面和MSB页面中的其它写FIFO来保存两个条目。
然后该方法循环返回到上面步骤70,其中SSD从主机接收随后的LBAs。
在一些实施例中,将LBAs分类到正常访问类和快速访问类中的分类是固定的,是不随时间而改变的预先配置的分类。例如,可以利用频繁被访问的LBAs范围和很少被访问的LBAs的其他范围来预先配置单元56,基于这些范围对所接收的LBAs进行分类。这种实现方式相对简单并可以使用,例如,保存预定LBA范围(例如,LBA空间的低端)内的管理数据(频繁被访问)的操作系统。
其它实施例中,可以通过主机28经由它们之间的接口告知分类给SSD控制器36。例如,主机可指示给SSD控制器哪些LBA范围是频繁被访问的和哪些LBA范围是很少被访问的。可以预先提供这种指示给SSD控制器,或和SSD中被发送用于存储的每个LBA一起提供给SSD控制器。
一些存储协议支持使能主机提供这种指示给SSD的命令。在一些实施例中,主机28和SSD控制器36使用规定的NVM表示协议(NVM Express protocol)进行通信,例如,使用2011年7月12日的“NVM表示”修订版1.0b,其通过引用并入此处。NVM表示协议规定数据集管理(Dataset Management,DSM)命令,其由主机使用来表示逻辑块范围的属性。该属性可包括,例如,数据用来读取或写入的频率和/或请求的用于数据的访问等待时间。例如,参见上面引用的NVM表示规范的6.6节、6.8节和图121。
在一些实施例中,单元56基于DSM命令中提供的属性对所接收的LBAs进行分类。在个人计算机应用中,例如,主机可使用DSM命令来规定用于计算机休眠空间的LBA范围。通过将这个范围内的LBAs保存在LSB页面中,单元56可优化这个LBA范围以实现快速读出。这种技术减少了计算机从休眠的唤醒时间。
与固定分类比较,基于主机通知的分类也是相对实现简单的,但提供了更高的灵活性。这种实现方式还可以是有利的,例如,与保存预定LBA范围(例如,LBA空间的低端)内的管理数据的操作系统。
在替换的实施例中,SSD24的处理器48自适应并自发地确定LBAs的分类,不管来自主机的通知。一般地,处理器48跟踪各种LBAs上完成的存储器访问(例如,读出)操作的统计量,并相应地定义分类。例如,处理器48可应用任何适用技术来自动地区分频繁被访问的LBAs和很少被访问的LBAs,然后相应地将LBAs映射到快速访问类和正常访问类。在一些实施例中,这种功能被嵌入到实现在处理器48中的闪存转换层(Flash Translation Layer,FTL)。可以将这种动态映射结合到如上所述的固定或主机辅助方法中。
在一些实施例中,处理器48为每个LBA或LBA范围提供一个相应的读计数器,并为来自该LBA或LBA范围的每个读取操作递增计数器。计数器可以具有任何期望的位数,即,任何期望的分辨率或尺寸。在一个实施例中,每个计数器具有单个位(例如,“0”=不读取LBA,“1”=读取LBA)。在一个实施例中,每个LBA(或范围)的计数器被保存为逻辑地址到物理地址映射的LBA(或范围)条目的一部分。包括计数器的逻辑地址到物理地址映射可以被保存在例如DRAM52中。
在这些实施例中,处理器48基于它们的读计数器值将LBAs进行分类。例如,处理器48可以将计数器值超出某一阈值的LBAs分类到快速访问类中,将计数器值低于该阈值的LBAs分类到正常访问类中。因此,频繁被访问的LBAs会被保存在LSB页面中,很少被访问的LBAs会被保存在MSB页面中。
块压缩期间LSB页面和MSB页面中的存储
在典型的闪存中,数据被写入到页面单元的存储器设备32,但擦除被施加到整个存储块。数据仅仅被写入已擦除页面,因此不能够现场更新数据。更新数据涉及将更新数据写入到另一物理存储单元,将数据的前一版本标记为无效,动态地更新逻辑地址到物理地址映射。
由于上述特性,存储器设备32的存储块逐渐累积无效数据页面,其被更新的版本已经被保存在其他物理存储单元中。为了减少无效页面的数目,SSD控制器36的处理器48执行压缩,或“垃圾收集(garbage collection)”处理。后台处理选择用于压缩的一个或多个存储块(被称为源块),将有效数据从所选择的源块复制到一个或更多其他块(被称为目标块)的其他存储位置,然后擦除源块。然后擦除块用作后续编程。
在一些实施例中,作为压缩处理的一部分,SSD控制器36(例如,处理器48和/或单元56)将属于快速访问类的数据保存在LSB页面中,将属于正常访问类的数据保存在MSB页面中。例如,当使用如上所述的读计数器,处理器48初始重置读计数器。数据读出期间,处理器48递增各种LBAs的读计数器。
当完成块压缩的时候(当将页面从一个或多个源块复制到一个或多个目标块的时候),处理器48复制属于具有高计数器值的LBAs的页面到目标块中的LSB页面,复制属于具有低计数器值的LBAs到目标块中的MSB页面。在复制页面之后,可以重置读计数器。
此外,在一些实施例中,处理器48分配相应的读出等级给每个块,这些等级表示:
■读取块中数据使用的频率(例如频繁地/很少地);和/或
■到块的LSB和MSB页面的数据分发和分类标准之间的匹配度(例如,在什么程度上,块的LSB页面真正在保存频繁被读取的数据以及MSB页面真正在保存很少被读取的数据)。
可以定义块的读出等级,例如,正如来自块的LSB页面的读出操作总数,减去来自块的MSB页面的读出操作总数。作为替换,可以使用满足上述准则的任何其他适当的读出等级定义。在此实施例中,当选择候选块用于压缩时,处理器48分配具有低等级高优先级的块。基于等级的标准可以结合其他选择标准,例如“洞(holes)”(无效数据区域)的数目或块中无效页面的数目。
图3是示意性地示出了按照本发明实施例的用于存储块压缩的方法流程图。该方法始于SSD控制器36的处理器48选择用于压缩的源块,在候选选择步骤90。处理器48可选择源块,例如,如上文所解释的那样,基于分配给该块的读出等级。
处理器48从所选择的源块复制有效页面到目标块。在LSB复制步骤94,为了减少读出等待时间,处理器复制属于快速访问类的源块的页面到目标块的LSB页面。在MSB复制步骤98,属于正常访问类的源块的页面被复制到目标块中的MSB页面。然后擦除该源块,在擦除步骤102。
上面的例子指的是将数据从单个源块复制到单个目标块的压缩处理。然而,一般地,压缩处理可将数据从任何期望数目的源块联合地复制到任何期望数目的目标块。增加源块数目可增加压缩效率。
例如,考虑一对块,一个块包括高比例的频繁被读取的页面,另一块仅仅包括小比例的频繁被读取的页面。联合地压缩两个块通常比独立地压缩每个块显著地更有效。这种联合的压缩处理通常会将频繁被读取的页面(大都来自第一源块)保存到一个或多个目标块的LSB页面中,将很少被读取的页面(大都来自第二源块)保存在一个或多个目标块的MSB页面中。
尽管此处所述的实施例主要提出将快速访问数据保存在LSB页面中和将正常访问数据保存在MSB页面中,此处所述的方法和系统还可以用于其他存储配置。例如,快速访问存储配置可包括将数据(例如,LBA)保存在少数物理页面(例如,单个物理页面)中,正常访问存储配置可包括将数据分散到大量物理页面中。
可以理解的是,通过举例引用如上所述的实施例,而本发明不局限于在上文已经具体示出和描述的内容。相反,本发明的范围包括在上文描述的各种特征的组合和子组合,以及当阅读上述描述时本领域技术人员将想起的以及现有技术没有公开的变化和修改。将在本专利申请中通过引用并入的文献作为本申请的组成部分,除了在某种程度上在这些被并入的文献中以与在本说明书中明确地或隐含地被提出的定义冲突的方式定义任何术语的情况以外,仅仅应该考虑在本说明书中的定义。
Claims (25)
1.一种用于数据存储的方法,包括:
提供存储器,该存储器包括多组存储单元并被配置为同时使用具有第一访问时间的第一存储配置保存第一数据和使用具有第二访问时间的第二存储配置保存第二数据,第二访问时间长于第一访问时间,使得每组的每个存储单元保存第一数据的至少一位和第二数据的一个或多个位;
接收用于保存在存储器中的数据项;
将所接收的数据项分类为快速访问类和正常访问类;以及
使用第一存储配置将快速访问类中的数据项保存在存储器中,使用第二存储配置将正常访问类中的数据项保存在存储器中。
2.如权利要求1所述的方法,其中使用第一存储配置保存数据项包括将数据项保存在存储器的最低有效位(Least Significant Bit,LSB)页面中,其中使用第二存储配置保存数据项包括将数据项保存在存储器的最高有效位(MostSignificant Bit,MSB)页面中。
3.如权利要求1或2所述的方法,其中将数据项分类包括将以第一访问频率访问的频繁被访问的数据项分类到快速访问类中,以及将以第二访问频率访问的很少被访问的数据项分类到正常访问类中,第二访问频率小于第一访问频率。
4.如权利要求1或2所述的方法,其中将数据项分类包括将管理数据分类到快速访问类中,以及将用户数据分类到正常访问类中。
5.如权利要求1或2所述的方法,其中将数据项分类包括:将各个被映射到存储器物理页面的第一编号的第一数据项分类到快速访问类中,以及将各个被映射到物理页面的第二编号的第二数据项分类到正常访问类中,第二编号大于第一编号。
6.如权利要求1或2所述的方法,其中将数据项分类包括:应用预定义的固定分类把数据项分为快速访问类和正常访问类。
7.如权利要求1或2所述的方法,其中从主机接收数据项,并且其中将数据项分类包括从主机接收分为快速访问类和正常访问类的数据项分类。
8.如权利要求1或2所述的方法,其中将数据项分类包括:通过监控到数据项的存储器访问操作,自适应地确定分成快速访问类和正常访问类的数据项分类。
9.如权利要求1或2所述的方法,其中保存数据项包括:将属于快速访问类的数据项缓存在第一缓冲器中,将属于正常访问类的数据项缓存在第二缓冲器中,以及分别使用第一存储配置和第二存储配置保存被缓存在第一缓冲器和第二缓冲器中的数据项。
10.如权利要求1或2所述的方法,其中保存数据项包括运行压缩处理,将数据从存储器的一个或多个源块复制到存储器的一个或多个目标块,使得使用第一存储配置将属于快速访问类的数据项保存在目标块中,以及使用第二存储配置将属于正常访问类的数据项保存在目标块中。
11.如权利要求10所述的方法,其中运行压缩处理包括给存储器的多个块分配相应的等级,使得块的等级指示出保存在块中的数据项的访问频率,以及基于等级选择候选块作为源块。
12.如权利要求10所述的方法,其中运行压缩处理包括给存储器的多个块分配相应的等级,使得块的等级指示出分为快速访问类和正常访问类的保存在块中的数据项分类与用于将数据保存在块中的实际存储配置之间的匹配,以及基于等级选择候选块作为源块。
13.一种用于数据存储的设备,包括:
接口,其被耦合用于与存储器进行通信,该存储器包括多组存储单元并被配置为同时使用具有第一访问时间的第一存储配置保存第一数据,以及使用具有第二访问时间的第二存储配置保存第二数据,第二访问时间长于第一访问时间,使得每组的每个存储单元保留第一数据的至少一位和第二数据的一个或多个位;以及
存储电路,其被配置为接收用于保存在存储器中的数据项,将所接收的数据项分类到快速访问类和正常访问类中,使用第一存储配置将快速访问类中的数据项保存在存储器中,使用第二存储配置将正常访问类中的数据项保存在存储器中。
14.如权利要求13所述的设备,其中存储电路被配置为通过将数据项保存在存储器的最低有效位(Least Significant Bit,LSB)页面中使用第一存储配置保存数据项,以及通过将数据项保存在存储器的最高有效位(Most SignificantBit,MSB)页面中使用第二存储配置保存数据项。
15.如权利要求13或14所述的设备,其中存储电路被配置为将以第一访问频率访问的频繁被访问的数据项分类到快速访问类中,以及将以第二访问频率访问的很少被访问的数据项分类到正常访问类中,第二访问频率小于第一访问频率。
16.如权利要求13或14所述的设备,其中存储电路被配置为将管理数据分类到快速访问类中,以及将用户数据分类到正常访问类中。
17.如权利要求13或14所述的设备,其中存储电路被配置为将各个被映射到存储器物理页面的第一编号的第一数据项分类到快速访问类中,以及将各个被映射到物理页面的第二编号的第二数据项分类到正常访问类中,第二编号大于第一编号。
18.如权利要求13或14所述的设备,其中存储电路被配置为应用预定义的固定分类把数据项分成快速访问类和正常访问类。
19.如权利要求13或14所述的设备,其中接口被配置为从主机接收数据项,其中存储电路被配置为从主机接收分成快速访问类和正常访问类的数据项分类。
20.如权利要求13或14所述的设备,其中存储电路被配置为通过监控到数据项的存储器访问操作,自适应地确定分成快速访问类和正常访问类的数据项分类。
21.如权利要求13或14所述的设备,其中存储电路包括第一缓冲器和第二缓冲器,其中存储电路被配置为将属于快速访问类的数据项缓存在第一缓冲器中,将属于正常访问类的数据项缓存在第二缓冲器中,以及分别使用第一存储配置和第二存储配置保存被缓存在第一缓冲器和第二缓冲器中的数据项。
22.如权利要求13或14所述的设备,其中存储电路被配置为运行压缩处理,将数据从存储器的一个或多个源块复制到存储器的一个或多个目标块,使得使用第一存储配置将属于快速访问类的数据项保存在目标块中,以及使用第二存储配置将属于正常访问类的数据项保存在目标块中。
23.如权利要求22所述的设备,其中存储电路被配置为给存储器的多个块分配相应的等级,使得块的等级指示出保存在块中的数据项的访问频率,以及基于等级选择候选块作为源块。
24.如权利要求22所述的设备,其中存储电路被配置为给存储器的多个块分配相应的等级,使得块的等级指示出分为快速访问类和正常访问类的保存在块中的数据项分类与用于将数据保存在块中的实际存储配置之间的匹配,以及基于等级选择候选块作为源块。
25.一种用于数据存储的设备,包括:
存储器,该存储器包括多组存储单元并被配置为同时使用具有第一访问时间的第一存储配置保存第一数据和使用具有第二访问时间的第二存储配置保存第二数据,第二访问时间长于第一访问时间,使得每组的每个存储单元保留第一数据的至少一位和第二数据的一个或多个位;以及
存储电路,其被配置为接收用于保存在存储器中的数据项,将所接收的数据项分类到快速访问类和正常访问类中,使用第一存储配置将快速访问类中的数据项保存在存储器中,使用第二存储配置将正常访问类中的数据项保存在存储器中。
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 |
---|---|
CN103608782A true CN103608782A (zh) | 2014-02-26 |
CN103608782B CN103608782B (zh) | 2016-09-07 |
Family
ID=46178419
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201280023874.8A Active CN103608782B (zh) | 2011-05-15 | 2012-05-13 | Lsb页面和msb页面中的选择性数据存储 |
Country Status (7)
Country | Link |
---|---|
US (2) | US8782370B2 (zh) |
EP (2) | EP2525293B1 (zh) |
JP (1) | JP5907255B2 (zh) |
KR (1) | KR101388410B1 (zh) |
CN (1) | CN103608782B (zh) |
TW (1) | TWI460590B (zh) |
WO (1) | WO2013005118A1 (zh) |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107102816A (zh) * | 2016-02-23 | 2017-08-29 | 爱思开海力士有限公司 | 存储系统及其操作方法 |
CN108170367A (zh) * | 2016-12-07 | 2018-06-15 | 瑞昱半导体股份有限公司 | 内存控制电路及其方法 |
CN109947678A (zh) * | 2019-03-26 | 2019-06-28 | 联想(北京)有限公司 | 一种存储装置、电子设备及数据交互方法 |
CN112106018A (zh) * | 2018-05-09 | 2020-12-18 | 美光科技公司 | 存储器缓冲器管理和旁路 |
WO2021035555A1 (zh) * | 2019-08-27 | 2021-03-04 | 华为技术有限公司 | 一种固态硬盘的数据存储方法、装置及固态硬盘ssd |
WO2021036329A1 (zh) * | 2019-08-28 | 2021-03-04 | 华为技术有限公司 | 一种数据存储方法及装置 |
CN114253464A (zh) * | 2020-09-24 | 2022-03-29 | 爱德斯托科技有限公司 | 控制读取请求的方法和具有主机装置的存储器控制器 |
US11355169B2 (en) | 2018-05-09 | 2022-06-07 | Micron Technology, Inc. | Indicating latency associated with a memory request in a system |
US11604606B2 (en) | 2018-05-09 | 2023-03-14 | Micron Technology, Inc. | Prefetch signaling in memory system or subsystem |
US11822477B2 (en) | 2018-05-09 | 2023-11-21 | Micron Technology, Inc. | Prefetch management for memory |
Families Citing this family (39)
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 |
US9330015B2 (en) * | 2014-06-11 | 2016-05-03 | Vmware, Inc. | Identification of low-activity large memory pages |
US9501422B2 (en) | 2014-06-11 | 2016-11-22 | 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 |
ES2691484T3 (es) * | 2014-12-05 | 2018-11-27 | Huawei Technologies Co. Ltd. | Controlador, dispositivo de memoria flash, método para identificar la estabilidad de bloques de datos y método para almacenar datos en un dispositivo de memoria flash |
CN104503707B (zh) | 2014-12-24 | 2018-03-06 | 华为技术有限公司 | 读取数据的方法以及装置 |
JP6320322B2 (ja) * | 2014-12-29 | 2018-05-09 | 東芝メモリ株式会社 | キャッシュメモリ装置及びプログラム |
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 |
KR102553170B1 (ko) * | 2016-06-08 | 2023-07-10 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 메모리 시스템의 동작 방법 |
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 |
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 |
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 |
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 |
US9672905B1 (en) | 2016-07-22 | 2017-06-06 | Pure Storage, Inc. | Optimize data protection layouts based on distributed flash wear leveling |
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 |
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 |
KR20200123898A (ko) | 2019-04-22 | 2020-11-02 | 삼성전자주식회사 | 상이한 동작 모드들에서 동작하는 뱅크들을 포함하는 불휘발성 메모리 장치, 메모리 컨트롤러의 동작 방법, 및 불휘발성 메모리 장치 및 메모리 컨트롤러를 포함하는 저장 장치 |
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 |
CN112860185B (zh) * | 2021-01-29 | 2022-11-25 | 西藏宁算科技集团有限公司 | 基于lru算法的高可用缓存方法、存储装置以及电子设备 |
JP2022143278A (ja) * | 2021-03-17 | 2022-10-03 | キオクシア株式会社 | メモリシステム |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080291731A1 (en) * | 2007-05-21 | 2008-11-27 | Sandisk Il Ltd. | Methods For Optimizing Page Selection In Flash-Memory Devices |
CN101369451A (zh) * | 2007-08-14 | 2009-02-18 | 三星电子株式会社 | 固态存储器、包含其的计算机系统和操作其的方法 |
US20100169602A1 (en) * | 2008-12-29 | 2010-07-01 | Jared E Hulbert | Method and Apparatus for Efficient Memory Placement |
US20110029718A1 (en) * | 2009-07-31 | 2011-02-03 | Frickey Iii Robert E | Method and system to improve the performance of a multi-level cell (mlc) nand flash memory |
Family Cites Families (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2004025476A1 (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 | 삼성전자주식회사 | 멀티 레벨 셀을 포함하는 플래시 메모리 장치 및 그것의데이터 쓰기 방법 |
JP5224706B2 (ja) * | 2007-03-23 | 2013-07-03 | キヤノン株式会社 | 記憶装置及び記憶装置の制御方法 |
TWI375953B (en) * | 2008-02-21 | 2012-11-01 | Phison Electronics Corp | Data reading method for flash memory, controller and system therof |
US8706951B2 (en) * | 2008-07-18 | 2014-04-22 | Marvell World Trade Ltd. | Selectively accessing faster or slower multi-level cell memory |
JP4461187B1 (ja) * | 2008-12-24 | 2010-05-12 | 株式会社東芝 | 不揮発性半導体メモリドライブ装置、情報処理装置および不揮発性半導体メモリドライブ装置における記憶領域の管理方法 |
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 | 快閃記憶體邏輯區塊管理方法及其控制電路與儲存系統 |
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 |
-
2012
- 2012-03-22 US US13/426,799 patent/US8782370B2/en active Active
- 2012-05-13 WO PCT/IB2012/052376 patent/WO2013005118A1/en active Application Filing
- 2012-05-13 CN CN201280023874.8A patent/CN103608782B/zh active Active
- 2012-05-13 JP JP2014510916A patent/JP5907255B2/ja active Active
- 2012-05-14 EP EP12167837.9A patent/EP2525293B1/en active Active
- 2012-05-14 EP EP20162061.4A patent/EP3686742A1/en active Pending
- 2012-05-15 KR KR1020120051422A patent/KR101388410B1/ko active IP Right Grant
- 2012-05-15 TW TW101117261A patent/TWI460590B/zh active
-
2014
- 2014-07-14 US US14/330,234 patent/US8914600B2/en active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080291731A1 (en) * | 2007-05-21 | 2008-11-27 | Sandisk Il Ltd. | Methods For Optimizing Page Selection In Flash-Memory Devices |
CN101369451A (zh) * | 2007-08-14 | 2009-02-18 | 三星电子株式会社 | 固态存储器、包含其的计算机系统和操作其的方法 |
US20100169602A1 (en) * | 2008-12-29 | 2010-07-01 | Jared E Hulbert | Method and Apparatus for Efficient Memory Placement |
US20110029718A1 (en) * | 2009-07-31 | 2011-02-03 | Frickey Iii Robert E | Method and system to improve the performance of a multi-level cell (mlc) nand flash memory |
Cited By (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107102816A (zh) * | 2016-02-23 | 2017-08-29 | 爱思开海力士有限公司 | 存储系统及其操作方法 |
CN107102816B (zh) * | 2016-02-23 | 2020-08-11 | 爱思开海力士有限公司 | 存储系统及其操作方法 |
CN108170367A (zh) * | 2016-12-07 | 2018-06-15 | 瑞昱半导体股份有限公司 | 内存控制电路及其方法 |
CN108170367B (zh) * | 2016-12-07 | 2021-04-20 | 瑞昱半导体股份有限公司 | 内存控制电路及其方法 |
CN112106018A (zh) * | 2018-05-09 | 2020-12-18 | 美光科技公司 | 存储器缓冲器管理和旁路 |
US11340830B2 (en) | 2018-05-09 | 2022-05-24 | Micron Technology, Inc. | Memory buffer management and bypass |
US11355169B2 (en) | 2018-05-09 | 2022-06-07 | Micron Technology, Inc. | Indicating latency associated with a memory request in a system |
US11604606B2 (en) | 2018-05-09 | 2023-03-14 | Micron Technology, Inc. | Prefetch signaling in memory system or subsystem |
US11822477B2 (en) | 2018-05-09 | 2023-11-21 | Micron Technology, Inc. | Prefetch management for memory |
US11915788B2 (en) | 2018-05-09 | 2024-02-27 | Micron Technology, Inc. | Indication in memory system or sub-system of latency associated with performing an access command |
CN109947678A (zh) * | 2019-03-26 | 2019-06-28 | 联想(北京)有限公司 | 一种存储装置、电子设备及数据交互方法 |
WO2021035555A1 (zh) * | 2019-08-27 | 2021-03-04 | 华为技术有限公司 | 一种固态硬盘的数据存储方法、装置及固态硬盘ssd |
WO2021036329A1 (zh) * | 2019-08-28 | 2021-03-04 | 华为技术有限公司 | 一种数据存储方法及装置 |
CN112445412A (zh) * | 2019-08-28 | 2021-03-05 | 华为技术有限公司 | 一种数据存储方法及装置 |
CN114253464A (zh) * | 2020-09-24 | 2022-03-29 | 爱德斯托科技有限公司 | 控制读取请求的方法和具有主机装置的存储器控制器 |
CN114253464B (zh) * | 2020-09-24 | 2023-12-08 | 爱德斯托科技有限公司 | 控制读取请求的方法和具有主机装置的存储器控制器 |
Also Published As
Publication number | Publication date |
---|---|
US8914600B2 (en) | 2014-12-16 |
KR20120127698A (ko) | 2012-11-23 |
JP5907255B2 (ja) | 2016-04-26 |
US8782370B2 (en) | 2014-07-15 |
CN103608782B (zh) | 2016-09-07 |
EP2525293A1 (en) | 2012-11-21 |
TW201248405A (en) | 2012-12-01 |
US20140325172A1 (en) | 2014-10-30 |
EP3686742A1 (en) | 2020-07-29 |
US20120290768A1 (en) | 2012-11-15 |
KR101388410B1 (ko) | 2014-04-22 |
WO2013005118A1 (en) | 2013-01-10 |
JP2014513848A (ja) | 2014-06-05 |
EP2525293B1 (en) | 2020-03-11 |
TWI460590B (zh) | 2014-11-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103608782B (zh) | Lsb页面和msb页面中的选择性数据存储 | |
US11467955B2 (en) | Memory system and method for controlling nonvolatile memory | |
US11669444B2 (en) | Computing system and method for controlling storage device | |
US10241909B2 (en) | Non-volatile memory device | |
US9189389B2 (en) | Memory controller and memory system | |
US8438361B2 (en) | Logical block storage in a storage device | |
US11797436B2 (en) | Memory system and method for controlling nonvolatile memory | |
US20130073798A1 (en) | Flash memory device and data management method | |
US8954656B2 (en) | Method and system for reducing mapping table size in a storage device | |
CN103688247A (zh) | 混合slc/mlc存储器中的块管理方案 | |
CN116795735B (zh) | 固态硬盘空间分配方法、装置、介质及系统 | |
CN113986773A (zh) | 基于固态硬盘的写放大优化方法、装置及计算机设备 | |
CN105630697B (zh) | 一种利用mram存储小文件的存储装置 | |
US20220300185A1 (en) | Storage device, storage system, and control method | |
CN107688435B (zh) | Io流调节方法与装置 | |
CN107766262B (zh) | 调节并发写命令数量的方法与装置 | |
US11797183B1 (en) | Host assisted application grouping for efficient utilization of device resources | |
US20240061585A1 (en) | Memory command assignment based on command processor workload | |
CN114238158A (zh) | 数据存储管理方法和存储装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |