CN103019958A - 使用数据属性来管理固态存储器里的数据的方法 - Google Patents
使用数据属性来管理固态存储器里的数据的方法 Download PDFInfo
- Publication number
- CN103019958A CN103019958A CN2012104722949A CN201210472294A CN103019958A CN 103019958 A CN103019958 A CN 103019958A CN 2012104722949 A CN2012104722949 A CN 2012104722949A CN 201210472294 A CN201210472294 A CN 201210472294A CN 103019958 A CN103019958 A CN 103019958A
- Authority
- CN
- China
- Prior art keywords
- data
- access
- workload
- numerical value
- request
- 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
Images
Classifications
-
- 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
- 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
-
- 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/7211—Wear leveling
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
不同的FTL实施(包括使用不同的映射方案、日志块的使用、合并、和垃圾回收策略)使用某些特性更优地执行不同的数据操作。本发明提供一种方法,其根据不同特性或数据属性来区分和分类不同的数据操作;然后根据数据属性实施最优的映射方案、日志块的使用、合并、和垃圾回收策略;其中数据属性包括但不限于访问频率、访问次序、访问大小、请求模式、和请求写入比率。
Description
【技术领域】
本发明涉及电子存储器存储装置,特别涉及NAND闪存装置。更具体地,本发明涉及基于NAND闪存装置将持久性数据存入到固态硬盘或从固态硬盘读取数据。
【背景技术】
闪存是一种非易失性的电子数据存储电路,其能够电子编程以便重复地保存或擦除数据,从而适合作为一种可重写数据存储介质用于电子计算机系统。NAND闪存是一种特别的闪存,其使用了浮栅晶体管,它们以类似于与非门的形式串连在一起。NAND闪存技术被广泛应用于计算机系统、数码相机、便携式音乐播放器、USB闪存驱动器、存储卡、和SmartMediaTM卡。特别在计算机系统和持久性数据存储系统里,基于磁盘的数据存储介质被使用NAND闪存的固态硬盘取代的情况越发普遍,因为这些固态硬盘比基于磁盘的数据存储介质具有更多优点,如较少的功耗、更好的物理撞击性和电磁兼容特性、更小的物理尺寸、以及更轻的重量。
根据制造、模型和使用的技术,NAND闪存有不同的容量和电子构造。例如,NAND闪存装置内的存储库(memory bank)被分成块(block),块的尺寸包括但不限于16K、128K、256K或512K字节。每个块又被分成页。页的数量可以是32、64、128或更多,每页的尺寸可以是256、512、1K、2K、4K、或8K字节。其他技术变化会带来其他属性,如块类型、地址周期、和备用存储器空间尺寸。
通常,NAND闪存的数据存储操作包括三个基本操作:页读取、页编程(或等同于写入)、和块擦除。在页编程或再次编程之前,必须首先对包含页的块进行块擦除。操作速度是非均匀的。页读取比页编程或块擦除要更快。另外,NAND闪存的存储单元具有有限的使用寿命。存储单元在一定次数地擦除循环之后便会损坏。通常,一个单阶存储单元(SLC)的擦除循环次数是100,000,一个多阶存储单元(MLC)的擦除循环次数是3,000到10,000。因此,已经研发出了各种数据存储操作方案,以最小化块擦除操作,并将块擦除操作平均扩展到所有块上。
由于上述数据存储操作特性,一串数据存储在基于NAND闪存的固态硬盘内的物理存储位置,不会与该串数据内数据比特的逻辑次序相对应。由此,需要一个映射方案用于将数据的逻辑存储地址映射到基于NAND闪存的固态硬盘内的物理存储地址上。
通常,一个基于NAND闪存的固态硬盘的软件和硬件结构包括主机接口、缓存缓冲器、闪存转换层(FTL)、NAND闪存控制器(NFC)驱动器、和NAND闪存阵列。FTL负责数据的逻辑地址和物理存储地址之间的来回转换,其中数据将被存储在NAND闪存阵列里的物理存储地址。有三种类型的映射方案对应不同程度的映射粒度。它们是块映射、页映射、以及混合映射。块映射方案是将逻辑地址映射到块级别的物理地址。其提供一个小的映射列表,但缺点是导致有效页数据的过度拷贝,产生较差的随机写入性能,以及缩短存储单元的使用寿命。页映射方案是将逻辑地址映射到页级别的物理地址。其需要较大的映射列表,从而对硬件资源产生挑战。复杂的垃圾回收也降低固态硬盘的响应时间性能。混合映射方案是将块映射和页映射方案的某些特征合并以实现最佳方案。
除了数据的逻辑地址和物理存储器地址(数据将被存储在NAND闪存阵列内的物理存储地址)之间的来回转换之外,FTL通常也负责坏块管理、垃圾回收以及损耗均衡(wear leveling)。对于坏块管理,先找到坏块,然后隔离并被备用块替换,其中坏块通常是在制造或存储器的寿命期间产生的。对于垃圾回收,包含无效页(包含过时数据的页)的块将被垃圾回收或块擦除。垃圾回收首先拷贝垃圾块上有效页到另一个块,然后在垃圾块上开始块擦除。对于损耗均衡,管理页编程和块擦除操作,使得它们在一个时间周期内平均地在所有块上进行。
已经提议和实施了各种FTL实施。其中一个实施是基本相联扇区转换(BAST)。BAST的详情由以下论文披露:Jesung Kim等的“A Space-Efficient FlashTranslation Layer for CompactFlash Systems(一个紧凑闪存系统的空间有效闪存转换层)”,IEEE Transactionon Consumer Electronics,Volume 48,No.2,May2002;在此其内容通过引用被完整地结合到本发明。BAST是一个基于日志块(logblock)的FTL,其使用混合映射,其中一个专用日志块与一个数据块相联。当有一个命令:写入新数据到数据块的页编程操作时,新数据被首先编程(写入)到与该日志块相连的空白页上。由此,仅需要一小页的映射列表用于该日志块。但是,日志块的利用率很低,在有大量密集的随机写入工作负荷时,空白块会被快速用完,随后触发许多高昂的块合并和垃圾回收操作。这种大部分页编程(写入)请求调度块合并的现象被称为日志块颠簸(log block thrashing)。块合并操作意味着所有来自日志块的有效页面(其包括最新数据),和相联数据块将被合并回到数据块,从而数据块具有所有包括最新数据的有效页面。
另一个FTL实施是全相联扇区转换(FAST)。FAST的详情由以下论文披露:Sang-Won Lee等的“A Log Buffer-based Flash Translation Layer usingFully-associative Sector Translation(一个使用全相联扇区转换的基于日志缓冲闪存转换层)”,ACM Transactions on Embedded Computing Systems(TECS),Volume6 Issue 3,July 2007。在此其内容通过引用被完整地合并到本发明。FAST是一个基于日志块的FTL,其使用混合映射,其中一个日志块是由所有数据块共享。当有一个命令:写入新数据到数据块的页编程操作时,新数据首先被编程(写入)在当前使用的日志块的空白页上。在此实施下,日志块的利用率比在BAST上有提高。块合并操作可以在大量密集的随机写入工作负荷时得以延缓。但是,因为一个日志块相联到多个数据块,所以合并操作很复杂,且低效。在最差情况下,合并操作所需的时间特别长,并且可能频繁需要合并操作(日志块颠簸问题)。
另一个FTL实施是集合相联扇区转换(SAST)。SAST的详情由以下论文披露:Chanik Park等的“A Reconfigurable FTL(Flash Translation Layer)Architecture for NAND Flash based Applications(基于NAND闪存的应用的可重置FTL(闪存转换层)结构)”Proceedings of the 18th IEEE/IFIP International Workshopon Rapid System Prototyping,pages 202-8,May 2007,在此其内容通过引用被完整地合并到本发明。在此实施下,每组K数目的日志块与一组N数目的顺序数据块相联。尽管能够静态调整数目K和N以实现特定数据存储/提取应用行为和工作负荷的最优性能,但很难设定这些数目。在SAST下,日志块颠簸也是一个问题。
K相联扇区转换(KAST)是SAST的一个变换,其中N等于1。KAST的详情由美国专利申请文献2010/0169544披露,其标题为“Methods for Distributing LogBlock Associativity for Real-time System and Flash Memory Devices Performingthe Same(用于实时系统的分配日志块相联的方法及其执行该方法的闪存装置)”;在此其内容通过引用被完整地合并到本发明。在KAST下,类似于SAST的缺点仍然存在。另外,日志块的利用率会更低。
混合闪存转换层(HFTL)结合BAST和FAST实施。HFTL的详情由以下论文披露:Hak Soo Kim等的“Hybrid Log Block Buffer Scheme in a Flash TranslationLayer(闪存转换层的混合日志块缓冲器方案)”,IAIT,2007;在此其内容通过引用被完整地合并到本发明。在HFTL下,先识别数据块然后分成热和冷的数据块,其中热数据块是受到大量密集连续的页编程(写入)操作(热数据),而冷数据块不会(冷数据)。热数据块各自相联到一个专用日志块,符合BAST方法。所有冷数据分块共享同一日志块,符合FAST方法。HFTL的优点是更少的块擦除操作、更好的日志块利用率、以及更高的垃圾回收效率。不过,日志块颠簸问题继续存在。
【发明概述】
本发明的一个目的是提供一种通过实施智能FTL来管理固态存储器的数据的方法,其能够识别数据操作的不同特性,并能够积极地相应调整其工作执行和策略。
不同的FTL实施(包括使用不同的映射方案、日志块使用、合并、和垃圾回收策略)根据某些特性能够更好地执行不同的数据操作。本发明的另一个目的是根据不同特性或数据属性来区分和分类不同的数据操作。然后,本发明提供一种方法以根据数据属性来实施最优映射方案、日志块使用、合并和垃圾回收策略;其中数据属性包括但不限于访问频率、访问次序、访问尺寸、请求模式和请求写入比率。
根据各种实施例,一个感知属性的FTL保持一个数据属性列表,其中记录有数据写入和/或读取访问和/或请求的工作量的数据属性数值。数据属性数值是二进制数值。在一个实施例里,固态驱动器的数据被逻辑地址(或逻辑分区)分成段,并且对每个逻辑分区计算上述5个数据属性数值的单个集合。计算5个数据属性数值是基于在一个预设时间段内之前数据写入和/或读取访问和/或请求(输入/输出)的统计。
根据一个实施例,对每个数据写入请求,感知属性的FTL查询数据属性列表以确定数据写入请求的最好映射方案、日志块使用、合并和垃圾回收策略。根据另一个实施例,固态驱动器的数据缓存策略是根据数据属性进行调整的。
【附图说明】
参照附图,以下详细描述本发明的实施例,其中:
图1显示一个由感知属性FTL保持的数据属性列表的典型实施例,其中记录有数据写入和/或读取访问和/或请求的工作量的数据属性数值;
图2是一个感知属性FTL的执行步骤的流程示意图,描述感知属性FTL使用数据写入和/或读取访问和/或请求的工作量的数据属性数值来选择映射方案、日志块使用、合并、和垃圾回收策略;
图3是一个描述感知属性数据缓存使用数据写入和/或读取访问和/或请求的工作量的数据属性数值来选择数据缓存策略的执行步骤流程示意图;和
图4是一个具有感知属性FTL和感知属性数据缓存的固态硬盘的执行步骤流程示意图。
【发明详述】
在以下的描述里,阐述了根据数据属性管理固态存储器的数据的系统和方法的优选实施例。对于那些不偏离本发明范围和精神的修改,包括添加和/或删减,对本领域技术人员来说都是显而易见的。为了不至使本发明模糊不清,将会省略具体细节,不详细描述所属领域技术人员所知晓的方法、设备或系统。但是,本披露会使本领域技术人员不需要过多的试验就能实施本教导。
不同的FTL实施(包括使用不同的映射方案、日志块使用、合并、和垃圾回收策略)使用某些特性更优地执行不同的数据操作。本发明提供一个感知属性(attribute-aware)的FTL,其能够根据不同特性或数据属性来区分和分类不同的数据操作。感知属性的FTL根据数据属性实施最优的映射方案、日志块使用、合并和垃圾回收策略;其中数据属性包括但不限于访问频率、访问次序、访问尺寸、请求模式、和请求写入比率。
访问频率可以显示数据是热数据还是冷数据,通过设定一个访问频率阈值,在其之上的数据就是热数据,否则就是冷数据。为了优化性能,热数据应该利用页映射方案进行组织,冷数据应该利用块映射方案进行组织。由此,感知属性的FTL保留一定数目的日志块,并将它们分到一个热日志块区用于热数据,而将其它块分到一个冷日志块区用于冷数据。
通过对到固态硬盘的数据访问(写入和/或读取)的逻辑数据地址的统计分析,应该能够预测该数据访问是顺序的还是随机的。知道该信息可以影响映射方案选择。例如,一系列顺序数据访问最好由一个块映射方案处理,开始逻辑地址被映射到一个日志块开头,即日志块的第一页。
对于大尺寸的数据访问,如大于64KB的数据访问,块映射方案比页映射方案更加有效。到固态硬盘的数据请求可以是突发的或平缓的模式。对突发模式(burstmode)的写请求,应该预留更多的日志块,并应该在一个较低阈值上触发垃圾回收操作。为了优化损耗均衡和大多数是写请求(高的写入比率)的数据请求,应该使用更新的块(younger block)进行块交换(block swapping);而高的读取比率(低写入比率)应该强制与旧块进行块交换。
在一个工作量单元里的多个数据写入和/或读取访问和/或请求通常都显示相似的数据访问和/或请求特性。由此,某个数据属性数值可以根据其访问和/或请求特性而被分配到每个工作量(workload)。但是,一个工作量的数据访问和/或请求特性可能随时发生变化,因此其数据属性数值应该不时地重新进行评估。
依照本发明的一个实施例,数据写入和/或读取访问和/或请求的一个工作量还可以被特征化为一个以下访问数据属性数值组合(或访问工作量类型):
A1.)热数据、顺序访问、以及大尺寸的数据访问;
A2.)热数据、顺序访问、以及小尺寸的数据访问;
A3.)热数据、随机访问、以及大尺寸的数据访问;
A4.)热数据、随机访问、以及小尺寸的数据访问;
A5.)冷数据、顺序访问、以及大尺寸的数据访问;
A6.)冷数据、顺序访问、以及小尺寸的数据访问;
A7.)冷数据、随机访问、以及大尺寸的数据访问;
A8.)冷数据、随机访问、以及小尺寸的数据访问。
依照本发明的另一个实施例,数据写入和/或读取访问和/或请求的一个工作量还可以被特征化为一个以下请求数据属性数值组合(或请求工作量类型):
R1.)突发模式和高写入比率;
R2.)突发模式和低写入比率;
R3.)平滑模式和高写入比率;
R4.)平滑模式和低写入比率。
依照各种实施例,一个感知属性的FTL保持一个数据属性列表,其中记录有数据写入和/或读取访问和/或请求的一个工作量的数据属性数值。数据属性数值是二进制数值。第一属性是为了显示热或冷数据,数值“1”是热数据。在一个实施例里,热数据意味着在一个特定逻辑地址范围内的数据在一个特定时间期内在一个工作量上被访问了80%或更多时间。第二属性是为了显示顺序或随机访问,数值“1”是顺序的。第三属性是为了显示大尺寸或小尺寸数据访问,数值“1”是大尺寸。在一个实施例里,大尺寸数据访问意味着大于64KB。第四属性是为了显示突发或平滑模式数据请求,数值“1”是突发模式。第五属性是为了显示高或低写入比率,数值“1”是高写入比率。第一和第二属性在影响映射方案和日志块使用的选择上扮演着重要角色。
在一个实施例里,固态硬盘的数据通过逻辑地址(或逻辑分区)范围被分成段(segment)。对每个逻辑分区,计算上述5个数据属性数值的一个集合。计算5个数据属性数值是基于在一个预设时间段期间内之前数据写入和/或读取访问和/或请求(输入/输出)的统计;因此,每个集合(5个数据属性数值)都记录有一个时间戳。
为了避免降低固态硬盘的响应时间,在运行期间,统计收集和数据属性数值计算是作为感知属性的FTL的后台任务(background task)来执行的。在预设时间段结束时,根据一个预设时间表(schedule)来更新数据属性数值。感知属性的FTL查询数据属性列表,然后选择映射方案和一个物理地址进行页编程操作(数据写入)。在选择垃圾回收策略之前,也要先查询数据属性列表。
图1显示数据属性列表的一个示例性实施例,其中记录有数据写入和/或读取访问和/或请求的一个工作量的数据属性数值。该示例性数据属性列表显示运行时从一个时间段内收集的统计而计算出的数据属性数值的快照。其显示固态硬盘被分成4个逻辑分区:‘0’,‘1’,‘2’,和‘3’。对在时间‘8’的逻辑分区‘0’数据,有计算并记录数据属性数值;对在时间‘3’的逻辑分区‘1’数据,有计算并记录数据属性数值;对在时间‘8’的逻辑分区‘2’数据,有计算并记录数据属性数值;以及对在时间‘3’的逻辑分区‘3’数据,有计算并记录数据属性数值。
参见图2,根据本发明的一个实施例,感知属性的FTL使用数据写入和/或读取访问和/或请求(或工作量类型)的一个工作量的数据属性数值来选择映射方案、日志块使用、合并、和垃圾回收策略。感知属性的FTL执行步骤,从接收一个数据写入请求开始,如步骤201。在步骤202,该数据写入请求的逻辑地址被用来确定该数据写入请求的逻辑分区。在步骤203,查询数据属性列表以找出该数据写入请求的数据属性。如果数据属性显示是A1或A2工作量类型(204),那么在步骤205,确定数据是否应该写入到一个块(即大尺寸的数据)的第一逻辑页(逻辑页0),如果是,则热数据区里的一个新块被分配给该数据写入请求(206),否则在步骤207,检查热数据区里的当前备用块是否已满。如果热数据区里的当前备用块已满,热数据区里的一个新块被分配给该数据写入请求(206),否则使用热数据区里的当前备用块(208)。如果数据属性显示是A3或A4工作量类型(209),在步骤207检查热数据区里的当前备用块是否已满。如果热数据区里的当前备用块已满,热数据区里的一个新块被分配给该数据写入请求(206),否则使用热数据区里的当前备用块(208)。如果数据属性显示是A5或A6工作量类型(210),在步骤211确定该数据是否应该写入到一个块(即大尺寸的数据)的第一逻辑页(逻辑页0),如果是,则冷数据区里的一个新块被分配给该数据写入请求(212),否则在步骤213检查冷数据区里的当前备用块是否已满。如果冷数据区里的当前备用块已满,冷数据区里的一个新块被分配给该数据写入请求(212),否则使用冷数据区里的当前备用块(214)。如果数据属性显示是A7或A8工作量类型(215),在步骤213检查冷数据区里的当前备用块是否已满。如果冷数据区里的当前备用块已满,冷数据区里的一个新块被分配给该数据写入请求(212),否则使用冷数据区里的当前备用块(214)。在数据被写入到固态硬盘之后,感知属性的FTL命令NAND闪存控制器:对于工作量类型A1、A2、A3、或A4以及R1或R2(216),在步骤217调整垃圾回收阈值,否则跳过步骤217,然后检查是否已经达到从页映射方案转换到块映射方案的阈值(218)。如果已经达到从页映射方案转换到块映射方案的阈值,并且如果工作量类型是A5或A6(219),则给出命令,使用块映射的合并(220)。在步骤206和212,对于工作量类型是A5、A6、A7、或A8以及R1或R3,对数据写入请求选择一个更旧(较高的损耗均衡)的备用块(222);否则选择一个更新(较低的损耗均衡)的备用块(223)。
参见图3,根据本发明的一个实施例,固态硬盘的数据缓存策略也可以根据数据属性进行调整。对数据写入和读取访问/请求,感知属性的数据缓存能够查询数据属性列表。特别地,对热数据和小尺寸数据访问(A2和A4)的工作量类型,数据应该被缓存(对于数据写入请求,数据被写入到缓存,对于数据读取请求,数据从缓存中提取)。理由是冷数据不会被立即使用,并且如果冷数据被缓存,这将仅降低缓存命中率(cache hit rate)。再者,大尺寸的数据访问需要更大的缓存尺寸,从而也降低缓存命中率。
参见图4,根据本发明的一个实施例,固态硬盘的顶层主控制循环在加入数据属性表后将会产生相应的改变。在接收到一个主机命令后,主控软件首先查询数据属性列表,然后再根据查询的结果判定是否需要把命令进一步发送到FTL层和/或NFC层。在进行垃圾回收处理时同样需要首先查询数据属性列表。并且在到达时间片时需要进行数据属性列表的学习和更新。
使用通用或专用计算装置、计算机处理器、或电子电路,其包括但不限于数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)、和根据本发明教义而设置或编程的其它可编程逻辑装置,可以实施在此披露的实施例。基于本发明的教义,在软件或电子领域的技术人员能够很容易地准备在通用或专用计算装置、计算机处理器、或可编程逻辑装置上运行的计算机指令或软件代码。
在一些实施例里,本发明包括一个计算机存储介质,其中存储有计算机指令或软件代码,其可以被用来对计算机或微处理器进行编程以执行本发明的任何过程。存储介质可以包括但不限于软盘、光盘、蓝光光盘、DVD、CD-ROM、磁光盘、ROM、RAM、闪存装置、或适合用来存储指令、代码、和/或数据的任何类型的介质或装置。
为了方便进行解释和说明,前面已经描述了本发明。这不是穷尽性地或者限制本发明为所披露的具体形式。对于本领域的技术人员,很多修改和变换是显而易见的。
这些实施例的选择和描述是为了更好地解释本发明的原理及其实际应用,由此使本领域的技术人员能够从各种实施例以及按照特定实施对其作出的各种修改而理解本发明。应当注意到,本发明范围是由所附权利要求及其等同物确定。
Claims (16)
1.一种根据一个或多个数据属性的固态存储器的数据管理方法,包括:
保持一个数据属性列表,其包括一个工作量的一个或多个数据属性数值,该工作量包括一个或多个数据访问和请求;
对所述工作量里的每个数据访问和请求,查询所述数据属性列表,然后选择映射方案和日志块策略;和
根据所述工作量的一个或多个数据属性数值,为所述工作量选择映射方案和日志块使用策略;
其中所述数据属性包括访问频率、访问次序、和数据访问尺寸;
其中所述访问频率显示所述工作量被特征化为热或冷数据;
其中所述访问次序显示所述工作量被特征化顺序或随机数据访问;和
其中所述数据访问尺寸显示所述工作量被特征化为大尺寸或小尺寸的数据访问。
2.根据权利要求1所述的方法,其中所述数据属性还包括请求模式和请求写入比率;
其中所述请求模式显示所述工作量被特征化为突发模式或平滑模式的数据请求;和
其中所述请求写入比率显示所述工作量被特征化为高的或低的写入比率。
3.根据权利要求1所述的方法,其中所述固态存储器根据一个或多个逻辑分区被分成段;
其中所述逻辑分区是由逻辑地址范围设定;
其中所述数据访问和请求的工作量是由一个逻辑分区里的数据访问和请求构成;
其中所述数据属性列表还包括由一个或多个数据属性数值组成的一个或多个集合;一个或多个数据属性数值的每个集合对应每个逻辑分区的工作量;和
其中对所述每个逻辑分区的工作量,选择映射方案和日志块使用策略。
4.根据权利要求1所述的方法,其中所述数据属性数值是基于一个时间段内工作量里数据访问和请求的统计而计算的;
其中在所述时间段结束时重新计算所述数据属性数值。
5.根据权利要求1所述的方法,还包括:基于所述工作量的一个或多个数据属性数值,选择所述工作量的垃圾回收策略和损耗均衡策略。
6.根据权利要求3所述的方法,还包括:基于每个逻辑分区的工作量的一个或多个数据属性数值,选择所述工作量的垃圾回收策略和损耗均衡策略。
7.根据权利要求1所述的方法,其中所述查询数据属性列表仅对数据写入访问和请求而进行,并不对数据读取访问和请求进行。
8.根据权利要求2所述的方法,其中所述查询数据属性列表仅对数据写入访问和请求而进行,并不对数据读取访问和请求进行。
9.根据权利要求1所述的方法,其中所述数据属性数值等于一个以下访问工作量类型的数据属性数值:
A1.)热数据、顺序访问、以及大尺寸的数据访问;
A2.)热数据、顺序访问、以及小尺寸的数据访问;
A3.)热数据、随机访问、以及大尺寸的数据访问;
A4.)热数据、随机访问、以及小尺寸的数据访问;
A5.)冷数据、顺序访问、以及大尺寸的数据访问;
A6.)冷数据、顺序访问、以及小尺寸的数据访问;
A7.)冷数据、随机访问、以及大尺寸的数据访问;
A8.)冷数据、随机访问、以及小尺寸的数据访问;
其中对于数据属性数值等于A1或A2访问工作量类型的,如果所述工作量里的一个数据写入访问有一个指向逻辑块开头的逻辑地址,则热数据区里的一个新备用块将被分配给所述数据写入访问,否则热数据区里的一个当前备用块将被分配给所述数据写入访问,除非所述热数据区里的当前备用块已满,那么将分配热数据区里的一个新备用块;
其中对于数据属性数值等于A3或A4访问工作量类型的,热数据区里的当前备用块将被分配给所述数据写入访问,除非热数据区里的当前备用块已满,那么将分配热数据区里的一个新备用块;
其中对于数据属性数值等于A5或A6访问工作量类型的,如果所述工作量里的数据写入访问有一个指向逻辑块开头的逻辑地址,则冷数据区里的一个新备用块将被分配给所述数据写入访问,否则冷数据区里的一个当前备用块将被分配给所述数据写入访问,除非冷数据区里的当前备用块已满,那么将分配冷数据区里的一个新备用块;和
其中对于数据属性数值等于A7或A8访问工作量类型的,冷数据区里的当前备用块将被分配给所述数据写入访问,除非冷数据区里的当前备用块已满,那么将分配冷数据区里的一个新备用块。
10.根据权利要求9所述的方法,还包括:基于所述工作量的一个或多个数据属性数值选择所述工作量的损耗均衡策略;
其中所述数据属性数值还等于一个以下请求工作量类型的数据属性数值;
R1.)突发模式和高写入比率;
R2.)突发模式和低写入比率;
R3.)平滑模式和高写入比率;和
R4.)平滑模式和低写入比率。
其中对于数据属性数值等于A5、A6、A7、或A8访问工作量类型和R1、或R3请求工作量类型的,如果冷数据区里的一个新备用块将被分给所述数据写入访问,那么所述冷数据区里的较高损耗水平的新备用块将被分配给所述数据写入访问;否则冷数据区里的较低损耗水平的新备用块将被分配给所述数据写入访问。
11.根据权利要求9所述的方法,还包括:基于所述工作量的一个或多个数据属性数值选择所述工作量的垃圾回收策略;
其中所述数据属性数值还等于一个以下请求工作量类型的数据属性数值:
R1.)突发模式和高写入比率;
R2.)突发模式和低写入比率;
R3.)平滑模式和高写入比率;和
R4.)平滑模式和低写入比率。
其中如果所述数据属性数值等于A1、A2、A3、或A4访问工作量类型和R1或R2请求工作量类型的数据属性数值,则调整垃圾回收阈值。
12.根据权利要求9所述的方法,还包括:检查是否已经达到从页映射方案转换到块映射方案的阈值;
其中如果已经达到从页映射方案转换到块映射方案的阈值,并且如果所述数据属性数值等于A5或A6访问工作量类型的数据属性数值,则发出一个命令:使用块映射的合并。
13.一种根据一个或多个数据属性管理固态存储器的数据的方法,包括:
保持一个数据属性列表,其包括一个数据访问和请求的工作量的一个或多个数据属性数值;
在为所述工作量里的每个数据访问和请求选择数据缓存策略之前,查询所述数据属性列表;和
根据所述工作量的一个或多个数据属性数值,为所述工作量选择数据缓存策略;
其中所述数据属性包括访问频率、访问次序、和数据访问尺寸;
其中所述访问频率显示所述工作量被特征化为热或冷数据;
其中所述访问次序显示所述工作量被特征化为顺序或随机数据访问;
其中所述数据访问尺寸显示所述工作量被特征化为大尺寸或小尺寸的数据访问。
14.根据权利要求13所述的方法,其中所述固态存储器被一个或多个逻辑分区分成段;
其中所述逻辑分区是由逻辑地址范围定义;
其中所述数据访问和请求的工作量是由一个逻辑分区里的数据访问和请求构成;
其中所述数据属性列表还包括一个或多个数据属性数值组成的一个或多个集合;
一个或多个数据属性数值的每个集合对应每个逻辑分区的工作量;和
其中对每个逻辑分区的工作量,选择数据缓存策略。
15.根据权利要求13所述的方法,其中所述数据属性数值是基于一个时间段内工作量里数据访问和请求的统计而计算获得;和。
其中在所述时间段结束时重新计算所述数据属性数值。
16.根据权利要求13所述的方法,其中所述数据属性数值等于一个以下访问工作量类型的数据属性数值;
A1.)热数据、顺序访问、以及大尺寸的数据访问;
A2.)热数据、顺序访问、以及小尺寸的数据访问;
A3.)热数据、随机访问、以及大尺寸的数据访问;
A4.)热数据、随机访问、以及小尺寸的数据访问;
A5.)冷数据、顺序访问、以及大尺寸的数据访问;
A6.)冷数据、顺序访问、以及小尺寸的数据访问;
A7.)冷数据、随机访问、以及大尺寸的数据访问;
A8.)冷数据、随机访问、以及小尺寸的数据访问;和
其中如果数据属性数值等于A2或A4访问工作量类型的数据属性数值,那么所述工作量里的数据访问或请求将被写入数据缓存或从数据缓存读取;否则将绕过数据缓存。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/664,417 | 2012-10-31 | ||
US13/664,417 US20140122774A1 (en) | 2012-10-31 | 2012-10-31 | Method for Managing Data of Solid State Storage with Data Attributes |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103019958A true CN103019958A (zh) | 2013-04-03 |
CN103019958B CN103019958B (zh) | 2015-11-18 |
Family
ID=47968583
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210472294.9A Expired - Fee Related CN103019958B (zh) | 2012-10-31 | 2012-11-20 | 使用数据属性来管理固态存储器里的数据的方法 |
Country Status (2)
Country | Link |
---|---|
US (1) | US20140122774A1 (zh) |
CN (1) | CN103019958B (zh) |
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105975403A (zh) * | 2016-04-28 | 2016-09-28 | 浪潮(北京)电子信息产业有限公司 | 一种地址映射方法、系统及固态硬盘 |
CN106557273A (zh) * | 2015-09-30 | 2017-04-05 | 宇瞻科技股份有限公司 | 固态硬盘的数据管理方法、写入管理系统及其方法 |
CN107203335A (zh) * | 2016-03-17 | 2017-09-26 | 爱思开海力士有限公司 | 存储系统及其操作方法 |
CN107402982A (zh) * | 2017-07-07 | 2017-11-28 | 阿里巴巴集团控股有限公司 | 数据写入、数据匹配方法、装置及计算设备 |
CN107943719A (zh) * | 2017-11-28 | 2018-04-20 | 杭州电子科技大学 | 一种基于请求分类的闪存转换层控制方法 |
CN108108131A (zh) * | 2017-12-29 | 2018-06-01 | 北京联想核芯科技有限公司 | 一种ssd硬盘的数据处理方法和装置 |
CN108628754A (zh) * | 2017-03-22 | 2018-10-09 | 慧荣科技股份有限公司 | 一般及垃圾回收的数据存取方法以及使用该方法的装置 |
CN110851398A (zh) * | 2018-08-20 | 2020-02-28 | 阿里巴巴集团控股有限公司 | 垃圾数据的回收处理方法、装置及电子设备 |
CN110879788A (zh) * | 2018-09-05 | 2020-03-13 | 爱思开海力士有限公司 | 存储器控制器、存储器系统以及存储器装置的操作方法 |
WO2023284173A1 (zh) * | 2021-07-13 | 2023-01-19 | 苏州浪潮智能科技有限公司 | 固态硬盘的任务分配方法、系统、电子设备及存储介质 |
TWI820321B (zh) * | 2018-09-03 | 2023-11-01 | 大陸商合肥沛睿微電子股份有限公司 | 快閃記憶體控制器及相關控制方法 |
Families Citing this family (38)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20130076429A (ko) * | 2011-12-28 | 2013-07-08 | 삼성전자주식회사 | 메모리 장치의 저장 영역 관리 방법 및 이를 이용한 저장 장치 |
EP2811410B1 (en) * | 2012-12-21 | 2018-05-30 | Huawei Technologies Co., Ltd. | Monitoring record management method and device |
US9547586B2 (en) * | 2013-01-03 | 2017-01-17 | Macronix International Co., Ltd. | Metadata containers with indirect pointers |
US9395924B2 (en) * | 2013-01-22 | 2016-07-19 | Seagate Technology Llc | Management of and region selection for writes to non-volatile memory |
US9569352B2 (en) * | 2013-03-14 | 2017-02-14 | Sandisk Technologies Llc | Storage module and method for regulating garbage collection operations based on write activity of a host |
US10763752B1 (en) * | 2019-06-25 | 2020-09-01 | Chengdu Monolithic Power Systems Co., Ltd. | Zero-voltage-switching flyback converter |
CN105745627B (zh) | 2013-08-14 | 2019-03-15 | 西部数据技术公司 | 用于非易失性存储器存储设备的地址转换 |
TWI526830B (zh) * | 2013-11-14 | 2016-03-21 | 群聯電子股份有限公司 | 資料寫入方法、記憶體控制電路單元與記憶體儲存裝置 |
US9223843B1 (en) | 2013-12-02 | 2015-12-29 | Amazon Technologies, Inc. | Optimized log storage for asynchronous log updates |
US9430375B2 (en) * | 2013-12-30 | 2016-08-30 | International Business Machines Corporation | Techniques for storing data in bandwidth optimized or coding rate optimized code words based on data access frequency |
US9864529B1 (en) * | 2014-01-27 | 2018-01-09 | Western Digital Technologies, Inc. | Host compatibility for host managed storage media |
US9471254B2 (en) | 2014-04-16 | 2016-10-18 | Sandisk Technologies Llc | Storage module and method for adaptive burst mode |
US10338817B2 (en) * | 2014-12-30 | 2019-07-02 | Sandisk Technologies Llc | Systems and methods for storage recovery |
KR20160105624A (ko) * | 2015-02-27 | 2016-09-07 | 에스케이하이닉스 주식회사 | 데이터 처리 시스템 및 그것의 동작 방법 |
US9606915B2 (en) * | 2015-08-11 | 2017-03-28 | Toshiba Corporation | Pool level garbage collection and wear leveling of solid state devices |
US10303536B2 (en) * | 2015-10-28 | 2019-05-28 | Via Technologies, Inc. | Non-volatile memory device and control method thereof |
CN106802867B (zh) * | 2015-11-25 | 2020-12-01 | 建兴储存科技(广州)有限公司 | 固态储存装置及其数据编程方法 |
US9898202B2 (en) | 2015-11-30 | 2018-02-20 | Samsung Electronics Co., Ltd. | Enhanced multi-streaming though statistical analysis |
US9880780B2 (en) * | 2015-11-30 | 2018-01-30 | Samsung Electronics Co., Ltd. | Enhanced multi-stream operations |
FR3044125A1 (fr) * | 2016-03-29 | 2017-05-26 | Continental Automotive France | Procede de test de comportement d'une application cooperant avec un pilote de memoire flash |
US9990158B2 (en) | 2016-06-22 | 2018-06-05 | Sandisk Technologies Llc | Storage system and method for burst mode management using transfer RAM |
US10353588B1 (en) * | 2016-06-30 | 2019-07-16 | EMC IP Holding Company LLC | Managing dynamic resource reservation for host I/O requests |
US10740251B2 (en) | 2017-01-20 | 2020-08-11 | Seagate Technology Llc | Hybrid drive translation layer |
US10635581B2 (en) | 2017-01-20 | 2020-04-28 | Seagate Technology Llc | Hybrid drive garbage collection |
US10698808B2 (en) * | 2017-04-25 | 2020-06-30 | Samsung Electronics Co., Ltd. | Garbage collection—automatic data placement |
KR102422032B1 (ko) * | 2017-08-16 | 2022-07-19 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 메모리 시스템의 동작 방법 |
JP7010667B2 (ja) * | 2017-11-06 | 2022-01-26 | キオクシア株式会社 | メモリシステムおよび制御方法 |
CN109800178B (zh) | 2017-11-17 | 2023-05-16 | 爱思开海力士有限公司 | 垃圾收集方法以及用于混合地址映射的存储器系统 |
CN109800180B (zh) | 2017-11-17 | 2023-06-27 | 爱思开海力士有限公司 | 用于地址映射的方法和存储器系统 |
KR20190082513A (ko) * | 2018-01-02 | 2019-07-10 | 에스케이하이닉스 주식회사 | 컨트롤러 및 그것의 동작방법 |
US10585795B2 (en) | 2018-05-31 | 2020-03-10 | Micron Technology, Inc. | Data relocation in memory having two portions of data |
TWI702496B (zh) * | 2018-08-28 | 2020-08-21 | 群聯電子股份有限公司 | 記憶體管理方法、記憶體儲存裝置及記憶體控制電路單元 |
CN109783019B (zh) * | 2018-12-28 | 2022-08-19 | 上海威固信息技术股份有限公司 | 一种数据智能存储管理方法与装置 |
CN110533450A (zh) * | 2019-07-17 | 2019-12-03 | 上海数据交易中心有限公司 | 数据流通方法及装置、存储介质、服务器 |
US11442631B2 (en) * | 2019-12-26 | 2022-09-13 | Micron Technology, Inc. | Memory operations with consideration for wear leveling |
CN111506517B (zh) * | 2020-03-05 | 2022-05-17 | 杭州电子科技大学 | 一种基于访问局部性的闪存页级地址映射方法及其系统 |
TWI751580B (zh) | 2020-06-10 | 2022-01-01 | 財團法人工業技術研究院 | 儲存空間暫存檔案的管理方法及用於儲存多個暫存檔案的記錄裝置 |
CN116974459A (zh) * | 2022-04-21 | 2023-10-31 | 戴尔产品有限公司 | 基于存储对象的输入/输出模式来在存储系统的存储装置之间进行损耗均衡 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8554983B2 (en) * | 2008-05-27 | 2013-10-08 | Micron Technology, Inc. | Devices and methods for operating a solid state drive |
KR101028929B1 (ko) * | 2008-12-31 | 2011-04-12 | 성균관대학교산학협력단 | 실시간 시스템을 위한 로그 블록 연관성 분산 방법 및 이를수행하는 플래시 메모리 장치 |
TWI400707B (zh) * | 2009-07-09 | 2013-07-01 | Phison Electronics Corp | 快閃記憶體邏輯區塊管理方法及其控制電路與儲存系統 |
CN101833510B (zh) * | 2010-03-29 | 2012-10-10 | 清华大学 | 闪存ftl的地址转换方法 |
US8521948B2 (en) * | 2011-01-03 | 2013-08-27 | Apple Inc. | Handling dynamic and static data for a system having non-volatile memory |
KR20120081351A (ko) * | 2011-01-11 | 2012-07-19 | 에스케이하이닉스 주식회사 | Ftl을 수행하는 비휘발성 메모리 장치 및 그의 제어 방법 |
CN102541760B (zh) * | 2012-01-04 | 2015-05-20 | 记忆科技(深圳)有限公司 | 基于固态硬盘的计算机系统 |
-
2012
- 2012-10-31 US US13/664,417 patent/US20140122774A1/en not_active Abandoned
- 2012-11-20 CN CN201210472294.9A patent/CN103019958B/zh not_active Expired - Fee Related
Cited By (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106557273A (zh) * | 2015-09-30 | 2017-04-05 | 宇瞻科技股份有限公司 | 固态硬盘的数据管理方法、写入管理系统及其方法 |
CN107203335A (zh) * | 2016-03-17 | 2017-09-26 | 爱思开海力士有限公司 | 存储系统及其操作方法 |
CN105975403A (zh) * | 2016-04-28 | 2016-09-28 | 浪潮(北京)电子信息产业有限公司 | 一种地址映射方法、系统及固态硬盘 |
CN108628754A (zh) * | 2017-03-22 | 2018-10-09 | 慧荣科技股份有限公司 | 一般及垃圾回收的数据存取方法以及使用该方法的装置 |
CN107402982A (zh) * | 2017-07-07 | 2017-11-28 | 阿里巴巴集团控股有限公司 | 数据写入、数据匹配方法、装置及计算设备 |
CN107943719A (zh) * | 2017-11-28 | 2018-04-20 | 杭州电子科技大学 | 一种基于请求分类的闪存转换层控制方法 |
CN108108131A (zh) * | 2017-12-29 | 2018-06-01 | 北京联想核芯科技有限公司 | 一种ssd硬盘的数据处理方法和装置 |
CN110851398B (zh) * | 2018-08-20 | 2023-05-09 | 阿里巴巴集团控股有限公司 | 垃圾数据的回收处理方法、装置及电子设备 |
CN110851398A (zh) * | 2018-08-20 | 2020-02-28 | 阿里巴巴集团控股有限公司 | 垃圾数据的回收处理方法、装置及电子设备 |
TWI820321B (zh) * | 2018-09-03 | 2023-11-01 | 大陸商合肥沛睿微電子股份有限公司 | 快閃記憶體控制器及相關控制方法 |
CN110879788A (zh) * | 2018-09-05 | 2020-03-13 | 爱思开海力士有限公司 | 存储器控制器、存储器系统以及存储器装置的操作方法 |
CN110879788B (zh) * | 2018-09-05 | 2023-09-15 | 爱思开海力士有限公司 | 存储器控制器、存储器系统以及存储器装置的操作方法 |
US11775427B2 (en) | 2018-09-05 | 2023-10-03 | SK Hynix Inc. | Memory controller, memory system and operating method of memory device |
US11797437B2 (en) | 2018-09-05 | 2023-10-24 | SK Hynix Inc. | Memory controller, memory system and operating method of memory device |
WO2023284173A1 (zh) * | 2021-07-13 | 2023-01-19 | 苏州浪潮智能科技有限公司 | 固态硬盘的任务分配方法、系统、电子设备及存储介质 |
US12019889B2 (en) | 2021-07-13 | 2024-06-25 | Inspur Suzhou Intelligent Technology Co., Ltd. | Task allocation method and system for solid state drive, electronic device, and storage medium |
Also Published As
Publication number | Publication date |
---|---|
CN103019958B (zh) | 2015-11-18 |
US20140122774A1 (en) | 2014-05-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103019958B (zh) | 使用数据属性来管理固态存储器里的数据的方法 | |
US10739996B1 (en) | Enhanced garbage collection | |
Debnath et al. | FlashStore: High throughput persistent key-value store | |
US9430376B2 (en) | Priority-based garbage collection for data storage systems | |
CN104268094B (zh) | 一种优化的闪存地址映射方法 | |
Li et al. | CCF-LRU: A new buffer replacement algorithm for flash memory | |
CN104572478B (zh) | 数据存取方法和数据存取装置 | |
Jiang et al. | S-FTL: An efficient address translation for flash memory by exploiting spatial locality | |
US10740251B2 (en) | Hybrid drive translation layer | |
Lim et al. | FASTer FTL for enterprise-class flash memory SSDs | |
Lee et al. | FAST: An efficient flash translation layer for flash memory | |
CN109992530A (zh) | 一种固态驱动器设备及基于该固态驱动器的数据读写方法 | |
CN109582593B (zh) | 一种基于计算的ftl地址映射读、写方法 | |
KR101297442B1 (ko) | 공간 지역성을 고려한 요구 기반 플래시 메모리 변환 계층을 포함하는 낸드 플래시 메모리 시스템 | |
CN105339910B (zh) | 在混合驱动器中的虚拟nand容量扩展 | |
Chang et al. | A low-cost wear-leveling algorithm for block-mapping solid-state disks | |
JP2012141946A (ja) | 半導体記憶装置 | |
CN110888600B (zh) | 一种面向nand闪存的缓冲区管理方法 | |
CN104598386B (zh) | 通过追踪和利用二级映射索引重复利用固态驱动器块 | |
Xu et al. | CAST: A page-level FTL with compact address mapping and parallel data blocks | |
Wu et al. | APP-LRU: A new page replacement method for PCM/DRAM-based hybrid memory systems | |
Fang et al. | An Adaptive Endurance-Aware ${B^+} $-Tree for Flash Memory Storage Systems | |
Kang et al. | CLOCK-DNV: A write buffer algorithm for flash storage devices of consumer electronics | |
CN113253926A (zh) | 提升新型存储器的查询和存储性能的存储内索引构建方法 | |
Fevgas et al. | LB-Grid: An SSD efficient grid file |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20151118 Termination date: 20211120 |
|
CF01 | Termination of patent right due to non-payment of annual fee |