CN104956313A - 用于基于数据分类将数据存储至固态存储设备的方法和装置 - Google Patents

用于基于数据分类将数据存储至固态存储设备的方法和装置 Download PDF

Info

Publication number
CN104956313A
CN104956313A CN201480006405.4A CN201480006405A CN104956313A CN 104956313 A CN104956313 A CN 104956313A CN 201480006405 A CN201480006405 A CN 201480006405A CN 104956313 A CN104956313 A CN 104956313A
Authority
CN
China
Prior art keywords
data
memory device
stored
request
address
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
CN201480006405.4A
Other languages
English (en)
Other versions
CN104956313B (zh
Inventor
A·P·戈利
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.)
Kaiwei International Co
Marvell International Ltd
Marvell Asia Pte Ltd
Original Assignee
Mawier International Trade Co Ltd
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 Mawier International Trade Co Ltd filed Critical Mawier International Trade Co Ltd
Publication of CN104956313A publication Critical patent/CN104956313A/zh
Application granted granted Critical
Publication of CN104956313B publication Critical patent/CN104956313B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • 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/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • 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
    • 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
    • G06F3/0613Improving I/O performance in relation to throughput
    • 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/0616Improving the reliability of storage systems in relation to life time, e.g. increasing Mean Time Between Failures [MTBF]
    • 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/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0656Data buffering arrangements
    • 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
    • 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/0683Plurality of storage devices
    • G06F3/0688Non-volatile semiconductor memory arrays

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)
  • Debugging And Monitoring (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

提供了用于将数据存储至非易失性存储设备的系统和方法。接收对于将数据存储至存储设备的给定地址的请求,该给定地址对应于存储设备的多个区域中的一个区域。与存储设备相关联的区域分类映射将分类与多个区域中的每个区域相关联。基于区域分类映射来确定哪个分类与多个区域中的对应于给定地址的一个区域相关联。响应于确定多个区域中的一个区域与第一分类相关联,将数据存储至给定地址。响应于确定多个区域中的一个区域与第二分类相关联,将数据存储至备选位置。

Description

用于基于数据分类将数据存储至固态存储设备的方法和装置
相关申请的交叉引用
本公开要求于2013年1月29日提交的美国临时申请第61/757824号的权益,其通过引用以其整体被并入于此。
技术领域
本公开总体上涉及固态存储设备系统和方法,并且尤其涉及基于数据分类将信息有效地存储在固态存储设备中。
背景技术
在此所提供的背景描述是为了总体上呈现本公开的上下文。发明人在此的工作,就该工作在本背景技术部分中被描述的程度以及在提交时可能未以其它方式作为现有技术的方面,既非明确地也非隐含地被承认为针对本公开的现有技术。
典型的固态存储设备(例如,NAND快闪存储设备)通过在写入新的信息之前擦除之前所存储的信息来操作。这被称作“垃圾收集”。由于这种类型的操作,向相同范围的存储位置存储数据导致诸如延时之类的低效率。因此,这些典型设备低效地处理针对固态存储设备中的相同范围的位置的连续随机写入。
发明内容
提供了用于将数据存储至非易失性存储设备的系统和方法。在一些实施例中,接收对于将数据存储至存储设备的给定地址的请求,该给定地址对应于存储设备的多个区域中的一个区域。与存储设备相关联的区域分类映射将分类与多个区域中的每个区域相关联。基于区域分类映射来确定哪个分类与多个区域中的对应于给定地址的一个区域相关联。响应于确定多个区域中的一个区域与第一分类相关联,将数据存储至给定地址。响应于确定多个区域中的一个区域与第二分类相关联,将数据存储至备选位置。在一些实施例中,该备选位置是临时存储位置,该临时存储位置与存储设备中的与给定地址不同的地址相关联。
在一些实施例中,基于在存储设备上执行的先前存储操作来生成区域分类映射。在一些实施例中,区域分类映射由从其接收到对于存储数据的请求的应用生成。
在一些实施例中,当对于将数据存储至对应于该给定区域的地址的请求的频率小于阈值时或者当依次接收到对于将数据存储至对应于该给定区域的地址的阈值数量的请求时,存储设备的多个区域中的给定区域与第一分类相关联。在一些实施例中,当对于将数据存储至对应于该给定区域的地址的请求的频率大于阈值时或者当以任意顺序接收到对于将数据存储至对应于该给定区域的地址的阈值数量的请求时,存储设备的多个区域中的给定区域与第二分类相关联。
在一些实施例中,数据被存储在存储设备的给定地址处。数据被存储至缓冲器中的临时存储位置并且该数据从缓冲器被传输至存储设备。
在一些实施例中,存储数据的请求被存储在日志中。日志包括之前接收到的对于将数据存储至存储设备中的与第二分类相关联的给定区域的多个请求。存储数据的请求根据与每个请求相关联的地址在日志中被顺序地排序。多个请求中的对于将数据存储至相同的地址的数个请求被合并为对于存储数据的单个请求。日志中的经排序和合并的请求被存储至存储设备的与每个请求相关联的地址处。在一些实施例中,当接收到对于将数据存储至存储设备中的与第二分类相关联的给定区域的阈值数量的请求后,该排序和合并被执行。在一些实施例中,非易失性存储设备是固态存储设备并且日志在该存储设备的专用区域中。
附图说明
一种或多种实施方式的细节在以下的附图和描述中被阐述。其它特征以及各种优势在考虑了以下结合附图的详细描述时将是更为显而易见的,在附图中:
图1是根据本公开的实施例的说明性存储设备系统的示图;以及
图2图示了根据本公开的实施例的用于基于数据分类将信息存储在固态存储设备中的过程。
具体实施方式
本公开总体上涉及基于数据分类将信息有效地存储在固态存储设备中。出于说明的目的,本公开在固态存储设备(例如,快闪存储设备或基于NAND的存储设备)的上下文中进行描述。然而,应当理解,本公开能够应用于任何其它类型的非易失性存储设备(例如,磁存储设备、ROM、PROM、EPROM、EEPROM、nvSRAM、FeRAM、MRAM、PRAM、CBRAM、SONOS、RRAM、NRAM、Millipede存储器或者全息存储设备)。
图1是根据本公开的实施例的说明性存储设备系统100的示图。系统100包括控制电路110、固态存储设备120和日志130。在一些实施方式中,日志130是存储设备120的保留区域。例如,日志130可以对应于存储设备120的预定数量的存储位置(例如,1G字节),这些存储位置仅对于控制电路110可见并且对于用户或外部应用不可见。在一些实施方式中,日志130由与存储设备120分离的易失性或非易失性存储设备(例如,NVRAM、DRAM、SDRAM、SRAM、T-RAM、Z-RAM、TTRAM或者它们的任意组合)来实施。例如,日志130可以被包括为控制电路110的一部分和/或可以被耦合至控制电路110和存储设备120。
控制电路110可以包括区域访问监视电路112、区域特性(分类)映射114、重定向器电路116、基于日志的存储控制电路117以及直接地址存储控制电路118。在一些实施例中,控制电路110可以从另一系统组件(未示出)接收数据140。例如,数据140可以由应用或另一存储设备(例如,DRAM)提供。数据140可以包括用户数据部分和地址部分。在一些实施方式中,数据140可以包括指示用户数据为何种类型的分类的分类部分。具体地,指示控制电路110存储数据140的应用可以指示该数据的分类。例如,数据可以为第一分类、第二分类或第三分类。
“第一分类”可以标识被写入到随机或非顺序存储位置(例如,地址)的数据集合或者与被写入到随机或非顺序存储位置(例如,地址)的数据集合相关联,其中这样的存储位置被频繁地访问(例如,向这些位置存储数据的请求的数量超过了预定阈值)。“第二分类”可以标识被写入到顺序存储位置(例如,地址)的数据集合或者与被写入到顺序存储位置(例如,地址)的数据集合相关联,其中这样的存储位置被频繁地访问(例如,向这些位置存储数据的请求的数量超过了预定阈值)。“第三分类”可以标识被写入到随机或非顺序存储位置(例如,地址)的数据集合或者与被写入到随机或非顺序存储位置(例如,地址)的数据集合相关联,其中这样的存储位置被不频繁地访问(例如,向这些位置存储数据的请求的数量未超过预定阈值)。
控制电路110可以处理数据140以标识该数据的分类。例如,区域访问监视电路112可以检索数据140的地址部分并且确定该地址部分对应于第一分类、第二分类还是第三分类。区域访问监视电路112可以基于数据140的地址部分的分类来确定数据140的地址部分和用户数据部分应当被高速缓存以便后续存储至存储设备120(基于日志的存储)还是数据140的用户数据部分应当被直接地存储至存储设备120的由数据140的地址部分指定的地址处(直接映射存储)。例如,被确定为具有第一分类的数据140可以被选择用于基于日志的存储,而被确定为具有第二分类或第三分类的数据140可以被选择用于直接映射存储。
在一些实施方式中,区域访问监视电路112可以基于由数据140指示的分类来确定地址部分的分类。在一些实施方式中,区域访问监视电路112可以利用将数据140的地址部分与区域特性映射114进行交叉对照以确定数据140是与第一分类、第二分类还是第三分类相关联。区域特性映射114可以是将存储设备120的地址或存储位置的集合映射至不同分类的数据库。在一些实施方式中,区域特性映射114可以由应用生成并更新。具体地,将在存储设备120上执行各种读/写操作的应用可以利用指示针对存储设备120的各个地址(或地址区域)的分类的信息对区域特性映射114进行编程或配置。在一些实施方式中,区域特性映射114基于与数据140一起被接收的地址的历史的、统计的或者正在进行的分析而被更新。在这样的情况下,区域访问监视电路112对地址进行分析并且对存储在区域特性映射114中的地址信息执行任意更新。
被高速缓存以便后续存储(被选择用于基于日志的存储)的数据被存储至日志130。在预定数量的数据140被存储至日志130之后或者在预定时间段(例如,满足冲刷条件)之后,存储在日志130中的条目(各自包括各种地址和数据部分)在随后被存储或被冲刷至存储设备120之前被合并及排序。日志130的操作在下文中更为详细地进行描述。被直接存储至存储设备120(被选择用于直接映射存储)的数据被直接路由至存储设备120(或者通过缓冲器(未示出))并且被存储至由数据140的地址部分指定的地址。
在一些实施例中,区域访问监视电路112可以向重定向器电路116指示该数据被选择用于基于日志的存储还是直接映射存储。基于从区域访问监视电路112接收到的指示,重定向器电路116将数据140发送至基于日志的存储控制电路117或直接地址存储控制118以便被写入到存储设备120。具体地,被选择用于基于日志的存储的数据可以被重定向器电路116路由至基于日志的存储控制电路117。备选地,被选择用于直接映射存储的数据可以被重定向器电路116路由至直接地址存储控制118。
基于日志的存储控制电路117可以接收数据140并且将该数据存储至日志130。具体地,基于日志的存储控制电路117可以将数据140的地址部分和用户数据部分存储至日志130中的给定条目。这样,日志130可以保存数据140的多个条目,并且具体地,多个地址和用户数据部分可以被保存在日志130的不同条目中。基于日志的存储控制电路117可以对存储在日志130中的数据进行处理以对该数据进行排序和合并以便随后将日志130中的数据写入到存储设备120。基于日志的存储控制电路117可以在满足条件(例如,冲刷条件)时向存储设备120传输存储在日志130中的数据。为了向存储设备120传输存储在日志130中的数据,基于日志的存储控制电路117可以针对日志130中的每个条目将给定条目中的数据存储至存储设备120的由该条目中指定的地址所标识的位置。在一些实施方式中,使得基于日志的存储控制电路117将数据从日志130传输至存储设备120的条件可以包括预定数量的条目(对应于针对将数据写入存储设备120的给定位置的不同请求)已经被创建并且被存储到日志130和/或预定时间段的流逝。
在一些实施例中,当冲刷条件被满足或者处于正在进行的连续方式时,基于日志的存储控制电路117可以分析存储在日志130中的每个条目的地址。基于日志的存储控制电路117可以根据存储在条目中的地址的升序或降序对日志130中的条目进行排序。这样,当日志130中的条目的数据部分随后被传输或冲刷至存储设备120时,该数据以顺序方式被写入到存储设备120(例如,数据按照顺序被写入已经在日志130中被排序的地址块)。
在一些实施方式中,基于日志的存储控制电路117可以删减或合并日志130中的对应于存储在日志130的条目中的重复的或相同的地址的条目。这样的删减或合并减少了在数据后续被传输或冲刷至存储设备120时在存储设备120上执行的写入操作的数量。具体地,基于日志的存储控制电路117可以标识被存储在日志130的条目中的相同的地址。基于日志的存储控制电路117可以仅保留具有重复地址的最新条目(例如,日志130中最后写入的条目)。具体地,基于日志的存储控制电路117可以删除在具有重复地址的最新条目之前的具有重复地址的每个条目。基于日志的存储控制电路117可以以任意给定顺序来执行排序和合并。具体地,基于日志的存储控制电路117可以首先合并日志130中的条目并且然后对其进行排序。备选地,基于日志的存储控制电路117可以首先对日志130中的条目进行排序并且然后对其进行合并。
如以上所讨论的,区域特性映射114将存储设备120的地址区域映射至不同分类。在一些实施方式中,在每次接收到对于存储或读取数据的新的请求时或者在接收到对于存储或读取数据的预定数量的请求之后,存储在区域特性映射114中的信息和分类可以由区域访问监视电路112生成、保存和更新。向给定地址区域(例如,给定的1G字节区域)指派的分类可以取决于针对该区域的访问频率和访问类型。
为了生成存储在区域特性映射114中的区域分类信息,区域访问监视电路112可以根据访问类型和/或温度来对存储设备120的所有或部分地址空间的分段进行分类。区域访问监视电路112可以将存储设备120的地址空间划分为相等或不相等大小的多个分段(例如,1G字节的分段)。针对每个分段,区域访问监视电路112可以保存或存储最后访问地址(LBA)(例如,由针对给定分段内的地址的之前的读取或写入请求指定的地址)、最后访问大小(例如,由针对最后访问地址读/写数据的请求覆盖的全范围的地址)、总访问数量、连续访问数量、随机访问数量和访问类型。当接收到针对给定分段内的地址的读/写请求时,区域访问监视电路112可以确定地址是否顺序地跟在由之前的针对相同分段读取或写入数据的请求指定的地址之后。为了进行该确定,区域访问监视电路112可以确定由针对该分段读取或写入数据的当前请求指定的地址是否是遵循由之前的请求指定的地址加上最后访问大小(例如,被写入到之前地址的数据量)的值的下一相邻地址。具体地,之前存储的地址可以指示由针对该分段读取或写入数据的之前的请求覆盖的地址范围的起始点,并且数据大小可以指示该地址范围的结束点。因此,为了确定针对该分段内的地址读取或写入数据的当前请求是否顺序地跟随自之前请求,区域访问监视电路112必须要考虑由之前请求覆盖的整个地址空间。
响应于确定读/写请求对其请求访问的当前地址顺序地跟在由针对相同分段读取或写入数据的之前的请求指定的地址之后,区域访问监视电路112可以增大对应于连续访问数量的值。备选地,响应于确定读/写请求对其请求访问的当前地址并未顺序地跟在由针对相同分段读取或写入数据的之前的请求指定的地址之后,区域访问监视电路112可以增大对应于随机访问数量的值。
在针对给定分段内的地址读/写信息的每个请求之后,区域访问监视电路112可以增大总访问数量的值。当给定分段的总访问数量的值超过预定阈值时,区域访问监视电路112可以向该分段指派访问类型。为了向分段指派访问类型,可以将总访问数量与随机访问数量和/或连续访问数量进行比较。在一些实施方式中,当给定分段的连续访问数量与总访问数量的比值大于该给定分段的随机访问数量与总访问数量的比值时,该分段可以被指派为随机访问类型的分段。具体地,如果在给定数量的访问之后针对分段的大多数访问是随机的,则该分段可以被指派为随机访问类型的分段。备选地,如果在给定数量的访问之后针对分段的大多数访问是连续的,则该分段可以被指派为连续访问类型的分段。
在一些实施例中,区域访问监视电路112也可以或者备选地根据温度来对分段进行分类。应当理解,术语“温度”并非是该术语的常规使用,如在此所使用的,术语温度指示数据访问频率。针对每个分段,区域访问监视电路112可以保存或存储最后访问时间值、温度值、数据在高速缓存日志中的标志、以及直接映射标志。具体地,在接收到针对分段内的地址读/写数据的请求时,可以更新最后访问时间值以反映当前时间。如果针对相同分段内的地址读/写数据的下一请求处于最后访问时间值之后的阈值时间段内,则温度的值可以被增大。备选地,如果针对相同分段内的地址读/写数据的下一请求超出最后访问时间数值之后的阈值时间段,则温度的值可以被减小。在一些实施方式中,当区域访问监视电路112选择接收到的数据用于基于日志的存储时,区域访问监视电路112可以针对对应于被选择用于基于日志的存储的地址的分段将数据在高速缓存日志中的标志设置为真并且将直接映射标志设置为假。备选地,当区域访问监视电路112选择接收到的数据用于基于直接映射的存储时,区域访问监视电路112可以针对对应于被选择用于基于直接映射的存储的地址的分段将数据在高速缓存日志中的标志设置为假并且将直接映射标志设置为真。
在一些实施例中,无论何时冲刷条件被满足并且数据从日志130被传输至存储设备120,针对其中数据在高速缓存日志中的标志被设置为真的每个区域的温度值可以被增加。备选地,无论何时冲刷条件被满足并且数据从日志130被传输至存储设备120,针对其中直接映射标志被设置为真的每个区域的温度值可以被减小。这导致之前被标识为具有高温度值的分段在针对那些分段的访问变得不太频繁或者在类型上较不连续时使其温度随时间减小某个数量。
区域访问监视电路112可以使用关于每个分段的访问类型和温度而保存并更新的信息来向在区域特性映射114中标识的区域设置分类。区域特性映射114中标识的每个区域可以标识区域访问监视电路112已经为其保存了信息的一个或多个分段。例如,区域访问监视电路112可以处理针对第一分段而存储的信息以确定该分段的访问类型和温度值。当访问类型被确定为是连续的并且温度值高于阈值或低于阈值时,区域访问监视电路112可以将第一分段分类为第二分类(例如,使得向该分段内的地址写入数据的请求将以直接映射存储的方式被执行的分类)。具体地,当访问类型被确定为是连续的时,区域访问监视电路112无论分段的温度值如何都可以将该分段分类为第二分类。
区域访问监视电路112可以处理针对与第一分段相邻的第二分段而存储的信息。当访问类型被确定为是连续的并且温度值高于针对第二分段的阈值或低于针对第二分段的阈值时,区域访问监视电路112也可以将第二分段分类为第二分类。由于第一分段和第二分段具有相同的分类(例如,第二分类),所以区域访问监视电路112可以将这两个分段组合为由区域特性映射114标识的相同区域。因此,由区域特性映射114标识的第一区域可以对应于跨越第一分段和第二分段并且与第二分类相关联的地址空间。随请求被接收的要被存储至由第一区域定义的地址空间内的地址的任意数据可以被选择用于直接映射存储,因为其具有第二分类。
区域访问监视电路112可以处理针对每个分段而存储的信息。当访问类型被确定为是随机的并且温度值低于针对给定分段的阈值时,区域访问监视电路112可以将该给定分段分类为第三分类(例如,使得向该分段内的地址写入数据的请求以直接映射存储的方式被执行的分类)。当访问类型被确定为是随机的并且温度值高于针对给定分段的阈值时,区域访问监视电路112可以将该给定分段分类为第一分类(例如,使得向该分段内的地址写入数据的请求以基于日志存储的方式被执行的分类)。当两个或更多相邻分段被指派了相同的分类时,区域访问监视电路112可以将两个或更多分段组合为跨越该两个或更多分段的地址空间的区域,并且针对跨越该两个或更多分段的地址空间的区域将它们共同的分类存储在区域特性映射114中。
在一些实施方式中,基于日志的存储控制电路117可以保存查找表,该查找表指示不同数据被存储在日志130中的何处。具体地,该查找表可以标识针对存储在日志130的条目中的每个地址的日志存储位置。例如,之前接收到的向存储设备120的地址5写入数据的请求可以(连同数据和地址一起)被存储在日志130中的位置3中(例如,因为该地址被选择用于基于日志的存储)。因此,当接收到从存储设备120的地址5读取信息的后续请求时,查找表可以被交叉对照以确定与所请求的地址相关联的条目是否存在于日志130中。在这样的情况下,查找表可以指示数据被存储在日志130的位置3中。使用该查找表中的信息,区域访问监视电路112从日志130的位置3而不是存储设备120的地址5取回该数据并且向请求者返回取回的数据。特别地,当接收到从存储设备120读取给定地址的请求时,区域访问监视电路112首先检查所请求的地址的数据是否仍然在日志130中。具体地,冲刷条件可能尚未被满足并且因此给定地址的数据可能被存储在日志130中而不是存储设备120的相对应地址中。因此,如果读取该地址的请求被直接地路由至存储设备120,将会得到错误的数据。查找表可以由区域访问监视电路112检查以确定所请求的地址的数据是否具有日志130中的条目。当所请求的地址具有日志130中的条目时,查找表返回所请求的数据的在日志130内的位置。当所请求的地址不具有日志130中的条目时,则在查找表中没有提供条目并且因此直接从存储设备120的所请求的地址取回数据。
在一些情况下,过去可能已经接收到向对应于读取请求的地址(所请求的地址)的多次写入。因此,可以在日志130中创建多个条目并且因此可以在查找表中针对所请求的地址标识多个日志位置。在这样的情况下,对应于所请求的地址的最后写入的数据可以从日志130中的对应位置而不是存储设备120的所请求的地址被取回。
图2图示了根据本公开的实施例的用于基于数据分类将信息存储在固态存储设备中的过程200。在210,接收了将数据存储在存储设备的给定地址处的请求,该给定地址对应于该存储设备的多个区域中的一个区域。与存储设备相关联的区域分类映射可以将分类与该存储设备的多个区域中的每个区域相关联。例如,数据140可以由控制电路110接收(图1)。数据140可以包括地址部分和数据部分。该地址部分可以对应于存储设备的被区域特性映射114分类的给定区域。
在220,基于该区域分类映射确定与该多个区域中对应于该给定地址的一个区域相关联的分类。例如,区域访问监视电路112可以将数据140的地址部分与区域特性映射114进行交叉对照以确定与对应于该地址部分的区域相关联的分类。
在230,响应于确定多个区域中的一个区域与第一分类相关联,将数据存储至存储设备的给定地址处。例如,当地址被确定为是第二分类时(例如,对应于被写入到连续地址块的数据的地址),数据被路由至直接地址存储控制118以便被写入到存储设备120的由数据140的地址部分指定的地址。
在240,响应于确定多个区域中的一个区域与第二分类相关联,将数据存储至备选位置。例如,当地址被确定为是第一分类时(例如,对应于被写入随机地址块的数据的地址),数据被路由至基于日志的存储控制117以便被写入日志130而不是存储设备120的由数据140的地址部分指定的地址。
上文描述了用于基于数据分类将信息存储在固态存储设备中的方法和装置。出于说明而非限制的目的呈现了本公开的上述实施例。此外,本公开并不局限于特定实施方式。例如,以上描述的方法的一个或多个步骤可以以不同顺序(或并行地)被执行并且仍然实现所期望的结果。此外,本公开可以被实施在硬件中,诸如在专用集成电路(ASIC)上或在现场可编程门阵列(FPGA)上。本公开还可以被实施在软件中。

Claims (20)

1.一种用于将数据存储至非易失性存储设备的方法,所述方法包括:
接收对于将数据存储至所述存储设备的给定地址处的请求,所述给定地址对应于所述存储设备的多个区域中的一个区域,其中与所述存储设备相关联的区域分类映射将分类与所述存储设备的所述多个区域中的每个区域相关联;
基于所述区域分类映射来确定哪个分类与所述多个区域中的对应于所述给定地址的所述一个区域相关联;
响应于确定所述多个区域中的所述一个区域与第一分类相关联,将所述数据存储至所述存储设备的所述给定地址处;以及
响应于确定所述多个区域中的所述一个区域与第二分类相关联,将所述数据存储至备选位置。
2.根据权利要求1所述的方法,其中所述备选位置是临时存储位置,所述临时存储位置与所述存储设备的与所述给定地址不同的地址相关联。
3.根据权利要求1所述的方法,进一步包括基于在所述存储设备上执行的先前存储操作来生成所述区域分类映射。
4.根据权利要求1所述的方法,其中所述区域分类映射由应用生成,从所述应用接收到对于存储所述数据的所述请求。
5.根据权利要求1所述的方法,其中当对于将数据存储至对应于所述给定区域的地址的请求的频率小于阈值时或者当依次接收到对于将数据存储至对应于所述给定区域的地址的阈值数量的请求时,所述存储设备的所述多个区域中的给定区域与所述第一分类相关联。
6.根据权利要求1所述的方法,其中当对于将数据存储至对应于所述给定区域的地址的请求的频率大于阈值时或者当以任意顺序接收到对于将数据存储至对应于所述给定区域的地址的阈值数量的请求时,所述存储设备的所述多个区域中的给定区域与所述第二分类相关联。
7.根据权利要求1所述的方法,其中将所述数据存储至所述存储设备的所述给定地址处包括:
将所述数据存储至缓冲器中的临时存储位置;以及
从所述缓冲器向所述存储设备传输所述数据。
8.根据权利要求1所述的方法,其中将所述数据存储至备选位置包括:
将对于存储所述数据的所述请求存储在日志中,其中所述日志包括之前接收到的对于将数据存储至所述存储设备中的与所述第二分类相关联的给定区域的多个请求;
根据与每个请求相关联的地址在所述日志中对存储数据的所述请求顺序地排序;
将所述多个请求中的对于将数据存储至相同的地址的数个请求合并为对于存储数据的单个请求;以及
将所述日志中的经排序和合并的所述请求存储至所述存储设备的与所述请求中的每个请求相关联的所述地址处。
9.根据权利要求8所述的方法,其中在接收到对于将数据存储至所述存储设备中的与所述第二分类相关联的所述给定区域的阈值数量的请求之后,所述排序和所述合并被执行。
10.根据权利要求8所述的方法,其中所述非易失性存储设备是固态存储设备并且所述日志在所述存储设备的专用区域中。
11.一种用于将数据存储至非易失性存储设备的系统,所述系统包括:
控制电路,所述控制电路被配置为:
接收对于将数据存储至所述存储设备的给定地址处的请求,所述给定地址对应于所述存储设备的多个区域中的一个区域,其中与所述存储设备相关联的区域分类映射将分类与所述存储设备的所述多个区域中的每个区域相关联;
基于所述区域分类映射来确定哪个分类与所述多个区域中的对应于所述给定地址的所述一个区域相关联;
响应于确定所述多个区域中的所述一个区域与第一分类相关联,将所述数据存储至所述存储设备的所述给定地址处;以及
响应于确定所述多个区域中的所述一个区域与第二分类相关联,将所述数据存储至备选位置。
12.根据权利要求11所述的系统,其中所述备选位置是临时存储位置,所述临时存储位置与所述存储设备的与所述给定地址不同的地址相关联。
13.根据权利要求11所述的系统,其中所述控制电路被进一步配置为基于在所述存储设备上执行的先前存储操作来生成所述区域分类映射。
14.根据权利要求11所述的系统,其中所述区域分类映射由应用生成,从所述应用接收到对于存储所述数据的所述请求。
15.根据权利要求11所述的系统,其中当对于将数据存储至对应于所述给定区域的地址的请求的频率小于阈值时或者当依次接收到对于将数据存储至对应于所述给定区域的地址的阈值数量的请求时,所述存储设备的所述多个区域中的给定区域与所述第一分类相关联。
16.根据权利要求11所述的系统,其中当对于将数据存储至对应于所述给定区域的地址的请求的频率大于阈值时或者当以任意顺序接收到对于将数据存储至对应于所述给定区域的地址的阈值数量的请求时,所述存储设备的所述多个区域中的给定区域与所述第二分类相关联。
17.根据权利要求11所述的系统,其中所述控制电路被进一步配置为通过以下步骤将所述数据存储至所述存储设备的所述给定地址处:
将所述数据存储至缓冲器中的临时存储位置;以及
从所述缓冲器向所述存储设备传输所述数据。
18.根据权利要求11所述的系统,其中所述控制电路被进一步配置为通过以下步骤将所述数据存储至备选位置:
将对于存储所述数据的所述请求存储在日志中,其中所述日志包括之前接收到的对于将数据存储至所述存储设备中的与所述第二分类相关联的给定区域的多个请求;
根据与每个请求相关联的地址在所述日志中对存储数据的所述请求顺序地排序;
将所述多个请求中的对于将数据存储至相同的地址的数个请求合并为对于存储数据的单个请求;以及
将所述日志中的经排序和合并的所述请求存储至所述存储设备的与所述请求中的每个请求相关联的所述地址处。
19.根据权利要求18所述的系统,其中所述控制电路被进一步配置为在接收到对于将数据存储至所述存储设备中的与所述第二分类相关联的所述给定区域的阈值数量的请求之后执行所述排序和所述合并。
20.根据权利要求18所述的系统,其中所述非易失性存储设备是固态存储设备并且所述日志在所述存储设备的专用区域中。
CN201480006405.4A 2013-01-29 2014-01-28 用于基于数据分类将数据存储至固态存储设备的方法和装置 Active CN104956313B (zh)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201361757824P 2013-01-29 2013-01-29
US61/757,824 2013-01-29
US14/165,844 US9575886B2 (en) 2013-01-29 2014-01-28 Methods and apparatus for storing data to a solid state storage device based on data classification
US14/165,844 2014-01-28
PCT/US2014/013353 WO2014120660A1 (en) 2013-01-29 2014-01-28 Methods and apparatus for storing data to a solid state storage device based on data classification

Publications (2)

Publication Number Publication Date
CN104956313A true CN104956313A (zh) 2015-09-30
CN104956313B CN104956313B (zh) 2018-02-09

Family

ID=51224312

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201480006405.4A Active CN104956313B (zh) 2013-01-29 2014-01-28 用于基于数据分类将数据存储至固态存储设备的方法和装置

Country Status (3)

Country Link
US (2) US9575886B2 (zh)
CN (1) CN104956313B (zh)
WO (1) WO2014120660A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106326138A (zh) * 2015-07-03 2017-01-11 比亚迪股份有限公司 闪存及闪存内部数据的存取控制方法

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20160008885A (ko) * 2014-07-15 2016-01-25 삼성전자주식회사 전자 장치 및 전자 장치의 메모리 관리 방법
JP2016184402A (ja) * 2015-03-26 2016-10-20 パナソニックIpマネジメント株式会社 メモリコントローラ、不揮発性記憶装置、不揮発性記憶システム、及びメモリ制御方法
US10466924B1 (en) * 2016-05-13 2019-11-05 Symantec Corporation Systems and methods for generating memory images of computing devices
US10268394B2 (en) * 2016-08-10 2019-04-23 Seagate Technology Llc Data storage device performance optimization method and apparatus
CN108282811A (zh) * 2017-01-05 2018-07-13 中兴通讯股份有限公司 一种数据处理方法和装置
WO2018182885A1 (en) * 2017-03-30 2018-10-04 Mcafee, Llc Secure software defined storage
US11112970B2 (en) * 2017-06-12 2021-09-07 Sap Se Software system logging based on runtime analysis
US11463444B2 (en) * 2020-06-11 2022-10-04 Microsoft Technology Licensing, Llc Cloud-based privileged access management

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100146193A1 (en) * 2008-12-08 2010-06-10 Samsung Electronics Co., Ltd. System and method for cache synchronization
US20120209893A1 (en) * 2011-02-15 2012-08-16 Samsung Electronics Co., Ltd. File system operating method and devices using the same
CN102648457A (zh) * 2009-12-07 2012-08-22 微软公司 使用混合存储来延伸ssd生存期
US20120317342A1 (en) * 2011-06-08 2012-12-13 In-Hwan Choi Wear leveling method for non-volatile memory

Family Cites Families (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5541886A (en) 1994-12-27 1996-07-30 Intel Corporation Method and apparatus for storing control information in multi-bit non-volatile memory arrays
DE69635105D1 (de) 1996-01-31 2005-09-29 St Microelectronics Srl Mehrstufige Speicherschaltungen und entsprechende Lese- und Schreibverfahren
US6466476B1 (en) 2001-01-18 2002-10-15 Multi Level Memory Technology Data coding for multi-bit-per-cell memories having variable numbers of bits per memory cell
JP2003022687A (ja) 2001-07-09 2003-01-24 Mitsubishi Electric Corp 半導体記憶装置
US6643169B2 (en) 2001-09-18 2003-11-04 Intel Corporation Variable level memory
US7019998B2 (en) 2003-09-09 2006-03-28 Silicon Storage Technology, Inc. Unified multilevel cell memory
US20090193184A1 (en) 2003-12-02 2009-07-30 Super Talent Electronics Inc. Hybrid 2-Level Mapping Tables for Hybrid Block- and Page-Mode Flash-Memory System
US8954751B2 (en) 2004-10-08 2015-02-10 International Business Machines Corporation Secure memory control parameters in table look aside buffer data fields and support memory array
KR100732628B1 (ko) 2005-07-28 2007-06-27 삼성전자주식회사 멀티-비트 데이터 및 싱글-비트 데이터를 저장하는 플래시메모리 장치
US20070050642A1 (en) 2005-08-26 2007-03-01 International Business Machines Corporation Memory control unit with configurable memory encryption
WO2007037757A1 (en) 2005-09-29 2007-04-05 Trek 2000 International Ltd Portable data storage using slc and mlc flash memory
US7716240B2 (en) 2005-12-29 2010-05-11 Nextlabs, Inc. Techniques and system to deploy policies intelligently
JP2007305267A (ja) 2006-05-15 2007-11-22 Toshiba Corp 半導体記憶装置
US7355892B2 (en) 2006-06-30 2008-04-08 Sandisk Corporation Partial page fail bit detection in flash memory devices
US7739576B2 (en) 2006-08-31 2010-06-15 Micron Technology, Inc. Variable strength ECC
KR100771521B1 (ko) 2006-10-30 2007-10-30 삼성전자주식회사 멀티 레벨 셀을 포함하는 플래시 메모리 장치 및 그것의데이터 쓰기 방법
JP2008152464A (ja) * 2006-12-15 2008-07-03 Toshiba Corp 記憶装置
KR100819102B1 (ko) 2007-02-06 2008-04-03 삼성전자주식회사 개선된 멀티 페이지 프로그램 동작을 갖는 불휘발성 반도체메모리 장치
US20080189473A1 (en) 2007-02-07 2008-08-07 Micron Technology, Inc Mlc selected multi-program for system management
US8006166B2 (en) 2007-06-12 2011-08-23 Micron Technology, Inc. Programming error correction code into a solid state memory device with varying bits per cell
US20090055605A1 (en) 2007-08-20 2009-02-26 Zining Wu Method and system for object-oriented data storage
US8583857B2 (en) 2007-08-20 2013-11-12 Marvell World Trade Ltd. Method and system for object-oriented data storage
US7545673B2 (en) 2007-09-25 2009-06-09 Sandisk Il Ltd. Using MLC flash as SLC by writing dummy data
US9183134B2 (en) * 2010-04-22 2015-11-10 Seagate Technology Llc Data segregation in a storage device
US8578089B2 (en) * 2010-10-29 2013-11-05 Seagate Technology Llc Storage device cache
US9317436B2 (en) * 2013-06-21 2016-04-19 Hewlett Packard Enterprise Development Lp Cache node processing
CN106548789B (zh) * 2015-09-17 2019-05-17 伊姆西公司 用于操作叠瓦式磁记录设备的方法和装置
US9898200B2 (en) * 2016-02-18 2018-02-20 Samsung Electronics Co., Ltd Memory device having a translation layer with multiple associative sectors

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100146193A1 (en) * 2008-12-08 2010-06-10 Samsung Electronics Co., Ltd. System and method for cache synchronization
CN102648457A (zh) * 2009-12-07 2012-08-22 微软公司 使用混合存储来延伸ssd生存期
US20120209893A1 (en) * 2011-02-15 2012-08-16 Samsung Electronics Co., Ltd. File system operating method and devices using the same
US20120317342A1 (en) * 2011-06-08 2012-12-13 In-Hwan Choi Wear leveling method for non-volatile memory

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106326138A (zh) * 2015-07-03 2017-01-11 比亚迪股份有限公司 闪存及闪存内部数据的存取控制方法
CN106326138B (zh) * 2015-07-03 2019-11-05 比亚迪股份有限公司 闪存及闪存内部数据的存取控制方法

Also Published As

Publication number Publication date
US20170220298A1 (en) 2017-08-03
WO2014120660A1 (en) 2014-08-07
US9575886B2 (en) 2017-02-21
US20140215136A1 (en) 2014-07-31
CN104956313B (zh) 2018-02-09
US10157022B2 (en) 2018-12-18

Similar Documents

Publication Publication Date Title
CN104956313A (zh) 用于基于数据分类将数据存储至固态存储设备的方法和装置
US9684462B2 (en) Method and apparatus utilizing non-uniform hash functions for placing records in non-uniform access memory
US9053013B2 (en) Data storage device and operating method thereof
US20180321883A1 (en) Data storage device and method for operating data storage device
KR102603070B1 (ko) 메모리 시스템, 메모리 시스템에 데이터를 기록하는 방법 및 메모리 시스템으로부터 데이터를 판독하는 방법
JP2008052730A (ja) 可変の論理ストレージブロックサイズを有するファイルシステム
CN108459826A (zh) 一种处理io请求的方法及装置
CN110765076A (zh) 数据存储方法、装置、电子设备及存储介质
CN105917303A (zh) 一种控制器、识别数据块稳定性的方法和存储系统
CN113835639A (zh) 一种i/o请求处理方法、装置、设备及可读存储介质
CN114816240A (zh) 一种数据写入方法及一种数据读取方法
CN102650972A (zh) 数据存储方法、装置及系统
KR101676175B1 (ko) 전원 손실 이후 데이터 손실을 방지하기 위한 메모리 저장 장치 및 방법
KR102071072B1 (ko) 데이터 저장장치의 주소 맵핑 테이블 운용 방법
JP6100927B2 (ja) 情報処理装置
CN113778345B (zh) 索引的创建方法、计算设备及存储介质
JP5967307B2 (ja) 情報処理装置、制御回路、制御プログラム、及び制御方法
CN108304331B (zh) 基于NorFlash的环形队列式数据存储方法及装置
CN108984432B (zh) 一种处理io请求的方法及装置
KR101056909B1 (ko) 플래시 메모리 장치 및 플래시 메모리 장치에서의 메모리 관리 방법
KR100994052B1 (ko) 플래시 변환 계층에서 수행되는 데이터 관리 방법 및 이를 수행하는 플래시 메모리 장치
CN111723266A (zh) 海量数据处理方法和装置
CN104537017B (zh) 一种基于路径的文件搜索方法及装置
CN108664664A (zh) 一种海量教育文件关联存储方法
KR20230083986A (ko) 키-값 영구 스토리지 장치를 위한 2단계 인덱싱

Legal Events

Date Code Title Description
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
TR01 Transfer of patent right

Effective date of registration: 20200426

Address after: Singapore City

Patentee after: Marvell Asia Pte. Ltd.

Address before: Ford street, Grand Cayman, Cayman Islands

Patentee before: Kaiwei international Co.

Effective date of registration: 20200426

Address after: Ford street, Grand Cayman, Cayman Islands

Patentee after: Kaiwei international Co.

Address before: Hamilton, Bermuda

Patentee before: Marvell International Ltd.

Effective date of registration: 20200426

Address after: Hamilton, Bermuda

Patentee after: Marvell International Ltd.

Address before: Babado J San Mega Le

Patentee before: MARVELL WORLD TRADE Ltd.

TR01 Transfer of patent right