CN103207836A - 一种用于固态存储硬盘的写方法及写装置 - Google Patents
一种用于固态存储硬盘的写方法及写装置 Download PDFInfo
- Publication number
- CN103207836A CN103207836A CN2012100118466A CN201210011846A CN103207836A CN 103207836 A CN103207836 A CN 103207836A CN 2012100118466 A CN2012100118466 A CN 2012100118466A CN 201210011846 A CN201210011846 A CN 201210011846A CN 103207836 A CN103207836 A CN 103207836A
- Authority
- CN
- China
- Prior art keywords
- data
- write
- page
- data block
- buffer memory
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Abstract
本发明提出一种用于固态存储硬盘的写方法和写装置。该方法包括:将固态存储硬盘的每个数据块内的多个页面分为p个元数据页面、n个缓存页面和m个数据页面,其中p是大于等于0的整数,n和m是大于等于1的整数;接收写请求;根据写请求而定位到第一数据块;判断写请求是否是对第一数据块内的数据的更新;如果写请求是对第一数据块内的数据的更新,则判断第一数据块内的n个缓存页面是否已经写满;如果n个缓存页面已经写满,则整理第一数据块内的n个缓存页面中的数据以得到整理后的缓存数据;以及将整理后的缓存数据以及与写请求对应的数据写入第二数据块内的数据页面。该方法可以高速存储数据,并且简单易实现。
Description
技术领域
本发明涉及计算机技术领域,尤其涉及一种用于固态存储硬盘的写方法及写装置。
背景技术
固态硬盘(Solid State Disk,简称SSD)是指用固态电子存储芯片阵列而制成的硬盘,由控制单元和存储单元组成,广泛应用于军事、车载、工控、视频监控、网络监控、网络终端、电力、医疗、航空等、导航设备等领域。现有的SSD的逻辑实现方案主要分为块映射方案、RAM缓存优化方案以及页映射方案。
块映射方案中,固件只维持一个逻辑块到物理块的映射表,相对简单,但写性能差,特别是随机写,写放大系数可以达10倍以上,严重影响SSD的使用寿命。
RAM缓存优化方案基于块映射,只能解决顺序写的问题,对于随机写性能没有帮助;并且在读写混合模式,每次缓存刷写会影响到读请求的处理,导致同时处理读请求处理延迟大等问题。
页映射方案虽然对提高写性能有一定帮助,但由于维护的映射表相对块映射要增大百倍以上,管理带来难度,大量的垃圾页面收集资源消耗也比比较大,SSD需要较大的RAM空间存放映射表,以及大量空闲Block进行垃圾回收以保证性能稳定,且随着SSD容量的不断增大,这种维护和管理难度以及所需资源也不断增加。
发明内容
本发明旨在至少解决上述技术问题之一。
为此,本发明的一个目的在于提出一种用于固态存储硬盘的写方法,既可以高速存储数据,又可以延长SSD使用寿命。
本发明的另一目的在于提出一种用于固态存储硬盘的写装置。
为了实现上述目的,根据本发明第一方面的实施例的用于固态存储硬盘的写方法包括以下步骤:将固态存储硬盘的每个数据块内的多个页面分为p个元数据页面、n个缓存页面和m个数据页面,其中p是大于等于0的整数,n和m是大于等于1的整数;接收写请求;根据写请求而定位到第一数据块;判断写请求是否是对第一数据块内的数据的更新;如果写请求是对第一数据块内的数据的更新,则判断第一数据块内的n个缓存页面是否已经写满;如果n个缓存页面已经写满,则整理第一数据块内的n个缓存页面中的数据以得到整理后的缓存数据;以及将整理后的缓存数据以及与写请求对应的数据写入第二数据块内的数据页面。
根据本发明实施例的用于固态存储硬盘的写方法,可以高速存储数据,又可以延长SSD使用寿命,较大节省内存等资源,并且简单易实现。
为了实现上述目的,根据本发明第二方面的实施例的用于固态存储硬盘的写装置包括:划分模块,划分模块用于将固态存储硬盘的每个数据块内的多个页面分为p个元数据页面、n个缓存页面和m个数据页面,其中p是大于等于0的整数,n和m是大于等于1的整数;接收模块,接收模块用于接收写请求;定位模块,定位模块用于根据写请求而定位到第一数据块;第一判断模块,第一判断模块用于判断写请求是否是对第一数据块内的数据的更新;第二判断模块,第二判断模块用于在写请求是对第一数据块内的数据的更新时,判断第一数据块内的n个缓存页面是否已经写满;整理模块,整理模块用于在n个缓存页面已经写满时,整理第一数据块内的n个缓存页面中的数据以得到整理后的缓存数据;以及写入模块,写入模块用于将整理后的缓存数据以及与写请求对应的数据写入第二数据块内的数据页面。。
根据本发明实施例的固态存储硬盘的写装置,这种装置存储数据效率高,使用寿命长,占用内存等资源少。
本发明附加的方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明的实践了解到。
附图说明
本发明上述的和/或附加的方面和优点从下面结合附图对实施例的描述中将变得明显和容易理解,其中,
图1是根据本发明一个实施例的用于固态存储硬盘的写方法的流程图;
图2是根据本发明一个实施例的数据块的结构示意图。
图3是根据本发明一个实施例的用于固态存储硬盘的写方法的流程图;
图4是根据本发明一个实施例的用于固态存储硬盘的写方法的流程图;
图5是根据本发明一个实施例的用于固态存储硬盘的写装置的结构框图;
图6是根据本发明一个实施例的用于固态存储硬盘的写装置的结构框图;以及
图7是根据本发明一个实施例的用于固态存储硬盘的写装置的结构框图。
具体实施方式
下面详细描述本发明的实施例,实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本发明,而不能理解为对本发明的限制。相反,本发明的实施例包括落入所附加权利要求书的精神和内涵范围内的所有变化、修改和等同物。
在本发明的描述中,需要理解的是,术语“第一”、“第二”等仅用于描述目的,而不能理解为指示或暗示相对重要性。在本发明的描述中,需要说明的是,除非另有明确的规定和限定,术语“相连”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连。对于本领域的普通技术人员而言,可以具体情况理解上述术语在本发明中的具体含义。此外,在本发明的描述中,除非另有说明,“多个”的含义是两个或两个以上。
流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为,表示包括一个或更多个用于实现特定逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分,并且本发明的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能,这应被本发明的实施例所属技术领域的技术人员所理解。
下面参考附图描述根据本发明实施例的用于固态存储硬盘的写方法及写装置。
一种用于固态存储硬盘的写方法,包括以下步骤:将固态存储硬盘的每个数据块内的多个页面分为p个元数据页面、n个缓存页面和m个数据页面,其中p是大于等于0的整数,n和m是大于等于1的整数;接收写请求;根据写请求而定位到第一数据块;判断写请求是否是对第一数据块内的数据的更新;如果写请求是对第一数据块内的数据的更新,则判断第一数据块内的n个缓存页面是否已经写满;如果n个缓存页面已经写满,则整理第一数据块内的n个缓存页面中的数据以得到整理后的缓存数据;以及将整理后的缓存数据以及与写请求对应的数据写入第二数据块内的数据页面。
图1是根据本发明一个实施例的用于固态存储硬盘的写方法的流程图。
如图1所示,用于固态存储硬盘的写方法包括下述步骤。
步骤S101,将固态存储硬盘的每个数据块内的多个页面分为p个元数据页面、n个缓存页面和m个数据页面,其中p是大于等于0的整数,n和m是大于等于1的整数。
在本发明的一个实施例中,元数据包括擦除次数。
在本发明的一个实施例中,n与m的比值为1∶4。1∶4的比值是优选的,但是本领域技术人员也可以根据需要调整缓存页面和数据页面所占的比例大小。
图2是根据本发明一个实施例的数据块的结构示意图。如图2所示,假设每个数据块的大小是512KB,共有共有128个页面,最前面2个页面存放元数据,后接121个页面是缓存页面,剩下25个页面是数据页面。
步骤S102,接收写请求。
数据块接收到来自用户的需要写入数据块的请求。
步骤S103,根据写请求而定位到第一数据块。根据写请求中携带的内容决定定位到哪个数据块。
步骤S104,判断写请求是否是对第一数据块内的数据的更新。写请求有可能是对于数据页面内的数据的更新,也可能是对空闲数据页面的写入。
步骤S105,如果写请求是对第一数据块内的数据的更新,则判断第一数据块内的n个缓存页面是否已经写满。如果写请求是对某一数据块内的数据的更新,则不会直接写入数据页面,而是要将其缓存在缓存页面内。
步骤S106,如果n个缓存页面已经写满,则整理第一数据块内的n个缓存页面中的数据以得到整理后的缓存数据。
在本发明的一个实施例中,整理第一数据块内的n个缓存页面中的数据以得到整理后的缓存数据的步骤可以包括:判断n个缓存页面中的数据的有效性。
在本发明的一个实施例中,可以在缓存页面中安排两个页面用于存储数据页面页号和版本信息,并且可以根据第一数据块内的n个缓存页面中记录的数据页面页号和版本信息来判断n个缓存页面中的数据的有效性,其中在数据页面页号相同的情况下,版本信息指示日期最新的数据是有效数据。
步骤S107,将整理后的缓存数据以及与写请求对应的数据写入第二数据块内的数据页面。
在本发明的一个实施例中,可以将有效数据以及与写请求对应的数据写入第二数据块内的数据页面。
根据本发明实施例的用于固态存储硬盘的写方法基于块分组思想,可以高速存储数据,又可以延长SSD使用寿命,较大节省内存等资源,并且简单易实现。
图3是根据本发明一个实施例的用于固态存储硬盘的写方法的流程图。
如图3所示,用于固态存储硬盘的写方法包括下述步骤。
步骤S301,将固态存储硬盘的每个数据块内的多个页面分为p个元数据页面、n个缓存页面和m个数据页面,其中p是大于等于0的整数,n和m是大于等于1的整数。
在本发明的一个实施例中,元数据包括擦除次数。
在本发明的一个实施例中,n与m的比值为1∶4。1∶4的比值是优选地,但是本领域技术人员也可以根据需要调整缓存页面和数据页面所占的比例大小。
在该实施例中,也可以参考图2的数据块的结构。
步骤S302,接收写请求。
数据块接收到来自用户的需要写入数据块的请求。
步骤S303,根据写请求而定位到第一数据块。根据写请求中携带的内容决定定位到哪个数据块。
步骤S304,判断写请求是否是对第一数据块内的数据的更新。写请求有可能是对于数据页面内的数据的更新,也可能是对空闲数据页面的写入。
步骤S305,如果写请求是对第一数据块内的数据的更新,则判断第一数据块内的n个缓存页面是否已经写满。如果写请求是对某一数据块内的数据的更新,则不会直接写入数据页面,而是要将其缓存在缓存页面内。
步骤S306,如果n个缓存页面已经写满,则整理第一数据块内的n个缓存页面中的数据以得到整理后的缓存数据。
在本发明的一个实施例中,整理第一数据块内的n个缓存页面中的数据以得到整理后的缓存数据的步骤可以包括:判断n个缓存页面中的数据的有效性。
在本发明的一个实施例中,可以在缓存页面中安排两个页面用于存储数据页面页号和版本信息,并且可以根据第一数据块内的n个缓存页面中记录的数据页面页号和版本信息来判断n个缓存页面中的数据的有效性,其中在数据页面页号相同的情况下,版本信息指示日期最新的数据是有效数据。
步骤S307,将整理后的缓存数据以及与写请求对应的数据写入第二数据块内的数据页面。
在本发明的一个实施例中,可以将有效数据以及与写请求对应的数据写入第二数据块内的数据页面。
步骤S308,如果n个缓存页面还未写满,则将与写请求对应的数据直接写入第一数据块内的缓存页面。
根据本发明实施例的用于固态存储硬盘的写方法,当判断第一数据块内的n个缓存页面未写满时,则将与写请求对应的数据直接写入第一数据块内的缓存页面。该步骤使得第一数据块内的缓存页面得到利用,没有浪费存储空间。该实施例的用于固态存储硬盘的写方法基于块分组思想,可以高速存储数据,又可以延长SSD使用寿命,较大节省内存等资源,并且简单易实现。
图4是根据本发明一个实施例的用于固态存储硬盘的写方法的流程图。
如图4所示,用于固态存储硬盘的写方法包括下述步骤。
步骤S401,将固态存储硬盘的每个数据块内的多个页面分为p个元数据页面、n个缓存页面和m个数据页面,其中p是大于等于0的整数,n和m是大于等于1的整数。
在本发明的一个实施例中,元数据包括擦除次数。
在本发明的一个实施例中,n与m的比值为1∶4。1∶4的比值是优选的,但是本领域技术人员也可以根据需要调整缓存页面和数据页面所占的比例大小。
在该实施例中,也可以参考图2所示的数据块的结构。
步骤S402,接收写请求。
数据块接收到来自用户的需要写入数据块的请求。
步骤S403,根据写请求而定位到第一数据块。根据写请求中携带的内容决定定位到哪个数据块。
步骤S404,判断写请求是否是对第一数据块内的数据的更新。写请求有可能是对于数据页面内的数据的更新,也可能是对空闲数据页面的写入。
步骤S405,如果写请求是对第一数据块内的数据的更新,则判断第一数据块内的n个缓存页面是否已经写满。如果写请求是对某一数据块内的数据的更新,则不会直接写入数据页面,而是要将其缓存在缓存页面内。
步骤S406,如果n个缓存页面已经写满,则整理第一数据块内的n个缓存页面中的数据以得到整理后的缓存数据。
在本发明的一个实施例中,整理第一数据块内的n个缓存页面中的数据以得到整理后的缓存数据的步骤可以包括:判断n个缓存页面中的数据的有效性。
在本发明的一个实施例中,可以在缓存页面中安排两个页面用于存储数据页面页号和版本信息,并且可以根据第一数据块内的n个缓存页面中记录的数据页面页号和版本信息来判断n个缓存页面中的数据的有效性,其中在数据页面页号相同的情况下,版本信息指示日期最新的数据是有效数据。
步骤S407,将整理后的缓存数据以及与写请求对应的数据写入第二数据块内的数据页面。
在本发明的一个实施例中,可以将有效数据以及与写请求对应的数据写入第二数据块内的数据页面。
步骤S408,如果n个缓存页面还未写满,则将与写请求对应的数据直接写入第一数据块内的缓存页面。
步骤S409,如果写请求不是对第一数据块内的数据的更新,则将与写请求对应的数据写入到第一数据块内的数据页面。
根据本发明实施例的用于固态存储硬盘的写方法,当判断写请求不是对第一数据块内的数据的更新,则将与写请求对应的数据写入到第一数据块内的数据页面。该步骤可以使整个数据写入过程变得便捷。该实施例的用于固态存储硬盘的写方法基于块分组思想,可以高速存储数据,又可以延长SSD使用寿命,较大节省内存等资源,并且简单易实现。
图5是根据本发明一个实施例的用于固态存储硬盘的写装置的结构框图。
如图5所示,用于固态存储硬盘的写装置1包括划分模块10、接收模块20、定位模块30、第一判断模块40、第二判断模块50、整理模块60以及写入模块70。
具体地,划分模块10用于将固态存储硬盘的每个数据块内的多个页面分为p个元数据页面、n个缓存页面和m个数据页面,其中p是大于等于0的整数,n和m是大于等于1的整数。
在本发明的一个实施例中,元数据包括擦除次数。
在本发明的一个实施例中,n与m的比值为1∶4。1∶4的比值是优选的,但是本领域技术人员也可以根据需要调整缓存页面和数据页面所占的比例大小。
接收模块20用于接收写请求。具体地,接收模块20用于接收写入数据块的请求。
定位模块30用于根据写请求而定位到第一数据块。具体地,定位模块30根据写请求中携带的内容决定定位到哪个数据块。
第一判断模块40用于判断写请求是否是对第一数据块内的数据的更新。写请求有可能是对于数据页面内的数据的更新,也可能是对空闲数据页面的写入。
第二判断模块50用于在写请求是对第一数据块内的数据的更新时,判断第一数据块内的n个缓存页面是否已经写满。如果写请求是对某一数据块内的数据的更新,则不会直接写入数据页面,而是要将其缓存在缓存页面内。
整理模块60用于在n个缓存页面已经写满时,整理第一数据块内的n个缓存页面中的数据以得到整理后的缓存数据。
在本发明的一个实施例中,整理模块60可以判断n个缓存页面中的数据的有效性。
在本发明的一个实施例中,划分模块10可以在缓存页面中安排两个页面用于存储数据页面页号和版本信息,并且整理模块60可以根据第一数据块内的n个缓存页面中记录的数据页面页号和版本信息来判断n个缓存页面中的数据的有效性,其中在数据页面页号相同的情况下,版本信息指示日期最新的数据是有效数据。
写入模块70用于将整理后的缓存数据以及与写请求对应的数据写入第二数据块内的数据页面。
在本发明的一个实施例中,写入模块70可以将有效数据以及与写请求对应的数据写入第二数据块内的数据页面。
根据本发明实施例的固态存储硬盘的写装置,基于块分组思想,这种装置存储数据效率高,使用寿命长,占用内存等资源少,相对于现有采用简单块映射的SSD产品,其随机写性能可提高5倍以上。。
图6是根据本发明一个实施例的用于固态存储硬盘的写装置的结构框图。
如图6所示,用于固态存储硬盘的写装置2包括划分模块10、接收模块20、定位模块30、第一判断模块40、第二判断模块50、整理模块60以及写入模块70。
具体地,划分模块10用于将固态存储硬盘的每个数据块内的多个页面分为p个元数据页面、n个缓存页面和m个数据页面,其中p是大于等于0的整数,n和m是大于等于1的整数。
在本发明的一个实施例中,元数据包括擦除次数。
在本发明的一个实施例中,n与m的比值为1∶4。1∶4的比值是优选的,但是本领域技术人员也可以根据需要调整缓存页面和数据页面所占的比例大小。
接收模块20用于接收写请求。具体地,接收模块20用于接收写入数据块的请求。
定位模块30用于根据写请求而定位到第一数据块。具体地,定位模块30根据写请求中携带的内容决定定位到哪个数据块。
第一判断模块40用于判断写请求是否是对第一数据块内的数据的更新。写请求有可能是对于数据页面内的数据的更新,也可能是对空闲数据页面的写入。
第二判断模块50用于在写请求是对第一数据块内的数据的更新时,判断第一数据块内的n个缓存页面是否已经写满。如果写请求是对某一数据块内的数据的更新,则不会直接写入数据页面,而是要将其缓存在缓存页面内。
整理模块60用于在n个缓存页面已经写满时,整理第一数据块内的n个缓存页面中的数据以得到整理后的缓存数据。
在本发明的一个实施例中,整理模块60可以判断n个缓存页面中的数据的有效性。
在本发明的一个实施例中,划分模块10可以在缓存页面中安排两个页面用于存储数据页面页号和版本信息,并且整理模块60可以根据第一数据块内的n个缓存页面中记录的数据页面页号和版本信息来判断n个缓存页面中的数据的有效性,其中在数据页面页号相同的情况下,版本信息指示日期最新的数据是有效数据。
写入模块70用于将整理后的缓存数据以及与写请求对应的数据写入第二数据块内的数据页面。
在本发明的一个实施例中,写入模块70可以将有效数据以及与写请求对应的数据写入第二数据块内的数据页面。
在本发明的一个实施例中,如果第二判断模块50判断n个缓存页面还未写满,则写入模块70进一步用于将与写请求对应的数据直接写入第一数据块内的缓存页面。
根据本发明实施例的固态存储硬盘的写装置,这种装置存储数据效率高,使用寿命长,占用内存等资源少,简单易实现,相对于现有采用简单块映射的SSD产品,其随机写性能可提高5倍以上。。
图7是根据本发明一个实施例的用于固态存储硬盘的写装置的结构框图。
如图7所示,用于固态存储硬盘的写装置3包括划分模块10、接收模块20、定位模块30、第一判断模块40、第二判断模块50、整理模块60以及写入模块70。
具体地,划分模块10用于将固态存储硬盘的每个数据块内的多个页面分为p个元数据页面、n个缓存页面和m个数据页面,其中p是大于等于0的整数,n和m是大于等于1的整数。
在本发明的一个实施例中,元数据包括擦除次数。
在本发明的一个实施例中,n与m的比值为1∶4。1∶4的比值是优选的,但是本领域技术人员也可以根据需要调整缓存页面和数据页面所占的比例大小。
接收模块20用于接收写请求。定位模块30用于根据写请求而定位到第一数据块。具体地,接收模块20用于接收写入数据块的请求。
第一判断模块40用于判断写请求是否是对第一数据块内的数据的更新。具体地,定位模块30根据写请求中携带的内容决定定位到哪个数据块。
第二判断模块50用于在写请求是对第一数据块内的数据的更新时,判断第一数据块内的n个缓存页面是否已经写满。写请求有可能是对于数据页面内的数据的更新,也可能是对空闲数据页面的写入。
整理模块60用于在n个缓存页面已经写满时,整理第一数据块内的n个缓存页面中的数据以得到整理后的缓存数据。
在本发明的一个实施例中,整理模块60可以判断n个缓存页面中的数据的有效性。
在本发明的一个实施例中,划分模块10可以在缓存页面中安排两个页面用于存储数据页面页号和版本信息,并且整理模块60可以根据第一数据块内的n个缓存页面中记录的数据页面页号和版本信息来判断n个缓存页面中的数据的有效性,其中在数据页面页号相同的情况下,版本信息指示日期最新的数据是有效数据。
写入模块70用于将整理后的缓存数据以及与写请求对应的数据写入第二数据块内的数据页面。
在本发明的一个实施例中,写入模块70可以将有效数据以及与写请求对应的数据写入第二数据块内的数据页面。
在本发明的一个实施例中,如果第二判断模块50判断n个缓存页面还未写满,则写入模块70进一步用于将与写请求对应的数据直接写入第一数据块内的缓存页面。
在本发明的一个实施例中,如果第一判断模块40判断写请求不是对第一数据块内的数据的更新,则写入模块70进一步用于将与写请求对应的数据写入到第一数据块内的数据页面。
根据本发明实施例的固态存储硬盘的写装置,这种装置具有存储数据效率高、使用寿命长、占用内存等资源少、实现简单等优点,相对于现有采用简单块映射的SSD产品,其随机写性能可提高5倍以上。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。
尽管已经示出和描述了本发明的实施例,对于本领域的普通技术人员而言,可以理解在不脱离本发明的原理和精神的情况下可以对这些实施例进行多种变化、修改、替换和变型,本发明的范围由所附权利要求及其等同限定。
Claims (14)
1.一种用于固态存储硬盘的写方法,其特征在于,包括以下步骤:
将所述固态存储硬盘的每个数据块内的多个页面分为p个元数据页面、n个缓存页面和m个数据页面,其中p是大于等于0的整数,n和m是大于等于1的整数;
接收写请求;
根据所述写请求而定位到第一数据块;
判断所述写请求是否是对所述第一数据块内的数据的更新;
如果所述写请求是对所述第一数据块内的数据的更新,则判断所述第一数据块内的所述n个缓存页面是否已经写满;
如果所述n个缓存页面已经写满,则整理所述第一数据块内的n个缓存页面中的数据以得到整理后的缓存数据;以及
将所述整理后的缓存数据以及与所述写请求对应的数据写入第二数据块内的数据页面。
2.根据权利要求1所述的写方法,其特征在于,进一步包括步骤:
如果所述n个缓存页面还未写满,则将与所述写请求对应的数据直接写入所述第一数据块内的缓存页面。
3.根据权利要求1或2所述的写方法,其特征在于,进一步包括步骤:
如果所述写请求不是对所述第一数据块内的数据的更新,则将与所述写请求对应的数据写入到所述第一数据块内的数据页面。
4.根据权利要求3所述的写方法,其特征在于,所述元数据包括擦除次数。
5.根据权利要求3所述的写方法,其特征在于,n与m的比值为1∶4。
6.根据权利要求3所述的写方法,其特征在于,整理所述第一数据块内的n个缓存页面中的数据以得到整理后的缓存数据的步骤包括:
判断所述n个缓存页面中的数据的有效性。
7.根据权利要求6所述的写方法,其特征在于,根据所述第一数据块内的n个缓存页面中记录的数据页面页号和版本信息来判断所述n个缓存页面中的数据的有效性,其中在数据页面页号相同的情况下,版本信息指示日期最新的数据是有效数据。
8.一种用于固态存储硬盘的写装置,其特征在于,包括:
划分模块,所述划分模块用于将所述固态存储硬盘的每个数据块内的多个页面分为p个元数据页面、n个缓存页面和m个数据页面,其中p是大于等于0的整数,n和m是大于等于1的整数;
接收模块,所述接收模块用于接收写请求;
定位模块,所述定位模块用于根据所述写请求而定位到第一数据块;
第一判断模块,所述第一判断模块用于判断所述写请求是否是对所述第一数据块内的数据的更新;
第二判断模块,所述第二判断模块用于在所述写请求是对所述第一数据块内的数据的更新时,判断所述第一数据块内的所述n个缓存页面是否已经写满;
整理模块,所述整理模块用于在所述n个缓存页面已经写满时,整理所述第一数据块内的n个缓存页面中的数据以得到整理后的缓存数据;以及
写入模块,所述写入模块用于将所述整理后的缓存数据以及与所述写请求对应的数据写入第二数据块内的数据页面。
9.根据权利要求8所述的写装置,其特征在于,如果所述第二判断模块判断所述n个缓存页面还未写满,则所述写入模块进一步用于将与所述写请求对应的数据直接写入所述第一数据块内的缓存页面。
10.根据权利要求8或9所述的写装置,其特征在于,如果所述第一判断模块判断所述写请求不是对所述第一数据块内的数据的更新,则所述写入模块进一步用于将与所述写请求对应的数据写入到所述第一数据块内的数据页面。
11.根据权利要求10所述的写装置,其特征在于,所述元数据包括擦除次数。
12.根据权利要求10所述的写装置,其特征在于,n与m的比值为1∶4。
13.根据权利要求10所述的写装置,其特征在于,所述整理模块用于:
判断所述n个缓存页面中的数据的有效性。
14.根据权利要求13所述的写装置,其特征在于,所述整理模块根据所述第一数据块内的n个缓存页面中记录的数据页面页号和版本信息,其中在数据页面页号相同的情况下,版本最新的数据是有效数据。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210011846.6A CN103207836B (zh) | 2012-01-16 | 2012-01-16 | 一种用于固态存储硬盘的写方法及写装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210011846.6A CN103207836B (zh) | 2012-01-16 | 2012-01-16 | 一种用于固态存储硬盘的写方法及写装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103207836A true CN103207836A (zh) | 2013-07-17 |
CN103207836B CN103207836B (zh) | 2016-01-20 |
Family
ID=48755065
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210011846.6A Active CN103207836B (zh) | 2012-01-16 | 2012-01-16 | 一种用于固态存储硬盘的写方法及写装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103207836B (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104598161A (zh) * | 2013-10-31 | 2015-05-06 | 腾讯科技(深圳)有限公司 | 数据读取、写入方法和装置及数据存储结构 |
CN105683930A (zh) * | 2013-10-29 | 2016-06-15 | 上海宝存信息科技有限公司 | 用于数据存储系统的动态缓存方法和系统 |
CN109213693A (zh) * | 2017-06-30 | 2019-01-15 | 伊姆西Ip控股有限责任公司 | 存储管理方法、存储系统和计算机程序产品 |
CN110716885A (zh) * | 2019-10-23 | 2020-01-21 | 北京字节跳动网络技术有限公司 | 数据管理方法、装置、电子设备和存储介质 |
CN111324309A (zh) * | 2020-02-21 | 2020-06-23 | 北京天融信网络安全技术有限公司 | 一种数据存储方法及电子设备 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101169760A (zh) * | 2006-10-26 | 2008-04-30 | 北京华旗资讯数码科技有限公司 | 电子硬盘的存储空间的管理方法 |
US20080177933A1 (en) * | 2007-01-22 | 2008-07-24 | Micron Technology, Inc. | Defective memory block remapping method and system, and memory device and processor-based system using same |
CN101571832A (zh) * | 2008-04-29 | 2009-11-04 | 群联电子股份有限公司 | 数据写入方法及使用该方法的快闪存储系统与其控制器 |
CN102081577A (zh) * | 2011-01-12 | 2011-06-01 | 厦门雅迅网络股份有限公司 | Flash存储器的数据存储结构及其数据操作方式 |
-
2012
- 2012-01-16 CN CN201210011846.6A patent/CN103207836B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101169760A (zh) * | 2006-10-26 | 2008-04-30 | 北京华旗资讯数码科技有限公司 | 电子硬盘的存储空间的管理方法 |
US20080177933A1 (en) * | 2007-01-22 | 2008-07-24 | Micron Technology, Inc. | Defective memory block remapping method and system, and memory device and processor-based system using same |
CN101571832A (zh) * | 2008-04-29 | 2009-11-04 | 群联电子股份有限公司 | 数据写入方法及使用该方法的快闪存储系统与其控制器 |
CN102081577A (zh) * | 2011-01-12 | 2011-06-01 | 厦门雅迅网络股份有限公司 | Flash存储器的数据存储结构及其数据操作方式 |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105683930A (zh) * | 2013-10-29 | 2016-06-15 | 上海宝存信息科技有限公司 | 用于数据存储系统的动态缓存方法和系统 |
CN104598161A (zh) * | 2013-10-31 | 2015-05-06 | 腾讯科技(深圳)有限公司 | 数据读取、写入方法和装置及数据存储结构 |
CN104598161B (zh) * | 2013-10-31 | 2018-10-30 | 腾讯科技(深圳)有限公司 | 数据读取、写入方法和装置及数据存储结构 |
CN109213693A (zh) * | 2017-06-30 | 2019-01-15 | 伊姆西Ip控股有限责任公司 | 存储管理方法、存储系统和计算机程序产品 |
CN110716885A (zh) * | 2019-10-23 | 2020-01-21 | 北京字节跳动网络技术有限公司 | 数据管理方法、装置、电子设备和存储介质 |
CN110716885B (zh) * | 2019-10-23 | 2022-02-18 | 北京字节跳动网络技术有限公司 | 数据管理方法、装置、电子设备和存储介质 |
CN111324309A (zh) * | 2020-02-21 | 2020-06-23 | 北京天融信网络安全技术有限公司 | 一种数据存储方法及电子设备 |
Also Published As
Publication number | Publication date |
---|---|
CN103207836B (zh) | 2016-01-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Chiang et al. | Cleaning policies in mobile computers using flash memory | |
EP3399444A1 (en) | Optimized record lookups | |
Li et al. | Tree indexing on solid state drives | |
US9582201B2 (en) | Multi-tier scheme for logical storage management | |
CN102768645B (zh) | 混合缓存的固态硬盘预取方法和固态硬盘ssd | |
CN102163175B (zh) | 一种基于局部性分析的混合地址映射方法 | |
Jung et al. | Taking garbage collection overheads off the critical path in SSDs | |
US8572312B2 (en) | Data de-duplication and solid state memory device | |
CN103577339A (zh) | 一种数据存储方法及系统 | |
CN103207836B (zh) | 一种用于固态存储硬盘的写方法及写装置 | |
US20130198453A1 (en) | Hybrid storage device inclucing non-volatile memory cache having ring structure | |
US20140047164A1 (en) | Physically Addressed Solid State Disk Employing Magnetic Random Access Memory (MRAM) | |
CN107391391A (zh) | 在固态硬盘的ftl实现数据拷贝的方法、系统及固态硬盘 | |
CN107817945B (zh) | 一种混合内存结构的数据读取方法和系统 | |
CN107092563B (zh) | 一种垃圾回收方法及装置 | |
CN102262512A (zh) | 一种实现磁盘阵列缓存分区管理的系统、装置及方法 | |
Yang et al. | {SmartDedup}: Optimizing Deduplication for Resource-constrained Devices | |
Wang et al. | Separating data via block invalidation time inference for write amplification reduction in {Log-Structured} storage | |
Zhang et al. | LOFFS: A low-overhead file system for large flash memory on embedded devices | |
CN103309619A (zh) | 一种闪存数据存储方法 | |
US20140047161A1 (en) | System Employing MRAM and Physically Addressed Solid State Disk | |
CN103823634A (zh) | 一种支持无随机写模式的数据处理方法及系统 | |
CN101256536B (zh) | 闪存地址转换层系统 | |
CN106055269A (zh) | 硬驱动器中的界域分区 | |
WO2013090194A1 (en) | Processor with garbage-collection based classification of memory |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |