CN110737404A - 硬盘数据存储方法、装置及存储介质 - Google Patents
硬盘数据存储方法、装置及存储介质 Download PDFInfo
- Publication number
- CN110737404A CN110737404A CN201910824398.3A CN201910824398A CN110737404A CN 110737404 A CN110737404 A CN 110737404A CN 201910824398 A CN201910824398 A CN 201910824398A CN 110737404 A CN110737404 A CN 110737404A
- Authority
- CN
- China
- Prior art keywords
- data
- storage block
- data packet
- classified
- storage
- 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
- 238000000034 method Methods 0.000 title claims abstract description 56
- 238000013500 data storage Methods 0.000 title claims abstract description 43
- 238000004064 recycling Methods 0.000 claims description 5
- 230000001174 ascending effect Effects 0.000 claims description 3
- 238000004590 computer program Methods 0.000 claims description 3
- 238000011084 recovery Methods 0.000 abstract description 5
- 238000010586 diagram Methods 0.000 description 7
- 238000005516 engineering process Methods 0.000 description 2
- 239000007787 solid Substances 0.000 description 2
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
-
- 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
- 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
-
- 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/0652—Erasing, e.g. deleting, data cleaning, moving of data to a wastebasket
-
- 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]
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
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)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本申请涉及一种硬盘数据存储方法、装置及存储介质,所述方法包括:发送数据接收指令,使缓存接收数据包,确定缓存中每个数据包的数据类型,其中,所述每个数据包对应一个逻辑地址范围,所述确定所述缓存中每个数据包的数据类型包括:将相邻的多个逻辑地址范围连续的数据包标记为连续数据,其余数据包标记为随机数据;根据数据包的数据类型,将数据包写入到硬盘中指定的存储块。通过本申请的方法将相同数据类型的数据存储到同一存储块,减少数据读出时的数据寻址操作,同时提高了硬盘垃圾回收的效率。
Description
技术领域
本申请涉及存储技术领域,尤其涉及一种硬盘数据存储方法、装置及存储介质。
背景技术
随着信息技术的发展,数据处理量越来越大,固态硬盘(SSD)以其高性能的优点得到了广泛的应用。现有技术中,向固态硬盘中写入数据一般是按照待写入数据在缓存中的顺序将数据依次写入到存储块(Block)中;这样的写方式会导致各种不同数据类型的数据被存储到同一个存储块中,当需要调用某些相同数据类型或连续的数据时,需要进行频繁地寻址操作,大大增加了处理数据的负担,降低了硬盘读数据的效率;另外在对硬盘进行垃圾回收释放出空闲存储块时,需要预先对待回收的存储块(有无效数据的存储块)进行有效数据的复制、存储工作后,才能进行数据擦除,现有技术的数据存储方式,由于数据没有分类存储,使待回收的存储块较多,加大了有效数据复制、存储的工作量,不利于固态硬盘的垃圾回收。
发明内容
为了解决上述技术问题或者至少部分地解决上述技术问题,本申请提供了一种硬盘数据存储方法、装置及存储介质。
第一方面,本申请提供了一种硬盘数据存储方法,所述方法包括:
发送数据接收指令,使缓存接收数据包,确定所述缓存中每个数据包的数据类型,其中,所述每个数据包对应一个逻辑地址范围,所述确定所述缓存中每个数据包的数据类型包括:将相邻的多个逻辑地址范围连续的数据包标记为连续数据,其余数据包标记为随机数据;
根据所述数据包的数据类型,将数据包写入到硬盘中指定的存储块。
优选地,所述发送数据接收指令,使缓存接收数据包,确定所述缓存中每个数据包的数据类型,包括:
从所述缓存中获取初始待分类数据包,所述初始待分类数据包与所述初始待分类数据包的上一待分类数据包的数据类型不同;
将所述初始待分类数据包作为当前待分类数据包;
获取所述当前待分类数据包的逻辑地址范围;
获取所述当前待分类数据包的下一数据包,将所述下一数据包作为下一待分类数据包;
获取所述下一待分类数据包的逻辑地址范围;
判断所述当前待分类数据包的逻辑地址范围与下一待分类数据包的逻辑地址范围是否连续;
若所述当前待分类数据包的逻辑地址范围与下一待分类数据包的逻辑地址范围连续,则将所述下一待分类数据包作为当前待分类数据包,执行所述获取所述当前待分类数据包的逻辑地址范围,直至当前待分类数据包的逻辑地址范围与下一待分类数据包的逻辑地址范围不连续;
获取从所述初始待分类数据包到所述当前待分类数据包的数据包的数量,将所述数据包的数量作为目标数值;
若所述目标数值大于等于第一预设值,则将所述初始待分类数据包到所述当前待分类数据包的数据包标记为连续数据;
若所述目标数值小于第一预设值,则将所述初始待分类数据包到所述当前待分类数据包的数据包标记为随机数据。
优选地,在所述直至当前待分类数据包的逻辑地址范围与下一待分类数据包的逻辑地址范围不连续,执行所述确定数据包的数据类型之后,还包括:
将所述下一待分类数据包作为初始待分类数据包,执行所述从所述缓存中获取一个数据包作为初始待分类数据包,所述初始待分类数据包与所述初始待分类数据包的上一待分类数据包的数据类型不同。
优选地,所述根据所述数据包的数据类型,将数据包写入到硬盘中指定的存储块,包括:
获取所述硬盘中第一存储块信息和第二存储块信息,所述第一存储块包括第一子存储块、第二子存储块;
根据所述缓存中的数据包的数据类型和所述第一存储块信息、第二存储块信息,从所述第一存储块和第二存储块中为所述缓存中的数据包指定存储块;
发送数据写指令,所述数据写指令包括所述缓存中每个数据包对应的指定的存储块信息,使缓存中的数据包根据数据写指令写入到指定的存储块中;
其中,所述第一子存储块为所述硬盘中用于存储连续数据的存储块中未写满数据的存储块,
所述第二子存储块为所述硬盘中用于存储随机数据的存储块中未写满数据的存储块,
所述第二存储块为硬盘中未写入数据的空闲的存储块。
优选地,所述根据所述缓存中的数据包的数据类型和所述第一存储块信息、第二存储块信息,从所述第一存储块和第二存储块中为所述缓存中的数据包指定存储块,包括:
分别获取所述缓存中相同数据类型的数据包的总数据长度;
分别获取所述第一存储块中所述第一子存储块和第二子存储块的可用存储空间;
分别比较所述缓存中相同数据类型的数据包的总数据长度与所述第一存储块中对应的第一子存储块或第二子存储块的可用存储空间;
若所述缓存中相同数据类型的数据包的总数据长度小于等于所述第一存储块中对应的第一子存储块或第二子存储块的可用存储空间,则将对应的第一子存储块或第二子存储块指定为对应的所述缓存中相同数据类型的数据包的存储块;
若所述缓存中相同数据类型的数据包的总数据长度大于所述第一存储块中对应的第一子存储块或第二子存储块的可用存储空间,则将对应的第一子存储块或第二子存储块指定为部分所述缓存中相同数据类型的数据包的存储块,使对应的第一子存储块或第二子存储块的可用存储空间写满数据,
从所述第二存储块中指定任意第二存储块用于存储剩余的所述缓存中相同数据类型的数据包,将指定后的第二存储块标记为非空闲。
优选地,所述方法还包括:
获取硬盘中所述第二存储块的数量;
比较所述第二存储块的数量与第二预设值,若所述第二存储块的数量小于所述第二预设值,则执行垃圾回收工作。
优选地,所述方法还包括:
对所述硬盘中已写入的逻辑地址范围相同的数据包中先写入的数据包进行注销,将已注销的数据包作为无效数据包;
所述执行垃圾回收工作,包括:
获取所述硬盘中写满数据的存储块中包含有无效数据包的存储块,
将所述包含有无效数据包的存储块作为待回收存储块,
分别获取每个所述待回收存储块中有效数据包的数据长度,所述有效数据包为未注销的数据包,
将所述待回收存储块按照对应的有效数据包的数据长度升序排序后,从首位依次选取待回收存储块,将选取的待回收存储块的有效数据包依次存储到指定的第二存储块,
对已进行有效数据包存储的待回收存储块中的数据包对应的数据进行擦除操作,将已进行数据擦除的待回收数据块标记为第二存储块。
优选地,在所述执行垃圾回收工作之后,还包括:
执行所述获取硬盘中所述第二存储块的数量,当所述第二存储块的数量大于等于第三预设值时,停止所述执行垃圾回收工作,所述第三预设值大于等于所述第二预设值。
第二方面,本申请提供了一种硬盘数据存储装置,所述装置包括:
数据分类模块,用于发送数据接收指令,使缓存接收数据包,确定所述缓存中每个数据包的数据类型,其中,所述确定所述缓存中每个数据包的数据类型包括:将相邻的多个逻辑地址范围连续的数据包标记为连续数据,其余数据包标记为随机数据;
数据写入模块,用于根据所述数据包的数据类型,将数据包写入到硬盘中指定的存储块。
第三方面,本申请提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时,使得所述处理器执行前面所述任意一项所述的方法的步骤。
本申请实施例提供的上述技术方案与现有技术相比具有如下优点:
通过本申请的硬盘数据存储方法,对缓存中的数据包进行分类,然后将数据类型确定的相同数据类型的数据包写入到硬盘中一个或多个存储块,实现了对不同类型的数据的分类存储;当需要读取连续数据时,不需要寻址或需要很少的寻址,就可以获取到连续数据类型的数据包对应的数据,减少了寻址的开销,加快了数据读取速度;另外,在硬盘的垃圾回收中,因为先分类存储了,因此无效数据也是集中存储在存储块中的,使垃圾回收更加集中,减少了对大量有效资料的复制、存储工作。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本发明的实施例,并与说明书一起用于解释本发明的原理。
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例提供的一种硬盘数据存储方法的流程图;
图2为本申请实施例提供的另一种硬盘数据存储方法的流程图;
图3为本申请实施例提供的另一种硬盘数据存储方法的流程图;
图4为本申请实施例提供的另一种硬盘数据存储方法的流程图;
图5为本申请实施例提供的另一种硬盘数据存储方法的流程图;
图6为本申请实施例提供的另一种硬盘数据存储方法的流程图;
图7为本申请实施例提供的另一种硬盘数据存储方法的流程图;
图8为本申请实施例提供的一种硬盘数据存储装置的结构框图;
图9为现有技术中硬盘数据存储的场景应用图;
图10为本申请实施例提供的一种硬盘数据存储的场景应用图;
图11为本申请实施例提供的另一种硬盘数据存储的场景应用图。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请的一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。
图1为本申请实施例提供的一种硬盘数据存储方法的流程图;参考图1,硬盘数据存储方法包括以下步骤:
S1000:发送数据接收指令,使缓存接收数据包,确定缓存中每个数据包的数据类型,其中,每个数据包对应一个逻辑地址范围,确定缓存中每个数据包的数据类型包括:将相邻的多个逻辑地址范围连续的数据包标记为连续数据,其余数据包标记为随机数据;
S2000:根据数据包的数据类型,将数据包写入到硬盘中指定的存储块。
其余数据包标记为随机数据指的是将不相邻的多个逻辑地址范围连续的数据包或者相邻的多个逻辑地址范围不连续的数据包或者相邻的逻辑地址范围连续但是数据包的数量小于第一预设值的数据包标记为随机数据。
图2为本申请实施例提供的另一种硬盘数据存储方法的流程图;在图1提供的硬盘数据存储方法的基础上,参考图1-图2,步骤S1000包括以下步骤:
S1010:从缓存中获取初始待分类数据包,初始待分类数据包与初始待分类数据包的上一待分类数据包的数据类型不同;
S1020:将初始待分类数据包作为当前待分类数据包;
S1030:获取当前待分类数据包的逻辑地址范围;
S1040:获取当前待分类数据包的下一数据包,将下一数据包作为下一待分类数据包;
S1050:获取下一待分类数据包的逻辑地址范围;
S1060:判断当前待分类数据包的逻辑地址范围与下一待分类数据包的逻辑地址范围是否连续;若连续,则执行步骤S1070,若不连续,则执行步骤S1080;
S1070:将下一待分类数据包作为当前待分类数据包,执行步骤S1030;
S1080:获取从初始待分类数据包到当前待分类数据包的数据包的数量,将数据包的数量作为目标数值;
S1090:判断目标数值是否大于等于第一预设值,若是,则执行步骤S1100,若否,则执行步骤S1110;
S1100:将初始待分类数据包到当前待分类数据包的数据包标记为连续数据;
S1110:将初始待分类数据包到当前待分类数据包的数据包标记为随机数据。
图3为本申请实施例提供的另一种硬盘数据存储方法的流程图;在图1、图2提供的硬盘数据存储方法的基础上,参考图1-图3,硬盘数据存储方法还包括以下步骤:
S1120:将下一待分类数据包作为初始待分类数据包,执行步骤S1010。
图4为本申请实施例提供的另一种硬盘数据存储方法的流程图;在图1-图3提供的硬盘数据存储方法的基础上,参考图1-图4,步骤S2000包括以下步骤:
S2010:获取硬盘中第一存储块信息和第二存储块信息,第一存储块包括第一子存储块、第二子存储块;
S2020:根据缓存中的数据包的数据类型和第一存储块信息、第二存储块信息,从第一存储块和第二存储块中为缓存中的数据包指定存储块;
S2030:发送数据写指令,数据写指令包括缓存中每个数据包对应的指定的存储块信息,使缓存中的数据包根据数据写指令写入到指定的存储块中。
图5为本申请实施例提供的另一种硬盘数据存储方法的流程图;在图1-图4提供的硬盘数据存储方法的基础上,参考图1-图4,步骤S2000包括以下步骤:
步骤S2020包括以下步骤:
S2021:分别获取缓存中相同数据类型的数据包的总数据长度;
S2022:分别获取第一存储块中第一子存储块和第二子存储块的可用存储空间;
S2023:分别比较缓存中相同数据类型的数据包的总数据长度与第一存储块中对应的第一子存储块或第二子存储块的可用存储空间;
S2024:判断缓存中相同数据类型的数据包的总数据长度是否小于等于第一存储块中对应的第一子存储块或第二子存储块的可用存储空间,若是,则执行步骤S2025,若否,则执行步骤S2026;
S2025:将对应的第一子存储块或第二子存储块指定为对应的缓存中相同数据类型的数据包的存储块;
S2026:将对应的第一子存储块或第二子存储块指定为部分缓存中相同数据类型的数据包的存储块,使对应的第一子存储块或第二子存储块的可用存储空间写满数据;
S2027:从第二存储块中指定任意第二存储块用于存储剩余的缓存中相同数据类型的数据包,将指定后的第二存储块标记为非空闲。
图6为本申请实施例提供的另一种硬盘数据存储方法的流程图;在图1-图5、图提供的硬盘数据存储方法的基础上,参考图1-图5,硬盘数据存储方法还包括以下步骤:
S3000:获取硬盘中第二存储块的数量;
S4000:比较第二存储块的数量与第二预设值,若第二存储块的数量小于第二预设值,则执行垃圾回收工作。
图7为本申请实施例提供的另一种硬盘数据存储方法的流程图;在图1-图6、图提供的硬盘数据存储方法的基础上,参考图1-图6,垃圾回收工作包括以下步骤:
S4010:获取硬盘中写满数据的存储块中包含有无效数据包的存储块;
S4020:将包含有无效数据包的存储块作为待回收存储块;
S4030:分别获取每个待回收存储块中有效数据包的数据长度,有效数据包为未注销的数据包;
S4040:将待回收存储块按照对应的有效数据包的数据长度升序排序后,从首位依次选取待回收存储块,将选取的待回收存储块的有效数据包依次存储到指定的第二存储块;
S4050:对已进行有效数据包存储的待回收存储块中的数据包对应的数据进行擦除操作,将已进行数据擦除的待回收数据块标记为第二存储块。
图8为本申请实施例提供的一种硬盘数据存储装置的结构框图;参考图8,所述硬盘数据存储装置包括:
数据分类模块10,用于发送数据接收指令,使缓存接收数据包,确定所述缓存中每个数据包的数据类型,其中,所述确定所述缓存中每个数据包的数据类型包括:将相邻的多个逻辑地址范围连续的数据包标记为连续数据,其余数据包标记为随机数据;
数据写入模块20,用于根据所述数据包的数据类型,将数据包写入到硬盘中指定的存储块。
图9为现有技术中硬盘数据存储的场景应用图;参考图9,将主机要写入到硬盘中的数据包标记为Host Data,数据包的数据类型分为连续数据、随机数据,将连续数据标记为Sequence Data,将随机数据标记为Random Data,将硬盘的存储块标记为Block,将有可用的存储空间的Block标记为Open Block,将没有可用的存储空间的Block标记为CloseBlock,将缓存中的数据包写入到硬盘的存储块中时,因为缓存中的连续数据和随机数据是按照命令的先后被缓存接收的,所以连续数据和随机数据是混在一起的,现有技术是将连续数据和随机数据从缓存中按照排队的先后顺序依次写入到Open Block中,因此很大可能会出现Open Block里面的数据既有连续数据也有随机数据。
另外,通过现有技术这种存储方法存储数据后,当硬盘进行垃圾回收操作时,会将包括无效数据的存储块里面的有效数据也复制存储到Open Block里面,这样就会出现一个Open Block里面可能同时有连续数据、随机数据和垃圾回收的有效数据。将垃圾回收的有效数据标记为GC Valid Data,垃圾回收的有效数据为之前写入的连续数据或者随机数据,是没有被注销的数据;无效数据指当写入新的相同逻辑地址范围的数据包后,硬盘会将之前先写入的相同逻辑地址范围的数据包给注销,已注销的数据包即为无效数据包,将无效数据包标记为Invalid Data。
图10为本申请实施例提供的一种硬盘数据存储的场景应用图;参考图1-图10,本申请提供的硬盘数据存储方法是将缓存中的数据包的数据类型分为连续数据、随机数据,将相同数据类型的数据包存储在一个或多个存储块中。
参考图10,逻辑地址范围是指一个数据包里面的一段数据的起始逻辑地址和结束逻辑地址的区间。
例如:一个指令里面携带的数据包对应的起始逻辑地址为Start LBA=0、结束逻辑地址为End LBA=255,则这个数据包的数据长度为LEN=256,这个数据包的逻辑地址范围为LBA 0-255。
本申请中将相邻的多个逻辑地址范围连续的数据包的数据类型标记为连续数据;例如有4个相邻的数据包,这4个数据包对应的逻辑地址范围分别为:
数据包1:Start LBA=0,LEN=256,End LBA=255;
数据包2:Start LBA=256,LEN=256,End LBA=511;
数据包3:Start LBA=512,LEN=256,End LBA=767;
数据包4:Start LBA=768,LEN=256,End LBA=1023。
这4个相邻的数据包的起始逻辑地址和结束逻辑地址是首尾连续的,将第一预设值设为3,则这4个相邻的数据包被标记为连续数据。
否则将数据包标记为随机数据;例如有另外4个相邻的数据包,这4个数据包对应的逻辑地址范围分别为:
数据包1:Start LBA=0,LEN=8,End LBA=7;
数据包2:Start LBA=100,LEN=256,End LBA=355;
数据包3:Start LBA=200,LEN=8,End LBA=207;
数据包4:Start LBA=511,LEN=16,End LBA=526。
由于这4个数据包的起始地址和结束地址都是不连续的,因此这4个数据包标记为随机数据。
将数据类型为连续数据的数据包所在的存储块标记为SEQ Block,其中有可用存储空间的SEQ Block标记为SEO Open Block;将数据类型为随机数据的数据包所在的存储块标记为RND Block,其中有可用存储空间的RND Block标记为RND Open Block。
参考图10,对没有可用存储空间的Close Block中包含无效数据的存储块进行垃圾回收,将此Close Block中的有效数据标记为GC Valid Data并复制到一个空闲的存储块里面,将有可用存储空间的存储有垃圾回收的有效数据所在的存储块标记为GC OpenBlock,当这个GC Open Block存储满数据后标记为Close Block。通过此方法,三种不同的数据分别存储在不同的存储块里面。
图11为本申请实施例提供的另一种硬盘数据存储的场景应用图;参考图1-11,类型为连续数据的数据包Sequence Data-1-Sequence Data-8被写入到一个空闲的存储块,将这个存储块标记为SEQ Open Block[0],将写满数据后的SEQ Open Block[0]标记为Close Block[0];另外一个空闲的存储块SEQ Open Block[1]后来被写入了相同逻辑地址范围的数据包Sequence Data-1-Sequence Data-7,此时由于SEQ Open Block[1]写入的数据包的逻辑地址范围与之前存储块SEQ Open Block[0]写入的数据包的逻辑地址范围有相同的部分,因此会注销掉存储块SEQ Open Block[0]对应的Close Block[0]中相同逻辑地址范围的数据包Sequence Data-1-Sequence Data-7并作为无效数据。
通过本申请的硬盘数据存储方法,对缓存中的数据包进行分类,然后将数据类型确定的相同数据类型的数据包写入到硬盘中一个或多个存储块,实现了对不同类型的数据的分类存储;当需要读取连续数据时,不需要寻址或需要很少的寻址,就可以获取到连续数据类型的数据包对应的数据,减少了寻址的开销,加快了数据读取速度;另外,在硬盘的垃圾回收中,因为先分类存储了,因此无效数据也是集中存储在存储块中的,使垃圾回收更加集中,减少了对大量有效资料的复制、存储工作。
需要说明的是,在本文中,诸如“第一”和“第二”等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上所述仅是本发明的具体实施方式,使本领域技术人员能够理解或实现本发明。对这些实施例的多种修改对本领域的技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所申请的原理和新颖特点相一致的最宽的范围。
Claims (10)
1.一种硬盘数据存储方法,其特征在于,所述方法包括:
发送数据接收指令,使缓存接收数据包,确定所述缓存中每个数据包的数据类型,其中,所述每个数据包对应一个逻辑地址范围,所述确定所述缓存中每个数据包的数据类型包括:将相邻的多个逻辑地址范围连续的数据包标记为连续数据,其余数据包标记为随机数据;
根据所述数据包的数据类型,将数据包写入到硬盘中指定的存储块。
2.根据权利要求1所述的方法,其特征在于,所述发送数据接收指令,使缓存接收数据包,确定所述缓存中每个数据包的数据类型,包括:
从所述缓存中获取初始待分类数据包,所述初始待分类数据包与所述初始待分类数据包的上一待分类数据包的数据类型不同;
将所述初始待分类数据包作为当前待分类数据包;
获取所述当前待分类数据包的逻辑地址范围;
获取所述当前待分类数据包的下一数据包,将所述下一数据包作为下一待分类数据包;
获取所述下一待分类数据包的逻辑地址范围;
判断所述当前待分类数据包的逻辑地址范围与下一待分类数据包的逻辑地址范围是否连续;
若所述当前待分类数据包的逻辑地址范围与下一待分类数据包的逻辑地址范围连续,则将所述下一待分类数据包作为当前待分类数据包,执行所述获取所述当前待分类数据包的逻辑地址范围,直至当前待分类数据包的逻辑地址范围与下一待分类数据包的逻辑地址范围不连续;
获取从所述初始待分类数据包到所述当前待分类数据包的数据包的数量,将所述数据包的数量作为目标数值;
若所述目标数值大于等于第一预设值,则将所述初始待分类数据包到所述当前待分类数据包的数据包标记为连续数据;
若所述目标数值小于第一预设值,则将所述初始待分类数据包到所述当前待分类数据包的数据包标记为随机数据。
3.根据权利要求2所述的方法,其特征在于,在所述直至当前待分类数据包的逻辑地址范围与下一待分类数据包的逻辑地址范围不连续,执行所述确定数据包的数据类型之后,还包括:
将所述下一待分类数据包作为初始待分类数据包,执行所述从所述缓存中获取一个数据包作为初始待分类数据包,所述初始待分类数据包与所述初始待分类数据包的上一待分类数据包的数据类型不同。
4.根据权利要求3所述的方法,其特征在于,所述根据所述数据包的数据类型,将数据包写入到硬盘中指定的存储块,包括:
获取所述硬盘中第一存储块信息和第二存储块信息,所述第一存储块包括第一子存储块、第二子存储块;
根据所述缓存中的数据包的数据类型和所述第一存储块信息、第二存储块信息,从所述第一存储块和第二存储块中为所述缓存中的数据包指定存储块;
发送数据写指令,所述数据写指令包括所述缓存中每个数据包对应的指定的存储块信息,使缓存中的数据包根据数据写指令写入到指定的存储块中;
其中,所述第一子存储块为所述硬盘中用于存储连续数据的存储块中未写满数据的存储块,
所述第二子存储块为所述硬盘中用于存储随机数据的存储块中未写满数据的存储块,
所述第二存储块为硬盘中未写入数据的空闲的存储块。
5.根据权利要求4所述的方法,其特征在于,所述根据所述缓存中的数据包的数据类型和所述第一存储块信息、第二存储块信息,从所述第一存储块和第二存储块中为所述缓存中的数据包指定存储块,包括:
分别获取所述缓存中相同数据类型的数据包的总数据长度;
分别获取所述第一存储块中所述第一子存储块和第二子存储块的可用存储空间;
分别比较所述缓存中相同数据类型的数据包的总数据长度与所述第一存储块中对应的第一子存储块或第二子存储块的可用存储空间;
若所述缓存中相同数据类型的数据包的总数据长度小于等于所述第一存储块中对应的第一子存储块或第二子存储块的可用存储空间,则将对应的第一子存储块或第二子存储块指定为对应的所述缓存中相同数据类型的数据包的存储块;
若所述缓存中相同数据类型的数据包的总数据长度大于所述第一存储块中对应的第一子存储块或第二子存储块的可用存储空间,则将对应的第一子存储块或第二子存储块指定为部分所述缓存中相同数据类型的数据包的存储块,使对应的第一子存储块或第二子存储块的可用存储空间写满数据,
从所述第二存储块中指定任意第二存储块用于存储剩余的所述缓存中相同数据类型的数据包,将指定后的第二存储块标记为非空闲。
6.根据权利要求5所述的方法,其特征在于,所述方法还包括:
获取硬盘中所述第二存储块的数量;
比较所述第二存储块的数量与第二预设值,若所述第二存储块的数量小于所述第二预设值,则执行垃圾回收工作。
7.根据权利要求6所述的方法,其特征在于,所述方法还包括:
对所述硬盘中已写入的逻辑地址范围相同的数据包中先写入的数据包进行注销,将已注销的数据包作为无效数据包;
所述执行垃圾回收工作,包括:
获取所述硬盘中写满数据的存储块中包含有无效数据包的存储块,
将所述包含有无效数据包的存储块作为待回收存储块,
分别获取每个所述待回收存储块中有效数据包的数据长度,所述有效数据包为未注销的数据包,
将所述待回收存储块按照对应的有效数据包的数据长度升序排序后,从首位依次选取待回收存储块,将选取的待回收存储块的有效数据包依次存储到指定的第二存储块,
对已进行有效数据包存储的待回收存储块中的数据包对应的数据进行擦除操作,将已进行数据擦除的待回收数据块标记为第二存储块。
8.根据权利要求7所述的方法,其特征在于,所述执行垃圾回收工作之后,还包括:
执行所述获取硬盘中所述第二存储块的数量,当所述第二存储块的数量大于等于第三预设值时,停止所述执行垃圾回收工作,所述第三预设值大于等于所述第二预设值。
9.一种硬盘数据存储装置,其特征在于,所述装置包括:
数据分类模块,用于发送数据接收指令,使缓存接收数据包,确定所述缓存中每个数据包的数据类型,其中,所述确定所述缓存中每个数据包的数据类型包括:将相邻的多个逻辑地址范围连续的数据包标记为连续数据,其余数据包标记为随机数据;
数据写入模块,用于根据所述数据包的数据类型,将数据包写入到硬盘中指定的存储块。
10.一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时,使得所述处理器执行如权利要求1-8任意一项所述的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910824398.3A CN110737404B (zh) | 2019-09-02 | 2019-09-02 | 硬盘数据存储方法、装置及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910824398.3A CN110737404B (zh) | 2019-09-02 | 2019-09-02 | 硬盘数据存储方法、装置及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110737404A true CN110737404A (zh) | 2020-01-31 |
CN110737404B CN110737404B (zh) | 2023-07-04 |
Family
ID=69267555
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910824398.3A Active CN110737404B (zh) | 2019-09-02 | 2019-09-02 | 硬盘数据存储方法、装置及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110737404B (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112416811A (zh) * | 2020-11-18 | 2021-02-26 | 深圳市硅格半导体有限公司 | 基于数据关联度的垃圾回收方法、闪存及装置 |
CN112835523A (zh) * | 2021-02-02 | 2021-05-25 | 致真存储(北京)科技有限公司 | 一种存储系统及其数据存取的方法 |
CN113031865A (zh) * | 2021-03-23 | 2021-06-25 | 北京和利时系统工程有限公司 | 一种实现数据存储的方法、装置、计算机存储介质及终端 |
CN115657950A (zh) * | 2022-10-31 | 2023-01-31 | 深圳市时创意电子有限公司 | 一种基于多信道的数据读写处理方法、装置及相关设备 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20140207997A1 (en) * | 2013-01-21 | 2014-07-24 | Fusion-Io, Inc. | Pregroomer for storage array |
CN104407933A (zh) * | 2014-10-31 | 2015-03-11 | 华为技术有限公司 | 一种数据的备份方法及装置 |
US9805044B1 (en) * | 2015-03-31 | 2017-10-31 | EMC IP Holding Company LLC | Window-based resource allocation in data storage systems |
CN108241471A (zh) * | 2017-11-29 | 2018-07-03 | 深圳忆联信息系统有限公司 | 一种提升固态硬盘性能的方法 |
CN108279853A (zh) * | 2018-01-19 | 2018-07-13 | 盛科网络(苏州)有限公司 | 基于tcam的ipmc数据存储方法 |
-
2019
- 2019-09-02 CN CN201910824398.3A patent/CN110737404B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20140207997A1 (en) * | 2013-01-21 | 2014-07-24 | Fusion-Io, Inc. | Pregroomer for storage array |
CN104407933A (zh) * | 2014-10-31 | 2015-03-11 | 华为技术有限公司 | 一种数据的备份方法及装置 |
US9805044B1 (en) * | 2015-03-31 | 2017-10-31 | EMC IP Holding Company LLC | Window-based resource allocation in data storage systems |
CN108241471A (zh) * | 2017-11-29 | 2018-07-03 | 深圳忆联信息系统有限公司 | 一种提升固态硬盘性能的方法 |
CN108279853A (zh) * | 2018-01-19 | 2018-07-13 | 盛科网络(苏州)有限公司 | 基于tcam的ipmc数据存储方法 |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112416811A (zh) * | 2020-11-18 | 2021-02-26 | 深圳市硅格半导体有限公司 | 基于数据关联度的垃圾回收方法、闪存及装置 |
CN112416811B (zh) * | 2020-11-18 | 2024-02-27 | 深圳市硅格半导体有限公司 | 基于数据关联度的垃圾回收方法、闪存及装置 |
CN112835523A (zh) * | 2021-02-02 | 2021-05-25 | 致真存储(北京)科技有限公司 | 一种存储系统及其数据存取的方法 |
CN113031865A (zh) * | 2021-03-23 | 2021-06-25 | 北京和利时系统工程有限公司 | 一种实现数据存储的方法、装置、计算机存储介质及终端 |
CN113031865B (zh) * | 2021-03-23 | 2023-12-22 | 北京和利时系统集成有限公司 | 一种实现数据存储的方法、装置、计算机存储介质及终端 |
CN115657950A (zh) * | 2022-10-31 | 2023-01-31 | 深圳市时创意电子有限公司 | 一种基于多信道的数据读写处理方法、装置及相关设备 |
Also Published As
Publication number | Publication date |
---|---|
CN110737404B (zh) | 2023-07-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110737404A (zh) | 硬盘数据存储方法、装置及存储介质 | |
US8843691B2 (en) | Prioritized erasure of data blocks in a flash storage device | |
US7987315B2 (en) | Data storage apparatus with block reclaim for nonvolatile buffer | |
US10739996B1 (en) | Enhanced garbage collection | |
KR100324028B1 (ko) | 비휘발성 메모리에서 파일의 연속 중복기재를 수행하는 방법 | |
TWI537729B (zh) | 資料儲存裝置及其資料維護方法 | |
US7634624B2 (en) | Memory system for data storage and retrieval | |
US9367451B2 (en) | Storage device management device and method for managing storage device | |
KR101392174B1 (ko) | 소거 대상 블록의 매핑 테이블을 저장하는 플래시 메모리 제어장치 및 방법 | |
CN107943719B (zh) | 一种基于请求分类的闪存转换层控制方法 | |
CN110058796A (zh) | 数据储存装置 | |
US11126561B2 (en) | Method and system for organizing NAND blocks and placing data to facilitate high-throughput for random writes in a solid state drive | |
US20080082727A1 (en) | Header blocks for flash memory writes | |
US11249903B2 (en) | Memory system for garbage collection operation and operating method thereof | |
CN109710541B (zh) | 针对NAND Flash主控芯片Greedy垃圾回收的优化方法 | |
US11042307B1 (en) | System and method for facilitating improved utilization of NAND flash based on page-wise operation | |
CN112347001B (zh) | 闪存垃圾回收的校验方法、装置及电子设备 | |
CN108733577A (zh) | 存储器管理方法、存储器控制电路单元及存储器存储装置 | |
CN111831576A (zh) | 包括多个存储数据的区域的存储器系统及其操作方法 | |
WO2017143972A1 (zh) | 数据处理方法及装置 | |
CN112035065A (zh) | 一种数据写入方法、装置、设备及计算机可读存储介质 | |
CN105653466A (zh) | 数据储存装置以及快闪存储器控制方法 | |
CN115185468A (zh) | 存储器管理方法、存储器控制器及存储器存储装置 | |
CN111324284B (zh) | 一种存储器 | |
US8751770B2 (en) | Semiconductor recording apparatus and semiconductor recording system |
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 | ||
PE01 | Entry into force of the registration of the contract for pledge of patent right | ||
PE01 | Entry into force of the registration of the contract for pledge of patent right |
Denomination of invention: Hard disk data storage method, device, and storage medium Effective date of registration: 20231023 Granted publication date: 20230704 Pledgee: Shanghai Pudong Development Bank Co.,Ltd. Shenzhen Branch Pledgor: SHENZHEN TIGO SEMICONDUCTOR Co.,Ltd. Registration number: Y2023980062285 |