CN108762989B - 固态硬盘的数据存储方法、装置、设备及可读存储介质 - Google Patents

固态硬盘的数据存储方法、装置、设备及可读存储介质 Download PDF

Info

Publication number
CN108762989B
CN108762989B CN201810568793.5A CN201810568793A CN108762989B CN 108762989 B CN108762989 B CN 108762989B CN 201810568793 A CN201810568793 A CN 201810568793A CN 108762989 B CN108762989 B CN 108762989B
Authority
CN
China
Prior art keywords
data
solid state
storage area
state disk
lba
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
Application number
CN201810568793.5A
Other languages
English (en)
Other versions
CN108762989A (zh
Inventor
苗森
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.)
Zhengzhou Yunhai Information Technology Co Ltd
Original Assignee
Zhengzhou Yunhai Information Technology 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 Zhengzhou Yunhai Information Technology Co Ltd filed Critical Zhengzhou Yunhai Information Technology Co Ltd
Priority to CN201810568793.5A priority Critical patent/CN108762989B/zh
Publication of CN108762989A publication Critical patent/CN108762989A/zh
Application granted granted Critical
Publication of CN108762989B publication Critical patent/CN108762989B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1441Resetting or repowering
    • 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/0614Improving the reliability of storage systems
    • G06F3/0619Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
    • 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/0644Management of space entities, e.g. partitions, extents, pools
    • 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
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7202Allocation control and policies

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)
  • Quality & Reliability (AREA)
  • Computer Security & Cryptography (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Power Sources (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

本发明实施例公开了一种固态硬盘的数据存储方法、装置、设备及计算机可读存储介质。其中,方法包括当LBA在固态硬盘运行过程中的管理数据发生变化,则将管理数据的变化量存储在其第一存储区域中;当LBA的第一存储区域的剩余空间满足预设条件,从DDR中按照预设数据拷贝量将与其相对应的管理数据,复制至其第二存储区域中,并向NAND管理模块发送刷写其第一存储区域和第二存储区域中的数据;当固态硬盘下电时,将各LBA的第一存储区域和第二存储区域中的数据刷写至NAND中,并将更新的管理数据的L2P表下刷至控制管理器中,各LBA中的数据为预先按照预设数据存储量划分固态硬盘的管理数据所得。本申请减少了SSD下电时需要存储数据量,有利于保证SSD中的数据完整性。

Description

固态硬盘的数据存储方法、装置、设备及可读存储介质
技术领域
本发明实施例涉及固态硬盘数据存储技术领域,特别是涉及一种固态硬盘的数据存储方法、装置、设备及计算机可读存储介质。
背景技术
随着互联网、云计算、物联网等计算机技术的快速发展及广泛普及应用,日常工作或生活中时时刻刻会产生海量的数据需要处理和存储,数据的爆炸式增长、用户对数据的安全性要求的增高及信息技术的高速发展均对存储系统的性能提出了更高的要求。
SSD(Solid State Drives,固态硬盘),也叫固盘,为用固态电子存储芯片阵列制成的硬盘,由控制单元和固态存储单元组成。SSD需要在下电时能够在规定时间(一般为20ms)内将所需要存储的数据进行保存(也即落盘过程),从而保证SSD中的数据保持完整,在下次上电时SSD能够正常工作。
落盘的数据主要来源为DDR(Double Data Rate双倍速率同步动态随机存储器)中的数据,包括写缓存中的数据和系统的管理数据(如L2P表等),这些数据由主机端从SSD的前端发来,相关模块收到之后暂存在SSD的写缓存中,待达到一定的量(一般为一个superpage写满)后,再一次性交给nand管理模块进行“落盘”,SSD在下电时需要刷写写缓存中的数据和系统的管理数据。SSD下电过程的完成依赖SSD自带电容的放电,SSD的电容一般放电时间为20ms,这就要求SSD的固件在设计下电的流程时要考虑时间,以减少下电时SSD的保存过程的时间消耗。
SSD下电可能为用户操作下的正常下电,也可能为SSD正常运行工作过程中,电源突然被切断等不可抗拒的外界因素导致的异常下电,现有技术中一般采用下电时全部刷写所有管理数据和刷写部分可恢复全部管理数据方法。而刷写全部管理数据只能在对下电时间要求不高的场景下,而无法满足SSD的异常下电时所需时间的要求,有可能导致SSD下电过程中数据保持不完整,影响下次SSD上电时的正常使用。
发明内容
本发明实施例的目的是提供一种固态硬盘的数据存储方法、装置、设备及计算机可读存储介质,减少了SSD下电时需要存储数据量,从而缩短了SSD下电过程中数据存储时间,有利于保证SSD中的数据完整性,使得SSD在下次上电时可正常工作。
为解决上述技术问题,本发明实施例提供以下技术方案:
本发明实施例一方面提供了一种固态硬盘的数据存储方法,包括:
预先根据固态硬盘的管理数据,按照预设数据存储量进行划分LBA;各LBA均包括第一存储区域和第二存储区域,所述第一存储区域中保存该LBA中的自管理数据的说明信息,和所述自管理数据的变化信息;所述第二存储区域存储所述自管理数据在DDR中相对应的数据;
在所述固态硬盘正常运行过程中,当检测到LBA中的自管理数据发生变化时,在所述DDR中更新所述自管理数据,并将所述自管理数据的变化量存储在相应的第一存储区域中;
当检测到目标LBA的第一存储区域的剩余空间满足预设条件,从所述DDR中按照预设数据拷贝量将与所述目标LBA相对应的管理数据,复制至所述目标LBA的第二存储区域中,并向NAND管理模块发送刷写所述目标LBA的第一存储区域和第二存储区域中的数据;
当检测到所述固态硬盘下电时,将各LBA的第一存储区域和第二存储区域中的数据刷写至NAND中,并将更新的管理数据的L2P表下刷至控制管理器的超级块中。
可选的,所述第一存储区域与所述第二存储区域的占用空间容量比值为1:3。
可选的,所述预设数据存储量为16k。
可选的,所述当检测到目标LBA的第一存储区域的剩余空间满足预设条件为:
当检测到目标LBA的第一存储区域的剩余空间容量为0。
可选的,所述预设数据拷贝量与所述第二存储区域的占用空间容量相同。
可选的,所述将更新的管理数据的L2P表下刷至控制管理器的超级块中包括:
预先为所述固态硬盘的管理数据的L2P表建立一级L2P;
将更新的管理数据对应的一级L2P表下刷至控制管理器的超级块中。
可选的,在所述将更新的管理数据的L2P表下刷至控制管理器的超级块中之后,还包括:
向上一级管理模块发送所述固态硬盘下电存储管理数据已完成的指令。
本发明实施例另一方面提供了一种固态硬盘的数据存储装置,包括:
预处理模块,用于预先根据固态硬盘的管理数据,按照预设数据存储量进行划分LBA;各LBA均包括第一存储区域和第二存储区域,所述第一存储区域中保存该LBA中的自管理数据的说明信息,和所述自管理数据的变化信息;所述第二存储区域存储所述自管理数据在DDR中相对应的数据;
存储数据变量模块,用于在所述固态硬盘正常运行过程中,当检测到LBA中的自管理数据发生变化时,在所述DDR中更新所述自管理数据,并将所述自管理数据的变化量存储在相应的第一存储区域中;
分批数据存储模块,用于当检测到目标LBA的第一存储区域的剩余空间满足预设条件,从所述DDR中按照预设数据拷贝量将与所述目标LBA相对应的管理数据,复制至所述目标LBA的第二存储区域中,并向NAND管理模块发送刷写所述目标LBA的第一存储区域和第二存储区域中的数据;
下电数据存储模块,用于当检测到所述固态硬盘下电时,将各LBA的第一存储区域和第二存储区域中的数据刷写至NAND中,并将更新的管理数据的L2P表下刷至控制管理器的超级块中。
本发明实施例还提供了一种固态硬盘的数据存储设备,包括处理器,所述处理器用于执行存储器中存储的计算机程序时实现如前任一项所述固态硬盘的数据存储方法的步骤。
本发明实施例最后还提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有固态硬盘的数据存储程序,所述固态硬盘的数据存储程序被处理器执行时实现如前任一项所述固态硬盘的数据存储方法的步骤。
本发明实施例提供了一种固态硬盘的数据存储方法,在固态硬盘正常运行过程中,当检测到LBA中的管理数据发生变化时,在DDR中更新管理数据,并将管理数据的变化量存储在相应的第一存储区域中;当检测到目标LBA的第一存储区域的剩余空间满足预设条件,从DDR中按照预设数据拷贝量将与目标LBA相对应的管理数据,复制至目标LBA的第二存储区域中,并向NAND管理模块发送刷写其第一存储区域和第二存储区域中的数据;当检测到固态硬盘下电时,将各LBA的第一存储区域和第二存储区域中的数据刷写至NAND中,并将更新的管理数据的L2P表下刷至控制管理器的超级块中,各LBA中的数据为预先按照预设数据存储量划分固态硬盘的管理数据所得。
本申请技术方案的优点在于,将管理数据分配给多个LBA,各LBA存储管理数据的变化量和对应在DDR中的数据,并在满足预设条件时,将各LBA中存储数据拷贝在NAND中,当固态硬盘下电时,只需将各LBA中存储的当前数据下刷至NAND中。本申请在固态硬盘运行过程中,逐渐将下电时需要存储的数据分批次存储在NAND中,即在固态硬盘未下电时便实时存储一部分下电需要存储相关数据,当固态硬盘异常下电时,下刷管理数据的实际数据量明显减小,而相比写缓存中的数据量,管理数据的数据量较大,所以管理数据的刷写时间直接影响固态硬盘的下电存储所需数据的时间,从而大大的降低了固态硬盘下电时需要存储数据量,从而缩短了SSD下电过程中数据存储时间,有利于保证SSD中的数据完整性,使得SSD在下次上电时可正常工作。
此外,本发明实施例还针对固态硬盘的数据存储方法提供了相应的实现装置、设备及计算机可读存储介质,进一步使得所述方法更具有实用性,所述装置、设备及计算机可读存储介质具有相应的优点。
附图说明
为了更清楚的说明本发明实施例或现有技术的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单的介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种固态硬盘的数据存储方法的流程示意图;
图2为本发明实施例提供的另一种固态硬盘的数据存储方法的流程示意图;
图3为本发明实施例提供的固态硬盘的数据存储装置的一种具体实施方式结构图;
图4为本发明实施例提供的固态硬盘的数据存储装置的另一种具体实施方式结构图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面结合附图和具体实施方式对本发明作进一步的详细说明。显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”“第四”等是用于区别不同的对象,而不是用于描述特定的顺序。此外术语“包括”和“具有”以及他们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可包括没有列出的步骤或单元。
在介绍了本发明实施例的技术方案后,下面详细的说明本申请的各种非限制性实施方式。
首先参见图1,图1为本发明实施例提供的一种固态硬盘的数据存储方法的流程示意图,本发明实施例可包括以下内容:
S101:预先根据固态硬盘的管理数据,按照预设数据存储量进行划分LBA。
将固态硬盘中的每种管理数据按照数据量的多少划分LBA,预设数据存储量为每个LBA管理的管理数据的数量值,例如,为每个LBA划分16K数据,也即每个LBA管理的数据为16K。当然,也可为LBA划分任何数值的数据,具体的取值可根据管理数据的总量和实际的应用场景进行确定,本申请对此不作任何限定。
在一种具体的实施方式中,预设数据存储量可为一个,也可为多个,也就是说各LBA的管理数据的数据量可能彼此相同,也可能不同,可根据具体的应用场景进行选取,本申请对此不作任何限定。
每个LBA的结构相同,均包括第一存储区域和第二存储区域,第一存储区域中保存该LBA中的自管理数据的说明信息,和自管理数据的变化信息;第二存储区域存储自管理数据在DDR中相对应的数据。
第一存储区域与第二存储区域的占用空间容量比值为1:3,当然,也可为其他比例进行划分。为了在固态硬盘运行过程中尽量多的存储下电时需要落盘的数据,第一存储区域与第二存储区域的占用空间容量比值应设置不超过1:1。
举例来说,LBA管理16K数据,该LBA前4K数据(第一存储区域),也即从数据头结束的位置开始,用于保存其管理数据在正常运行时发生的改变量,而前64字节用于保存该LBA这16K数据的说明信息,说明信息可包括管理数据的类型、管理数据的item数等信息。该LBA后12K数据(第二存储区域)可用于保存此种管理数据在DDR中的数据,例如L2P表在DDR中的数据。
需要说明的是,第一存储区域可以为多个,第二存储区域也可为多个,本申请对比不作任何限定,举例来说,LBA管理16K数据,前2K数据为第一存储区域,紧接着6K为第二存储区域,在接着2K的第一存储区域,最后的6K为第二存储区域。
S102:在固态硬盘正常运行过程中,当检测到LBA中的自管理数据发生变化时,在DDR中更新自管理数据,并将自管理数据的变化量存储在相应的第一存储区域中。
自管理数据为每个LBA中的所属自身的管理数据,在固态硬盘正常运行时,当有某个LBA的管理数据发生改变时,除了正常更新此管理数据在DDR中的相应位置外,保存其改变量到其第一存储区域内。举例来说,第一个LBA的管理数据发生变化时,可将其改变量存储在第一个LBA的第一存储区域中。
S103:当检测到目标LBA的第一存储区域的剩余空间满足预设条件,从DDR中按照预设数据拷贝量将与目标LBA相对应的管理数据,复制至目标LBA的第二存储区域中,并向NAND管理模块发送刷写目标LBA的第一存储区域和第二存储区域中的数据。
在固态硬盘运行过程中,只要某个LBA的管理数据发生变化,即将变化量保存至相应LBA的第一存储区域中,当该第一存储区域被写满时(即剩余空间容量为0),或者是剩余的空间不足以完整保存下个变化量,或者是为了加快数据存储速度,当第一存储区域的剩余空间值不大于预设阈值,(例如,第一存储区域的空间容量值为4K,设置的阈值为0.5K),可从DDR中拷贝一定量的数据存储在第二存储区域中,为了加快固态硬盘在工作状态中存储有效数据量的数量,避免异常下电导致数据太多无法在规定时间内完全存储,拷贝的数据量可以与第二存储空间的占用空间容量相同。举例来说,当第二存储区域为12K时,可拷贝12K的此种管理数据在DDR中的数据该空间内。SSD在下电之前的正常运行过程中,开始考虑下电时的保存数据量问题,也就是通过在未下电时实时的保存一定的相关数据量,来达到下电时少保存数据的目的。
当然,预设数据拷贝量也可小于或略小于第二存储区域的占用空间容量相同,本申请对此不作任何限定。
当从DDR中复制完成目标LBA相应的管理数据时,可通知NAND管理模块刷写该目标LBA中的所有数据量,并更新管理数据的L2P表。例如,LBA管理16K数据,该LBA前4K数据被写满时,完成复制12K的此种管理数据在DDR中的数据到该LBA后12K数据,通知NAND管理模块刷写此16K数据。
S104:当检测到固态硬盘下电时,将各LBA的第一存储区域和第二存储区域中的数据刷写至NAND中,并将更新的管理数据的L2P表下刷至控制管理器的超级块中。
当固态硬盘下电时,不论各LBA的空间是否存储满数据(例如每个LBA管理16K数据,不论16K空间是否填满),均直接将各LBA中存储的数据刷写至NAND中,并更新相应的L2P表。
刷写管理数据的=L2P表到control manager控制器的super block超级块区域(该区域的数据一般在上电时由control manager直接从SLC block中读取数据到DDR中使用)。
为了进一步减少下电过程中刷写的数据量,可预先为固态硬盘的管理数据的L2P表建立一级L2P;在固态硬盘下电时,直接将更新的管理数据对应的一级L2P表下刷至控制管理器的超级块中,即下电时用此L2P的刷写代替管理数据的L2P表的刷写,进一步减少下电时的刷写数据量。
当然,在建立一级L2P表的基础上,还可建立二级L2P表,三级L2P表等等,根据实际固态硬盘中L2P表占用的空间容量值进行建立相应的下级L2P表,本申请对比不作任何限定。
在本发明实施例提供的技术方案中,将管理数据分配给多个LBA,各LBA存储管理数据的变化量和对应在DDR中的数据,并在满足预设条件时,将各LBA中存储数据拷贝在NAND中,当固态硬盘下电时,只需将各LBA中存储的当前数据下刷至NAND中。本申请在固态硬盘运行过程中,逐渐将下电时需要存储的数据分批次存储在NAND中,即在固态硬盘未下电时便实时存储一部分下电需要存储相关数据,当固态硬盘异常下电时,下刷管理数据的实际数据量明显减小,而相比写缓存中的数据量,管理数据的数据量较大,所以管理数据的刷写时间直接影响固态硬盘的下电存储所需数据的时间,从而大大的降低了固态硬盘下电时需要存储数据量,从而缩短了SSD下电过程中数据存储时间,有利于保证SSD中的数据完整性,使得SSD在下次上电时可正常工作。
基于上述实施例,请参阅图2,还可包括:
S105:向上一级管理模块发送所述固态硬盘下电存储管理数据已完成的指令。
及时向上一级管理模块反馈数据存储结果,可避免某些功能模块的延时等待,有利于提升整个系统的工作效率。
本发明实施例还针对固态硬盘的数据存储方法提供了相应的实现装置,进一步使得所述方法更具有实用性。下面对本发明实施例提供的固态硬盘的数据存储装置进行介绍,下文描述的固态硬盘的数据存储装置与上文描述的固态硬盘的数据存储方法可相互对应参照。
参见图3,图3为本发明实施例提供的固态硬盘的数据存储装置在一种具体实施方式下的结构图,该装置可包括:
预处理模块301,用于预先根据固态硬盘的管理数据,按照预设数据存储量进行划分LBA;各LBA均包括第一存储区域和第二存储区域,第一存储区域中保存该LBA中的自管理数据的说明信息,和自管理数据的变化信息;第二存储区域存储自管理数据在DDR中相对应的数据。
存储数据变量模块302,用于在固态硬盘正常运行过程中,当检测到LBA中的自管理数据发生变化时,在DDR中更新自管理数据,并将自管理数据的变化量存储在相应的第一存储区域中。
分批数据存储模块303,用于当检测到目标LBA的第一存储区域的剩余空间满足预设条件,从DDR中按照预设数据拷贝量将与目标LBA相对应的管理数据,复制至目标LBA的第二存储区域中,并向NAND管理模块发送刷写目标LBA的第一存储区域和第二存储区域中的数据。
下电数据存储模块304,用于当检测到固态硬盘下电时,将各LBA的第一存储区域和第二存储区域中的数据刷写至NAND中,并将更新的管理数据的L2P表下刷至控制管理器的超级块中。
可选的,在本实施例的一些实施方式中,请参阅图4,所述装置例如还可以包括:
通知模块305,用于当将各LBA的第一存储区域和第二存储区域中的数据刷写至NAND中,且将更新的管理数据的L2P表下刷至控制管理器的超级块中时,向上一级管理模块发送所述固态硬盘下电存储管理数据已完成的指令。
本发明实施例所述固态硬盘的数据存储装置的各功能模块的功能可根据上述方法实施例中的方法具体实现,其具体实现过程可以参照上述方法实施例的相关描述,此处不再赘述。
由上可知,本发明实施例在固态硬盘运行过程中,逐渐将下电时需要存储的数据分批次存储在NAND中,即在固态硬盘未下电时便实时存储一部分下电需要存储相关数据,当固态硬盘异常下电时,下刷管理数据的实际数据量明显减小,而相比写缓存中的数据量,管理数据的数据量较大,所以管理数据的刷写时间直接影响固态硬盘的下电存储所需数据的时间,从而大大的降低了固态硬盘下电时需要存储数据量,从而缩短了SSD下电过程中数据存储时间,有利于保证SSD中的数据完整性,使得SSD在下次上电时可正常工作。
本发明实施例还提供了一种固态硬盘的数据存储设备,具体可包括:
存储器,用于存储计算机程序;
处理器,用于执行计算机程序以实现如上任意一实施例所述固态硬盘的数据存储方法的步骤。
本发明实施例所述固态硬盘的数据存储设备的各功能模块的功能可根据上述方法实施例中的方法具体实现,其具体实现过程可以参照上述方法实施例的相关描述,此处不再赘述。
由上可知,本发明实施例降低了固态硬盘下电时需要存储数据量,从而缩短了SSD下电过程中数据存储时间,有利于保证SSD中的数据完整性,使得SSD在下次上电时可正常工作。
本发明实施例还提供了一种计算机可读存储介质,存储有固态硬盘的数据存储程序,所述固态硬盘的数据存储程序被处理器执行时如上任意一实施例所述固态硬盘的数据存储方法的步骤。
本发明实施例所述计算机可读存储介质的各功能模块的功能可根据上述方法实施例中的方法具体实现,其具体实现过程可以参照上述方法实施例的相关描述,此处不再赘述。
由上可知,本发明实施例降低了固态硬盘下电时需要存储数据量,从而缩短了SSD下电过程中数据存储时间,有利于保证SSD中的数据完整性,使得SSD在下次上电时可正常工作。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
以上对本发明所提供的一种固态硬盘的数据存储方法、装置、设备及计算机可读存储介质进行了详细介绍。本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以对本发明进行若干改进和修饰,这些改进和修饰也落入本发明权利要求的保护范围内。

Claims (10)

1.一种固态硬盘的数据存储方法,其特征在于,包括:
预先根据固态硬盘的管理数据,按照预设数据存储量进行划分LBA;各LBA均包括第一存储区域和第二存储区域,所述第一存储区域中保存该LBA中的自管理数据的说明信息,和所述自管理数据的变化信息;所述第二存储区域存储所述自管理数据在DDR中相对应的数据;所述固态硬盘的落盘数据包括写缓存中的数据和系统的管理数据;所述自管理数据为每个LBA中的所属自身的管理数据;
在所述固态硬盘正常运行过程中,当检测到LBA中的自管理数据发生变化时,在所述DDR中更新所述自管理数据,并将所述自管理数据的变化量存储在相应的第一存储区域中;
当检测到目标LBA的第一存储区域的剩余空间满足预设条件,从所述DDR中按照预设数据拷贝量将与所述目标LBA相对应的管理数据,复制至所述目标LBA的第二存储区域中,并向NAND管理模块发送刷写所述目标LBA的第一存储区域和第二存储区域中的数据;
当检测到所述固态硬盘下电时,将各LBA的第一存储区域和第二存储区域中的数据刷写至NAND中,并将更新的管理数据的L2P表下刷至控制管理器的超级块中。
2.根据权利要求1所述的固态硬盘的数据存储方法,其特征在于,所述第一存储区域与所述第二存储区域的占用空间容量比值为1:3。
3.根据权利要求2所述的固态硬盘的数据存储方法,其特征在于,所述预设数据存储量为16k。
4.根据权利要求3所述的固态硬盘的数据存储方法,其特征在于,所述当检测到目标LBA的第一存储区域的剩余空间满足预设条件为:
当检测到目标LBA的第一存储区域的剩余空间容量为0。
5.根据权利要求4所述的固态硬盘的数据存储方法,其特征在于,所述预设数据拷贝量与所述第二存储区域的占用空间容量相同。
6.根据权利要求1至5任意一项所述的固态硬盘的数据存储方法,其特征在于,所述将更新的管理数据的L2P表下刷至控制管理器的超级块中包括:
预先为所述固态硬盘的管理数据的L2P表建立一级L2P;
将更新的管理数据对应的一级L2P表下刷至控制管理器的超级块中。
7.根据权利要求6所述的固态硬盘的数据存储方法,其特征在于,在所述将更新的管理数据的L2P表下刷至控制管理器的超级块中之后,还包括:
向上一级管理模块发送所述固态硬盘下电存储管理数据已完成的指令。
8.一种固态硬盘的数据存储装置,其特征在于,包括:
预处理模块,用于预先根据固态硬盘的管理数据,按照预设数据存储量进行划分LBA;各LBA均包括第一存储区域和第二存储区域,所述第一存储区域中保存该LBA中的自管理数据的说明信息,和所述自管理数据的变化信息;所述第二存储区域存储所述自管理数据在DDR中相对应的数据;所述固态硬盘的落盘数据包括写缓存中的数据和系统的管理数据;所述自管理数据为每个LBA中的所属自身的管理数据;
存储数据变量模块,用于在所述固态硬盘正常运行过程中,当检测到LBA中的自管理数据发生变化时,在所述DDR中更新所述自管理数据,并将所述自管理数据的变化量存储在相应的第一存储区域中;
分批数据存储模块,用于当检测到目标LBA的第一存储区域的剩余空间满足预设条件,从所述DDR中按照预设数据拷贝量将与所述目标LBA相对应的管理数据,复制至所述目标LBA的第二存储区域中,并向NAND管理模块发送刷写所述目标LBA的第一存储区域和第二存储区域中的数据;
下电数据存储模块,用于当检测到所述固态硬盘下电时,将各LBA的第一存储区域和第二存储区域中的数据刷写至NAND中,并将更新的管理数据的L2P表下刷至控制管理器的超级块中。
9.一种固态硬盘的数据存储设备,其特征在于,包括处理器,所述处理器用于执行存储器中存储的计算机程序时实现如权利要求1至7任一项所述固态硬盘的数据存储方法的步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有固态硬盘的数据存储程序,所述固态硬盘的数据存储程序被处理器执行时实现如权利要求1至7任一项所述固态硬盘的数据存储方法的步骤。
CN201810568793.5A 2018-06-05 2018-06-05 固态硬盘的数据存储方法、装置、设备及可读存储介质 Active CN108762989B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810568793.5A CN108762989B (zh) 2018-06-05 2018-06-05 固态硬盘的数据存储方法、装置、设备及可读存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810568793.5A CN108762989B (zh) 2018-06-05 2018-06-05 固态硬盘的数据存储方法、装置、设备及可读存储介质

Publications (2)

Publication Number Publication Date
CN108762989A CN108762989A (zh) 2018-11-06
CN108762989B true CN108762989B (zh) 2021-08-31

Family

ID=63999017

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810568793.5A Active CN108762989B (zh) 2018-06-05 2018-06-05 固态硬盘的数据存储方法、装置、设备及可读存储介质

Country Status (1)

Country Link
CN (1) CN108762989B (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11042481B1 (en) * 2019-12-19 2021-06-22 Micron Technology, Inc. Efficient processing of commands in a memory sub-system
CN111858531B (zh) * 2020-07-14 2022-08-02 苏州浪潮智能科技有限公司 一种基于多核硬盘的日志存储方法、系统及相关组件
CN112684979B (zh) * 2020-12-24 2024-03-01 北京浪潮数据技术有限公司 一种固态硬盘的使用方法、系统、设备及存储介质

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101782875A (zh) * 2010-01-29 2010-07-21 成都市华为赛门铁克科技有限公司 存储设备和数据存储方法
CN101963891A (zh) * 2010-09-25 2011-02-02 成都市华为赛门铁克科技有限公司 数据存储处理方法与装置、固态硬盘系统与数据处理系统
US8037234B2 (en) * 2003-12-02 2011-10-11 Super Talent Electronics, Inc. Command queuing smart storage transfer manager for striping data to raw-NAND flash modules
CN105630691A (zh) * 2015-04-29 2016-06-01 上海磁宇信息科技有限公司 一种使用mram的固态硬盘及使用物理地址的读写方法
CN106354615A (zh) * 2015-07-21 2017-01-25 北京忆恒创源科技有限公司 固态硬盘日志生成方法及其装置
CN107402724A (zh) * 2017-07-31 2017-11-28 郑州云海信息技术有限公司 一种SSD中Journal元数据的保存方法及系统
CN107422992A (zh) * 2017-07-31 2017-12-01 郑州云海信息技术有限公司 一种SSD运行时Journal保存方法及系统
CN107506311A (zh) * 2017-08-30 2017-12-22 郑州云海信息技术有限公司 一种固态硬盘的ftl表的刷写方法及装置

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2011087820A2 (en) * 2009-12-21 2011-07-21 Sanmina-Sci Corporation Method and apparatus for supporting storage modules in standard memory and/or hybrid memory bus architectures
JP2012203443A (ja) * 2011-03-23 2012-10-22 Toshiba Corp メモリシステムおよびメモリシステムの制御方法
WO2013100908A1 (en) * 2011-12-27 2013-07-04 Intel Corporation Optimized cold boot for non-volatile memory
US10656838B2 (en) * 2015-07-13 2020-05-19 Samsung Electronics Co., Ltd. Automatic stream detection and assignment algorithm

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8037234B2 (en) * 2003-12-02 2011-10-11 Super Talent Electronics, Inc. Command queuing smart storage transfer manager for striping data to raw-NAND flash modules
CN101782875A (zh) * 2010-01-29 2010-07-21 成都市华为赛门铁克科技有限公司 存储设备和数据存储方法
CN101963891A (zh) * 2010-09-25 2011-02-02 成都市华为赛门铁克科技有限公司 数据存储处理方法与装置、固态硬盘系统与数据处理系统
CN105630691A (zh) * 2015-04-29 2016-06-01 上海磁宇信息科技有限公司 一种使用mram的固态硬盘及使用物理地址的读写方法
CN106354615A (zh) * 2015-07-21 2017-01-25 北京忆恒创源科技有限公司 固态硬盘日志生成方法及其装置
CN107402724A (zh) * 2017-07-31 2017-11-28 郑州云海信息技术有限公司 一种SSD中Journal元数据的保存方法及系统
CN107422992A (zh) * 2017-07-31 2017-12-01 郑州云海信息技术有限公司 一种SSD运行时Journal保存方法及系统
CN107506311A (zh) * 2017-08-30 2017-12-22 郑州云海信息技术有限公司 一种固态硬盘的ftl表的刷写方法及装置

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
《LBA Scrambler: A NAND Flash Aware Data Management Scheme for High-Performance Solid-State Drives》;Chao Sun et al.;《 IEEE Transactions on Very Large Scale Integration (VLSI) Systems 》;20160131;第24卷(第1期);全文 *
《PCI Express接口固态硬盘管理算法的研究》;侯玉玲;《中国优秀硕士学位论文全文数据库(电子期刊)信息科技辑》;20150615;第2015年卷(第6期);全文 *

Also Published As

Publication number Publication date
CN108762989A (zh) 2018-11-06

Similar Documents

Publication Publication Date Title
CN111090398B (zh) 固态硬盘的垃圾回收方法、装置、设备及可读存储介质
US8463826B2 (en) Incremental garbage collection for non-volatile memories
US10468077B2 (en) Adaptive object buffering and meta-data indexing using persistent memory to improve flash memory durability in tiered storage
US11704239B2 (en) Garbage collection method for storage medium, storage medium, and program product
US10120751B2 (en) Techniques to recover data using exclusive OR (XOR) parity information
US8966205B1 (en) System data management using garbage collection and hybrid self mapping
CN102508785B (zh) 一种磨损均衡方法及装置
CN102855193B (zh) 非易失性存储系统中未使用的逻辑地址的挂载时去映射
TWI524183B (zh) 資料寫入方法、記憶體控制電路單元與記憶體儲存裝置
CN102135927B (zh) 一种基于nand flash的系统引导方法和装置
CN108762989B (zh) 固态硬盘的数据存储方法、装置、设备及可读存储介质
US20130219106A1 (en) Trim token journaling
US9058256B2 (en) Data writing method, memory controller and memory storage apparatus
CN104346290A (zh) 存储装置、计算机系统及其操作方法
EP3133604A1 (en) Method and device for fail-safe erase of flash memory
US10162561B2 (en) Managing backup of logical-to-physical translation information to control boot-time and write amplification
US10168940B2 (en) Data storage using SLC and TLC memory banks and data maintenance method thereof
CN103995855A (zh) 存储数据的方法和装置
CN111324303A (zh) Ssd垃圾回收方法、装置、计算机设备及存储介质
CN115951839A (zh) 分区命名空间固态硬盘的数据写入方法、装置及电子设备
CN109101437A (zh) 一种数据存储方法与终端
CN104951376A (zh) 参数优化方法及参数优化装置
CN104915265B (zh) 数据备份方法和电子设备
US20230359363A1 (en) Method and Apparatus for Writing Data into SSD
CN109002265B (zh) 一种数据处理的方法以及相关装置

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