CN104461935B - 一种进行数据存储的方法、装置及系统 - Google Patents
一种进行数据存储的方法、装置及系统 Download PDFInfo
- Publication number
- CN104461935B CN104461935B CN201410705705.3A CN201410705705A CN104461935B CN 104461935 B CN104461935 B CN 104461935B CN 201410705705 A CN201410705705 A CN 201410705705A CN 104461935 B CN104461935 B CN 104461935B
- Authority
- CN
- China
- Prior art keywords
- data
- cache
- type
- storage
- stored
- 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 48
- 238000013500 data storage Methods 0.000 title claims abstract description 27
- 230000004048 modification Effects 0.000 claims description 28
- 238000012986 modification Methods 0.000 claims description 28
- 230000008859 change Effects 0.000 claims description 8
- 230000001360 synchronised effect Effects 0.000 claims description 7
- 238000012544 monitoring process Methods 0.000 claims description 2
- 238000005516 engineering process Methods 0.000 abstract description 3
- 238000010586 diagram Methods 0.000 description 19
- 238000013507 mapping Methods 0.000 description 10
- 230000008569 process Effects 0.000 description 10
- 238000004590 computer program Methods 0.000 description 7
- 230000006870 function Effects 0.000 description 4
- 238000012545 processing Methods 0.000 description 4
- 230000003321 amplification Effects 0.000 description 3
- 238000003199 nucleic acid amplification method Methods 0.000 description 3
- 239000010410 layer Substances 0.000 description 2
- 238000007726 management method Methods 0.000 description 2
- 230000002035 prolonged effect Effects 0.000 description 2
- 238000011084 recovery Methods 0.000 description 2
- 230000001960 triggered effect Effects 0.000 description 2
- 230000002159 abnormal effect Effects 0.000 description 1
- 230000004075 alteration Effects 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 239000002245 particle Substances 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 239000002356 single layer Substances 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
本发明涉及电子技术领域,尤其涉及一种进行数据存储的方法、装置及系统,用以解决存储设备写性能较低、使用寿命较短的问题。本发明实施例提供的进行数据存储的方法包括:存储控制器接收待存储数据,存储控制器中设有第一缓存和第二缓存,第一缓存用于缓存第一类数据,第二缓存用于缓存第二类数据,第一类数据的更新频率大于第二类数据的更新频率;存储控制器识别待存储数据中的第一类数据,并将识别的所述第一类数据写入第一缓存中;若写入的第一类数据中包含更新数据,则将第一缓存中该更新数据对应的更新前的数据设为无效;存储控制器在确定当前满足第一类数据的写入触发条件时,将第一缓存中的有效数据写入存储介质。
Description
技术领域
本发明涉及电子技术领域,尤其涉及一种进行数据存储的方法、装置及系统。
背景技术
固态硬盘(Solid State Drives,SSD)作为一种高性能存储设备,一般使用闪存(Flash芯片)作为存储介质。Flash芯片的最小写数据单元为逻辑块(Block),一个Block的大小通常为几兆比特(Megabit,MB)。Flash芯片有写次数的限制,多层单元闪存的可擦写次数为10000次左右,单层单元闪存的可擦写次数为100000次左右,因此,在使用SSD时,应尽量减少Flash芯片的擦写次数或减少对Flash芯片的写入数据量,以提高SSD的使用寿命。
应用运行过程中会生成用户数据,而日志文件系统在将用户数据写入存储设备之前,通常还会生成用于记录用户数据的修改信息的日志数据(Journal data)和用于描述用户数据的各种属性信息(包括文件大小、修改时间等)的元数据(Metadata),这些数据也需要写入存储设备,如图1所示。这里,元数据包括文件大小、修改时间等;日志数据是为了保证数据可靠性而生成的,具体地,在将用户数据和元数据正式写入Flash芯片的日志文件系统主存储区域之前,先将该用户数据和元数据的日志记录(Journal logs)写入Flash芯片中的日志区,即将描述该用户数据的修改信息的日志数据存储在日志区,由于该日志数据详细描述了用户数据的修改信息,因此,若日志文件系统在将用户数据和元数据写入存储介质的过程中出现中断,日志文件系统可以根据该日志数据重新恢复用户数据和元数据。
在上述数据存储方式下,每次在向文件中写入新的用户数据时,都需要更新元数据和日志数据,可见,对元数据和日志数据的频繁更新大大增加了写入存储介质的数据量,也即将用户数据写入存储介质的操作存在写放大的问题,从而导致存储设备写性能较低,使用寿命也较短。
发明内容
本发明实施例提供一种进行数据存储的方法、装置及系统,用以解决存储设备写性能较低、使用寿命较短的问题。
第一方面,提供一种进行数据存储的方法,包括:
存储控制器接收待存储数据,所述存储控制器中设有第一缓存和第二缓存,所述第一缓存用于缓存第一类数据,所述第二缓存用于缓存第二类数据,所述第一类数据的更新频率大于所述第二类数据的更新频率;
所述存储控制器识别所述待存储数据中的第一类数据,并将识别的所述第一类数据写入所述第一缓存中;若写入的所述第一类数据中包含更新数据,则将所述第一缓存中该更新数据对应的更新前的数据设为无效;
所述存储控制器在确定当前满足所述第一类数据的写入触发条件时,将所述第一缓存中的有效数据写入存储介质。
结合第一方面,在第一种可能的实现方式中,所述存储控制器识别所述待存储数据中的第一类数据,包括:
所述存储控制器根据所述待存储数据中携带的标识信息,以及标识信息与数据类型的对应关系,识别所述待存储数据中的第一类数据;其中,所述标识信息包括所述第一类数据中携带的第一标识信息和/或所述第二类数据中携带的第二标识信息。
结合第一方面的第一种可能的实现方式,在第二种可能的实现方式中,所述存储控制器根据所述待存储数据中携带的标识信息,以及标识信息与数据类型的对应关系,识别所述待存储数据中的第一类数据,包括:
所述存储控制器根据所述待存储数据中的存储地址信息,以及不同存储地址范围对应的数据类型,识别所述待存储数据中的第一类数据。
结合第一方面,或第一方面的第一或第二种可能的实现方式,在第三种可能的实现方式中,所述存储控制器在确定当前满足所述第一类数据的写入触发条件时,将所述第一缓存中的有效数据写入所述存储介质,包括:
所述存储控制器在所述第一缓存写满后,将所述第一缓存中的有效数据写入所述存储介质;和/或,
所述存储控制器在监测到所述存储设备发生断电后,将所述第一缓存中的有效数据写入所述存储介质;和/或,
所述存储控制器将所述第一缓存中在设定时间长度内未被更新的有效数据写入所述存储介质。
结合第一方面,或第一方面的第一~三种可能的实现方式中的任意一种可能的实现方式,在第四种可能的实现方式中,所述存储介质为闪存Flash芯片;
所述第一缓存和第二缓存分别为所述存储控制器中的双倍速率同步动态随机存储器DDR的不同部分;或者,所述第一缓存为相变存储器PCM,所述第二缓存为DDR或PCM。
结合第一方面,或第一方面的第一~四种可能的实现方式中的任意一种可能的实现方式,在第五种可能的实现方式中,所述第二类数据包括所述应用实际操作的用户数据,所述第一类数据包括用于记录所述用户数据的修改信息的日志数据和/或用于描述所述用户数据的各种属性信息的元数据。
第二方面,提供一种进行数据存储的方法,包括:
第一设备为需要写入存储设备的待存储数据添加用于识别所述待存储数据中的不同类型数据的标识信息,其中,所述待存储数据中包括第一类数据和第二类数据,所述第一类数据的更新频率大于所述第二类数据的更新频率;
所述第一设备将携带所述标识信息的待存储数据发送给所述存储设备;
所述存储设备基于接收的待存储数据中携带的标识信息,识别所述待存储数据中的第一类数据,并将识别的所述第一类数据写入第一缓存中;若写入的所述第一类数据中包含更新数据,则将所述第一缓存中该更新数据对应的更新前的数据设为无效;其中,所述存储设备中包括第一缓存和第二缓存,所述第一缓存用于缓存第一类数据,所述第二缓存用于缓存第二类数据;
所述存储设备在确定当前满足所述第一类数据的写入触发条件时,将所述第一缓存中的有效数据写入存储介质。
结合第二方面,在第一种可能的实现方式中,所述标识信息为存储地址信息;
所述第一设备为需要写入存储设备的待存储数据添加用于识别所述待存储数据中的不同类型数据的标识信息,包括:
所述第一设备基于不同存储地址范围对应的数据类型,为待存储数据中不同类型的数据确定存储地址信息。
结合第二方面,或第二方面的第一种可能的实现方式,在第二种可能的实现方式中,所述第二类数据包括所述应用实际操作的用户数据,所述第一类数据包括用于记录所述用户数据的修改信息的日志数据和/或用于描述所述用户数据的各种属性信息的元数据。
第三方面,提供一种进行数据存储的装置,包括:
接收模块,用于接收待存储数据,所述存储控制器中设有第一缓存和第二缓存,所述第一缓存用于缓存第一类数据,所述第二缓存用于缓存第二类数据,所述第一类数据的更新频率大于所述第二类数据的更新频率;
识别模块,用于识别所述待存储数据中的第一类数据,并将识别的所述第一类数据写入所述第一缓存中;若写入的所述第一类数据中包含更新数据,则将所述第一缓存中该更新数据对应的更新前的数据设为无效;
写入模块,用于在确定当前满足所述第一类数据的写入触发条件时,将所述第一缓存中的有效数据写入存储介质。
结合第三方面,在第一种可能的实现方式中,所述识别模块具体用于:
根据所述待存储数据中携带的标识信息,以及标识信息与数据类型的对应关系,识别所述待存储数据中的第一类数据;其中,所述标识信息包括所述第一类数据中携带的第一标识信息和/或所述第二类数据中携带的第二标识信息。
结合第三方面的第一种可能的实现方式,在第二种可能的实现方式中,所述标识信息为存储地址信息:
所述识别模块具体用于:根据所述待存储数据中的存储地址信息,以及不同存储地址范围对应的数据类型,识别所述待存储数据中的第一类数据。
结合第三方面,或第三方面的第一或第二种可能的实现方式,在第三种可能的实现方式中,所述写入模块具体用于:在所述第一缓存写满后,将所述第一缓存中的有效数据写入所述存储介质;和/或,在监测到所述存储设备发生断电后,将所述第一缓存中的有效数据写入所述存储介质;和/或,将所述第一缓存中在设定时间长度内未被更新的有效数据写入所述存储介质。
结合第三方面,或第三方面的第一~三种可能的实现方式中的任意一种可能的实现方式,在第四种可能的实现方式中,所述存储介质为闪存Flash芯片;
所述第一缓存和第二缓存分别为所述存储控制器中的双倍速率同步动态随机存储器DDR的不同部分;或者,所述第一缓存为相变存储器PCM,所述第二缓存为DDR或PCM。
结合第三方面,或第三方面的第一~四种可能的实现方式中的任意一种可能的实现方式,在第五种可能的实现方式中,所述第二类数据包括所述应用实际操作的用户数据,所述第一类数据包括用于记录所述用户数据的修改信息的日志数据和/或用于描述所述用户数据的各种属性信息的元数据。
第四方面,提供一种进行数据存储的系统,包括:第一设备和存储设备,所述存储设备包括存储控制器和存储介质,所述存储控制器中设有第一缓存和第二缓存,所述第一缓存用于缓存第一类数据,所述第二缓存用于缓存第二类数据,所述第一类数据的更新频率大于第二类数据的更新频率;其中,
所述第一设备,用于为需要写入所述存储设备的待存储数据添加用于识别所述待存储数据中的不同类型数据的标识信息,将携带所述标识信息的待存储数据发送给所述存储设备;其中,所述待存储数据中包括第一类数据和第二类数据;
所述存储设备中的存储控制器,用于基于接收的待存储数据中携带的标识信息,识别所述待存储数据中的第一类数据,并将识别的所述第一类数据写入所述第一缓存中;若写入的所述第一类数据中包含更新数据,则将所述第一缓存中该更新数据对应的更新前的数据设为无效;在确定当前满足所述第一类数据的写入触发条件时,将所述第一缓存中的有效数据写入存储介质。
结合第四方面,在第一种可能的实现方式中,所述标识信息为存储地址信息;
所述第一设备具体用于:基于不同存储地址范围对应的数据类型,为待存储数据中不同类型的数据确定存储地址信息。
结合第四方面,或第四方面的第一种可能的实现方式,在第二种可能的实现方式中,所述第二类数据包括所述应用实际操作的用户数据,所述第一类数据包括用于记录所述用户数据的修改信息的日志数据和/或用于描述所述用户数据的各种属性信息的元数据。
第五方面,提供一种进行数据存储的设备,该设备包括存储控制器和存储介质,所述存储控制器中设有第一缓存和第二缓存,所述第一缓存用于缓存第一类数据,所述第二缓存用于缓存第二类数据,所述第一类数据的更新频率大于所述第二类数据的更新频率;当所述存储控制器运行时,所述存储控制器与所述存储介质之间通过总线通信,执行如下指令:
接收待存储数据,所述存储控制器中设有第一缓存和第二缓存,所述第一缓存用于缓存第一类数据,所述第二缓存用于缓存第二类数据,所述第一类数据的更新频率大于所述第二类数据的更新频率;
识别所述待存储数据中的第一类数据,并将识别的所述第一类数据写入所述第一缓存中;若写入的所述第一类数据中包含更新数据,则将所述第一缓存中该更新数据对应的更新前的数据设为无效;
在确定当前满足所述第一类数据的写入触发条件时,将所述第一缓存中的有效数据写入存储介质。
结合第五方面,在第一种可能的实现方式中,所述存储控制器执行的所述指令中,识别所述待存储数据中的第一类数据,包括:
根据所述待存储数据中携带的标识信息,以及标识信息与数据类型的对应关系,识别所述待存储数据中的第一类数据;其中,所述标识信息包括所述第一类数据中携带的第一标识信息和/或所述第二类数据中携带的第二标识信息。
结合第五方面的第一种可能的实现方式,在第二种可能的实现方式中,所述标识信息为存储地址信息:
所述存储控制器执行的所述指令中,根据所述待存储数据中携带的标识信息,以及标识信息与数据类型的对应关系,识别所述待存储数据中的第一类数据,包括:
根据所述待存储数据中的存储地址信息,以及不同存储地址范围对应的数据类型,识别所述待存储数据中的第一类数据。
结合第五方面,或第五方面的第一或第二种可能的实现方式,在第三种可能的实现方式中,所述存储控制器执行的所述指令中,在确定当前满足所述第一类数据的写入触发条件时,将所述第一缓存中的有效数据写入所述存储介质,包括:
在所述第一缓存写满后,将所述第一缓存中的有效数据写入所述存储介质;和/或,
在监测到所述存储设备发生断电后,将所述第一缓存中的有效数据写入所述存储介质;和/或,
将所述第一缓存中在设定时间长度内未被更新的有效数据写入所述存储介质。
结合第五方面,或第五方面的第一~三种可能的实现方式中的任意一种可能的实现方式,在第四种可能的实现方式中,所述存储介质为闪存Flash芯片;
所述第一缓存和第二缓存分别为所述存储控制器中的双倍速率同步动态随机存储器DDR的不同部分;或者,所述第一缓存为相变存储器PCM,所述第二缓存为DDR或PCM。
结合第五方面,或第五方面的第一~四种可能的实现方式中的任意一种可能的实现方式,在第五种可能的实现方式中,所述第二类数据包括所述应用实际操作的用户数据,所述第一类数据包括用于记录所述用户数据的修改信息的日志数据和/或用于描述所述用户数据的各种属性信息的元数据。
第六方面,提供一种进行数据存储的设备,该设备包括处理器、存储器和总线,所述存储器存储执行指令,当所述设备运行时,所述处理器与所述存储器之间通过总线通信,所述处理器执行所述执行指令使得所述设备执行如下指令:
为需要写入存储设备的待存储数据添加用于识别所述待存储数据中的不同类型数据的标识信息,其中,所述待存储数据中包括第一类数据和第二类数据,所述第一类数据的更新频率大于所述第二类数据的更新频率;
将携带所述标识信息的待存储数据发送给所述存储设备;所述标识信息用于存储控制器识别所述待存储数据中的第一类数据,将识别的所述第一类数据写入存储控制器的第一缓存中,并在确定写入的所述第一类数据中包含更新数据后,将第一缓存中该更新数据对应的更新前的数据设为无效。
结合第六方面,在第一种可能的实现方式中,所述标识信息为存储地址信息;
所述处理器执行的所述指令中,为需要写入存储设备的待存储数据添加用于识别所述待存储数据中的不同类型数据的标识信息,包括:
基于不同存储地址范围对应的数据类型,为待存储数据中不同类型的数据确定存储地址信息。
结合第六方面,或第六方面的第一种可能的实现方式,在第二种可能的实现方式中,所述第二类数据包括所述应用实际操作的用户数据,所述第一类数据包括用于记录所述用户数据的修改信息的日志数据和/或用于描述所述用户数据的各种属性信息的元数据。
采用上述任一方面提供的方案,存储控制器识别出待存储数据中频繁更新的第一类数据,并将这类数据存储在额外设置的缓存空间(即第一缓存)中;为这类数据预先设置好写入触发条件,在写入触发条件满足之前,不将第一缓存中的数据写入存储介质;在向第一缓存中写入更新数据时,将第一缓存中该更新数据对应的更新前的数据设为无效;在写入触发条件满足之后,将第一缓存中的有效数据写入存储介质中;这样,写入存储介质的数据只是第一缓存中的有效数据,相比将缓存中的数据都实时写入存储介质,只能对存储介质中的数据进行更新的方式大大减少了写入存储介质的数据量及写入次数,解决了写放大的问题,进而提高了存储设备的写性能,并可以延长存储设备的使用寿命。
附图说明
图1为背景技术中的数据存储示意图;
图2为本发明实施例一提供的进行数据存储的方法流程图;
图3本发明实施例二提供的进行数据存储的方法流程图;
图4为本发明实施例三提供的进行数据存储的方法流程图;
图5为本发明实施例中SSD进行数据存储的示意图;
图6为本发明实施例四提供的进行数据存储的方法流程图;
图7为本发明实施例五提供的进行数据存储的装置结构示意图;
图8为本发明实施例六提供的进行数据存储的系统结构示意图;
图9为本发明实施例七提供的存储设备结构示意图;
图10为本发明实施例八提供的进行数据存储的设备结构示意图。
具体实施方式
本发明实施例的基本思想是:存储控制器识别出待存储数据中频繁更新的第一类数据,并将这类数据存储在额外设置的缓存空间(即第一缓存)中;为这类数据预先设置好写入触发条件,在写入触发条件满足之前,不将第一缓存中的数据写入存储介质;在向第一缓存中写入更新数据时,将第一缓存中该更新数据对应的更新前的数据设为无效;在写入触发条件满足之后,将第一缓存中的有效数据写入存储介质中;这样,写入存储介质的数据只是第一缓存中的有效数据,相比将缓存中的数据都实时写入存储介质,只能对存储介质中的数据进行更新的方式大大减少了写入存储介质的数据量及写入次数,解决了写放大的问题,进而提高了存储设备的写性能,并可以延长存储设备的使用寿命。
下面结合说明书附图对本发明实施例作进一步详细描述。
实施例一
如图2所示,为本发明实施例一提供的进行数据存储的方法流程图,该方法包括:
S201:存储控制器接收待存储数据,所述存储控制器中设有第一缓存和第二缓存,所述第一缓存用于缓存第一类数据,所述第二缓存用于缓存第二类数据,所述第一类数据的更新频率大于所述第二类数据的更新频率。
该步骤中,第一设备在运行应用的过程中,将待存储数据写入存储设备中,该待存储数据包括第一类数据和第二类数据,其中,第一类数据的更新频率大于第二类数据的更新频率,比如第一类数据为非用户数据,如用于记录用户数据的修改信息的日志数据和/或用于描述用户数据的各种属性信息的元数据,第二类数据为第一设备在运行应用的过程中实际操作的用户数据,也即用户实际需要的数据。第一设备运行的应用可以是任意需要与存储设备进行数据交互的应用。
S202:存储控制器识别所述待存储数据中的第一类数据,并将识别的第一类数据写入第一缓存中;若写入的所述第一类数据中包含更新数据,则将第一缓存中该更新数据对应的更新前的数据设为无效。
该步骤中,存储控制器在接收到第一设备发送的待存储数据后,可以基于待存储数据中携带的标识信息、以及标识信息与数据类型的对应关系,识别待存储数据中的第一类数据;这里的标识信息可以只包括第一类数据中携带的第一标识信息(只标识第一类数据);或者可以只包括第二类数据中携带的第二标识信息(只标识第二类数据),这时存储控制器将没有携带第二标识信息的数据归类为第一类数据,或者可以既包括第一类数据中携带的第一标识信息也包括第二类数据中携带的第二标识信息(标识两类数据),这三种标识信息添加方式都能够使存储控制器识别出待存储数据中的两类不同的数据。
可选地,标识信息具体可以是存储地址信息:此时,存储控制器根据所述待存储数据中携带的标识信息,以及标识信息与数据类型的对应关系,识别所述待存储数据中的第一类数据,包括:
所述存储控制器根据所述待存储数据中的存储地址信息,以及不同存储地址范围对应的数据类型,识别所述待存储数据中的第一类数据。
在具体实施过程中,可以为不同类型的数据设置不同的存储介质空间,也即,不同存储地址范围对应不同的数据类型;存储控制器只需根据待存储数据中的不同数据的存储地址所属的存储地址范围,即可确定出哪些数据属于第一类数据,哪些数据属于第二类数据。
在具体实施中,针对第一类数据,若其中包含更新数据(比如更新一个文件的文件属性信息(如文件大小)),在将更新数据写入第一缓存后,第一缓存中可能还存在该更新数据对应的更新前的数据(比如更新前文件的文件属性信息),则此时可以直接将第一缓存中该更新前的数据设为无效;这里,将第一缓存中更新前的数据设为无效也即:将地址映射表中该更新前的数据所对应的映射表项中的有效标识位的值置0(有效标识位的值为0时标识无效、有效标识位的值为1时标识有效)。具体地,存储控制器维护一张记录缓存地址与存储介质地址之间的映射关系的映射关系表,每个映射表项中包含待存储数据所在的缓存地址、需要写入的存储介质的地址以及有效标志位,在向第一缓存中写入更新数据后,需要记录新的映射表项,即记录更新后的数据所在的缓存地址、需要写入的存储介质中的地址(因为没有将更新前的数据写入存储介质,因此更新前数据的映射表项中的存储介质地址与更新后数据的映射表项中的存储介质地址可以相同)、并将有效标识位的值置为1;同时,将该更新后的数据所对应的更新前的数据的映射表项中的有效标识位的值置为0,以表示更新前的数据无效,无需写入存储介质。
针对第二类数据,在将其写入第二缓存后,需要及时写入存储介质,在写入更新数据时,必定是在存储介质中将该更新数据对应的更新前的数据设为无效,也就是,凡是写入第二缓存的第二类数据都必定会写入存储介质。
S203:存储控制器在确定当前满足所述第一类数据的写入触发条件时,将所述第一缓存中的有效数据写入所述存储介质。
在具体实施过程中,存储控制器将识别的第一类数据写入第一缓存中,将识别的第二类数据写入第二缓存中,其中,针对第二缓存中的数据,按照现有的缓存管理机制将其及时写入存储介质,由于写入第二缓存中的数据都写入了存储介质,因此在需要更新第二类数据时,需要先将更新后的数据写入第二缓存,从第二缓存中写入存储介质,再将存储介质中该更新后的数据对应的更新前的数据设为无效。而针对第一缓存中的数据,则不必将其及时写入存储介质,而是在满足第一类数据的写入触发条件时,才将其写入存储介质;这样,当需要更新第一类数据时,更新前的数据有可能还存储在第一缓存中,这时,可以在将更新后的数据写入第一缓存的同时,将第一缓存中该更新后的数据对应的更新前的数据设为无效;在满足第一类数据的写入触发条件时,只将第一缓存中的有效数据写入存储介质。这里的写入触发条件可以是在监测到存储设备发生断电后,将第一缓存中的数据写入存储介质;也可以在检测到第一缓存写满时,将第一缓存中的数据写入存储介质;也可以将所述第一缓存中在设定时间长度内未被更新的有效数据写入所述存储介质;也可以在满足这三种写入触发条件中的任意一种时,将第一缓存中的数据写入存储介质。当然,除此之外,用户还可以设置其它写入触发条件,比如,设置预设的写入周期,即周期性将所述第一缓存中的数据写入存储介质;可以接收第一设备的写入触发指令,在接收到该写入触发指令后,将该第一缓存中的数据写入存储介质,该写入触发指令可以是用户触发的,也可以是第一设备在确定当前写操作完成后触发的,比如第一设备检测到文件关闭后,可以向存储控制器下发写入触发指令;还可以设置在所有的写操作完成后,在预设时间长度阈值内没有接收到写命令时,将第一缓存中的数据写入存储介质。
可见,采用本发明实施例,可以不必将缓存中的频繁更新数据实时写入存储介质,在更新这类数据时,如果缓存中还存在更新前的数据,可以直接对缓存中的这类数据进行更新(也即将更新前的数据设为无效),在这类数据的写入触发条件满足时,再将缓存中这类数据中的有效数据写入存储介质,这样,可以减少对存储介质的写入次数及写入数据量,进而提高了存储设备的写性能,并可以额延长存储设备的使用寿命。
实施例二
如图3所示,为本发明实施例二提供的数据存储方法流程图,包括以下步骤:
S301:第一设备为需要写入存储设备的待存储数据添加用于识别所述待存储数据中的不同类型数据的标识信息,其中,所述待存储数据中包括第一类数据和第二类数据,所述第一类数据的更新频率大于所述第二类数据的更新频率。
在具体实施过程中,第一设备在运行应用的过程中生成需要写入存储设备的待存储数据。该待存储数据中包括更新频繁的第一类数据和更新不频繁的第二类数据。比如,该待存储数据中除可以包括应用实际操作的用户数据(第二类数据)外,还可以包括用于记录所述用户数据的修改信息的日志数据和/或用于描述所述用户数据的各种属性信息的元数据(第一类数据)。这里的日志数据和元数据的更新频率大于用户数据的更新频率,比如针对日志型文件系统这种应用,每次在文件中写入新的用户数据时,都需要更新该文件的各种属性信息,比如文件大小、修改时间等(即元数据),并且,每次都需要更新描述该用户数据的修改信息的日志数据。
该步骤中,第一设备为待存储数据添加用于识别不同类型数据的标识信息,具体地,可以只标识第一类数据,这时,没有携带标识信息的数据即为第二类数据,或者,也可以只标识第二类数据,这时,没有携带标识信息的数据即为第一类数据,或者,第一设备可以同时为这两类数据分别添加不同的标识信息。也即,第一设备为待存储数据中的第一类数据添加用于标识第一类数据的第一标识信息;和/或,为待存储数据中的第二类数据添加用于标识第二类数据的第二标识信息。可选地,所述标识信息具体可以是存储地址信息;在具体实施过程中,可以为不同类型的数据设置不同的存储介质空间,也即,存储介质的不同存储地址范围对应不同的数据类型;存储控制器只需根据待存储数据中的不同数据的存储地址所属的存储地址范围,即可确定出哪些数据属于第一类数据,哪些数据属于第二类数据。
S302:第一设备将携带所述标识信息的待存储数据发送给所述存储设备;
该步骤中,第一设备可以采用存储器直接访问(Direct Memory Access,DMA)的方式将待存储数据发送给所述存储设备;也即,存储控制器通过外部接口接收第一设备的写入请求,并使用DMA方式读取第一设备内存的待存储数据,该外部接口可以是外设部件互连标准(Peripheral Component Interconnect,PCI)接口、极速PCI(PCI Express,PCI-E)接口、串行高级技术附件(Serial Advanced Technology Attachment,SATA)接口、串行连接小型计算机系统接口(Serial Attached Small Computer System Interface,SAS)、或双倍速率同步动态随机存储器(Double Data Rate,DDR)接口等中的任意一种,本发明实施例中并不限定。
S303:存储设备基于接收的待存储数据中携带的标识信息,识别所述待存储数据中的第一类数据,并将识别的所述第一类数据写入第一缓存中;若写入的所述第一类数据中包含更新数据,则将所述第一缓存中该更新数据对应的更新前的数据设为无效;其中,所述存储设备中包括第一缓存和第二缓存,所述第一缓存用于缓存第一类数据,所述第二缓存用于缓存第二类数据;
S304:存储设备在确定当前满足所述第一类数据的写入触发条件时,将所述第一缓存中的有效数据写入存储介质。
下面,以所述存储设备为SSD、所述存储控制器为SSD控制器、所述存储介质为Flash芯片为例,通过实施例三、实施例四,对本发明方案作进一步描述。
实施例三
如图4所示,为本发明实施例三提供的进行数据存储的方法流程图,包括以下步骤:
S401:第一设备为所述待存储数据中的日志数据和元数据添加区别于其它类型数据的标识信息。
比如,第一设备为待存储数据为日志数据和元数据添加自主控制写入(Self-Control Write,SCW)标识,而对用户数据不作标记。
S402:第一设备将携带标识信息的待存储数据发送给SSD控制器。
S403:SSD控制器根据待存储数据中的标识信息识别其中的日志数据和元数据,并将识别的日志数据和元数据写入第一缓存中,将其它数据写入第二缓存中;若写入的日志数据或元数据中包含更新数据,则将第一缓存中该更新数据对应的更新前的数据设为无效。
在具体实施中,SSD控制器可以在自己的缓存中划分出一段缓存空间作为所述第一缓存,比如,第一缓存和第二缓存分别为作为SSD控制器的缓存的双倍速率同步动态随机存储器(Double Data Rate,DDR)的不同部分;或者,由于第一缓存的数据缓存时间较长,可以在SSD控制器中另设能够支持断电后不丢失数据的性能的相变存储器(Phase ChangeMemory,PCM)作为第一缓存,当然,第二缓存也可以采用PCM。
S404:SSD控制器将第二缓存的数据写入SSD的Flash芯片中。
S405:SSD控制器在日志数据和元数据的写入触发条件满足后,将第一缓存中的有效数据写入SSD的Flash芯片中。
如图5所示,为本发明实施例中SSD进行数据存储的示意图。日志文件系统基于应用运行中生成的待存储的用户数据生成日志数据和元数据;第一设备的SSD驱动(Driver)为日志数据和元数据添加SCW标识。在SSD控制器内部的DDR缓存中单独划出一段缓存空间作为第一缓存,其它缓存空间作为第二缓存,或者,增加PCM作为第一缓存。SSD控制器中的SSD缓存管理器管理第一缓存和第二缓存。SSD控制器通过PCI接口接收第一设备驱动的写入请求,并使用DMA方式读取第一设备内存的待存储数据。SSD缓存管理器将读取的待存储数据中的带有SCW标识的数据写入第一缓存,将其它数据写入第二缓存,将第二缓存中的数据写入Flash芯片中,在满足第一缓存的写入触发条件时,将第一缓存中的数据写入Flash芯片中。Flash控制器控制Flash芯片的数据存储,并可以支持Flash Block整块擦除(Erase)、Flash颗粒属性读取(Read ID)、读页(Page Read)和Flash Page编程(PageProgram)等命令。闪存转换层(Flash Translation Layer,FTL)主要负责Flash芯片的坏块管理,逻辑块映射和磨损平衡,同时对运行中的各种状态信息进行记录并上报,包括位翻转、擦除失败、编程失败、标记坏块等。当读数据出现异常时,读恢复(Read Recovery)模块负责恢复数据;垃圾回收(Garbage Collector)模块负责垃圾回收。写入(Write)模块负责写数据,由写数据编码(Write Data Encoder,WDE)模块负责编码后的数据传输给Flash控制器,写入Flash芯片中。
在不采用本发明实施例的情况下,每向SSD的Flash芯片写入4KB的用户数据,即一个数据块(Block),就需要同步更新32KB的日志数据和4KB的元数据。实际写入到SSD的有效数据量(即指用户数据)只占9%,写性能只有裸设备(没有安装日志文件系统等生成日志数据和元数据的软件系统)的1/4。在采用本发明实施例后,只需将4KB的用户数据通过第二缓存实时写入Flash芯片,而将32KB的日志数据和4KB的元数据写入第一缓存,可以在所有写操作完成后,在设定时间长度内没有再接收到写命令时再将日志数据和元数据写入第一缓存。这样,SSD写性能可以接近裸设备性能。
实施例四
如图6所示,为本发明实施例四提供的进行数据存储的方法流程图,包括以下步骤:
S601:第一设备基于不同存储地址范围对应的数据类型,为待存储数据中不同类型的数据确定存储地址信息;该数据类型包括第一类数据和第二类数据,第一类数据的更新频率大于第二类数据的更新频率。
S602:第一设备将携带存储地址信息的待存储数据发送给SSD控制器。
S603:SSD控制器根据根据待存储数据中的存储地址信息,以及不同存储地址范围对应的数据类型,识别待存储数据中的第一类数据和第二类数据,将第一类数据写入第一缓存中,将第二类数据写入第二缓存中;若写入的第一类数据中包含更新数据,则将第一缓存中该更新数据对应的更新前的数据设为无效。
S604:SSD控制器将第二缓存的数据写入SSD的Flash芯片中。
S605:SSD控制器在第一类数据的写入触发条件满足后,将第一缓存中的有效数据写入SSD的Flash芯片中。
基于同一发明构思,本发明实施例中还提供了一种与进行数据存储的方法对应的进行数据存储的装置、系统,由于该装置及系统解决问题的原理与本发明实施例进行数据存储的方法相似,因此该装置及系统的实施可以参见方法的实施,重复之处不再赘述。
实施例五
如图7所示,为本发明实施例五提供的进行数据存储的装置结构示意图,包括:
接收模块71,用于接收待存储数据,所述存储控制器中设有第一缓存和第二缓存,所述第一缓存用于缓存第一类数据,所述第二缓存用于缓存第二类数据,所述第一类数据的更新频率大于所述第二类数据的更新频率;
识别模块72,用于识别所述待存储数据中的第一类数据,并将识别的所述第一类数据写入所述第一缓存中;若写入的所述第一类数据中包含更新数据,则将所述第一缓存中该更新数据对应的更新前的数据设为无效;
写入模块73,用于在确定当前满足所述第一类数据的写入触发条件时,将所述第一缓存中的有效数据写入存储介质。
可选地,所述识别模块72具体用于:
根据所述待存储数据中携带的标识信息,以及标识信息与数据类型的对应关系,识别所述待存储数据中的第一类数据;其中,所述标识信息包括所述第一类数据中携带的第一标识信息和/或所述第二类数据中携带的第二标识信息。
可选地,所述标识信息为存储地址信息:
所述识别模块72具体用于:根据所述待存储数据中的存储地址信息,以及不同存储地址范围对应的数据类型,识别所述待存储数据中的第一类数据。
可选地,所述写入模块73具体用于:在所述第一缓存写满后,将所述第一缓存中的有效数据写入所述存储介质;和/或,在监测到所述存储设备发生断电后,将所述第一缓存中的有效数据写入所述存储介质;和/或,将所述第一缓存中在设定时间长度内未被更新的有效数据写入所述存储介质。
可选地,所述存储介质为闪存Flash芯片;
所述第一缓存和第二缓存分别为所述存储控制器中的双倍速率同步动态随机存储器DDR的不同部分;或者,所述第一缓存为相变存储器PCM,所述第二缓存为DDR或PCM。
可选地,所述第二类数据包括所述应用实际操作的用户数据,所述第一类数据包括用于记录所述用户数据的修改信息的日志数据和/或用于描述所述用户数据的各种属性信息的元数据。
实施例六
如图8所示,为本发明实施例六提供的进行数据存储的系统结构示意图,该系统包括第一设备81和存储设备82,存储设备82包括存储控制器821和存储介质822,存储控制器821中设有第一缓存821a和第二缓存821b,第一缓存821a用于缓存第一类数据,第二缓存821b用于缓存第二类数据,该第一类数据的更新频率大于第二类数据的更新频率;其中,
第一设备81,用于为需要写入存储设备82的待存储数据添加用于识别所述待存储数据中的不同类型数据的标识信息,将携带所述标识信息的待存储数据发送给所述存储设备82;其中,所述待存储数据中包括第一类数据和第二类数据;
存储控制器821,用于基于接收的待存储数据中携带的标识信息,识别所述待存储数据中的第一类数据,并将识别的所述第一类数据写入第一缓存821a中;若写入的所述第一类数据中包含更新数据,则将所述第一缓存821a中该更新数据对应的更新前的数据设为无效;在确定当前满足所述第一类数据的写入触发条件时,将所述第一缓存821a中的有效数据写入存储介质。
可选地,所述标识信息为存储地址信息;
所述第一设备81具体用于:基于不同存储地址范围对应的数据类型,为待存储数据中不同类型的数据确定存储地址信息。
可选地,所述第二类数据包括所述应用实际操作的用户数据,所述第一类数据包括用于记录所述用户数据的修改信息的日志数据和/或用于描述所述用户数据的各种属性信息的元数据。
实施例七
如图9所示,为本发明实施例七提供的存储设备90结构示意图,该设备包括存储控制器91和存储介质92,所述存储控制器中设有第一缓存91a和第二缓存91b,所述第一缓存91a用于缓存第一类数据,所述第二缓存91b用于缓存第二类数据,所述第一类数据的更新频率大于所述第二类数据的更新频率;当所述存储控制器91运行时,所述存储控制器91与所述存储介质92之间通过总线93通信,执行如下指令:
接收待存储数据,所述存储控制器中设有第一缓存和第二缓存,所述第一缓存用于缓存第一类数据,所述第二缓存用于缓存第二类数据,所述第一类数据的更新频率大于所述第二类数据的更新频率;
识别所述待存储数据中的第一类数据,并将识别的所述第一类数据写入所述第一缓存中;若写入的所述第一类数据中包含更新数据,则将所述第一缓存中该更新数据对应的更新前的数据设为无效;
在确定当前满足所述第一类数据的写入触发条件时,将所述第一缓存中的有效数据写入存储介质。
可选地,所述存储控制器91执行的所述指令中,识别所述待存储数据中的第一类数据,包括:
根据所述待存储数据中携带的标识信息,以及标识信息与数据类型的对应关系,识别所述待存储数据中的第一类数据;其中,所述标识信息包括所述第一类数据中携带的第一标识信息和/或所述第二类数据中携带的第二标识信息。
可选地,所述标识信息为存储地址信息:
所述存储控制器91执行的所述指令中,根据所述待存储数据中携带的标识信息,以及标识信息与数据类型的对应关系,识别所述待存储数据中的第一类数据,包括:
根据所述待存储数据中的存储地址信息,以及不同存储地址范围对应的数据类型,识别所述待存储数据中的第一类数据。
可选地,所述存储控制器91执行的所述指令中,在确定当前满足所述第一类数据的写入触发条件时,将所述第一缓存中的有效数据写入所述存储介质,包括:
在所述第一缓存写满后,将所述第一缓存中的有效数据写入所述存储介质;和/或,
在监测到所述存储设备发生断电后,将所述第一缓存中的有效数据写入所述存储介质;和/或,
将所述第一缓存中在设定时间长度内未被更新的有效数据写入所述存储介质。
可选地,所述存储介质92为闪存Flash芯片;
所述第一缓存91a和第二缓存91b分别为所述存储控制器中的双倍速率同步动态随机存储器DDR的不同部分;或者,所述第一缓存91a为相变存储器PCM,所述第二缓存91b为DDR或PCM。
可选地,所述第二类数据包括所述应用实际操作的用户数据,所述第一类数据包括用于记录所述用户数据的修改信息的日志数据和/或用于描述所述用户数据的各种属性信息的元数据。
实施例八
如图10所示,为本发明实施例八提供的进行数据存储的设备结构示意图,该设备包括处理器101、存储器102和总线103,所述存储器102存储执行指令,当所述设备运行时,所述处理器101与所述存储器102之间通过总线103通信,所述处理器101执行所述执行指令使得所述设备执行如下指令:
为需要写入存储设备的待存储数据添加用于识别所述待存储数据中的不同类型数据的标识信息,其中,所述待存储数据中包括第一类数据和第二类数据,所述第一类数据的更新频率大于所述第二类数据的更新频率;
将携带所述标识信息的待存储数据发送给所述存储设备;所述标识信息用于存储控制器识别所述待存储数据中的第一类数据,将识别的所述第一类数据写入存储控制器的第一缓存中,并在确定写入的所述第一类数据中包含更新数据后,将第一缓存中该更新数据对应的更新前的数据设为无效。
可选地,所述标识信息为存储地址信息;
所述处理器101执行的所述指令中,为需要写入存储设备的待存储数据添加用于识别所述待存储数据中的不同类型数据的标识信息,包括:
基于不同存储地址范围对应的数据类型,为待存储数据中不同类型的数据确定存储地址信息。
可选地,所述第二类数据包括所述应用实际操作的用户数据,所述第一类数据包括用于记录所述用户数据的修改信息的日志数据和/或用于描述所述用户数据的各种属性信息的元数据。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、装置(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
Claims (18)
1.一种进行数据存储的方法,其特征在于,该方法包括:
存储控制器接收待存储数据,所述存储控制器中设有第一缓存和第二缓存,所述第一缓存用于缓存第一类数据,所述第二缓存用于缓存第二类数据,所述第一类数据的更新频率大于所述第二类数据的更新频率;
所述存储控制器识别所述待存储数据中的第一类数据,并将识别的所述第一类数据写入所述第一缓存中;若写入的所述第一类数据中包含更新数据,则将所述第一缓存中该更新数据对应的更新前的数据设为无效;
所述存储控制器在确定当前满足所述第一类数据的写入触发条件时,将所述第一缓存中的有效数据写入存储介质。
2.如权利要求1所述的方法,其特征在于,所述存储控制器识别所述待存储数据中的第一类数据,包括:
所述存储控制器根据所述待存储数据中携带的标识信息,以及标识信息与数据类型的对应关系,识别所述待存储数据中的第一类数据;其中,所述标识信息包括所述第一类数据中携带的第一标识信息和/或所述第二类数据中携带的第二标识信息。
3.如权利要求2所述的方法,其特征在于,所述标识信息为存储地址信息:
所述存储控制器根据所述待存储数据中携带的标识信息,以及标识信息与数据类型的对应关系,识别所述待存储数据中的第一类数据,包括:
所述存储控制器根据所述待存储数据中的存储地址信息,以及不同存储地址范围对应的数据类型,识别所述待存储数据中的第一类数据。
4.如权利要求1~3任一所述的方法,其特征在于,所述存储控制器在确定当前满足所述第一类数据的写入触发条件时,将所述第一缓存中的有效数据写入所述存储介质,包括:
所述存储控制器在所述第一缓存写满后,将所述第一缓存中的有效数据写入所述存储介质;和/或,
所述存储控制器在监测到所述存储设备发生断电后,将所述第一缓存中的有效数据写入所述存储介质;和/或,
所述存储控制器将所述第一缓存中在设定时间长度内未被更新的有效数据写入所述存储介质。
5.如权利要求4所述的方法,其特征在于,所述存储介质为闪存Flash芯片;
所述第一缓存和第二缓存分别为所述存储控制器中的双倍速率同步动态随机存储器DDR的不同部分;或者,所述第一缓存为相变存储器PCM,所述第二缓存为DDR或PCM。
6.如权利要求1~3任一所述的方法,其特征在于,所述第二类数据包括应用实际操作的用户数据,所述第一类数据包括用于记录所述用户数据的修改信息的日志数据和/或用于描述所述用户数据的各种属性信息的元数据。
7.一种进行数据存储的方法,其特征在于,包括:
第一设备为需要写入存储设备的待存储数据添加用于识别所述待存储数据中的不同类型数据的标识信息,其中,所述待存储数据中包括第一类数据和第二类数据,所述第一类数据的更新频率大于所述第二类数据的更新频率;
所述第一设备将携带所述标识信息的待存储数据发送给所述存储设备;
所述存储设备中的存储控制器基于接收的待存储数据中携带的标识信息,识别所述待存储数据中的第一类数据,并将识别的所述第一类数据写入第一缓存中;若写入的所述第一类数据中包含更新数据,则将所述第一缓存中该更新数据对应的更新前的数据设为无效;其中,所述存储控制器中包括第一缓存和第二缓存,所述第一缓存用于缓存第一类数据,所述第二缓存用于缓存第二类数据;
所述存储控制器在确定当前满足所述第一类数据的写入触发条件时,将所述第一缓存中的有效数据写入所述存储设备的存储介质。
8.如权利要求7所述的方法,其特征在于,所述标识信息为存储地址信息;
所述第一设备为需要写入存储设备的待存储数据添加用于识别所述待存储数据中的不同类型数据的标识信息,包括:
所述第一设备基于不同存储地址范围对应的数据类型,为待存储数据中不同类型的数据确定存储地址信息。
9.如权利要求7或8所述的方法,其特征在于,所述第二类数据包括应用实际操作的用户数据,所述第一类数据包括用于记录所述用户数据的修改信息的日志数据和/或用于描述所述用户数据的各种属性信息的元数据。
10.一种进行数据存储的装置,其特征在于,该装置包括:
接收模块,用于接收待存储数据,所述接收模块属于存储控制器,所述存储控制器中设有第一缓存和第二缓存,所述第一缓存用于缓存第一类数据,所述第二缓存用于缓存第二类数据,所述第一类数据的更新频率大于所述第二类数据的更新频率;
识别模块,用于识别所述待存储数据中的第一类数据,并将识别的所述第一类数据写入所述第一缓存中;若写入的所述第一类数据中包含更新数据,则将所述第一缓存中该更新数据对应的更新前的数据设为无效;
写入模块,用于在确定当前满足所述第一类数据的写入触发条件时,将所述第一缓存中的有效数据写入存储介质。
11.如权利要求10所述的装置,其特征在于,所述识别模块具体用于:
根据所述待存储数据中携带的标识信息,以及标识信息与数据类型的对应关系,识别所述待存储数据中的第一类数据;其中,所述标识信息包括所述第一类数据中携带的第一标识信息和/或所述第二类数据中携带的第二标识信息。
12.如权利要求11所述的装置,其特征在于,所述标识信息为存储地址信息:
所述识别模块具体用于:根据所述待存储数据中的存储地址信息,以及不同存储地址范围对应的数据类型,识别所述待存储数据中的第一类数据。
13.如权利要求10~12任一所述的装置,其特征在于,所述写入模块具体用于:在所述第一缓存写满后,将所述第一缓存中的有效数据写入所述存储介质;和/或,在监测到存储设备发生断电后,将所述第一缓存中的有效数据写入所述存储介质;和/或,将所述第一缓存中在设定时间长度内未被更新的有效数据写入所述存储介质。
14.如权利要求13所述的装置,其特征在于,所述存储介质为闪存Flash芯片;
所述第一缓存和第二缓存分别为所述存储控制器中的双倍速率同步动态随机存储器DDR的不同部分;或者,所述第一缓存为相变存储器PCM,所述第二缓存为DDR或PCM。
15.如权利要求10~12任一所述的装置,其特征在于,所述第二类数据包括应用实际操作的用户数据,所述第一类数据包括用于记录所述用户数据的修改信息的日志数据和/或用于描述所述用户数据的各种属性信息的元数据。
16.一种进行数据存储的系统,其特征在于,该系统包括第一设备和存储设备,所述存储设备包括存储控制器和存储介质,所述存储控制器中设有第一缓存和第二缓存,所述第一缓存用于缓存第一类数据,所述第二缓存用于缓存第二类数据,所述第一类数据的更新频率大于第二类数据的更新频率;其中,
所述第一设备,用于为需要写入所述存储设备的待存储数据添加用于识别所述待存储数据中的不同类型数据的标识信息,将携带所述标识信息的待存储数据发送给所述存储设备;其中,所述待存储数据中包括第一类数据和第二类数据;
所述存储设备中的存储控制器,用于基于接收的待存储数据中携带的标识信息,识别所述待存储数据中的第一类数据,并将识别的所述第一类数据写入所述第一缓存中;若写入的所述第一类数据中包含更新数据,则将所述第一缓存中该更新数据对应的更新前的数据设为无效;在确定当前满足所述第一类数据的写入触发条件时,将所述第一缓存中的有效数据写入所述存储介质。
17.如权利要求16所述的系统,其特征在于,所述标识信息为存储地址信息;
所述第一设备具体用于:基于不同存储地址范围对应的数据类型,为待存储数据中不同类型的数据确定存储地址信息。
18.如权利要求16或17所述的系统,其特征在于,所述第二类数据包括应用实际操作的用户数据,所述第一类数据包括用于记录所述用户数据的修改信息的日志数据和/或用于描述所述用户数据的各种属性信息的元数据。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410705705.3A CN104461935B (zh) | 2014-11-27 | 2014-11-27 | 一种进行数据存储的方法、装置及系统 |
PCT/CN2015/081359 WO2016082524A1 (zh) | 2014-11-27 | 2015-06-12 | 一种进行数据存储的方法、装置及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410705705.3A CN104461935B (zh) | 2014-11-27 | 2014-11-27 | 一种进行数据存储的方法、装置及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104461935A CN104461935A (zh) | 2015-03-25 |
CN104461935B true CN104461935B (zh) | 2018-03-13 |
Family
ID=52908021
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410705705.3A Active CN104461935B (zh) | 2014-11-27 | 2014-11-27 | 一种进行数据存储的方法、装置及系统 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN104461935B (zh) |
WO (1) | WO2016082524A1 (zh) |
Families Citing this family (31)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104461935B (zh) * | 2014-11-27 | 2018-03-13 | 华为技术有限公司 | 一种进行数据存储的方法、装置及系统 |
US9760281B2 (en) * | 2015-03-27 | 2017-09-12 | Intel Corporation | Sequential write stream management |
CN104778126B (zh) * | 2015-04-20 | 2017-10-24 | 清华大学 | 非易失性主存中事务数据存储优化方法及系统 |
CN106354718B (zh) * | 2015-07-13 | 2021-05-25 | 中国移动通信集团公司 | 用户识别模块的文件管理方法及装置 |
CN105183661A (zh) * | 2015-07-27 | 2015-12-23 | 联想(北京)有限公司 | 一种控制方法及电子设备 |
CN109783401B (zh) * | 2015-08-07 | 2023-11-10 | 华为技术有限公司 | 数据存储方法以及存储系统 |
US10514848B2 (en) | 2015-09-28 | 2019-12-24 | Beijing Lenovo Software Ltd. | Data storage method for selectively storing data in a buffer preset in a memory of an electronic device or an inherent buffer in an SSD |
CN107291777A (zh) * | 2016-04-11 | 2017-10-24 | 阿里巴巴集团控股有限公司 | 一种热点数据识别和处理的方法和装置 |
CN106055274A (zh) * | 2016-05-23 | 2016-10-26 | 联想(北京)有限公司 | 一种数据存储方法、数据读取方法及电子设备 |
CN107765989B (zh) * | 2016-08-16 | 2020-08-11 | 上海磁宇信息科技有限公司 | 一种存储设备控制芯片、存储设备及存储设备管理方法 |
CN108254271B (zh) * | 2016-12-28 | 2020-10-30 | 深圳市弗赛特科技股份有限公司 | 一种疲劳试验测量方法 |
CN107092439B (zh) * | 2017-03-07 | 2020-02-21 | 华为技术有限公司 | 一种数据存储的方法及设备 |
CN107402982A (zh) * | 2017-07-07 | 2017-11-28 | 阿里巴巴集团控股有限公司 | 数据写入、数据匹配方法、装置及计算设备 |
CN108228103A (zh) * | 2017-12-29 | 2018-06-29 | 北京联想核芯科技有限公司 | 一种ssd硬盘的数据处理方法和装置 |
CN108833494A (zh) * | 2018-05-24 | 2018-11-16 | 国家电网有限公司 | 一种分布式数据存储方法和系统 |
CN108763105B (zh) * | 2018-05-28 | 2020-12-01 | 深圳忆联信息系统有限公司 | 提升固态存储设备写性能的方法、装置及计算机设备 |
CN108763107B (zh) * | 2018-06-04 | 2022-03-01 | 平安科技(深圳)有限公司 | 后台写盘流控方法、装置、电子设备及存储介质 |
CN109213774B (zh) * | 2018-08-01 | 2024-03-08 | 平安科技(深圳)有限公司 | 数据的存储方法及装置、存储介质、终端 |
CN109977127A (zh) * | 2019-02-28 | 2019-07-05 | 北京创鑫旅程网络技术有限公司 | 数据更新方法及装置 |
CN110018788A (zh) * | 2019-03-01 | 2019-07-16 | 平安科技(深圳)有限公司 | 分级存储方法、装置、电子设备及计算机可读存储介质 |
CN110045924B (zh) * | 2019-03-01 | 2022-02-11 | 平安科技(深圳)有限公司 | 分级存储方法、装置、电子设备及计算机可读存储介质 |
CN110727403B (zh) * | 2019-09-12 | 2021-03-30 | 华为技术有限公司 | 元数据管理方法及装置 |
CN111104066B (zh) * | 2019-12-17 | 2021-07-27 | 华中科技大学 | 数据写入方法、装置及存储服务器和计算机可读存储介质 |
CN111209226A (zh) * | 2020-01-06 | 2020-05-29 | 深圳忆联信息系统有限公司 | 降低NVMe固态硬盘写放大的方法、装置及计算机设备 |
CN113064551B (zh) * | 2020-05-15 | 2023-09-01 | 华为技术有限公司 | 数据写入、搬移、清理信息发送方法、装置及文件系统 |
CN111857574A (zh) * | 2020-06-24 | 2020-10-30 | 苏州浪潮智能科技有限公司 | 一种写请求数据压缩方法、系统、终端及存储介质 |
CN114691555A (zh) * | 2020-12-30 | 2022-07-01 | 华为技术有限公司 | 一种存储设备和计算机设备 |
CN114489484A (zh) * | 2021-12-27 | 2022-05-13 | 得一微电子股份有限公司 | Ssd的数据存储方法、ssd、终端设备以及存储介质 |
CN114363640B (zh) * | 2022-01-05 | 2023-11-21 | 上海哔哩哔哩科技有限公司 | 数据存储方法、装置及系统 |
CN115639971B (zh) * | 2022-12-12 | 2023-04-07 | 北京集度科技有限公司 | 数据写入方法、装置、电子设备、存储介质及程序产品 |
CN116094839A (zh) * | 2023-04-07 | 2023-05-09 | 山东慧创信息科技有限公司 | 一种基于物联网防干扰的天空地一体化数据记录系统 |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101388110A (zh) * | 2008-10-31 | 2009-03-18 | 深圳市同洲电子股份有限公司 | 数据快速读取方法及装置 |
CN101673188A (zh) * | 2008-09-09 | 2010-03-17 | 上海华虹Nec电子有限公司 | 一种固态硬盘的数据存取方法 |
CN102902628A (zh) * | 2012-09-18 | 2013-01-30 | 记忆科技(深圳)有限公司 | 一种基于闪存实现的冷热数据自动分离方法、系统及闪存 |
CN103049394A (zh) * | 2012-11-30 | 2013-04-17 | 记忆科技(深圳)有限公司 | 固态硬盘数据缓存的方法及其系统 |
CN103246616A (zh) * | 2013-05-24 | 2013-08-14 | 浪潮电子信息产业股份有限公司 | 一种长短周期访问频度的全局共享缓存替换方法 |
CN103631528A (zh) * | 2012-08-21 | 2014-03-12 | 苏州捷泰科信息技术有限公司 | 用固态硬盘作为缓存器的读写方法、系统及读写控制器 |
CN103631682A (zh) * | 2013-12-18 | 2014-03-12 | 华为技术有限公司 | 数据备份的实现方法和装置 |
CN103853671A (zh) * | 2012-12-07 | 2014-06-11 | 北京百度网讯科技有限公司 | 一种数据写入控制方法及装置 |
CN104142894A (zh) * | 2013-05-06 | 2014-11-12 | 华为技术有限公司 | 一种数据读写方法、存储控制器及计算机 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8677075B2 (en) * | 2010-05-18 | 2014-03-18 | Lsi Corporation | Memory manager for a network communications processor architecture |
CN102147768B (zh) * | 2010-05-21 | 2014-03-05 | 苏州捷泰科信息技术有限公司 | 存储器、固态缓存系统及缓存数据处理方法 |
US20120317337A1 (en) * | 2011-06-09 | 2012-12-13 | Microsoft Corporation | Managing data placement on flash-based storage by use |
CN102841853B (zh) * | 2011-06-24 | 2016-03-02 | 群联电子股份有限公司 | 存储器管理表处理方法、存储器控制器与存储器储存装置 |
CN102955751B (zh) * | 2011-08-17 | 2015-11-18 | 群联电子股份有限公司 | 存储器储存装置、存储器控制器与数据写入方法 |
CN104461935B (zh) * | 2014-11-27 | 2018-03-13 | 华为技术有限公司 | 一种进行数据存储的方法、装置及系统 |
-
2014
- 2014-11-27 CN CN201410705705.3A patent/CN104461935B/zh active Active
-
2015
- 2015-06-12 WO PCT/CN2015/081359 patent/WO2016082524A1/zh active Application Filing
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101673188A (zh) * | 2008-09-09 | 2010-03-17 | 上海华虹Nec电子有限公司 | 一种固态硬盘的数据存取方法 |
CN101388110A (zh) * | 2008-10-31 | 2009-03-18 | 深圳市同洲电子股份有限公司 | 数据快速读取方法及装置 |
CN103631528A (zh) * | 2012-08-21 | 2014-03-12 | 苏州捷泰科信息技术有限公司 | 用固态硬盘作为缓存器的读写方法、系统及读写控制器 |
CN102902628A (zh) * | 2012-09-18 | 2013-01-30 | 记忆科技(深圳)有限公司 | 一种基于闪存实现的冷热数据自动分离方法、系统及闪存 |
CN103049394A (zh) * | 2012-11-30 | 2013-04-17 | 记忆科技(深圳)有限公司 | 固态硬盘数据缓存的方法及其系统 |
CN103853671A (zh) * | 2012-12-07 | 2014-06-11 | 北京百度网讯科技有限公司 | 一种数据写入控制方法及装置 |
CN104142894A (zh) * | 2013-05-06 | 2014-11-12 | 华为技术有限公司 | 一种数据读写方法、存储控制器及计算机 |
CN103246616A (zh) * | 2013-05-24 | 2013-08-14 | 浪潮电子信息产业股份有限公司 | 一种长短周期访问频度的全局共享缓存替换方法 |
CN103631682A (zh) * | 2013-12-18 | 2014-03-12 | 华为技术有限公司 | 数据备份的实现方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
WO2016082524A1 (zh) | 2016-06-02 |
CN104461935A (zh) | 2015-03-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104461935B (zh) | 一种进行数据存储的方法、装置及系统 | |
US9753847B2 (en) | Non-volatile semiconductor memory segregating sequential, random, and system data to reduce garbage collection for page based mapping | |
US10503606B2 (en) | Data backup method, data recovery method and storage controller | |
KR102033491B1 (ko) | 플래시 메모리 시스템에서 trim 동작 관리 | |
US9436595B1 (en) | Use of application data and garbage-collected data to improve write efficiency of a data storage device | |
US9785575B2 (en) | Optimizing thin provisioning in a data storage system through selective use of multiple grain sizes | |
US20150212752A1 (en) | Storage system redundant array of solid state disk array | |
US10942849B2 (en) | Use of a logical-to-logical translation map and a logical-to-physical translation map to access a data storage device | |
KR101870521B1 (ko) | 스토리지 저널링을 개선하는 방법 및 시스템 | |
US20190369892A1 (en) | Method and Apparatus for Facilitating a Trim Process Using Auxiliary Tables | |
EP2631916A1 (en) | Data deletion method and device | |
US9921954B1 (en) | Method and system for split flash memory management between host and storage controller | |
US20180260319A1 (en) | Writing ssd system data | |
US20190087348A1 (en) | Data backup method, data recovery method and storage controller | |
US20140189202A1 (en) | Storage apparatus and storage apparatus control method | |
US20200183831A1 (en) | Storage system and system garbage collection method | |
WO2016067328A1 (ja) | 不揮発メモリデバイスを有するストレージ装置、及び、不揮発メモリデバイス | |
CN110674056B (zh) | 一种垃圾回收方法及装置 | |
CN104484283A (zh) | 一种降低固态硬盘写放大的方法 | |
TWI536166B (zh) | 記憶體管理方法、記憶體控制電路單元以及記憶體儲存裝置 | |
CN113031856A (zh) | 存储器子系统中的断电数据保护 | |
US20100318726A1 (en) | Memory system and memory system managing method | |
US9524236B1 (en) | Systems and methods for performing memory management based on data access properties | |
US10628301B1 (en) | System and method for optimizing write amplification of non-volatile memory storage media | |
US11100005B2 (en) | Logical-to-physical (L2P) table sharping strategy |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
TR01 | Transfer of patent right |
Effective date of registration: 20220118 Address after: 450046 Floor 9, building 1, Zhengshang Boya Plaza, Longzihu wisdom Island, Zhengdong New Area, Zhengzhou City, Henan Province Patentee after: xFusion Digital Technologies Co., Ltd. Address before: 518129 Bantian HUAWEI headquarters office building, Longgang District, Guangdong, Shenzhen Patentee before: HUAWEI TECHNOLOGIES Co.,Ltd. |
|
TR01 | Transfer of patent right |