CN115469797B - 一种数据写入方法、存储装置及计算机可读存储介质 - Google Patents
一种数据写入方法、存储装置及计算机可读存储介质 Download PDFInfo
- Publication number
- CN115469797B CN115469797B CN202111058013.0A CN202111058013A CN115469797B CN 115469797 B CN115469797 B CN 115469797B CN 202111058013 A CN202111058013 A CN 202111058013A CN 115469797 B CN115469797 B CN 115469797B
- Authority
- CN
- China
- Prior art keywords
- data
- written
- storage area
- area
- writing
- 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
- 238000000034 method Methods 0.000 title claims abstract description 62
- 239000000872 buffer Substances 0.000 claims description 54
- 230000006870 function Effects 0.000 claims description 6
- 239000002356 single layer Substances 0.000 claims description 4
- 239000010410 layer Substances 0.000 claims description 2
- 230000001502 supplementing effect Effects 0.000 claims description 2
- 230000003321 amplification Effects 0.000 abstract description 7
- 238000003199 nucleic acid amplification method Methods 0.000 abstract description 7
- 230000001360 synchronised effect Effects 0.000 abstract description 6
- 238000005299 abrasion Methods 0.000 abstract description 5
- 230000002035 prolonged effect Effects 0.000 abstract description 3
- 238000010586 diagram Methods 0.000 description 10
- 238000011010 flushing procedure Methods 0.000 description 7
- 230000004044 response Effects 0.000 description 7
- 230000002159 abnormal effect Effects 0.000 description 5
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 238000004891 communication Methods 0.000 description 2
- 208000000044 Amnesia Diseases 0.000 description 1
- 208000026139 Memory disease Diseases 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000007774 longterm Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000006984 memory degeneration Effects 0.000 description 1
- 208000023060 memory loss Diseases 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
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/0608—Saving storage space on 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/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
- 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/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/0643—Management of files
-
- 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/0644—Management of space entities, e.g. partitions, extents, pools
-
- 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]
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请公开了一种数据写入方法、存储装置及计算机可读存储介质,其中,该数据写入方法包括:将待写入数据写入缓存区域;响应于将缓存区域中当前存储的待写入数据写入到闪存区域,判断待写入数据是否小于闪存区域中的主存储区域的最小写入单元;如果待写入数据小于主存储区域的最小写入单元,将待写入数据写入闪存区域中的临时存储区域;其中,临时存储区域的最小写入单元小于主存储区域的最小写入单元。上述方案,本申请能够有效减少闪存区域中无效数据的填充量,从而使写入闪存区域的数据放大量也得以减小,以能够减缓闪存的磨损,延长存储装置的寿命,且同时能够提升“缓存禁止”写入数据和文件同步写入数据的性能。
Description
技术领域
本申请涉及计算机存储技术领域,特别是涉及一种数据写入方法、存储装置及计算机可读存储介质。
背景技术
现今,基于闪存(NAND Flash)的存储装置,当用户尝试写入数据时,通常会先把从主机端接收到的数据缓存在该存储装置内部的写缓存(RAM,Random Access Memory,随机存取存储器)中,以待写缓存中的数据累积到一定量后,才会把这些数据冲刷(flush)到闪存中去。而对于其中主机端发送的“缓存禁止”(cache off)命令和文件同步命令,均会将写缓存中的数据强制冲刷至闪存中,而无论当前写缓存中的存储空间是否处于满载还是不满载状态。其中,如果写缓存不满,即数据量不足以凑足闪存空间所需的最小写入单元时,存储装置的固件便需要填充一些无效的数据凑足闪存的最小写入单元,然后再将写缓存中的数据冲刷,也即写入到闪存中。
然而,为凑足闪存的最小写入单元而引入的数据填充,通常会导致两个问题:写入数据的放大量会变大,而将加速闪存的磨损,并缩短存储装置的寿命;且因存储装置中的闪存空间需要额外写入填充数据,“缓存禁止”写入数据和文件同步写入数据的性能也将变差。
发明内容
本申请主要解决的技术问题是提供一种数据写入方法、存储装置及计算机可读存储介质,以解决现有技术中的存储装置在写入数据时,通常会使写入数据的放大量变大,而将加速闪存的磨损,并缩短存储装置的寿命;且“缓存禁止”写入数据和文件同步写入数据的性能也较差的问题。
为了解决上述问题,本申请第一方面提供了一种存储装置的数据写入方法,其中,该数据写入方法包括:将待写入数据写入缓存区域;响应于将缓存区域中当前存储的待写入数据写入到闪存区域,判断待写入数据是否小于闪存区域中的主存储区域的最小写入单元;如果待写入数据小于主存储区域的最小写入单元,将待写入数据写入闪存区域中的临时存储区域;其中,临时存储区域的最小写入单元小于主存储区域的最小写入单元。
其中,如果待写入数据小于主存储区域的最小写入单元,将待写入数据写入闪存区域中的临时存储区域之后,还包括:在缓存区域继续写入待写入数据,以在待写入数据等于主存储区域的最小写入单元时,将待写入数据写入主存储区域。
其中,如果待写入数据小于主存储区域的最小写入单元,将待写入数据写入闪存区域中的临时存储区域,包括:如果待写入数据小于主存储区域的最小写入单元,判断待写入数据是否小于临时存储区域的最小写入单元;如果待写入数据小于临时存储区域的最小写入单元,将待写入数据写入临时存储区域,并在临时存储区域补充写入设定大小的填充数据,以使待写入数据和填充数据等于临时存储区域的最小写入单元。
其中,主存储区域和临时存储区域均为三阶储存单元闪存区域,且临时存储区域通过固件算法对应实现单阶存储单元闪存区域功能,判断待写入数据是否小于闪存区域中的主存储区域的最小写入单元,包括:判断待写入数据是否小于闪存区域中的主存储区域的最小写入单元的三分之一;如果待写入数据小于主存储区域的最小写入单元,将待写入数据写入闪存区域中的临时存储区域,包括:如果待写入数据小于主存储区域的最小写入单元的三分之一,将待写入数据写入闪存区域中的临时存储区域;如果待写入数据大于主存储区域的最小写入单元的三分之一,将待写入数据写入主存储区域。
其中,将待写入数据写入缓存区域之后,判断待写入数据是否小于闪存区域中的主存储区域的最小写入单元之前,包括:判断待写入数据是否为缓存使能数据;如果待写入数据为缓存使能数据,在缓存区域继续写入待写入数据,以在待写入数据等于主存储区域的最小写入单元时,将待写入数据写入主存储区域。
其中,判断待写入数据是否小于闪存区域中的主存储区域的最小写入单元,包括:判断待写入数据是否包括缓存禁止命令或文件同步命令;如果待写入数据包括缓存禁止命令或文件同步命令,判断待写入数据是否小于闪存区域中的主存储区域的最小写入单元。
其中,在缓存区域继续写入待写入数据,以在待写入数据等于主存储区域的最小写入单元时,将待写入数据写入主存储区域之后,包括:清除缓存区域中的待写入数据。
其中,在缓存区域继续写入待写入数据,以在待写入数据等于主存储区域的最小写入单元时,将待写入数据写入主存储区域之后,包括:判断临时存储区域的剩余空间是否小于设定阈值;如果临时存储区域的剩余空间小于设定阈值,清除临时存储区域中的存储数据。
其中,如果临时存储区域的剩余空间小于设定阈值,清除临时存储区域中的存储数据,包括:如果临时存储区域的剩余空间小于设定阈值,判断临时存储区域中当前的存储数据是否均存在于主存储区域;如果临时存储区域中当前的存储数据存在于主存储区域,清除临时存储区域中的存储数据。
其中,将待写入数据写入缓存区域之前,包括:将闪存区域划分为主存储区域和临时存储区域,其中,主存储区域对应为多层单元存储方式,临时存储区域对应为单层单元存储方式。
为了解决上述问题,本申请第二方面提供了一种存储装置,其中,该存储装置包括相互耦接的第一存储空间、处理器及第二存储空间;第一存储空间划分有缓存区域和闪存区域,闪存区域划分有主存储区域和临时存储区域;其中,临时存储区域的最小写入单元小于主存储区域的最小写入单元,第二存储空间存储有程序数据;处理器用于执行程序数据,以实现如上任一项所述的数据写入方法。
为了解决上述问题,本申请第三方面提供了一种计算机可读存储介质,其上存储有程序指令,其中,该程序指令被处理器执行时实现上任一项所述的数据写入方法。
本发明的有益效果是:区别于现有技术的情况,本申请的数据写入方法包括:将待写入数据写入缓存区域,并响应于将缓存区域中当前存储的待写入数据写入到闪存区域,判断待写入数据是否小于闪存区域中的主存储区域的最小写入单元,以在待写入数据小于主存储区域的最小写入单元时,将待写入数据写入闪存区域中的临时存储区域;其中,临时存储区域的最小写入单元小于主存储区域的最小写入单元。由此可知,本申请通过设置最小写入单元相较主存储区域更小的临时存储区域优先存储由写缓存写入至闪存区域的待写入数据,以能够有效减少闪存区域中无效数据的填充量,从而使写入闪存区域的数据放大量也得以减小,以能够减缓闪存的磨损,延长存储装置的寿命,且“缓存禁止”写入数据和文件同步写入数据的性能也因此相较更好。
附图说明
图1是基于闪存的存储装置对写入的数据进行存储的结构示意图;
图2现有技术中存储装置的数据写入方法对写入的数据进行存储的结构示意图;
图3是本申请存储装置的数据写入方法第一实施例的流程示意图;
图4是本申请存储装置的数据写入方法在一具体应用场中对写入的数据进行存储的结构示意图;
图5是图3中S13一实施例的流程示意图;
图6是本申请存储装置的数据写入方法第二实施例的流程示意图;
图7是本申请存储装置的数据写入方法第三实施例的流程示意图;
图8是本申请存储装置的数据写入方法第四实施例的流程示意图;
图9是本申请存储装置的数据写入方法第五实施例的流程示意图;
图10是本申请存储装置一实施例的结构示意图;
图11是本申请计算机可读存储介质一实施例的结构示意图。
具体实施方式
发明人经长期研究发现,为了提高存储装置的写入性能,尤其是基于闪存的存储装置的写入性能,如图1所示,图1是基于闪存的存储装置对写入的数据进行存储的结构示意图,当用户尝试写入数据时,通常会先把从主机端接收到的数据缓存在该存储装置内部控制器的写缓存中,以待写缓存中的数据累积到一定量后,才会把这些数据冲刷到闪存空间中去。需要说明的是,本申请中的术语“缓存区域”即为存储装置内用于数据缓存的RAM区域;本申请中的术语“闪存区域”包括存储装置内用于数据闪存的SLC(Single-Level Cell,单阶存储单元闪存)区域、MLC(Multi-Level Cell,二阶存储单元闪存)区域、TLC(Triple-Level Cell,三阶储存单元闪存)区域、以及QLC(Quad-Level Cell,四层式存储单元)区域的至少一种。
其中,写缓存的存储空间大小取决于闪存的配置以及固件算法,一般为几百KB到几MB的大小。而用户一般采用“缓存使能”(cache on)的方式写入数据,即写命令的数据只要写入到写缓存,就意味着该笔写入命令已完成,这样的好处是能够提高写入性能。但是,并非所有的命令都是“缓存使能”的,对某些非常重要的数据,它通常需要把数据写到闪存空间后,这笔命令才算真正完成。比如,对于“缓存禁止”的命令,当存储装置接收到缓存禁止的命令数据后,不能立刻给主机回馈状态,而是应该先执行冲刷操作,也即把写缓存中的数据写入到闪存空间,以等闪存写入完毕后,才能给主机回馈状态。此外,文件系统为避免异常掉电导致文件丢失或者文件损坏,通常还会定期进行一些同步(sync cache)操作,也即发送命令给存储装置,以把写缓存中当前存储的数据冲刷到闪存空间,以避免异常掉电导致数据丢失。
其中,上述“缓存禁止”命令和文件同步命令,都会导致写缓存的强制冲刷,而不管写缓存当前是否处于满载还是未满状态。而如果写缓存不满,即数据量不足以凑足闪存空间所需的最小写入单元时,存储装置的固件则需要填充一些无效数据,以凑足该最小写入单元,然后再将写缓存中的数据冲刷至闪存。比如,如图2所示,图2是现有技术中存储装置的数据写入方法对写入的数据进行存储的结构示意图,其中,当写缓存中只有4KB用户数据时,由于闪存空间中的TLC的最小写入单元为96KB,为了把这4KB数据写入到闪存中去,还需要填充92KB的无效数据,才能有效地写入到闪存中,也即此时的写放大为:24(= 96KB/4KB)!。
然而,为凑足闪存的最小写入单元而引入的数据填充,通常会导致两个问题:写入数据的放大量会变大,而将加速闪存的磨损,并缩短存储装置的寿命;且因存储装置中的闪存空间需要额外写入填充数据,“缓存禁止”写入数据和文件同步写入数据的性能也将变差。
为了使存储装置能够保持长时间的高性能写入,本申请提供了一种用于存储装置的数据写入方法。下面结合附图和实施例,对本申请作进一步的详细描述。特别指出的是,以下实施例仅用于说明本申请,但不对本申请的范围进行限定。同样的,以下实施例仅为本申请的部分实施例而非全部实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本申请保护的范围。
在本申请中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本申请的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员显式地和隐式地理解的是,本文所描述的实施例可以与其它实施例相结合。
请参阅图3和图4,其中,图3是本申请存储装置的数据写入方法第一实施例的流程示意图,图4是本申请存储装置的数据写入方法在一具体应用场中对写入的数据进行存储的结构示意图。需要说明的是,本申请中的术语“包括”和“具有”以及它们任何变形,意图在于覆盖不排他的包含。具体而言,本实施例包括如下步骤:
S11:将待写入数据写入缓存区域。
可理解的,如图4所示,在存储装置接收到主机端发送的写入指令之后,响应该写入指令启动将待写入数据写入缓存区域的任务,以首先将该待写入数据写入缓存区域。其中,在本实施例中,对写入指令的类型不作限制,比如,该写入指令可以是下载文件的指令,也可以是安装操作系统的指令,也可以是安装软件的指令等任一合理的写入指令,本申请对此不做限定。而该待写入数据可以是缓存使能命令数据,也可以是缓存禁止命令数据或同步命令数据,本申请对此不做限定。
可选地,该存储装置具体可以为SSD(Solid State Disk,固态硬盘)、UFS(Universal Flash Storage,通用闪存存储)、eMMC(embedded Multi Media Card,嵌入式多媒体卡)等任一合理的基于闪存的存储设备中的一种,本申请对此不做限定。
可选地,该主机端具体可以是计算机、平板电脑、智能手机以及智能手表等任一合理的能够进行数据写入操作的智能终端中的一种,本申请对此不做限定。
可选地,该缓存区域具体可以为SRAM(Static Random Access Memory,静态随机存取存储器)区域,或DRAM(Dynamic Random Access Memory,动态随机存取存储器)区域等任一合理的随机存取存储器中的一种,本申请对此不做限定。
S12:响应于将缓存区域中当前存储的待写入数据写入到闪存区域,判断待写入数据是否小于闪存区域中的主存储区域的最小写入单元。
具体地,本实施中的闪存区域具体划分有主存储区域和临时存储区域,且临时存储区域的最小写入单元小于主存储区域的最小写入单元。其中,在将待写入数据写入缓存区域后,为保证更优质的写入性能,当存储装置需要将缓存数据中当前存储的待写入数据写入到闪存区域时,比如,在当前写入到缓存区域的待写入数据为缓存禁止命令数据和/或同步命令数据,而需强制将该待写入数据写入闪存区域时,具体将该待写入数据写入闪存区域中的哪一存储区域还具有其他的判定条件,比如,判断该待写入数据对应的数据大小是否小于闪存区域中的主存储区域的最小写入单元所对应的存储空间的大小。
举例而言,当缓存区域的存储空间大小等于主存储区域的最小写入单元所对应的存储空间的大小时,可通过检测缓存区域当前存储数据的状态是否处于满载状态,即可确定当前存储于缓存区域的待写入数据是否小于闪存区域中的主存储区域的最小写入单元。而在其他实施例中,还可以直接检测缓存区域当前存储的待写入数据的数据量大小,也即待写入数据的字节数是否小于预先根据主存储区域的最小写入单元设定的阈值,以确定当前存储于缓存区域的待写入数据是否小于闪存区域中的主存储区域的最小写入单元,本申请对此不做限定。
其中,如果待写入数据小于闪存区域中的主存储区域的最小写入单元,则执行S13,如果待写入数据不小于闪存区域中的主存储区域的最小写入单元,则执行S13。
S13:将待写入数据写入闪存区域中的临时存储区域。
进一步地,在确定缓存区域当前存储的待写入数据小于闪存区域中的主存储区域的最小写入单元时,也即,当确定如果将该待写入数据写入闪存区域中的主存储区域需要进行无效数据的填充时,可首先将该待写入数据写入闪存区域中的临时存储区域。
可理解的,因该临时存储区域的最小写入单元小于主存储区域的最小写入单元,故而在将待写入数据写入临时存储区域时,可有效减少额外写入的填充数据的数据量,从而能够有效减小写入数据的放大量,以减缓闪存的磨损,延长存储装置的寿命。
S14:将待写入数据写入闪存区域中的主存储区域。
可理解的,当缓存区域的存储空间等于闪存区域中的主存储区域的最小写入单元时,且该待写入数据不小于闪存区域中的主存储区域的最小写入单元,则可确定缓存区域当前存储的待写入数据等于主存储区域的最小写入单元,可将待写入数据写入闪存区域中的主存储区域,并清空缓存区域当前存储的待写入数据,以使缓存区域能够继续写入数据。
而在其他实施例中,当缓存区域的存储空间大于闪存区域中的主存储区域的最小写入单元时,也可在每一次缓存区域当前存储的待写入数据等于主存储区域的最小写入单元时,将该待写入数据写入闪存区域中的主存储区域,而缓存区域当前存储的待写入数据可清空,也可不清空,在不清空时,需只对新写入的待写入数据进行冲刷至闪存中的操作。
可理解的,在一实施例中,在缓存区域当前存储的待写入数据为缓存使能命令数据时,可将该待写入数据保持在缓存区域中,以与后续写入缓存区域中的待写入数据做聚集,直到缓存区域当前写入的待写入数据为缓存禁止命令数据或同步命令数据时,才将缓存区域当前存储的所有待写入数据写入至闪存区域中的临时存储区域;且当缓存区域当前存储的所有待写入数据等于闪存区域中的主存储区域的最小写入单元时,还需进一步将该待写入数据写入至主存储区域。
可理解的,在一实施例中,在将缓存区域当前存储的待写入数据写入至闪存区域中的临时存储区域后,该待写入数据继续保持在缓存区域,以与后续写入缓存区域中的待写入数据做聚集,直到缓存区域当前存储的所有待写入数据等于闪存区域中的主存储区域的最小写入单元时,将该待写入数据写入至主存储区域,以能够避免后续再把临时存储区域中的待写入数据转存至主存储区域,从而能够精简相应的存储程序。
举例而言,如图4所示,当缓存区域当前存储的待写入数据为4KB,而闪存区域中的主存储区域为TLC区域,闪存区域中的临时存储区域为SLC区域时,则可知,主存储区域的最小写入单元为96KB,而临时存储区域的最小写入单元为16KB,该4KB的待写入数据,也即4KB的用户数据在冲刷至闪存区域时,需首先写入到临时存储区域,并补充12KB的填充数据。可理解的,该缓存区域中的待写入数据可继续等待与后续写入的待写入数据做聚集,直到缓存区域当前存储的所有待写入数据等于闪存区域中的主存储区域的最小写入单元时,才将该待写入数据写入至主存储区域。
具体来说,可分配若干个闪存块(block),并把它们配置成SLC模式,以作为临时数据冲刷区域,也即临时存储区域,并将该临时数据冲刷区域设置为按物理页(page)对齐写,即最小写入单元为物理页。同样以冲刷4KB用户数据为例,新的方式只需要填充12KB数据,以凑足一个物理页(16KB),即可把它写入到闪存,从而能够大大减少数据的填充量(数据填充量可从之前的92KB减少为12KB)。
由此可知,上述方案,有效的减少了无效数据的填充量,并使写入数据的放大量也得以减小,以减缓闪存的磨损,延长存储装置的寿命,且同时能够提升“缓存禁止”写和文件同步写的性能;另外,SLC写入数据也相较TLC写入数据更快,这也有助于写入性能的优化。
此外,当将缓存区域中的数据冲刷到SLC块上时,还可以不释放缓存区域当前存储的数据,而是让其保持在缓存区域中,以继续与后续写入的数据做聚集。且当累积的数据量达到主存储区域的最小写入单元时,再将其冲刷至主存储区域中的TLC块。
可理解的,对于缓存区域来说,第一个4KB数据被强制冲刷到SLC块上后,在用户继续写入92KB的数据,而凑足了TLC块的最小写入单元时,即可将缓存区域中的当前的所有是数据冲刷到TLC块。对第一个4KB的数据来说,它既存在于临时存储区域,也存在于主存储区域。而临时存储区域中的数据最后终归需要搬移到主存储区域(通过垃圾回收机制),而由于相应的数据在两个区域都存在,因此也便可有效避免后期再把数据从临时存储区域转存到主存储区域,而造成不必要的损耗。
请结合参阅图5,图5是图3中S13一实施例的流程示意图。在一实施例中,本申请的存储装置的数据写入方法第一实施例除了包括上述S11-S14之外,还进一步包括一些更为具体的步骤。具体地,上述S13具体还可以包括如下步骤:
S131:判断待写入数据是否小于临时存储区域的最小写入单元。
可理解的,在一场景中,当确定待写入数据小于闪存区域中的主存储区域的最小写入单元时,还需判断该待写入数据是否小于临时存储区域的最小写入单元,以确定是否需要进行数据的填充。
其中,如果待写入数据小于临时存储区域的最小写入单元时,则执行S132,如果待写入数据不小于临时存储区域的最小写入单元时,则执行S133。
S132:将待写入数据写入临时存储区域,并在临时存储区域补充写入设定大小的填充数据,以使待写入数据和填充数据等于临时存储区域的最小写入单元。
具体地,在待写入数据小于临时存储区域的最小写入单元时,在将该待写入数据写入临时存储区域后,为凑足一个最小写入单元的存储空间,还需在临时存储区域补充写入设定大小的填充数据。其中,该填充数据的设定大小以能够使待写入数据和填充数据等于临时存储区域的最小写入单元为准,本申请对此不做限定。
S133:将待写入数据写入闪存区域中的临时存储区域。
具体地,在待写入数据不小于临时存储区域的最小写入单元时,也即,在待写入数据等于临时存储区域的最小写入单元时,直接将待写入数据写入闪存区域中的临时存储区域;而在待写入数据大于临时存储区域的最小写入单元时,超出部分可再次判断是否小于临时存储区域的最小写入单元,以确定是否需要补充设定大小的填充数据写入到临时存储区域的下一个最小写入单元中,依次类推,可将相应的待写入数据依次存储于临时存储区域中的至少两个最小写入单元。
进一步地,在一实施例中,上述S11之前,具体还可以包括:将闪存区域划分为主存储区域和临时存储区域。
在一实施例中,该主存储区域对应为多层单元存储方式,而临时存储区域对应为单层单元存储方式。且该主存储区域具体可以是TLC区域,而临时存储区域为SLC区域或MLC区域;或,主存储区域和临时存储区域均为TLC区域或MLC区域或QLC区域,且临时存储区域具体是通过相应的固件算法可对应实现单层单元存储方式。
在另一实施例中,该主存储区域还可以是QLC区域,而临时存储区域可以为SLC区域、MLC区域以及TLC区域中的任一种,本申请对此不做限定。
在一可选的实施例中,该主存储区域还可以是MLC区域,而临时存储区域为SLC区域。
进一步地,在一实施例中,上述S14具体还可以包括:在缓存区域继续写入待写入数据,以在待写入数据等于主存储区域的最小写入单元时,将待写入数据写入主存储区域。
可理解的,在将缓存区域当前存储的待写入数据写入临时存储区域后,该待写入数据还可以与后续写入至缓存区域中的数据做聚集,直到该待写入数据等于主存储区域的最小写入单元时,可将该待写入数据写入主存储区域。其中,因临时存储区域中的数据最后终归需要搬移到主存储区域,而由于数据在两个区域都存在,即可有效避免后期把数据从临时存储区域搬迁到主存储区域。
进一步地,在一实施例中,在将缓存区域中的待写入数据写入主存储区域后,还包括:清除缓存区域中的待写入数据,以使缓存区域能够继续写入数据。
请参阅图6,图6是本申请存储装置的数据写入方法第二实施例的流程示意图。本实施例的存储装置的数据写入方法是图3中的存储装置的数据写入方法的一细化实施例的流程示意图,在本实施例中,主存储区域和临时存储区域均为三阶储存单元闪存区域(TLC区域),且临时存储区域通过固件算法对应实现单阶存储单元闪存区域(SLC区域)功能,包括如下步骤:
S21:将待写入数据写入缓存区域。
其中,S21与图3中的S11相同,具体请参阅S11及其相关的文字描述,在此不再赘述。
S22:响应于将缓存区域中前存储的待写入数据写入到闪存区域,判断待写入数据是否小于闪存区域中的主存储区域的最小写入单元的三分之一。
可理解的,当临时存储区域具体是TLC区域,而通过固件算法对应实现SLC区域功能时,在存储同样字节数的数据,该临时存储区域的存储耗损将是主存储区域的三倍。因此,在将缓存区域中前存储的待写入数据写入到闪存区域时,在保证较小的无效数据填充量的同时,还需确保更小的存储损耗。
由此可知,在本实施例中,具体是判断待写入数据是否小于闪存区域中的主存储区域的最小写入单元的三分之一,以在待写入数据小于闪存区域中的主存储区域的最小写入单元的三分之一时,则执行S23,而在待写入数据大于或等于闪存区域中的主存储区域的最小写入单元的三分之一时,则执行S24,从而能够兼顾较小无效数据的填充量及较小的存储损耗。
S23:将待写入数据写入闪存区域中的临时存储区域。
S24:将待写入数据写入闪存区域中的主存储区域。
其中,S23和S24分别与图3中的S13和S14相同,具体请参阅S13和S14及其相关的文字描述,在此不再赘述。
进一步地,在一实施例中,当主存储区域和临时存储区域均为QLC区域,且临时存储区域通过固件算法对应实现SLC区域功能时,上述S22具体还可以包括:响应于将缓存区域中前存储的待写入数据写入到闪存区域,判断待写入数据是否小于闪存区域中的主存储区域的最小写入单元的四分之一。
可理解的,基于兼顾较小无效数据的填充量及较小的存储损耗的同样理由,在待写入数据小于闪存区域中的主存储区域的最小写入单元的四分之一时,则执行S23,而在待写入数据大于或等于闪存区域中的主存储区域的最小写入单元的四分之一时,则执行S24。
进一步地,在一实施例中,当主存储区域和临时存储区域均为MLC区域,且临时存储区域通过固件算法对应实现SLC区域功能时,上述S22具体还可以包括:响应于将缓存区域中前存储的待写入数据写入到闪存区域,判断待写入数据是否小于闪存区域中的主存储区域的最小写入单元的二分之一。
同样地,在待写入数据小于闪存区域中的主存储区域的最小写入单元的二分之一时,则执行S23,而在待写入数据大于或等于闪存区域中的主存储区域的最小写入单元的二分之一时,则执行S24。
请参阅图7,图7是本申请存储装置的数据写入方法第三实施例的流程示意图。本实施例的存储装置的数据写入方法是图3中的存储装置的数据写入方法的一细化实施例的流程示意图,包括如下步骤:
S31:将待写入数据写入缓存区域。
其中,S21与图3中的S11相同,具体请参阅S11及其相关的文字描述,在此不再赘述。
S32:判断待写入数据是否为缓存使能数据。
可理解的,对于不同的待写入数据,通常对应有不同的写入程序,比如,对于缓存使能数据,只要写入到写缓存,该笔写入命令就已完成。但是,并非所有的命令都是缓存使能数据,对于某些非常重要的数据,它通常需要把数据写到闪存空间后,这笔命令才算真正完成。其中,对于非缓存使能数据中的“缓存禁止”的命令,当存储装置接收到缓存禁止的命令数据后,不能立刻给主机回状态,而是应该先执行冲刷操作,以把写缓存中的数据写入到闪存空间,并等待闪存写入完毕后,才能给主机回状态。此外,文件系统为避免异常掉电导致文件丢失或者文件损坏,通常还会定期进行一些同步操作,也即发送命令给存储装置,把写缓存中当前存储的数据冲刷到闪存空间,以避免异常掉电导致数据丢失。
因此,在将待写入数据写入缓存区域后,还需确定该待写入数据具体的数据类型,比如,判断该待写入数据是否为缓存使能数据。
其中,如果待写入数据为缓存使能数据,则执行S23,如果待写入数据不为缓存使能数据,则执行S24。
S33:在缓存区域继续写入待写入数据,以在待写入数据等于主存储区域的最小写入单元时,将待写入数据写入主存储区域。
具体地,当缓存区域当前存储的待写入数据为缓存使能数据时,无需立即把该待写入数据写入闪存区域中,而能够在该缓存区域中继续写入待写入数据,直到该缓存区域中的待写入数据等于主存储区域的最小写入单元时,才将待写入数据写入至主存储区域。
S34:判断待写入数据是否小于闪存区域中的主存储区域的最小写入单元。
S35:将待写入数据写入闪存区域中的临时存储区域。
S36:将待写入数据写入闪存区域中的主存储区域。
其中,S34、S35以及S36分别与图3中的S12、S13以及S14相同,具体请参阅S12、S13以及S14及其相关的文字描述,在此不再赘述。
请参阅图8,图8是本申请存储装置的数据写入方法第四实施例的流程示意图。本实施例的存储装置的数据写入方法是图3中的存储装置的数据写入方法的一细化实施例的流程示意图,包括如下步骤:
S41:将待写入数据写入缓存区域。
其中,S41与图3中的S11相同,具体请参阅S11及其相关的文字描述,在此不再赘述。
S42:判断待写入数据是否包括缓存禁止命令或文件同步命令。
可理解的,对于不同的待写入数据,通常对应有不同的写入程序,因而在将待写入数据写入缓存区域后,还需确定该待写入数据具体的数据类型,比如,判断该待写入数据是否包括缓存禁止命令或文件同步命令。
其中,如果待写入数据不包括缓存禁止命令或文件同步命令,则执行S43,如果待写入数据包括缓存禁止命令或文件同步命令,则执行S44。
S43:在缓存区域继续写入待写入数据,以在待写入数据等于主存储区域的最小写入单元时,将待写入数据写入主存储区域。
可理解的,当待写入数据不包括缓存禁止命令或文件同步命令,也即缓存区域当前存储的待写入数据均为缓存使能数据时,无需立即把该待写入数据写入到闪存区域中,以能够在该缓存区域中继续写入待写入数据,而在后续写入的待写入数据为缓存禁止命令或文件同步命令时,即可执行S44,否则直到该缓存区域中的待写入数据等于主存储区域的最小写入单元时,将该待写入数据写入至主存储区域。
S44:判断待写入数据是否小于闪存区域中的主存储区域的最小写入单元。
S45:将待写入数据写入闪存区域中的临时存储区域。
S46:将待写入数据写入闪存区域中的主存储区域。
其中,S44、S45以及S46分别与图3中的S12、S13以及S14相同,具体请参阅S12、S13以及S14及其相关的文字描述,在此不再赘述。
请参阅图9,图9是本申请存储装置的数据写入方法第五实施例的流程示意图。本实施例包括如下步骤:
S51:将待写入数据写入缓存区域。
S52:响应于将缓存区域中当前存储的待写入数据写入到闪存区域,判断待写入数据是否小于闪存区域中的主存储区域的最小写入单元。
S53:将待写入数据写入闪存区域中的主存储区域。
S54:将待写入数据写入闪存区域中的临时存储区域。
其中,S51、S52、S53以及S54分别与图3中的S11、S12、S13以及S14相同,具体请参阅S11、S12、S13以及S14及其相关的文字描述,在此不再赘述。
S55:判断临时存储区域的剩余空间是否小于设定阈值。
具体地,在将待写入数据写入闪存区域中的临时存储区域后,为保证待写入数据存储的有效性,还需判断临时存储区域的剩余空间是否小于设定阈值。
本实施例对该设定阈值不作限定,可以根据实际需要,比如,剩余空间对应等于缓存区域的存储空间大小为阈值进行设定,以能够判断临时存储区域的剩余空间是否小于缓存区域的存储空间,从而能够有效防止因临时存储区域剩余空间不足导致有效数据的丢失。而在其他实施例中,该设定阈值还可以根据主存储区域的最小存储单元进行设定,以能够判断临时存储区域的剩余空间是否小于主存储区域的最小存储单元,从而能够有效防止因临时存储区域剩余空间不足导致有效数据的丢失;或直接以临时存储区域的剩余空间是否为0进行设定,而判断临时存储区域是否处于满载状态,也即判断该临时存储区域的存储空间是否已满,本申请对此不做限定。
其中,如果临时存储区域的剩余空间小于设定阈值,则执行S56,如果临时存储区域的剩余空间不小于设定阈值,则执行S57。
S56:清除临时存储区域中的存储数据。
可理解的,在临时存储区域的剩余空间小于设定阈值时,则可确定临时存储区域的剩余空间不足以存储由缓存区域后续写入的待写入数据或有风险导致有效数据的丢失,或临时存储区域的存储空间已满,需清除临时存储区域中的存储数据,以保证缓存区域当前存储的数据不致丢失,且使临时存储区域能够继续写入待写入数据。
S57:继续等待在闪存区域中的临时存储区域写入数据。
可理解的,在临时存储区域的剩余空间不小于设定阈值时,则表明临时存储区域的剩余空间仍足以存储由缓存区域后续写入的待写入数据,可继续在闪存区域中的临时存储区域写入数据。
进一步地,在一实施例中,上述S56具体还可以包括:判断临时存储区域中当前的存储数据是否均存在于主存储区域;如果临时存储区域中当前的存储数据存在于主存储区域,清除临时存储区域中的存储数据。
可理解的,在确定临时存储区域的剩余存储空间不足,而需清空临时存储区域当前存储的数据,以继续等待后续数据的写入时,如果临时存储区域中当前的存储数据并未存储于主存储区域时,因缓存区域在异常掉电的情况下,存储于缓存区域中的数据将丢失,而此时直接清除临时存储区域中的存储数据,将存在有效数据丢失的风险。
因此,在清除临时存储区域中的存储数据之前,还需保证临时存储区域当前存储的数据均已保存在主存储区域中,以防止有效数据的丢失。且在临时存储区域中当前的存储数据并未存储于主存储区域时,则需将临时存储区域中当前存储的数据转存于主存储区域后,再清除临时存储区域中的存储数据。
请参阅图10,图10是本申请存储装置一实施例的结构示意图。该存储装置61包括相互耦接的第一存储空间611、处理器612及第二存储空间613;第一存储空间611划分有缓存区域(图未示出)和闪存区域(图未示出),闪存区域划分有主存储区域(图未示出)和临时存储区域(图未示出);其中,临时存储区域的最小写入单元小于主存储区域的最小写入单元,第二存储空间613存储有程序数据;处理器612用于执行该程序数据,以实现如上任一项所述的数据写入方法。
在一个具体的实施场景中,存储装置61可以包括但不限于:SSD、UFS、eMMC等任一合理的基于闪存的存储设备中的一种,本申请对此不做限定。
可选地,该缓存区域具体可以为SRAM区域,或DRAM区域等任一合理的随机存取存储器中的一种,本申请对此不做限定。
在一实施例中,该主存储区域对应为三层单元存储方式,而临时存储区域对应为单层单元存储方式。且该主存储区域具体可以是TLC区域,而临时存储区域为SLC区域或MLC区域;或,主存储区域和临时存储区域均为TLC区域或MLC区域或QLC区域,但临时存储区域通过相应的固件算法可对应实现单层单元存储方式。
在另一实施例中,该主存储区域还可以是QLC区域,而临时存储区域可以为SLC区域、MLC区域以及TLC区域中的任一种,本申请对此不做限定。
在一可选的实施例中,该主存储区域还可以是MLC区域,而临时存储区域为SLC区域。
具体而言,处理器512用于控制其自身以及第二存储空间513以实现上述任一数据写入方法实施例的步骤。处理器512还可以称为CPU(Central Processing Unit,中央处理单元)。处理器512可能是一种集成电路芯片,具有信号的处理能力。处理器512还可以是通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。另外,处理器512可以由集成电路芯片共同实现。
请参阅图11,图11是本申请计算机可读存储介质一实施例的结构示意图。计算机可读存储介质71存储有能够被处理器运行的程序指令711,该程序指令711用于实现上述任一项所述的数据写入方法。
在本申请所提供的几个实施例中,应该理解到,所揭露的方法、装置,可以通过其它的方式实现。例如,以上所描述的装置实施方式仅仅是示意性的,例如,模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性、机械或其它的形式。
作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施方式方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(processor)执行本申请各个实施方式方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
Claims (12)
1.一种存储装置的数据写入方法,其特征在于,所述数据写入方法包括:
将待写入数据写入缓存区域;
响应于将所述缓存区域中当前存储的所述待写入数据写入到闪存区域,判断所述待写入数据是否小于所述闪存区域中的主存储区域的最小写入单元;其中,所述缓存区域的存储空间大小等于所述主存储区域的最小写入单元所对应的存储空间的大小,所述判断所述待写入数据是否小于所述闪存区域中的主存储区域的最小写入单元的步骤包括:检测所述缓存区域当前存储数据的状态是否处于满载状态;
如果所述待写入数据小于所述主存储区域的最小写入单元,将所述待写入数据写入所述闪存区域中的临时存储区域;其中,所述临时存储区域的最小写入单元小于所述主存储区域的最小写入单元;
如果所述缓存区域的存储空间大于所述主存储区域的最小写入单元,在每一次所述缓存区域当前存储的所述待写入数据等于所述主存储区域的最小写入单元时,将所述待写入数据写入所述主存储区域,并针对新写入所述缓存区域的待写入数据执行响应于将所述缓存区域中当前存储的所述待写入数据写入到闪存区域,判断所述待写入数据是否小于所述闪存区域中的主存储区域的最小写入单元的步骤;
判断所述临时存储区域的剩余空间是否小于所述主存储区域的最小存储单元;
如果所述临时存储区域的剩余空间小于所述所述主存储区域的最小存储单元,清除所述临时存储区域中的存储数据。
2.根据权利要求1所述的数据写入方法,其特征在于,所述如果所述待写入数据小于所述主存储区域的最小写入单元,将所述待写入数据写入所述闪存区域中的临时存储区域之后,还包括:
在所述缓存区域继续写入所述待写入数据,以在所述待写入数据等于所述主存储区域的最小写入单元时,将所述待写入数据写入所述主存储区域。
3.根据权利要求1所述的数据写入方法,其特征在于,所述如果所述待写入数据小于所述主存储区域的最小写入单元,将所述待写入数据写入所述闪存区域中的临时存储区域,包括:
如果所述待写入数据小于所述主存储区域的最小写入单元,判断所述待写入数据是否小于所述临时存储区域的最小写入单元;
如果所述待写入数据小于所述临时存储区域的最小写入单元,将所述待写入数据写入所述临时存储区域,并在所述临时存储区域补充写入设定大小的填充数据,以使所述待写入数据和所述填充数据等于所述临时存储区域的最小写入单元。
4.根据权利要求1所述的数据写入方法,其特征在于,所述主存储区域和所述临时存储区域均为三阶储存单元闪存区域,且所述临时存储区域通过固件算法对应实现单阶存储单元闪存区域功能,所述判断所述待写入数据是否小于所述闪存区域中的主存储区域的最小写入单元,包括:
判断所述待写入数据是否小于所述闪存区域中的所述主存储区域的最小写入单元的三分之一;
所述如果所述待写入数据小于所述主存储区域的最小写入单元,将所述待写入数据写入所述闪存区域中的临时存储区域,包括:
如果所述待写入数据小于所述主存储区域的最小写入单元的三分之一,将所述待写入数据写入所述闪存区域中的所述临时存储区域;
如果所述待写入数据大于所述主存储区域的最小写入单元的三分之一,将所述待写入数据写入所述主存储区域。
5.根据权利要求1所述的数据写入方法,其特征在于,所述将待写入数据写入缓存区域之后,所述判断所述待写入数据是否小于闪存区域中的主存储区域的最小写入单元之前,包括:
判断所述待写入数据是否为缓存使能数据;
如果所述待写入数据为所述缓存使能数据,在所述缓存区域继续写入所述待写入数据,以在所述待写入数据等于所述主存储区域的最小写入单元时,将所述待写入数据写入所述主存储区域。
6.根据权利要求1所述的数据写入方法,其特征在于,所述判断所述待写入数据是否小于闪存区域中的主存储区域的最小写入单元,包括:
判断所述待写入数据是否包括缓存禁止命令或文件同步命令;
如果所述待写入数据包括所述缓存禁止命令或所述文件同步命令,判断所述待写入数据是否小于闪存区域中的主存储区域的最小写入单元。
7.根据权利要求2所述的数据写入方法,其特征在于,所述在所述缓存区域继续写入所述待写入数据,以在所述待写入数据等于所述主存储区域的最小写入单元时,将所述待写入数据写入所述主存储区域之后,包括:
清除所述缓存区域中的所述待写入数据。
8.根据权利要求2所述的数据写入方法,其特征在于,所述在所述缓存区域继续写入所述待写入数据,以在所述待写入数据等于所述主存储区域的最小写入单元时,将所述待写入数据写入所述主存储区域之后,包括:
判断所述临时存储区域的剩余空间是否小于设定阈值;
如果所述临时存储区域的剩余空间小于所述设定阈值,清除所述临时存储区域中的存储数据。
9.根据权利要求8所述的数据写入方法,其特征在于,所述如果所述临时存储区域的剩余空间小于所述设定阈值,清除所述临时存储区域中的存储数据,包括:
如果所述临时存储区域的剩余空间小于所述设定阈值,判断所述临时存储区域中当前的存储数据是否均存在于所述主存储区域;
如果所述临时存储区域中当前的存储数据存在于所述主存储区域,清除所述临时存储区域中的存储数据。
10.根据权利要求1所述的数据写入方法,其特征在于,所述将待写入数据写入缓存区域之前,包括:
将所述闪存区域划分为所述主存储区域和所述临时存储区域,其中,所述主存储区域对应为多层单元存储方式,所述临时存储区域对应为单层单元存储方式。
11.一种存储装置,其特征在于,所述存储装置包括相互耦接的第一存储空间、处理器及第二存储空间;
所述第一存储空间划分有缓存区域和闪存区域,所述闪存区域划分有主存储区域和临时存储区域;其中,所述临时存储区域的最小写入单元小于所述主存储区域的最小写入单元,所述第二存储空间存储有程序数据;
所述处理器用于执行所述程序数据,以实现如权利要求1-10中任一项所述的数据写入方法。
12.一种计算机可读存储介质,其上存储有程序指令,其特征在于,所述程序指令被处理器执行时实现权利要求1-10任一项所述的数据写入方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111058013.0A CN115469797B (zh) | 2021-09-09 | 2021-09-09 | 一种数据写入方法、存储装置及计算机可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111058013.0A CN115469797B (zh) | 2021-09-09 | 2021-09-09 | 一种数据写入方法、存储装置及计算机可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115469797A CN115469797A (zh) | 2022-12-13 |
CN115469797B true CN115469797B (zh) | 2023-12-29 |
Family
ID=84364763
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111058013.0A Active CN115469797B (zh) | 2021-09-09 | 2021-09-09 | 一种数据写入方法、存储装置及计算机可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115469797B (zh) |
Citations (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20090107098A (ko) * | 2008-04-08 | 2009-10-13 | 재단법인서울대학교산학협력재단 | 낸드 플래시 메모리를 위한 지역성 기반의 가비지 컬렉션기법 |
CN107506309A (zh) * | 2017-06-30 | 2017-12-22 | 深圳市硅格半导体股份有限公司 | 终端及闪存数据写入方法和计算机可读存储介质 |
US10222984B1 (en) * | 2015-12-31 | 2019-03-05 | EMC IP Holding Company LLC | Managing multi-granularity flash translation layers in solid state drives |
CN110413229A (zh) * | 2019-07-10 | 2019-11-05 | 华中科技大学 | 一种数据写入方法 |
CN110427158A (zh) * | 2019-07-29 | 2019-11-08 | 浙江大华技术股份有限公司 | 固态硬盘的写入方法及固态硬盘 |
CN110442310A (zh) * | 2019-08-06 | 2019-11-12 | 惠州Tcl移动通信有限公司 | 应用数据处理方法、装置、存储介质及终端设备 |
CN111090596A (zh) * | 2018-10-24 | 2020-05-01 | 爱思开海力士有限公司 | 存储器系统及其操作方法 |
CN111506261A (zh) * | 2020-03-24 | 2020-08-07 | 平安国际智慧城市科技股份有限公司 | 基于双缓存区的缓存方法、装置、设备及存储介质 |
CN111722795A (zh) * | 2019-03-22 | 2020-09-29 | 铠侠股份有限公司 | 存储系统以及用于控制存储系统的方法 |
CN112307263A (zh) * | 2020-10-29 | 2021-02-02 | 苏州浪潮智能科技有限公司 | 一种文件存储方法、装置、设备及介质 |
WO2021035551A1 (en) * | 2019-08-27 | 2021-03-04 | Micron Technology, Inc. | Write buffer control in managed memory system |
KR20210029417A (ko) * | 2019-09-06 | 2021-03-16 | 삼성에스디에스 주식회사 | 캐시를 구비한 스토리지 시스템 및 그 데이터 처리 방법 |
CN112817544A (zh) * | 2021-03-05 | 2021-05-18 | 北京星网锐捷网络技术有限公司 | 一种数据处理方法、存储系统及存储设备 |
CN113010111A (zh) * | 2021-03-05 | 2021-06-22 | 深圳忆联信息系统有限公司 | Ssd访问加速方法、装置、计算机设备及存储介质 |
CN113010091A (zh) * | 2019-12-20 | 2021-06-22 | 华为技术有限公司 | 数据写入固态硬盘的方法、垃圾回收的方法、装置 |
CN113190180A (zh) * | 2021-05-26 | 2021-07-30 | 北京自由猫科技有限公司 | 一种基于混合介质的存储装置及分布式存储系统 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20170109102A1 (en) * | 2015-10-19 | 2017-04-20 | Elastifile Ltd. | Usage of ssd nvdram by upper software layers |
-
2021
- 2021-09-09 CN CN202111058013.0A patent/CN115469797B/zh active Active
Patent Citations (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20090107098A (ko) * | 2008-04-08 | 2009-10-13 | 재단법인서울대학교산학협력재단 | 낸드 플래시 메모리를 위한 지역성 기반의 가비지 컬렉션기법 |
US10222984B1 (en) * | 2015-12-31 | 2019-03-05 | EMC IP Holding Company LLC | Managing multi-granularity flash translation layers in solid state drives |
CN107506309A (zh) * | 2017-06-30 | 2017-12-22 | 深圳市硅格半导体股份有限公司 | 终端及闪存数据写入方法和计算机可读存储介质 |
CN111090596A (zh) * | 2018-10-24 | 2020-05-01 | 爱思开海力士有限公司 | 存储器系统及其操作方法 |
CN111722795A (zh) * | 2019-03-22 | 2020-09-29 | 铠侠股份有限公司 | 存储系统以及用于控制存储系统的方法 |
CN110413229A (zh) * | 2019-07-10 | 2019-11-05 | 华中科技大学 | 一种数据写入方法 |
CN110427158A (zh) * | 2019-07-29 | 2019-11-08 | 浙江大华技术股份有限公司 | 固态硬盘的写入方法及固态硬盘 |
CN110442310A (zh) * | 2019-08-06 | 2019-11-12 | 惠州Tcl移动通信有限公司 | 应用数据处理方法、装置、存储介质及终端设备 |
WO2021035551A1 (en) * | 2019-08-27 | 2021-03-04 | Micron Technology, Inc. | Write buffer control in managed memory system |
KR20210029417A (ko) * | 2019-09-06 | 2021-03-16 | 삼성에스디에스 주식회사 | 캐시를 구비한 스토리지 시스템 및 그 데이터 처리 방법 |
CN113010091A (zh) * | 2019-12-20 | 2021-06-22 | 华为技术有限公司 | 数据写入固态硬盘的方法、垃圾回收的方法、装置 |
CN111506261A (zh) * | 2020-03-24 | 2020-08-07 | 平安国际智慧城市科技股份有限公司 | 基于双缓存区的缓存方法、装置、设备及存储介质 |
CN112307263A (zh) * | 2020-10-29 | 2021-02-02 | 苏州浪潮智能科技有限公司 | 一种文件存储方法、装置、设备及介质 |
CN112817544A (zh) * | 2021-03-05 | 2021-05-18 | 北京星网锐捷网络技术有限公司 | 一种数据处理方法、存储系统及存储设备 |
CN113010111A (zh) * | 2021-03-05 | 2021-06-22 | 深圳忆联信息系统有限公司 | Ssd访问加速方法、装置、计算机设备及存储介质 |
CN113190180A (zh) * | 2021-05-26 | 2021-07-30 | 北京自由猫科技有限公司 | 一种基于混合介质的存储装置及分布式存储系统 |
Also Published As
Publication number | Publication date |
---|---|
CN115469797A (zh) | 2022-12-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11960393B2 (en) | Data processing method and apparatus, and flash device | |
US20200081832A1 (en) | Mapping table updating method | |
JP5970645B2 (ja) | メモリの寿命を延長するためにメモリ内のスペア領域を増加させること | |
US9946478B2 (en) | Memory managing method, memory control circuit unit and memory storage apparatus | |
US9384123B2 (en) | Memory system | |
CN105718530B (zh) | 文件存储系统及其文件存储控制方法 | |
US8392649B2 (en) | Memory storage device, controller, and method for responding to host write commands triggering data movement | |
JP5448013B2 (ja) | メモリの寿命を縮める動作を遅延させるシステム、方法、及びコンピュータプログラム製品 | |
US20150331624A1 (en) | Host-controlled flash translation layer snapshot | |
CN108369818A (zh) | 一种闪存设备的刷新方法和装置 | |
US20230016555A1 (en) | Data recovery method, apparatus, and solid state drive | |
US10324645B2 (en) | Data storage device and data storage method thereof | |
US8174912B2 (en) | Systems and methods for circular buffering control in a memory device | |
US20120297147A1 (en) | Caching Operations for a Non-Volatile Memory Array | |
CN112506438B (zh) | 一种映射表管理方法及固态硬盘 | |
US20220261174A1 (en) | Memory system | |
CN113093993A (zh) | 一种闪存空间动态分配方法及固态硬盘 | |
US10956074B2 (en) | Data storage method, memory storage device and memory control circuit unit | |
CN109815166B (zh) | 一种存储数据的动态回收处理方法及存储装置 | |
US11010290B2 (en) | Method for reading management information according to updating data reflecting both of host write and data merge, memory storage device and memory control circuit unit | |
CN113467713B (zh) | 数据分离方法及固态硬盘 | |
CN108804025B (zh) | 一种降低闪存滞留错误的方法及固态硬盘 | |
CN115469797B (zh) | 一种数据写入方法、存储装置及计算机可读存储介质 | |
US10564886B2 (en) | Methods and apparatus for controlling flash translation layer recycle from host | |
US11698742B2 (en) | Garbage collection in a memory component using an adjusted parameter |
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 |