CN111352593B - 一种区分快写和正常写的固态硬盘数据写入方法 - Google Patents
一种区分快写和正常写的固态硬盘数据写入方法 Download PDFInfo
- Publication number
- CN111352593B CN111352593B CN202010132813.1A CN202010132813A CN111352593B CN 111352593 B CN111352593 B CN 111352593B CN 202010132813 A CN202010132813 A CN 202010132813A CN 111352593 B CN111352593 B CN 111352593B
- Authority
- CN
- China
- Prior art keywords
- writing
- fast
- data
- block
- write
- 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.)
- Active
Links
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/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
- G06F3/0611—Improving I/O performance in relation to response time
-
- 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
- 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
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/12—Replacement control
- G06F12/121—Replacement control using replacement algorithms
- G06F12/123—Replacement control using replacement algorithms with age lists, e.g. queue, most recently used [MRU] list or least recently used [LRU] list
-
- 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/0616—Improving the reliability of storage systems in relation to life time, e.g. increasing Mean Time Between Failures [MTBF]
-
- 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/062—Securing storage systems
-
- 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/0629—Configuration or reconfiguration of storage systems
- G06F3/0631—Configuration or reconfiguration of storage systems by allocating resources to storage systems
-
- 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/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/0647—Migration mechanisms
- G06F3/0649—Lifecycle management
-
- 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/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0659—Command handling arrangements, e.g. command buffers, queues, command scheduling
-
- 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
- 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/10—Providing a specific technical effect
- G06F2212/1032—Reliability improvement, data loss prevention, degraded operation etc
- G06F2212/1036—Life time enhancement
-
- 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/1052—Security improvement
-
- 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/21—Employing a record carrier using a specific recording technology
- G06F2212/214—Solid state disk
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)
- Read Only Memory (AREA)
Abstract
本发明提供一种区分快写和正常写的固态硬盘数据写入方法。当有数据需要写入时,通过热数据识别窗口将识别出的经常更新的热数据交给快写流程进行处理,以高于正常步进电压的方式快速写入到快写块中,并将快写次数wf增加1,其他冷数据发送给正常写流程进行处理,以正常步进电压的方式写入到正常写块中。采用先进先出(FIFO)策略管理快写队列,周期性触发方式,以固定时间间隔,依据快写策略带来的收益和因数据保留时间到期而重写的开销来动态调整热数据识别阈值;本发明能够提高基于NAND闪存的固态硬盘的性能,同时又能保证有效用户数据的安全性,同时由于快写带来的额外的垃圾回收开销并不会明显增大,因而对固态硬盘的寿命影响也不大。
Description
技术领域
本发明属于固态硬盘固件优化设计领域,具体涉及一种区分快写和正常写的固态硬盘数据写入方法。
背景介绍
随着云计算、移动互联网等新一代信息技术的快速发展,数据量呈现出指数级增长,由此对于数据的处理和存储提出了更高的要求。得益于半导体技术的快速发展,一种以NAND为介质的高速读写的固态硬盘正越来越多的进入到企业与个人消费者之中。并且每比特存储成本的降低,使得NAND闪存的固态硬盘逐步占领市场,从而有望从根本上改变计算机***中的存储层次结构。
NAND闪存成本能够逐年稳定下降的根本原因在于于储存单元的多比特存储,以及近年来的3D堆叠技术。然而,由于NAND储存单元的物理特性。持续的增加储存单元中的比特数和3D堆叠技术的使用将不可避免的导致降低NAND闪存中每个存储单元的可靠性。因此,维护固态硬盘正常运行的性能指标(例如闪存的耐用性和响应时间)将变得越发困难,成为固态硬盘固件设计的重大挑战。
在固态硬盘中,储存单元的编程/擦除(P/E)次数、数据保留时间和编程速度之间存在着折衷,即通过较慢的编程速度写入数据,能够获得较高的电压精度,从而能够承受更大更多的存储单元间的编程噪声干扰或是具有更长的数据保留时间。同样的,在一定的编程噪声下,通过缩短数据的保留时间,可以提升P/E次数(即延长了固态硬盘寿命)或者数据写入速度(即提升了固态硬盘性能)。
在存储领域,通常假设硬盘的数据要能保留10年左右的时间。为实现长时间的数据保留,通常对所有数据都采用慢写。但实际应用中,许多热写数据的保留时间很短,如1-2天;这就意味着对这部分数据采用快写技术,不会违背数据保留时间的限制,但是又能提升固态硬盘的性能。
发明内容
针对上述现有技术的不足之处,本发明提供一种区分快写和正常写的固态硬盘数据写入方法。该方法结合热数据识别技术,将部分经常更新的热数据采用快写技术,其它数据采用正常写技术,以快写数据的保留时间为代价,提升固态硬盘的响应速度。
为实现本发明的目的,本发明采用以下技术方案:
步骤(1)、判断写入数据类别
底层存储用户数据的介质为NAND闪存,分为快写块与正常写块。快写块用于存储采用快写方式写入的热数据,正常写块用于存储采用正常写方式写入的冷数据。
闪存转换层采用按需的页级地址映射方法,在闪存转换层的RAM中存储经常访问请求的映射项,并将其分为读请求映射队列和写请求映射队列,采用最近最少使用(LRU)策略进行管理。在写请求映射队列的头部区域(即最近访问区域)设置一个热数据识别窗口,用于识别经常更新的热数据。
当有数据需要写入时,通过热数据识别窗口将识别出的经常更新的热数据交给快写流程进行处理,以高于正常步进电压的方式快速写入到快写块中,并将快写次数wf增加1,其他冷数据发送给正常写流程进行处理,以正常步进电压的方式写入到正常写块中。
所述的有数据需要写入包括垃圾回收引起的写和正常的用户数据写。
步骤(2)、快写流程的具体步骤:
S1,检查当前快写块是否有足够空间写入新数据。若没有,执行S2,否则,执行S5。
S2,检查当前快写块数量是否超过快写块数量上限Fnum。若未超过,则执行S3。否则,执行S4。
S3,检查当前空闲块的数量是否小于阈值。若小于阈值,则从正常写块中进行垃圾回收,使得空闲块数大于阈值。再根据磨损均衡原则,选择一个磨损次数最少的空闲块作为当前快写块,然后执行S5。
S4,根据FIFO原则,回收快写队列中最早进入的块,直到空闲块数大于阈值。在回收快写块时,对于此块中的每一个有效数据页,快写块的重写次数wr=wr+1。再根据磨损均衡原则,选择一个磨损次数最少的空闲块作为当前快写块,然后执行S5。
S5,从当前快写块中分配一个空闲页,将用户数据以高于正常步进电压的方式快速写入到此数据页,然后结束本次过程。
步骤(3)、正常写流程的具体步骤:
S1,检查当前正常写块是否有足够空间写入新数据。若没有,执行S2,否则,执行S3。
S2,检查当前空闲块的数量是否小于阈值。若小于阈值,则从正常写块中进行垃圾回收,使得空闲块数大于阈值。然后,根据磨损均衡原则,选择一个磨损次数最少的空闲块作为当前的正常写块,然后执行S3。
S3,从当前正常写块中分配一个空闲页,将用户数据以正常步进电压的方式写入到数据页,然后结束本次过程。
步骤(4)、快写队列的管理;
采用先进先出(FIFO)策略管理快写队列。快写队列存储在RAM中,由RAM空间的限制,快写块的个数限制为Fnum;
快写队列管理采用周期性触发方式,即每隔固定时间间隔Tfast(设置为快写数据保留时间T的1/2),从快写队列的尾部开始检测每一个快写块的实际存储时间是否超过T/2,若超过,则将此快写块进行垃圾回收,直到找到快写块的实际存储时间是小于T/2的快写块为止。在进行快写块的垃圾回收时,同样对于此块中的每一个有效数据页,快写块的重写次数wr=wr+1。
步骤(5)、热数据识别阈值的动态调整。以固定时间间隔,依据快写策略带来的收益和因数据保留时间到期而重写的开销来动态调整热数据识别阈值;
热数据识别阈值调整采用周期性触发方式,即每隔固定时间间隔Thot,触发一次热数据识别阈值的调整。具体流程如下:
S1,根据公式B=wf×(tr-tf)-wr×tr计算本周期内的快写收益,其中wf为快写次数,wr为快写数据的重写次数,tr为正常写所需时间,tf为快写所需时间。
S2,比较当前周期的快写实际Bcur与上一周期的收益Bpre。当Bcur<Bpre时,则通过改变热数据识别的阈值来减少热数据的识别量;当Bcur=Bpre时,代表当前总收益与上一周期总收益持平,无需调节热数据窗口大小;当Bcur>Bpre时,则通过改变热数据识别的阈值来增加热数据的识别量,以进一步利用快写策略提升闪存性能。
S3,将wf和wr置零,Bcur赋给Bpre,然后进入下一个周期。
本发明有益效果如下:
本发明提出的固态硬盘数据写入方法,增加了热数据快写模式,它能够提高基于NAND闪存的固态硬盘的性能,同时又能保证有效用户数据的安全性,即最终的用户数据的保留时间不受影响。此外,由于快写带来的额外的垃圾回收开销并不会明显增大,因而对固态硬盘的寿命影响也不大。
附图说明
图1:本发明的总体架构
图2:本发明的热数据识别流程
图3:本发明的热数窗口动态调整流程
图4:本发明的快写块队列管理的流程
图5:本发明的总体流程
图6:本发明的快写流程
图7:本发明的正常写流程
图8:本发明的第一个写请求处理过程的具体案例
图9:本发明的第二个写请求处理过程的具体案例
图10:本发明的快写队列和热数据窗口调整的具体案例
具体实施方式
以下通过特定的具体实例说明本发明的实施方式,本领域技术人员可由本说明书所揭露的内容轻易地了解本发明的其他优点与功效。本发明还可以通过另外不同的具体实施方式加以实施或应用,本说明书中的各项细节也可以基于不同观点与应用,在没有背离本发明的精神下进行各种修饰或改变。需说明的是,在不冲突的情况下,以下实施例及实施例中的特征可以相互组合。
需要说明的是,以下具体实施方式中所提供的图示仅以示意方式说明本发明的基本构想,遂图示中仅显示与本发明中有关的组件而非按照实际实施时的组件数目、形状及尺寸绘制,其实际实施时各组件的型态、数量及比例可为一种随意的改变,且其组件布局型态也可能更为复杂。
为了使本领域技术人员能更好地理解本发明的技术方案,下面将结合附图以及具体实施方式,对本发明进行详细的介绍说明,但不作为本发明的限定。
实施例一
本实施例提出一种区分快写和正常写的固态硬盘数据写入方法,所述写入方法的总体架构,如图1所示。本发明提出的数据写入方法中的热数据识别模块可以与闪存转换层相结合,将映射缓存表划分成数据写映射缓存表(W-CMT)和数据读映射缓存表(R-CMT)。将在R-CMT命中的读请求映射项,迁移至R-CMT最近最常使用(MRU)的位置。而在R-CMT命中的写请求映射项,则迁移至W-CMT的MRU位置。对于在W-CMT命中的读与写映射项,则都迁移至W-CMT的MRU位置。而热数据识别模块可以基于这样的闪存转换层设计,在W-CMT的头部(即MRU位置)开设一个热数据识别窗口,并通过感知快写收益调整热数据识别窗口的大小。
热数据识别的流程如图2所示:在热数据窗口命中的请求,被识别为热数据请求,则对每一个数据页,wf加1;而未在热数据窗口命中的其他请求,都识别为冷数据请求。热数据发送至快写流程进行处理,以高于正常的步进电压的方式快速写入快写块。冷数据发送至正常写流程进行处理,以正常的方式写入正常写块。
在固定时间间隔Thot定时结束后,触发热数据识别阈值的调整,即通过改变热数据窗口的大小来调整识别出的热数据量,具体流程如图3所示:首先,根据公式B=wf×(tr-tf)-wr×tr计算计算本周期内的快写收益Bcur;其次,根据公式 计算下一个周期的热数据窗口的大小,这里代表下取整;最后,将wf和wr置零,Bcur赋给Bpre,然后进入下一个周期。其中wf为快写次数,wr为快写数据的重写次数,tr为正常写所需时间,tf为快写所需时间;Bcur和Bpre分别为本周期和上一个周期的快写收益;HDA为热数据窗口的大小。HDA越大,写请求在热数据窗口命中的概率就越高,因此越多的数据能够被识别为热;反之,则写请求在热数据窗口命中的概率就低,越少的数据被识别为热。当Bcur/Bpre=1时,代表当前总收益与上一周期总收益持平,无需调节热数据窗口大小;当Bcur/Bpre>1时,表示当前周期的快写总收益大于上一周期,说明当前数据热度上升,因此增大热数据窗口大小,以进一步利用快写策略提升闪存性能。反之,Bcur/Bpre<1,表示当前周期快写总收益低于上一周期,表示数据热度下降,因此缩小热数据窗口大小。
在固定时间间隔Tfast定时结束后,触发快写队列管理,具体流程如图4所示:从快写队列的尾部开始检测每一个快写块的实际存储时间是否超过T/2(T为采用快写方式的数据页最大保留时间),若超过,则将此快写块进行垃圾回收,直到找到快写块的实际存储时间是小于T/2的快写块为止。在进行快写块的垃圾回收时,同样对于此块中的每一个有效数据页,快写块的重写次数wr=wr+1。此外,Tfast设置为T/2。
实施例二
本发明提出的区分快写和正常写的固态硬盘数据写入方法,当写请求到达后,其具体处理总流程如图5所示:
S1,识别请求冷热,即判断该请求是否在W-CMT的热数据窗口命中。若命中,则执行S2,否则执行S3。
S2,将命中映射项迁移到W-CMT的头部,然后采用快写流程将此请求写入到闪存,并将快写次数wf增加1,结束本次处理流程。
S3,判断该请求是否在W-CMT非热数据窗口命中。若命中,则将命中映射项迁移到W-CMT的头部,接着执行S5,否则执行S4。
S4,判断W-CMT是否满。若满,则剔除W-CMT的LRU位置的映射项,然后将该请求对应的映射项从R-CMT或底层翻译表中加载到W-CMT的MRU位置,接着执行S5。
S5,采用正常写流程完成该数据页的写,结束本次处理流程。
进一步,所述的快写流程如图6所示:
S1,检查当前快写块是否有足够空间写入新数据。若没有,执行S2,否则,执行S5。
S2,检查当前快写块数量是否等于快写块数量上限Fnum。若等于则执行S3,否则执行S4。
S3,检查当前空闲块的数量是否小于阈值。若小于阈值,则从正常写块中进行垃圾回收,使得空闲块数大于阈值。再根据磨损均衡原则,选择一个空闲块作为当前的快写块。然后执行S5。
S4,根据FIFO原则,回收快写队列中最早进入的块,直到空闲块数大于阈值。在回收快写块时,对于此块中的每一个有效数据页,快写块的重写次数wr=wr+1。再根据磨损均衡原则,选择一个磨损次数最少的空闲块作为当前快写块,然后执行S5。
S5,从当前快写块中分配一个空闲页,将用户数据以高于正常步进电压的方式快速写入到此数据页,然后结束本次过程。
进一步,所述的正常写的流程如图7所示:
S1,检查当前正常写块是否有足够空间写入新数据。若没有,执行S2,否则,执行S3。
S2,检查当前空闲块的数量是否小于阈值:若小于阈值,则从正常写块中进行垃圾回收,使得空闲块数大于阈值。再根据磨损均衡原则,选择一个空闲块作为当前的正常写块。然后执行S3。
S3,从当前正常写块中分配一个空闲页,将用户数据以正常步进电压的方式快速写入到此数据页,然后结束本次过程。
为了对本发明的数据快速写入方法的处理流程进行进一步详细说明,结合具体的两组实际请求处理实例进行说明。为了更清晰和简单的理解一种区分快写和正常写的固态硬盘数据写入方法。假设整个闪存的数据储存块数为8;其中,每个数据块由四个数据页组成;热数据窗口调整周期Thot=10000ms;快写队列管理周期Tfast=5000ms;快速写入数据保留时间Tsave=10000ms;快写数据块上限Fnum=3;空闲块的下限Ffree=1。映射方式采用LRU队列管理的纯页级映射,W-CMT队列长为10,HDA的初始大小为5。
实施例三:热数据的写入。
假设初始状态如图8中“初始状态”所示,现有一个“访问数据页LPN=3,写访问请求,请求大小为1,访问到达时间为9999.321ms”,其处理过程如下所示:
C1,该请求在W-CMT的热数据窗口命中,该写视为热数据写,快写次数wf加1,并发送到快写流程。
C2,当前快写块已满,且快写块的数量为3,等于Fnum。因此根据快写队列先入先出的管理原则,回收快写队列中尾部的数据块“1”,将其从快写队列中剔除。
C3,通过映射表,查找逻辑页号“3”。发现逻辑页号“3”已经储存在物理块“3”的第2个物理页中,于是将该位置的数据置为无效。
C4,从空闲块中选择擦除次数较少的块“4”,作为当前的快写块,并***快写队列的头部。
C5,将数据以高于正常的步进电压,写入块“4”的第一个空闲页中。
实施例四:冷数据的写入。
假设初始状态如图9中“初始状态”所示,现有一个“访问数据页LPN=8,写访问请求,请求大小为1,访问到达时间为12001.321ms”的请求到达,其处理过程如下所示:
C1,该请求到达在W-CMT的非热数据识别窗口命中,于是发送到正常写流程。
C2,由于当前正常写块已写满,且空闲块数为1,小于Ffree。因此根据无效页最大化原则,回收普通写块中的数据块“6”。
C3,通过映射表,查找逻辑页号“8”。发现逻辑页号“8”已经储存在物理块“2”的第1个物理页中,于是将该位置的数据置为无效。
C4,从空闲块中选择擦除次数较少的块“1”,作为当前的正常写块。
C5,将数据以正常的步进电压,写入块“1”的第一个空闲页中。
实施例五:快写队列和热数据窗口调整
假设此时初始状态如图10中“初始状态”所示。
C1,当时间到达10000ms,快写队列调整计时Tfast结束,进入C2的快写队列调整过程。
C2,由于快写队列的尾部数据块的写入时间为4817.091ms,此时10000-4817.091>Tsave/2=5000,超过了快写数据可保留时间的一半,于是回收快写块3,将快写队列的尾部数据块回收并擦除。然后再次判断快写队列尾部的快写数据块保留时间是否到期,由于现快写队列尾部数据块的写入时间为7000.983ms,10000-7000.983<5000,未超过数据保留时间的一半,则结束快写队列调整。
以上所述仅为本发明的优先实施例而已,并不用于限制本发明,对应本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同的替换、改进等,均应包含在本发明的保护范围之内。
Claims (1)
1.一种区分快写和正常写的固态硬盘数据写入方法,其特征在于,包括如下步骤:
步骤(1)、判断写入数据类别
底层存储用户数据的介质为NAND闪存,分为快写块与正常写块;快写块用于存储采用快写方式写入的热数据,正常写块用于存储采用正常写方式写入的冷数据;
闪存转换层采用按需的页级地址映射方法,在闪存转换层的RAM中存储经常访问请求的映射项,并将其分为读请求映射队列和写请求映射队列,采用最近最少使用(LRU)策略进行管理;在写请求映射队列的头部区域设置一个热数据识别窗口,用于识别经常更新的热数据;所述的头部区域即最近访问区域;
当有数据需要写入时,通过热数据识别窗口将识别出的经常更新的热数据交给快写流程进行处理,以高于正常步进电压的方式快速写入到快写块中,并将快写次数wf增加1,其他冷数据发送给正常写流程进行处理,以正常步进电压的方式写入到正常写块中;
所述的有数据需要写入包括垃圾回收引起的写和正常的用户数据写;
步骤(2)、快写流程的具体步骤:
S1,检查当前快写块是否有足够空间写入新数据;若没有,执行S2,否则,执行S5;
S2,检查当前快写块数量是否超过快写块数量上限Fnum;若未超过,则执行S3;否则,执行S4;
S3,检查当前空闲块的数量是否小于阈值;若小于阈值,则从正常写块中进行垃圾回收,使得空闲块数大于阈值;再根据磨损均衡原则,选择一个磨损次数最少的空闲块作为当前快写块,然后执行S5;
S4,根据FIFO原则,回收快写队列中最早进入的块,直到空闲块数大于阈值;在回收快写块时,对于此块中的每一个有效数据页,快写块的重写次数wr=wr+1;再根据磨损均衡原则,选择一个磨损次数最少的空闲块作为当前快写块,然后执行S5;
S5,从当前快写块中分配一个空闲页,将用户数据以高于正常步进电压的方式快速写入到此数据页,然后结束本次过程;
步骤(3)、正常写流程的具体步骤:
S1,检查当前正常写块是否有足够空间写入新数据;若没有,执行S2,否则,执行S3;
S2,检查当前空闲块的数量是否小于阈值;若小于阈值,则从正常写块中进行垃圾回收,使得空闲块数大于阈值;然后,根据磨损均衡原则,选择一个磨损次数最少的空闲块作为当前的正常写块,然后执行S3;
S3,从当前正常写块中分配一个空闲页,将用户数据以正常步进电压的方式写入到数据页,然后结束本次过程;
步骤(4)、快写队列的管理;
采用先进先出(FIFO)策略管理快写队列;快写队列存储在RAM中,由RAM空间的限制,快写块的个数限制为Fnum;
快写队列管理采用周期性触发方式,即每隔固定时间间隔Tfast,从快写队列的尾部开始检测每一个快写块的实际存储时间是否超过T/2,若超过,则将此快写块进行垃圾回收,直到找到快写块的实际存储时间是小于T/2的快写块为止;在进行快写块的垃圾回收时,同样对于此块中的每一个有效数据页,快写块的重写次数wr=wr+1;所述的T为快写数据保留时间;
步骤(5)、热数据识别阈值的动态调整;以固定时间间隔,依据快写策略带来的收益和因数据保留时间到期而重写的开销来动态调整热数据识别阈值;
热数据识别阈值调整采用周期性触发方式,即每隔固定时间间隔Thot,触发一次热数据识别阈值的调整;具体流程如下:
S1,根据公式B=wf×(tr-tf)-wr×tr计算本周期内的快写收益,其中wf为快写次数,wr为快写数据的重写次数,tr为正常写所需时间,tf为快写所需时间;
S2,比较当前周期的快写实际Bcur与上一周期的收益Bpre;当Bcur<Bpre时,则通过改变热数据识别的阈值来减少热数据的识别量;当Bcur=Bpre时,代表当前总收益与上一周期总收益持平,无需调节热数据窗口大小;当Bcur>Bpre时,则通过改变热数据识别的阈值来增加热数据的识别量,以进一步利用快写策略提升闪存性能;
S3,将wf和wr置零,Bcur赋给Bpre,然后进入下一个周期。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010132813.1A CN111352593B (zh) | 2020-02-29 | 2020-02-29 | 一种区分快写和正常写的固态硬盘数据写入方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010132813.1A CN111352593B (zh) | 2020-02-29 | 2020-02-29 | 一种区分快写和正常写的固态硬盘数据写入方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111352593A CN111352593A (zh) | 2020-06-30 |
CN111352593B true CN111352593B (zh) | 2022-03-22 |
Family
ID=71192421
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010132813.1A Active CN111352593B (zh) | 2020-02-29 | 2020-02-29 | 一种区分快写和正常写的固态硬盘数据写入方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111352593B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112433676A (zh) * | 2020-11-24 | 2021-03-02 | 合肥康芯威存储技术有限公司 | 一种固态硬盘的垃圾回收处理方法及*** |
CN112783656B (zh) * | 2021-01-29 | 2024-04-30 | 杭州网易智企科技有限公司 | 内存管理方法、介质、装置和计算设备 |
CN116644001B (zh) * | 2023-07-20 | 2023-10-17 | 合肥康芯威存储技术有限公司 | 一种存储器件及其垃圾回收的控制方法 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10008275B1 (en) * | 2017-05-24 | 2018-06-26 | Lite-On Electronics (Guangzhou) Limited | Control method for solid state storage device |
CN109324759A (zh) * | 2018-09-17 | 2019-02-12 | 山东浪潮云投信息科技有限公司 | 大数据平台的处理终端、读数据和写数据的方法 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5520747B2 (ja) * | 2010-08-25 | 2014-06-11 | 株式会社日立製作所 | キャッシュを搭載した情報装置及びコンピュータ読み取り可能な記憶媒体 |
TWI471862B (zh) * | 2011-08-19 | 2015-02-01 | Silicon Motion Inc | 快閃記憶體控制器 |
JP5112566B1 (ja) * | 2011-12-16 | 2013-01-09 | 株式会社東芝 | 半導体記憶装置、不揮発性半導体メモリの検査方法、及びプログラム |
US9424946B2 (en) * | 2013-02-08 | 2016-08-23 | Seagate Technology Llc | Non-volatile buffering to enable sloppy writes and fast write verification |
-
2020
- 2020-02-29 CN CN202010132813.1A patent/CN111352593B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10008275B1 (en) * | 2017-05-24 | 2018-06-26 | Lite-On Electronics (Guangzhou) Limited | Control method for solid state storage device |
CN109324759A (zh) * | 2018-09-17 | 2019-02-12 | 山东浪潮云投信息科技有限公司 | 大数据平台的处理终端、读数据和写数据的方法 |
Non-Patent Citations (1)
Title |
---|
SAN架构下的RAID数据存储技术研究与应用;苏博群;《万方数据库》;20160603;全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN111352593A (zh) | 2020-06-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11893238B2 (en) | Method of controlling nonvolatile semiconductor memory | |
EP2939120B1 (en) | Priority-based garbage collection for data storage systems | |
CN111352593B (zh) | 一种区分快写和正常写的固态硬盘数据写入方法 | |
US9003099B2 (en) | Disc device provided with primary and secondary caches | |
CN110413537B (zh) | 一种面向混合固态硬盘的闪存转换层及转换方法 | |
US9223694B2 (en) | Data storage device and operating method thereof | |
JP6139381B2 (ja) | メモリシステムおよび方法 | |
CN108845957B (zh) | 一种置换和回写自适应的缓冲区管理方法 | |
CN110888600B (zh) | 一种面向nand闪存的缓冲区管理方法 | |
US10936203B2 (en) | Memory storage device and system employing nonvolatile read/write buffers | |
US11645006B2 (en) | Read performance of memory devices | |
US9176866B2 (en) | Active recycling for solid state drive | |
KR101403922B1 (ko) | 접근 빈도에 따라 데이터를 할당하는 저장장치 및 저장방법 | |
CN111580754B (zh) | 一种写友好的闪存固态盘缓存管理方法 | |
KR101353967B1 (ko) | 환형 구조의 비휘발성 메모리 캐쉬에 데이터를 읽고 쓰기 위한 데이터 처리 방법 | |
CN114924690B (zh) | 一种基于非均衡磨损闪存的读性能优化方法 | |
KR101373613B1 (ko) | 환형 구조의 비휘발성 메모리 캐쉬를 포함하는 하이브리드 스토리지 장치 | |
CN117632018A (zh) | 一种持久内存和闪存混合的存储***及写数据方法 | |
KR101353968B1 (ko) | 환형 구조의 비휘발성 메모리 캐쉬에 기록된 데이터를 교체 및 가비지 콜렉션하기 위한 데이터 처리방법 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |