CN106873905A - 数据存储的方法、装置及固态硬盘 - Google Patents

数据存储的方法、装置及固态硬盘 Download PDF

Info

Publication number
CN106873905A
CN106873905A CN201611270828.4A CN201611270828A CN106873905A CN 106873905 A CN106873905 A CN 106873905A CN 201611270828 A CN201611270828 A CN 201611270828A CN 106873905 A CN106873905 A CN 106873905A
Authority
CN
China
Prior art keywords
data
ssd
order
data message
memory cell
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
Application number
CN201611270828.4A
Other languages
English (en)
Other versions
CN106873905B (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.)
Shenzhen Union Memory Information System Co Ltd
Original Assignee
Beijing Legend Core 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 Beijing Legend Core Technology Co Ltd filed Critical Beijing Legend Core Technology Co Ltd
Priority to CN201611270828.4A priority Critical patent/CN106873905B/zh
Publication of CN106873905A publication Critical patent/CN106873905A/zh
Application granted granted Critical
Publication of CN106873905B publication Critical patent/CN106873905B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • 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/0625Power saving in storage systems
    • 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/0629Configuration or reconfiguration of storage systems
    • 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]

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

本公开涉及一种存储数据的方法、装置及固态硬盘。该方法包括:SSD在从第一存储单元中读取数据后,将SSD所读取的数据发送给SSD的解码器,以使解码器对SSD所读取的数据进行解码。在解码器完成对SSD所读取的数据的解码后,将与SSD所读取的数据对应的第一数据信息以及第二数据信息返回给SSD。在SSD采用本公开提供的数据存储方法进行垃圾回收的过程中,没有需要进行编码的数据,因而SSD无需执行对待回收数据进行编码的步骤,SSD可以直接将第一数据信息和第二数据信息写入SSD的第二存储单元,进而减小SSD进行垃圾回收的功耗。

Description

数据存储的方法、装置及固态硬盘
技术领域
本公开涉及计算机技术领域,具体地,涉及一种数据存储的方法、装置及固态硬盘。
背景技术
随着数据存储技术的高速发展,越来越多的数据存储装置出现在人们使用的电子设备中,例如:SSD(Solid State Drives,固态硬盘)等。SSD因具有读写速度快、抗震动、低功耗、无噪音、低热量、以及质量轻等特点,已被广泛应用于军事、车载、工业、医疗、和航空等领域。
SSD分为多个区块(Block),每个区块分为多个页面(pages)。SSD可以直接以页面为单位进行数据写入操作,且以块为单位进行数据删除操作。也就是说,SSD将待写入数据写入某一区块的某一页面,待该页面被写满后,SSD再将待写入数据写入该区块的另一页面,且SSD只能删除一整个区块中存储的全部数据。为了防止写入SSD中的数据发生错误,在将数据写入SSD之前,需要对其进行编码,相应地,在读取SSD中的数据之前,需要对其进行解码。为了提高SSD的使用寿命,当SSD的某一页面中的已存数据变为无用数据时,SSD将无用数据所占的存储单元标记为无效,以提高SSD的使用寿命。
随着SSD的使用时长的增加,SSD中被标记为无效的存储单元越来越多,为了提高SSD的利用率,SSD中设置有缓存区,以便于进行垃圾回收。相关技术中的垃圾回收方案如下:
首先,获取用于读取待回收数据的命令,从无用数据所占的区块中读取待回收数据,并对其进行解码,将解码后的数据存储到缓存区;然后,对缓存区中存储的数据进行编码,将编码后的数据存储到该缓存区,获取用于写入待回收数据的命令,并将编码后的数据写入空闲区块中;最后,以区块为单位,删除无用数据所占的区块中的全部数据。
然而,垃圾回收方案所包括的编解码过程会导致SSD的功耗较大;此外,对用于写入待回收数据的命令的获取,会影响SSD与外部设备之间正在进行的数据传输。可见,相关技术中的垃圾回收方案有待改善。
发明内容
本公开的目的是提供一种数据存储方法、装置及固态硬盘,以减小SSD进行垃圾回收的功耗。
本公开第一方面提供一种数据存储的方法,应用于固态硬盘SSD,所述方法包括:
根据第一命令,读取所述SSD的第一存储单元中的数据;
将所述数据发送给所述SSD的解码器,并接收所述解码器返回的与所述数据对应的第一数据信息以及第二数据信息;
将所述第一数据信息以及所述第二数据信息写入所述SSD的第二存储单元中,所述第二存储单元不同于所述第一存储单元。
可选地,所述第二数据信息包括校验信息。
可选地,所述方法还包括:
从多个命令中分离出用于写入待回收数据的写命令;
将所述用于写入待回收数据的写命令添加到第一队列中,并将所述多个命令中的其他命令添加到第二队列中,所述多个命令中的其他命令不同于所述用于写入待回收数据的写命令;
从所述第二队列中获取所述第一命令。
可选地,将所述第一数据信息以及所述第二数据信息写入所述SSD的第二存储单元中,包括:
在接收到所述第一数据信息以及所述第二数据信息时,获取与所述第一命令匹配的第二命令;
根据所述第二命令,将所述第一数据信息以及所述第二数据信息写入所述SSD的第二存储单元中。
可选地,所述方法还包括:
根据所述SSD的空闲存储单元的存储地址,建立空地址指针队列;
将所述空地址指针队列中的各个空地址指针分别指向的存储单元分配给所述第一队列。
可选地,获取与所述第一命令匹配的第二命令,包括:
根据所述第一命令携带的第一标记信息,确定与所述第一标记信息匹配的第二标记信息;
获取携带所述第二标记信息的命令;
其中,针对同一待回收数据的多个命令携带有相互匹配的标记信息。
本公开第二方面提供一种数据存储的装置,应用于固态硬盘SSD,所述装置包括:
读取模块,用于根据第一命令,读取所述SSD的第一存储单元中的数据;
收发模块,用于将所述数据发送给所述SSD的解码器,并接收所述解码器返回的与所述数据对应的第一数据信息以及第二数据信息;
存储模块,用于将所述第一数据信息以及所述第二数据信息写入所述SSD的第二存储单元中,所述第二存储单元不同于所述第一存储单元。
可选地,所述第二数据信息包括校验信息。
可选地,所述装置还包括:
提取模块,用于从多个命令中分离出用于写入待回收数据的写命令;
分类模块,用于将所述用于写入待回收数据的写命令添加到第一队列中,并将所述多个命令中的其他命令添加到第二队列中,所述多个命令中的其他命令不同于所述用于写入待回收数据的写命令;
获取模块,用于从所述第二队列中获取所述第一命令。
可选地,所述存储模块包括:
第一获取子模块,用于在接收到所述第一数据信息以及所述第二数据信息时,获取与所述第一命令匹配的第二命令;
存储子模块,用于根据所述第二命令,将所述第一数据信息以及所述第二数据信息写入所述SSD的第二存储单元中。
可选地,所述装置还包括:
建立模块,用于根据所述SSD的空闲存储单元的存储地址,建立空地址指针队列;
分配模块,用于将所述空地址指针队列中的各个空地址指针分别指向的存储单元分配给所述第一队列。
可选地,所述获取模块包括:
确定子模块,用于根据所述第一命令携带的第一标记信息,确定与所述第一标记信息匹配的第二标记信息;
第二获取子模块,用于获取携带所述第二标记信息的命令;
其中,针对同一待回收数据的多个命令携带有相互匹配的标记信息。
本公开第三方面提供一种固态硬盘,包括:控制器、解码器以及多个存储单元;
所述控制器用于:根据第一命令,读取所述SSD的第一存储单元中的数据;以及将所述数据发送给所述SSD的解码器;
所述解码器用于对所述数据进行解码,并向所述中央处理器返回与所述数据对应的第一数据信息以及第二数据信息;
所述控制器还用于:接收所述解码器返回的与所述数据对应的第一数据信息以及第二数据信息;以及将所述第一数据信息以及所述第二数据信息写入所述SSD的第二存储单元中,所述第二存储单元不同于所述第一存储单元。
可选地,所述控制器还用于:
从多个命令中分离出用于写入待回收数据的写命令;
将所述用于写入待回收数据的写命令添加到第一队列中,并将所述多个命令中的其他命令添加到第二队列中,所述多个命令中的其他命令不同于所述用于写入待回收数据的写命令;
从所述第二队列中获取所述第一命令。
可选地,所述控制器还用于:
在接收到所述第一数据信息以及所述第二数据信息时,获取与所述第一命令匹配的第二命令;
根据所述第二命令,将所述第一数据信息以及所述第二数据信息写入所述SSD的第二存储单元中。
可选地,所述控制器还用于:
根据所述SSD的空闲存储单元的存储地址,建立空地址指针队列;
将所述空地址指针队列中的各个空地址指针分别指向的存储单元分配给所述第一队列。
可选地,所述控制器还用于:
根据所述第一命令携带的第一标记信息,确定与所述第一标记信息匹配的第二标记信息;
获取携带所述第二标记信息的命令;
其中,针对同一待回收数据的多个命令携带有相互匹配的标记信息。
本公开中,SSD在从第一存储单元中读取数据后,将SSD所读取的数据发送给SSD的解码器,以使解码器对SSD所读取的数据进行解码。在解码器完成对SSD所读取的数据的解码后,将与SSD所读取的数据对应的第一数据信息以及第二数据信息返回给SSD。
由于SSD接收到与SSD所读取的数据对应的第一数据信息以及第二数据信息,而不是解码器对SSD所读取的数据进行解码后的数据。所以对SSD的编码器来说,在SSD采用本公开提供的数据存储方法进行垃圾回收的过程中,没有需要进行编码的数据,因而SSD无需执行对待回收数据进行编码的步骤,SSD可以直接将第一数据信息和第二数据信息写入SSD的第二存储单元,进而减小SSD进行垃圾回收的功耗。并且,由于SSD无需执行对待回收数据进行编码的步骤,所以在SSD中设置的缓存区的容量也可相应减小,因为无需存储编码后的数据。
本公开的其他特征和优点将在随后的具体实施方式部分予以详细说明。
附图说明
附图是用来提供对本公开的进一步理解,并且构成说明书的一部分,与下面的具体实施方式一起用于解释本公开,但并不构成对本公开的限制。在附图中:
图1是根据一示例性实施例示出的一种数据存储的方法的流程图。
图2是根据一示例性实施例示出的一种数据存储的方法的另一流程图。
图3是根据一示例性实施例示出的一种空地址指针队列与第一队列的示意图。
图4是根据一示例性实施例示出的适用于本公开的SSD的结构示意图。
图5是根据一示例性实施例示出的一种数据存储的装置的框图。
具体实施方式
以下结合附图对本公开的具体实施方式进行详细说明。应当理解的是,此处所描述的具体实施方式仅用于说明和解释本公开,并不用于限制本公开。
在对本公开提供的数据存储的方法进行说明之前,首先对本公开涉及的相关技术进行说明。如在背景技术中所阐述的,相关技术适用于设置有缓存区的SSD,因而相关技术所适用的SSD包括:CPU(Central Process Unit,中央处理器)、读写控制器、编码器、解码器、多个区块以及缓存区。其中,编码器和解码器可以集成为编解码器。
其中,CPU用于接收外部设备发送的读数据命令以及写数据命令,以完成与外部设备之间的数据传输;CPU还用于生成垃圾回收命令:用于读取待回收数据的命令,以及用于写入待回收数据的命令;CPU还用于将所有命令添加到同一命令队列中。读写控制器用于检测上述命令队列中是否有待执行的命令,当检测到该命令队列中有待执行命令时,从该命令队列中依次逐一读取待执行命令,并执行所读取的待执行命令。如在背景技术中所阐述的,缓存区用于存储解码后的数据。解码器用于对待读取数据进行解码,编码器用于对待写入数据进行编码。多个区块用于存储已编码数据。
然而,相关技术所适用的SSD中的解码器与编码器分别进行相互独立的解码过程以及编码过程,也就是说,解码器对待回收数据的解码过程,与编码器对缓存区中存储的数据的编码过程,两者是相对独立的。由此导致SSD进行垃圾回收的功耗较大。
此外,相关技术所适用的SSD中的CPU将所有命令添加到同一命令队列中,该命令队列中的各个命令被读写控制器顺序逐一读取并执行,如果CPU在编码器对缓存区中存储的数据编码完成之前,将用于写入待回收数据的命令添加到该命令队列中,则该用于写入待回收数据的命令会被读写控制器搁置,直至编码完成为止,因而延迟该命令队列中的其他命令执行。在编码完成之后,通过编码器对CPU的中断使其能够将用于写入待回收数据的命令发送给读写控制器,进而完成对待回收数据的写入。然而,该中断会影响CPU与外部设备之间正在进行的数据传输。
为了减小SSD进行垃圾回收的功耗,本公开提供一种数据存储的方法。请参考图1,图1是根据一示例性实施例示出的一种数据存储的方法的流程图。如图1所示,该方法包括以下步骤:
步骤S11:根据第一命令,读取所述SSD的第一存储单元中的数据;
步骤S12:将所述数据发送给所述SSD的解码器,并接收所述解码器返回的与所述数据对应的第一数据信息以及第二数据信息;
步骤S13:将所述第一数据信息以及所述第二数据信息写入所述SSD的第二存储单元中,所述第二存储单元不同于所述第一存储单元。
如前所述,SSD进行垃圾回收主要包括对待回收数据进行解码的步骤,以及对待回收数据进行编码的步骤。本公开提供的数据存储方法供SSD进行垃圾回收,以跳过对待回收数据进行编码的步骤,也就是说,SSD采用本公开提供的数据存储方法进行垃圾回收,无需执行对待回收数据进行编码的步骤,进而减小SSD进行垃圾回收的功耗。并且,由于SSD无需执行对待回收数据进行编码的步骤,所以在SSD中设置的缓存区的容量也可相应减小,因为无需存储编码后的数据。
SSD采用本公开提供的数据存储方法进行垃圾回收,是由第一命令触发的。第一命令是用于读取待回收数据的命令。SSD根据第一命令,读取第一存储单元中的数据。第一存储单元是无用数据所占的存储单元,属于SSD的某一个区块。由于SSD是进行垃圾回收,所以SSD所读取的数据是待回收数据,也即SSD所读取的数据所占的存储单元未被标记为无效。
SSD在从第一存储单元中读取数据后,将SSD所读取的数据发送给SSD的解码器,以使解码器对SSD所读取的数据进行解码。在解码器完成对SSD所读取的数据的解码后,将与SSD所读取的数据对应的第一数据信息以及第二数据信息返回给SSD。由于SSD接收到与SSD所读取的数据对应的第一数据信息以及第二数据信息,而不是解码器对SSD所读取的数据进行解码后的数据。所以对SSD的编码器来说,在SSD采用本公开提供的数据存储方法进行垃圾回收的过程中,没有需要进行编码的数据,因而SSD无需执行对待回收数据进行编码的步骤,SSD可以直接将第一数据信息和第二数据信息写入SSD的第二存储单元,进而减小SSD进行垃圾回收的功耗。
可选地,所述第二数据信息包括校验信息。
本公开对SSD的解码器进行改进,使其具备两种工作模式:通用工作模式以及垃圾回收工作模式。在通用工作模式下,SSD的解码器对待读取数据进行解码,以输出解码后的数据。也就是说,SSD的解码器所输出的仅仅是数据信息,而不输出用于纠错校验的校验信息。在垃圾回收工作模式下,SSD的解码器对待回收数据进行解码,以输出第一数据信息以及第二数据信息,且第二数据信息包括校验信息。也就是说,SSD的解码器不仅输出数据信息,还输出用于纠错校验的校验信息,因而无需利用SSD的编码器生成校验信息。SSD可以直接将第一数据信息和第二数据信息写入SSD的第二存储单元。
可选地,请参考图2,图2是根据一示例性实施例示出的一种数据存储的方法的另一流程图。如图2所示,该方法除包括步骤S11、步骤S12以及步骤S13外,还包括以下步骤:
步骤S10a:从多个命令中分离出用于写入待回收数据的写命令;
步骤S10b:将所述用于写入待回收数据的写命令添加到第一队列中,并将所述多个命令中的其他命令添加到第二队列中,所述多个命令中的其他命令不同于所述用于写入待回收数据的写命令;
步骤S10c:从所述第二队列中获取所述第一命令。
如前所述,对用于写入待回收数据的命令的获取,会影响SSD的CPU与外部设备之间正在进行的数据传输。为避免该问题,本公开提出对不同命令进行分类,将用于写入待回收数据的命令添加到专用队列中,将其他命令添加到通用队列中。其中,专用队列中的各个命令可以被乱序执行,通用队列中的各个命令仍然被顺序执行。
步骤S10a中的多个命令包括:外部设备向SSD的CPU发送的读数据命令以及写数据命令,用于读取待回收数据的命令,以及用于写入待回收数据的命令。因此,SSD的CPU将用于写入待回收数据的命令从多个命令中分离出来,然后将用于写入待回收数据的命令添加到第一队列中,第一队列即为上述专用队列;并将其他命令添加到第二队列中,第二队列即为上述通用队列。
SSD的读写控制器检测第二队列中是否有待执行命令,如果SSD的读写控制器检测到第二队列中有待执行命令,则从中获取并执行。一种可能的情况是:SSD的控制从第二队列中检测到第一命令,则从第二队列中获取第一命令,接着,SSD根据第一命令,执行步骤S11至步骤S13。
可选地,步骤S13包括:
在接收到所述第一数据信息以及所述第二数据信息时,获取与所述第一命令匹配的第二命令;
根据所述第二命令,将所述第一数据信息以及所述第二数据信息写入所述SSD的第二存储单元中。
在SSD执行步骤S12的过程中,SSD接收到SSD的编码器返回的第一数据信息和第二数据信息。SSD在接收到SSD的编码器返回的第一数据信息和第二数据信息时,获取与第一命令匹配的第二命令。一种可能的实施方式是:SSD在接收到SSD的编码器返回的第一数据信息和第二数据信息时,SSD的读写控制器从第一队列中获取第二命令,也即从上述专用队列中获取第二命令。因而,无需通过对SSD的CPU的中断,即可获取用于写入待回收数据的命令,SSD进行垃圾回收,不会影响SSD的CPU与外部设备之间正在进行的数据传输,垃圾回收以及与外部设备之间的数据传输,两者可以并行,互不影响。
可选地,获取与所述第一命令匹配的第二命令,包括:
根据所述第一命令携带的第一标记信息,确定与所述第一标记信息匹配的第二标记信息;
获取携带所述第二标记信息的命令;
其中,针对同一待回收数据的多个命令携带有相互匹配的标记信息。
第一命令与第二命令匹配,是指第一命令与第二命令分别是针对同一待回收数据的读命令以及写命令,因而第一命令与第二命令是成对的。为了便于SSD的读写控制器从第一队列中获取第二命令,SSD的CPU可以在生成第一命令和第二命令后,对第一命令和第二命令分别标记相互匹配的标记信息。示例地,对第一命令和第二命令均标记同一tag值。
由于SSD的CPU对第一命令和第二命令进行了标记,所以SSD的读写控制器在读取第一命令后,可以获得第一命令携带的标记信息。SSD在接收到SSD的编码器返回的第一数据信息和第二数据信息时,SSD的读写控制器可以根据第一命令携带的标记信息,从第一队列中获取携带有与第一命令携带的标记信息匹配的命令。示例地,SSD的读写控制器从第一队列中获取与第一命令携带的tag值相同的命令。
可选地,所述方法还包括:
根据所述SSD的空闲存储单元的存储地址,建立空地址指针队列;
将所述空地址指针队列中的各个空地址指针分别指向的存储单元分配给所述第一队列。
由于第一队列中的各个命令可以被乱序执行,第一队列中的第二命令何时被执行,取决于SSD何时接收到解码器返回的与该第二命令对应的第一数据信息和第二数据信息。为了提高SSD的利用率,在第一队列中的某一命令被SSD的读写控制器读取并执行后,该命令所占的存储单元可以被释放,以使得该命令所占的存储单元变为空闲存储单元。
为了充分利用多个空闲存储单元,本公开提出利用空地址指针队列管理各个空闲存储单元的存储地址,也就是说,空地址指针队列中存储有多个空地址指针,一个空地址指针指向一个空闲存储单元的存储地址。当第一队列中的一个命令被SSD的读写控制器读取并执行,该命令所占的存储单元变为空闲存储单元,被标记为空;当SSD的CPU生成一个用于写入待回收数据的命令时,可以从空地址指针队列中读取一个空地址指针,然后将所生成的命令存储到该空地址指针所指向的存储单元,接着将该空地址指针所指向的存储单元标记为非空,并且将该空地址指针从空地址指针队列中移除。
示例地,请参考图3,图3是根据一示例性实施例示出的一种空地址指针队列与第一队列的示意图。如图3所示,1代表第一队列,第一队列中有4个命令:分别被标记为tag0、tag1、tag2、tag3。2代表空地址指针队列,空地址指针队列中有两个空地址指针:tag1_ptr和tag2_ptr。
当标记为tag1和标记为tag2的命令被SSD的读写控制器读取并执行时,标记为tag1和标记为tag2的命令各自所占的存储单元被标记为空,且标记为tag1和标记为tag2的命令各自所占的存储单元的存储地址对应的空地址指针被添加到空地址指针队列。当SSD的CPU生成一个用于写入待回收数据的命令时,可以从空地址指针队列中读取一个空地址指针,假设为tag1_ptr,则SSD的CPU将该命令写入tag1_ptr指向的存储单元(如图3中的4所示),将tag1_ptr从空地址指针队列中移除(如图3中的3所示)。图3中,以有填充示意空,以无填充示意非空。
下面以一个实施例说明本公开提供的数据存储的方法。本公开所适用的SSD除包括CPU、读写控制器、编码器、解码器、多个区块以及缓存区外,还包括垃圾回收加速器。其中,编码器和解码器可以集成为编解码器。垃圾回收加速器可以独立于本公开所适用的SSD中的其他组件,也可以集成于本公开所适用的SSD中的某一组件,例如:垃圾回收加速器可以集成在SSD的CPU上,或者垃圾回收加速器可以集成在SSD的读写控制器上,或者垃圾回收加速器可以集成在SSD的解码器上。请参考图4,图4是根据一示例性实施例示出的适用于本公开的SSD的结构示意图。图4以垃圾回收加速器独立于本公开所适用的SSD中的其他组件,且缓存区设置在垃圾回收加速器内为例。
下面对本公开提供的数据存储的方法由图4所示的SSD执行的过程进行说明。
步骤1:SSD的CPU将用于写入待回收数据的命令添加到第一队列中,并将多个命令中的其他命令添加到第二队列中;并且将每一对针对同一待回收数据的读命令和写命令分别标记相同的tag值,以便SSD的读写控制器根据tag值,从第一队列中获取用于写入待回收数据的命令。
步骤2:SSD的读写控制器检测到第二队列中有第一命令之后,读取并执行第一命令。
步骤3:SSD的读写控制器把所读取的数据存放到垃圾回收加速器的缓存中。
步骤4:垃圾回收加速器把缓存中的数据发送给解码器,以便于解码器对其进行解码,并通知解码器切换到垃圾回收工作模式。
步骤5:解码器将解码后所得的第一数据信息和第二数据信息存放到垃圾回收加速器的缓存。
步骤6:垃圾回收加速器在接收到第一数据信息和第二数据信息后,通知SSD的读写控制器可以对第一数据信息和第二数据信息进行写入操作。
步骤7:SSD的读写控制器根据tag值,从第一队列中获取用于写入待回收数据的命令并执行。
以上为本公开提供的数据存储的方法。基于同一发明构思,本公开还提供了一种数据存储的装置,应用于SSD。请参考图5,图5是根据一示例性实施例示出的一种数据存储的装置的框图。如图5所示,该装置500包括:
读取模块501,用于根据第一命令,读取所述SSD的第一存储单元中的数据;
收发模块502,用于将所述数据发送给所述SSD的解码器,并接收所述解码器返回的与所述数据对应的第一数据信息以及第二数据信息;
存储模块503,用于将所述第一数据信息以及所述第二数据信息写入所述SSD的第二存储单元中,所述第二存储单元不同于所述第一存储单元。
可选地,所述第二数据信息包括校验信息。
可选地,所述装置还包括:
提取模块,用于从多个命令中分离出用于写入待回收数据的写命令;
分类模块,用于将所述用于写入待回收数据的写命令添加到第一队列中,并将所述多个命令中的其他命令添加到第二队列中,所述多个命令中的其他命令不同于所述用于写入待回收数据的写命令;
获取模块,用于从所述第二队列中获取所述第一命令。
可选地,所述存储模块包括:
第一获取子模块,用于在接收到所述第一数据信息以及所述第二数据信息时,获取与所述第一命令匹配的第二命令;
存储子模块,用于根据所述第二命令,将所述第一数据信息以及所述第二数据信息写入所述SSD的第二存储单元中。
可选地,所述装置还包括:
建立模块,用于根据所述SSD的空闲存储单元的存储地址,建立空地址指针队列;
分配模块,用于将所述空地址指针队列中的各个空地址指针分别指向的存储单元分配给所述第一队列。
可选地,所述获取模块包括:
确定子模块,用于根据所述第一命令携带的第一标记信息,确定与所述第一标记信息匹配的第二标记信息;
第二获取子模块,用于获取携带所述第二标记信息的命令;
其中,针对同一待回收数据的多个命令携带有相互匹配的标记信息。
关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
基于同一发明构思,本公开还提供一种固态硬盘,包括:控制器、解码器以及多个存储单元;所述控制器用于执行本公开提供的数据存储的方法。请参考图4,图4是该固态硬盘的一种可能的示意图。图4中的CPU、读写控制器、以及垃圾回收加速器共同组成固态硬盘中的控制器,以完成本公开提供的数据存储的方法。
以上结合附图详细描述了本公开的优选实施方式,但是,本公开并不限于上述实施方式中的具体细节,在本公开的技术构思范围内,可以对本公开的技术方案进行多种简单变型,这些简单变型均属于本公开的保护范围。
另外需要说明的是,在上述具体实施方式中所描述的各个具体技术特征,在不矛盾的情况下,可以通过任何合适的方式进行组合。为了避免不必要的重复,本公开对各种可能的组合方式不再另行说明。

Claims (10)

1.一种数据存储的方法,应用于固态硬盘SSD,其特征在于,所述方法包括:
根据第一命令,读取所述SSD的第一存储单元中的数据;
将所述数据发送给所述SSD的解码器,并接收所述解码器返回的与所述数据对应的第一数据信息以及第二数据信息;
将所述第一数据信息以及所述第二数据信息写入所述SSD的第二存储单元中,所述第二存储单元不同于所述第一存储单元。
2.根据权利要求1所述的方法,其特征在于,所述第二数据信息包括校验信息。
3.根据权利要求1所述的方法,其特征在于,所述方法还包括:
从多个命令中分离出用于写入待回收数据的写命令;
将所述用于写入待回收数据的写命令添加到第一队列中,并将所述多个命令中的其他命令添加到第二队列中,所述多个命令中的其他命令不同于所述用于写入待回收数据的写命令;
从所述第二队列中获取所述第一命令。
4.根据权利要求1所述的方法,其特征在于,将所述第一数据信息以及所述第二数据信息写入所述SSD的第二存储单元中,包括:
在接收到所述第一数据信息以及所述第二数据信息时,获取与所述第一命令匹配的第二命令;
根据所述第二命令,将所述第一数据信息以及所述第二数据信息写入所述SSD的第二存储单元中。
5.根据权利要求3所述的方法,其特征在于,所述方法还包括:
根据所述SSD的空闲存储单元的存储地址,建立空地址指针队列;
将所述空地址指针队列中的各个空地址指针分别指向的存储单元分配给所述第一队列。
6.根据权利要求4所述的方法,其特征在于,获取与所述第一命令匹配的第二命令,包括:
根据所述第一命令携带的第一标记信息,确定与所述第一标记信息匹配的第二标记信息;
获取携带所述第二标记信息的命令;
其中,针对同一待回收数据的多个命令携带有相互匹配的标记信息。
7.一种数据存储的装置,应用于固态硬盘SSD,其特征在于,所述装置包括:
读取模块,用于根据第一命令,读取所述SSD的第一存储单元中的数据;
收发模块,用于将所述数据发送给所述SSD的解码器,并接收所述解码器返回的与所述数据对应的第一数据信息以及第二数据信息;
存储模块,用于将所述第一数据信息以及所述第二数据信息写入所述SSD的第二存储单元中,所述第二存储单元不同于所述第一存储单元。
8.一种固态硬盘,其特征在于,包括:控制器、解码器以及多个存储单元;
所述控制器用于:根据第一命令,读取所述SSD的第一存储单元中的数据;以及将所述数据发送给所述SSD的解码器;
所述解码器用于对所述数据进行解码,并向所述中央处理器返回与所述数据对应的第一数据信息以及第二数据信息;
所述控制器还用于:接收所述解码器返回的与所述数据对应的第一数据信息以及第二数据信息;以及将所述第一数据信息以及所述第二数据信息写入所述SSD的第二存储单元中,所述第二存储单元不同于所述第一存储单元。
9.根据权利要求8所述的固态硬盘,其特征在于,所述控制器还用于:
从多个命令中分离出用于写入待回收数据的写命令;
将所述用于写入待回收数据的写命令添加到第一队列中,并将所述多个命令中的其他命令添加到第二队列中,所述多个命令中的其他命令不同于所述用于写入待回收数据的写命令;
从所述第二队列中获取所述第一命令。
10.根据权利要求8所述的固态硬盘,其特征在于,所述控制器还用于:
在接收到所述第一数据信息以及所述第二数据信息时,获取与所述第一命令匹配的第二命令;
根据所述第二命令,将所述第一数据信息以及所述第二数据信息写入所述SSD的第二存储单元中。
CN201611270828.4A 2016-12-30 2016-12-30 数据存储的方法、装置及固态硬盘 Active CN106873905B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201611270828.4A CN106873905B (zh) 2016-12-30 2016-12-30 数据存储的方法、装置及固态硬盘

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201611270828.4A CN106873905B (zh) 2016-12-30 2016-12-30 数据存储的方法、装置及固态硬盘

Publications (2)

Publication Number Publication Date
CN106873905A true CN106873905A (zh) 2017-06-20
CN106873905B CN106873905B (zh) 2019-11-12

Family

ID=59165623

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201611270828.4A Active CN106873905B (zh) 2016-12-30 2016-12-30 数据存储的方法、装置及固态硬盘

Country Status (1)

Country Link
CN (1) CN106873905B (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109246377A (zh) * 2018-10-19 2019-01-18 青岛镕铭半导体有限公司 视频数据存储、读取方法及视频数据存储设备
CN110069212A (zh) * 2018-01-22 2019-07-30 爱思开海力士有限公司 存储装置及存储装置的操作方法
CN110321060A (zh) * 2018-03-31 2019-10-11 深圳忆联信息系统有限公司 数据存储的方法及装置

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101140543A (zh) * 2007-10-19 2008-03-12 炬力集成电路设计有限公司 支持flash页操作与流水线纠错码的数据交换装置与方法
CN101782872A (zh) * 2009-01-16 2010-07-21 马维尔国际贸易有限公司 使用固态盘的缓存系统和方法
CN102103559A (zh) * 2009-12-18 2011-06-22 上海华虹集成电路有限责任公司 一种带有AES和ECC的多通道NANDflash控制器

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101140543A (zh) * 2007-10-19 2008-03-12 炬力集成电路设计有限公司 支持flash页操作与流水线纠错码的数据交换装置与方法
CN101782872A (zh) * 2009-01-16 2010-07-21 马维尔国际贸易有限公司 使用固态盘的缓存系统和方法
CN102103559A (zh) * 2009-12-18 2011-06-22 上海华虹集成电路有限责任公司 一种带有AES和ECC的多通道NANDflash控制器

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110069212A (zh) * 2018-01-22 2019-07-30 爱思开海力士有限公司 存储装置及存储装置的操作方法
CN110069212B (zh) * 2018-01-22 2022-11-11 爱思开海力士有限公司 存储装置及存储装置的操作方法
CN110321060A (zh) * 2018-03-31 2019-10-11 深圳忆联信息系统有限公司 数据存储的方法及装置
CN109246377A (zh) * 2018-10-19 2019-01-18 青岛镕铭半导体有限公司 视频数据存储、读取方法及视频数据存储设备

Also Published As

Publication number Publication date
CN106873905B (zh) 2019-11-12

Similar Documents

Publication Publication Date Title
CN102483714B (zh) 恢复闪存存储器设备中的索引页的系统及方法
US8321481B2 (en) Method for incremental anti-tear garbage collection
CN106055270B (zh) 用于超密集io数字保留的方法和装置
CN110008136A (zh) 管理闪存模块的方法及相关的闪存控制器及电子装置
US10346047B2 (en) Method and apparatus for dense hyper IO digital retention
AR024926A1 (es) Metodo y aparato para seguridad y recuperacion de datos en un dispositivo portatil de datos.
CN103530237B (zh) 一种固态盘阵列的垃圾回收方法
CN105206306A (zh) 在非易失性存储器处理纠错码的方法及非易失性存储装置
WO2002014997A3 (en) Apparatus and method for writing and reading data to and from a virtual volume of redundant storage devices
CN101436152A (zh) 一种数据备份的方法和装置
DE60123131D1 (de) Verfahren und vorrichtung zum sperren eines spezifischen ide befehls
CN106873905A (zh) 数据存储的方法、装置及固态硬盘
CN105786411A (zh) 非易失性存储器装置的操作方法
CN101567220B (zh) 闪存的损坏区块辨识方法、储存系统及其控制器
CN102945278A (zh) 一种数据库记录重做日志的方法和装置
CN101630290A (zh) 重复数据处理方法和装置
CN102591790A (zh) 基于固态硬盘的数据存储快照实现方法及固态硬盘
CN104484131B (zh) 多磁盘服务器的数据处理装置及对应的处理方法
US20160218737A1 (en) Method and apparatus for dense hyper io digital retention
CN101661415B (zh) 一种保存快照数据的方法及存储快照系统
CN102024021A (zh) 一种逻辑文件系统元数据的日志方法
CN104050103A (zh) 一种用于数据恢复的缓存替换方法与系统
CA2218296A1 (en) Method and apparatus for storing and retrieving error check information
CN110431540A (zh) 用于在非托管闪存设备中复制数据页的方法和装置
KR20190017222A (ko) 로그 데이터 분석을 이용한 데이터베이스 복구 속도 향상 기법 및 장치

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
TA01 Transfer of patent application right
TA01 Transfer of patent application right

Effective date of registration: 20190808

Address after: 518067 Dongjiaotou Workshop D24/F-02, Houhai Avenue, Shekou Street, Nanshan District, Shenzhen City, Guangdong Province

Applicant after: Shenzhen Yi Lian Information System Co., Ltd.

Address before: 100176 Beijing City, Daxing District branch of Beijing economic and Technological Development Zone, fourteen Street No. 99 building 33 building D No. 2226

Applicant before: Beijing legend core technology Co., Ltd.

GR01 Patent grant
GR01 Patent grant