CN104142894A - 一种数据读写方法、存储控制器及计算机 - Google Patents

一种数据读写方法、存储控制器及计算机 Download PDF

Info

Publication number
CN104142894A
CN104142894A CN201310162901.6A CN201310162901A CN104142894A CN 104142894 A CN104142894 A CN 104142894A CN 201310162901 A CN201310162901 A CN 201310162901A CN 104142894 A CN104142894 A CN 104142894A
Authority
CN
China
Prior art keywords
data
storage unit
read
write
buffer
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
CN201310162901.6A
Other languages
English (en)
Other versions
CN104142894B (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.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies 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 Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Priority to CN201310162901.6A priority Critical patent/CN104142894B/zh
Priority claimed from CN201310162901.6A external-priority patent/CN104142894B/zh
Priority to PCT/CN2013/087235 priority patent/WO2014180112A1/zh
Publication of CN104142894A publication Critical patent/CN104142894A/zh
Application granted granted Critical
Publication of CN104142894B publication Critical patent/CN104142894B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1016Performance improvement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7202Allocation control and policies
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7203Temporary buffering, e.g. using volatile buffer or dedicated buffer blocks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7209Validity control, e.g. using flags, time stamps or sequence numbers

Landscapes

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

Abstract

本发明实施例公开了一种数据读写方法、存储控制器及计算机,涉及存储领域,可以降低对flash芯片的损耗,进而可以有效提升系统的存储性能。具体方案为:通过第一读写接口获取软件层控制器发送的第一写命令,第一写命令中包含第一数据的特征值和待写入的第一数据;根据第一数据的特征值,采用预设写策略将第一数据缓存至第一存储单元,并在第一存储单元中更新第一数据的引用计数值,第一数据的引用计数值用于记录在第一存储单元读写第一数据的次数;当检测到对第一数据的写入指示时,将第一存储单元中缓存的所有第一数据写入第二存储单元。本发明用于数据的存储过程中。

Description

一种数据读写方法、存储控制器及计算机
技术领域
本发明涉及存储领域,尤其涉及一种数据读写方法、存储控制器及计算机。
背景技术
随着技术的发展,为了提升系统的存储性能,计算机系统的存储介质由早期的磁带、磁盘发展为目前的新型存储介质,如固态硬盘(SolidState Disk,SSD)。
具体的,现有的SSD可以由控制器、随机存储器(Random AccessMemory,RAM)和若干个Flash芯片组成。其中,对SSD的读操作具体为:控制器将Flash芯片上的数据读取到RAM上,然后通过输入/输出(Input/Output,I/O)接口传输到上层软件层控制器,再次读取该数据时,控制器只需要直接从RAM上读取;对SSD的写操作具体为:控制器将数据写入到RAM上,然后再写入到Flash芯片。与直接对Flash芯片进行读写相比,对RAM进行读写的速度更快,可以提升系统的存储性能。
其中,需要进行读写的数据可以包括:一般数据和元数据(元数据是指用于对其他数据进行索引或者描述其他数据的属性的数据,是重要的数据)。
现有技术在对SSD进行读写操作时,不识别待读写数据的类型,即对于元数据和一般数据都采用相同的读写方式,而RAM中的数据(一般数据和元数据)一旦更新,就会立即被写入到Flash芯片中,当数据被写入到Flash芯片后,RAM中并不保存该数据,数据的读写只能在Flash芯片上进行。据统计,在对SSD进行读写操作时,对元数据的读写操作次数至少可以达到总操作次数的50%,因此,元数据在Flash芯片上的多次读写操作会对Flash芯片产生较大损耗,并不能够有效的提升系统的存储性能。
发明内容
本发明的实施例提供一种数据读写方法、存储控制器及计算机,可以降低对flash芯片的损耗,进而有效的提升系统的存储性能。
为达到上述目的,本发明的实施例采用如下技术方案:
本发明实施例的第一方面,提供一种数据写入方法,包括:
通过第一读写接口获取软件层控制器发送的第一写命令,所述第一写命令中包含第一数据的特征值和待写入的所述第一数据;
根据所述第一数据的特征值,采用预设写策略将所述第一数据缓存至第一存储单元,并在所述第一存储单元中更新所述第一数据的引用计数值,所述第一数据的引用计数值用于记录在所述第一存储单元读写所述第一数据的次数;
当检测到对所述第一数据的写入指示时,将所述第一存储单元中缓存的所有所述第一数据写入第二存储单元。
结合第一方面,在一种可能的实现方式中,所述第一读写接口为预设的专用接口SPI;
所述第一存储单元为特殊用途随机存储器SPRAM,所述第二存储单元为Flash芯片;所述第一数据至少包括:元数据,所述元数据用于索引其他数据或者描述其他数据的属性;
所述写入指示为接收自所述软件层控制器的刷写指令;或者,所述写入指示为断电指示。
结合第一方面和上述可能的实现方式,在另一种可能的实现方式中,所述根据所述第一数据的特征值,采用预设写策略将所述第一数据缓存至第一存储单元,并在所述第一存储单元中更新所述第一数据的引用计数值,包括:
判断所述第一存储单元中是否缓存有第二数据,所述第二数据的特征值与所述第一数据的特征值相同;
若所述第一存储单元中缓存有所述第二数据,则将所述第一数据缓存至所述第一存储单元,且所述第一数据覆盖所述第二数据,并更新所述第一存储单元中缓存的所述第二数据的引用计数值;
或者,
若所述第一存储单元未缓存所述第二数据,则将所述第一数据缓存至所述第一存储单元,并在所述第一存储单元中增加所述第一数据的引用计数值,所述第一数据的引用计数值为1。
结合第一方面和上述可能的实现方式,在另一种可能的实现方式中,在所述将所述第一数据缓存至所述第一存储单元之前,所述方法还包括:
判断所述第一存储单元的缓存是否达到预设上限值;
所述将所述第一数据缓存至所述第一存储单元,包括:
若所述第一存储单元的缓存已达到所述预设上限值,则采用所述第一数据置换所述第一存储单元中缓存的第三数据,所述第三数据至少包括:缓存于所述第一存储单元中的,所述引用计数值按照由小到大的顺序排在第一位的数据;
或者,
若所述第一存储单元的缓存未达到所述预设上限值,则直接将所述第一数据缓存至所述第一存储单元。
结合第一方面和上述可能的实现方式,在另一种可能的实现方式中,所述采用所述第一数据置换所述第一存储单元中缓存的第三数据,包括:
将所述第三数据写入第二存储单元,以减少所述第一存储单元的缓存,并缓存所述第一数据至所述第一存储单元。
结合第一方面和上述可能的实现方式,在另一种可能的实现方式中,所述方法还包括:通过第二读写接口获取所述软件层控制器发送的第二写命令,所述第二写命令不是元数据的写命令,所述第二写命令中包含待写入的数据;
将所述待写入的数据缓存至第三存储单元,并从所述第三存储单元将所述待写入的数据写入所述第二存储单元,所述第三存储单元为随机存储器RAM。
本发明实施例的第二方面,还提供一种数据读取方法,包括:
通过第一读写接口获取软件层控制器发送的第一读命令,所述第一读命令中包含第一数据的特征值;
根据所述第一数据的特征值判断第一存储单元中是否缓存有所述第一数据;
若所述第一存储单元中未缓存所述第一数据,则根据所述第一数据的特征值从第二存储单元读取所述第一数据;
通过所述第一读写接口发送所述第一数据至所述软件层控制器,并将所述第一数据缓存至所述第一存储单元,以便于再次接收到所述第一读命令时直接从所述第一存储单元读取所述第一数据。
结合第二方面,在一种可能的实现方式中,所述第一读写接口为预设的专用接口SPI;
所述第一存储单元为特殊用途随机存储器SPRAM,所述第二存储单元为Flash芯片;所述第一数据至少包括:元数据,所述元数据用于索引其他数据或者描述其他数据的属性。
结合第二方面和上述可能的实现方式,在另一种可能的实现方式中,若所述第一存储单元中缓存有所述第一数据,则根据所述第一数据的特征值直接从所述第一存储单元读取所述第一数据。
结合第二方面和上述可能的实现方式,在另一种可能的实现方式中,在所述将所述第一数据缓存至所述第一存储单元之前,所述方法还包括:
判断所述第一存储单元的缓存是否达到预设上限值;
所述将所述第一数据缓存至所述第一存储单元,包括:
若所述第一存储单元的缓存已达到所述预设上限值,则将第三数据写入所述第二存储单元,以减少所述第一存储单元的缓存,并缓存所述第一数据至所述第一存储单元,所述第三数据至少包括:缓存于所述第一存储单元中的,所述引用计数值按照由小到大的顺序排在第一位的数据;
或者,
若所述第一存储单元的缓存未达到所述预设上限值,则直接将所述第一数据缓存至所述第一存储单元。
结合第二方面和上述可能的实现方式,在另一种可能的实现方式中,所述方法,还包括:
通过第二读写接口获取所述软件层控制器发送的第二读命令,所述第二读命令不是元数据的读命令,所述第二读命令中包含待读出数据的特征值;
根据所述待读出数据的特征值从第三存储单元或者所述第二存储单元读取相应的数据,并通过所述第二读写接口发送读取到的数据至所述软件层控制器,所述第三存储单元为随机存储器RAM。
本发明实施例的第三方面,还提供一种存储控制器,包括:
获取单元,用于通过第一读写接口获取软件层控制器发送的第一写命令,所述第一写命令中包含第一数据的特征值和待写入的所述第一数据;
缓存单元,用于根据所述获取单元获取的所述第一数据的特征值,采用预设写策略将所述第一数据缓存至第一存储单元,并在所述第一存储单元中更新所述第一数据的引用计数值,所述第一数据的引用计数值用于记录在所述第一存储单元读写所述第一数据的次数;
写入单元,用于当检测到对所述第一数据的写入指示时,将所述缓存单元缓存至所述第一存储单元的所有所述第一数据写入第二存储单元。
结合第三方面,在一种可能的实现方式中,所述第一读写接口为预设的专用接口SPI;
所述第一存储单元为特殊用途随机存储器SPRAM,所述第二存储单元为Flash芯片;所述第一数据至少包括:元数据,所述元数据用于索引其他数据或者描述其他数据的属性;
所述写入指示为接收自上层软件层控制器的刷写指令;或者,所述写入指示为断电指示。
结合第三方面合上述可能的实现方式,在另一种可能的实现方式中,所述缓存单元,包括:
判断模块,用于判断所述第一存储单元中是否缓存有第二数据,所述第二数据的特征值与所述获取单元获取的所述第一数据的特征值相同;
覆盖模块,用于若所述判断模块判断得到所述第一存储单元中缓存有所述第二数据,则将所述第一数据缓存至所述第一存储单元,且所述第一数据覆盖所述第二数据,并更新所述第一存储单元中缓存的所述第二数据的引用计数值;
或者,
所述缓存单元,还包括:
缓存模块,用于若所述判断模块判断得到所述第一存储单元未缓存所述第二数据,则将所述第一数据缓存至所述第一存储单元,并在所述第一存储单元中增加所述第一数据的引用计数值,所述第一数据的引用计数值为1。
结合第三方面合上述可能的实现方式,在另一种可能的实现方式中,所述判断模块,还用于在所述缓存模块将所述第一数据缓存至所述第一存储单元之前,判断所述第一存储单元的缓存是否达到预设上限值;
所述缓存模块,还用于若所述判断模块判断得到所述第一存储单元的缓存已达到所述预设上限值,则采用所述第一数据置换所述第一存储单元中缓存的第三数据,所述第三数据至少包括:缓存于所述第一存储单元中的,所述引用计数值按照由小到大的顺序排在第一位的数据;
或者,
所述缓存模块,还用于若所述判断模块判断得到所述第一存储单元的缓存未达到所述预设上限值,则直接将所述第一数据缓存至所述第一存储单元。
结合第三方面合上述可能的实现方式,在另一种可能的实现方式中,所述缓存模块,还用于将所述第三数据写入第二存储器第二存储单元,以减少所述第一存储器第一存储单元的缓存,并缓存所述第一数据至所述第一存储器第一存储单元。
结合第三方面合上述可能的实现方式,在另一种可能的实现方式中,所述获取单元,还用于通过第二读写接口获取所述软件层控制器发送的第二写命令,所述第二写命令不是元数据的写命令,所述第二写命令中包含待写入的数据;
所述缓存单元,还用于将所述获取单元获取的所述待写入的数据缓存至第三存储单元,并从所述第三存储单元将所述待写入的数据写入所述第二存储单元,所述第三存储单元为随机存储器RAM。
本发明实施例的第四方面,还提供一种存储控制器,包括:
获取单元,用于通过第一读写接口获取软件层控制器发送的第一读命令,所述第一读命令中包含第一数据的特征值;
判断单元,用于根据所述获取单元获取的所述第一数据的特征值判断所述第一存储单元中是否缓存有所述第一数据;
读取单元,用于若所述判断单元判断得到所述第一存储单元中未缓存所述第一数据,则根据所述第一数据的特征值从第二存储单元读取所述第一数据;
发送单元,用于通过所述第一读写接口发送所述读取单元读取的所述第一数据至所述软件层控制器;
缓存单元,用于将所述读取单元读取的所述第一数据缓存至所述第一存储单元,以便于再次接收到所述第一读命令时直接从所述第一存储单元读取所述第一数据。
结合第四方面,在一种可能的实现方式中,所述第一读写接口为预设的专用接口SPI;
所述第一存储单元为特殊用途随机存储器SPRAM,所述第二存储单元为Flash芯片;所述第一数据至少包括:元数据,所述元数据用于索引其他数据或者描述其他数据的属性。
结合第四方面和上述可能的实现方式,在另一种可能的实现方式中,所述读取单元,还用于若所述判断单元判断得到所述第一存储单元中缓存有所述第一数据,则根据所述第一数据的特征值直接从所述第一存储单元读取所述第一数据。
结合第四方面和上述可能的实现方式,在另一种可能的实现方式中,所述判断单元,还用于在所述缓存单元将所述第一数据缓存至所述第一存储单元之前,判断所述第一存储单元的缓存是否达到预设上限值;
所述缓存单元,还用于若所述判断单元判断得到所述第一存储单元的缓存已达到所述预设上限值,则将第三数据写入所述第二存储单元,以减少所述第一存储单元的缓存,并缓存所述第一数据至所述第一存储单元,所述第三数据至少包括:缓存于所述第一存储单元中的,所述引用计数值按照由小到大的顺序排在第一位的数据;
或者,
所述缓存单元,还用于若所述判断单元判断得到所述第一存储单元的缓存未达到所述预设上限值,则直接将所述第一数据缓存至所述第一存储单元。
结合第四方面和上述可能的实现方式,在另一种可能的实现方式中,所述获取单元,还用于通过第二读写接口获取所述软件层控制器发送的第二读命令,所述第二读命令不是元数据的读命令,所述第二读命令中包含待读出数据的特征值;
所述读取单元,还用于根据所述获取单元获取的所述待读出数据的特征值从第三存储单元或者所述第二存储单元读取相应的数据;
所述发送单元,还用于通过所述第二读写接口发送所述读取单元读取到的数据至所述软件层控制器,所述第三存储单元为RAM。
本发明第五方面,还提供一种计算机,包括:所述计算机的硬件层和运行于所述硬件层之上的软件层控制器,所述硬件层包括存储控制器、以及与所述存储控制器连接的至少一个存储单元;所述存储控制器包括至少一个第一读写接口,所述第一读写接口能够被所述软件层控制器感知;
所述存储控制器,用于通过所述第一读写接口获取所述软件层控制器发送的第一写命令,所述第一写命令中包含第一数据的特征值和待写入的所述第一数据;根据所述第一数据的特征值,采用预设写策略将所述第一数据缓存至第一存储单元,并在所述第一存储单元中更新所述第一数据的引用计数值,所述第一数据的引用计数值用于记录在所述第一存储单元读写所述第一数据的次数;当检测到对所述第一数据的写入指示时,将所述第一存储单元中缓存的所有所述第一数据写入第二存储单元;
所述软件层控制器,用于通过所述第一读写接口发送第一写命令至所述存储控制器。
结合第五方面,在第一种实现方式下,所述存储控制器,还用于通过所述第一读写接口获取所述软件层控制器发送的第一读命令,所述第一读命令中包含所述第一数据的特征值;根据所述第一数据的特征值判断所述第一存储单元中是否缓存有所述第一数据;若所述第一存储单元中未缓存所述第一数据,则根据所述第一数据的特征值从所述第二存储单元读取所述第一数据;通过所述第一读写接口发送所述第一数据至所述软件层控制器,并将所述第一数据缓存至所述第一存储单元,以便于再次接收到所述第一读命令时直接从所述第一存储单元读取所述第一数据;
所述软件层控制器,还用于通过所述第一读写接口发送第一读命令至所述存储控制器;接收所述存储控制器通过所述第一读写接口发送的所述第一数据。
本发明实施例提供的数据读写方法、存储控制器及计算机,通过第一读写接口获取软件层控制器发送的第一写命令,第一写命令中包含第一数据的特征值和待写入的第一数据;根据第一数据的特征值,采用预设写策略将第一数据缓存至第一存储单元,并在第一存储单元中更新第一数据的引用计数值,第一数据的引用计数值用于记录在第一存储单元读写第一数据的次数;当检测到写入指示时,将第一存储单元中缓存的所有第一数据写入第二存储单元。与现有技术中并不识别待读写数据的类型,数据(元数据和一般数据)一旦缓存至RAM,就会立即被写入到Flash芯片中相比,可以通过设置第一读写接口和第一存储单元,即在RAM中设置SPRAM,将第一数据(需要多次读写的数据,包括元数据)缓存在SPRAM中,并且仅仅在检测到写入指示时,才将第一数据写入到flash芯片,减少了第一数据在flash芯片中的读写次数,可以降低对flash芯片的损耗,进而有效的提升系统的存储性能。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明一实施例中的一种数据写入方法流程图;
图2为本发明另一实施例中的一种数据读取方法流程图;
图3为本发明另一实施例中的一种数据写入方法流程图;
图4为本发明另一实施例中的一种数据读取方法流程图;
图5为本发明另一实施例中的一种存储控制器的组成示意图;
图6为本发明另一实施例中的一种存储控制器的组成示意图;
图7为本发明另一实施例中的一种存储控制器的组成示意图;
图8为本发明另一实施例中的一种存储控制器的组成示意图;
图9为本发明另一实施例中的一种计算机的组成示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
另外,本文中术语“系统”和“网络”在本文中常被可互换使用。本文中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。
本发明一实施例提供一种数据写入方法,如图1所示,包括:
S101、通过第一读写接口获取软件层控制器发送的第一写命令,第一写命令中包含第一数据的特征值和待写入的第一数据。
示例性的,第一存储单元为特殊用途随机存储器(Special PurposeRandom Access Memory,SPRAM)。其中,第一存储单元即SPRAM可以是随机存储器(Random Access Memory,RAM)中用于缓存元数据的一部分内存芯片,也可以是预设的独立的高性能存储芯片。第二存储单元为Flash芯片,第三存储单元为RAM。第一读写接口可以是用于传递第一数据的操作接口,第一读写接口既可以是原有的读写接口,也可以是增设的额外的读写接口。例如,在存储介质固态硬盘(Solid State Disk,SSD)中,第一读写接口可以是SSD中原有的操作接口,该接口可以在传递接口信息(第一数据)时,在接口信息上加标识,以使存储控制器的处理器或者控制器可以根据该标识识别该接口传递的数据为第一数据信息;第一读写接口还可以是在SSD中增设的一个操作接口,如专用接口(Special Purpose Interface,SPI)。
需要说明的是,第一数据不仅可以包括元数据(元数据是指用于对其他数据进行索引或者描述其他数据的属性的数据,是重要的数据,在对SSD进行读写操作时,对元数据的读写操作次数较多,至少可以达到总操作次数的50%),还可以包括其他的在SSD进行读写操作时,读写次数较多的数据,本发明实施例对第一数据的具体形式不作限制。
S102、根据第一数据的特征值,采用预设写策略将第一数据缓存至第一存储单元,并在第一存储单元中更新第一数据的引用计数值,第一数据的引用计数值用于记录在第一存储单元读写第一数据的次数。
具体的,存储控制器根据第一数据的特征值,采用预设写策略将第一数据缓存至第一存储单元,并在第一存储单元中更新第一数据的引用计数值,第一数据的引用计数值用于记录在第一存储单元读写第一数据的次数可以包括:存储控制器判断第一存储单元中是否缓存有第二数据,第二数据的特征值与第一数据的特征值相同的数据;若第一存储单元中缓存有第二数据,则将第一数据覆盖第二数据,缓存至第一存储单元,并更新第一存储单元中缓存的第二数据的引用计数值;或者,若第一存储单元未缓存第二数据,则将第一数据缓存至第一存储单元,并在第一存储单元中增加第一数据的引用计数值,第一数据的引用计数值为1。
进一步可选的,在存储控制器将第一数据缓存至第一存储单元之前,本发明实施例的方法还可以包括:存储控制器判断第一存储单元的缓存是否达到预设上限值;存储控制器将第一数据缓存至第一存储单元具体包括:若第一存储单元的缓存已达到预设上限值,则采用第一数据置换第一存储单元中缓存的第三数据,第三数据至少包括:缓存于第一存储单元中的,引用计数值按照由小到大的顺序排在第一位的数据;或者,若第一存储单元的缓存未达到预设上限值,则直接将第一数据缓存至第一存储单元。
S103、当检测到对第一数据的写入指示时,将第一存储单元中缓存的所有第一数据写入第二存储单元。
具体的,写入指示可以为存储控制器接收自上层软件层控制器的刷写指令;或者写入指示可以为存储控制器检测到的断电指示。
本发明实施例提供的数据写入方法,通过第一读写接口获取软件层控制器发送的第一写命令,第一写命令中包含第一数据的特征值和待写入的第一数据;根据第一数据的特征值,采用预设写策略将第一数据缓存至第一存储单元,并在第一存储单元中更新第一数据的引用计数值,第一数据的引用计数值用于记录在第一存储单元读写第一数据的次数;当检测到写入指示时,将第一存储单元中缓存的所有第一数据写入第二存储单元。与现有技术中并不识别待读写数据的类型,数据(元数据和一般数据)一旦缓存至RAM,就会立即被写入到Flash芯片中相比,可以通过设置第一读写接口和第一存储单元,即在RAM中设置SPRAM,将第一数据(需要多次读写的数据,包括元数据)缓存在SPRAM中,并且仅仅在检测到写入指示时,才将第一数据写入到flash芯片,减少了第一数据在flash芯片中的写次数,可以降低对flash芯片的损耗,进而有效的提升系统的存储性能。
本发明另一实施例提供一种数据读取方法,如图2所示,包括:
S201、通过第一读写接口获取软件层控制器发送的第一读命令,第一读命令中包含第一数据的特征值。
具体的,第一数据至少可以包括元数据,除元数据外,第一数据还可以包括其他的在SSD进行读写操作时,读写次数较多的数据,本发明实施例对第一数据的具体形式不作限制。
S202、根据第一数据的特征值判断第一存储单元中是否缓存有第一数据。
其中,存储控制器在通过第一读写接口获取第一读命令后可以根据第一数据的特征值判断第一存储单元中是否缓存有第一数据来确定,存储控制器应该从第一存储单元读取第一数据,还是从第二存储单元(Flash芯片)读取第一数据。
S203、若第一存储单元中未缓存第一数据,则根据第一数据的特征值从第二存储单元读取第一数据。
一种情况下,如S203所述第一存储单元中未缓存第一数据,存储控制器则可以根据第一数据的特征值从第二存储单元读取第一数据。
另一种情况下,第一存储单元中缓存有第一数据,存储控制器则可以根据第一数据的特征值直接从第一存储单元读取第一数据。
S204、通过第一读写接口发送第一数据至软件层控制器,并将第一数据缓存至第一存储单元,以便于再次接收到第一读命令时直接从第一存储单元读取第一数据。
进一步可选的,在存储控制器将第一数据缓存至第一存储单元之前,本发明实施例的方法还可以包括:判断第一存储单元的缓存是否达到预设上限值;存储控制器将第一数据缓存至第一存储单元,具体可以包括:若第一存储单元的缓存已达到预设上限值,则将第三数据写入第二存储单元,以减少第一存储单元的缓存,并缓存第一数据至第一存储单元,第三数据至少包括:缓存于所述第一存储单元中的,引用计数值按照由小到大的顺序排在第一位的数据;或者,若第一存储单元的缓存未达到预设上限值,则直接将第一数据缓存至第一存储单元。
本发明实施例提供的数据读取方法,通过第一读写接口获取软件层控制器发送的第一读命令,第一读命令中包含第一数据的特征值;根据第一数据的特征值判断第一存储单元中是否缓存有第一数据;若第一存储单元中未缓存第一数据,则根据、、所述第一数据的特征值从第二存储单元读取第一数据;通过第一读写接口发送第一数据至软件层控制器,并将第一数据缓存至第一存储单元,以便于再次接收到第一读命令时直接从第一存储单元读取第一数据。与现有技术中并不识别待读写数据的类型,数据(元数据和一般数据)一旦缓存至RAM,就会立即被写入到Flash芯片中相比,可以通过设置第一读写接口和第一存储单元(SPRAM),将第一数据(需要多次读写的数据,包括元数据)缓存在SPRAM中,以便于再次接收到第一读命令时直接从第一存储单元读取第一数据,减少了第一数据在flash芯片中的读次数,可以降低对flash芯片的损耗,进而有效的提升系统的存储性能。
本发明另一实施例提供一种数据写入方法,如图3所示,包括:
S301、存储控制器通过第一读写接口获取软件层控制器发送的第一写命令,第一写命令中包含第一数据的特征值和待写入的第一数据。
其中,第一数据至少包括元数据,元数据(metadata)是指用于对其他数据进行索引或者描述其他数据的属性的数据,如文件名、文件权限等。在存储介质中相较于普通数据,对元数据的读写操作的次数较多。为了避免读写元数据时,对Flash芯片的多次读写造成的Flash芯片损耗问题,并有效提升系统的存储性能。
S302、存储控制器判断第一存储单元中是否缓存有第二数据,第二数据的特征值与第一数据的特征值相同。
示例性的,第一存储单元(SPRAM)可以是RAM中用于缓存元数据的一部分内存芯片,也可以是预设的独立的高性能存储芯片。在根据数据读写命令读取或者写入元数据时,可以首先判断第一存储单元中是否缓存有特征值与第一数据的特征值相同的数据(第二数据)。
具体的,若第一存储单元中缓存有第二数据,存储控制器则可以将第一数据覆盖第二数据,缓存至第一存储单元,并更新第一存储单元中缓存的第二数据的引用计数值,即继续执行S303;若第一存储单元中未缓存第二数据,存储控制器则可以将第一数据缓存至第一存储单元,并在第一存储单元中增加第一数据的引用计数值,即继续执行S304-307。
S303、存储控制器将第一数据缓存至第一存储单元,且第一数据覆盖第二数据,并更新第一存储单元中缓存的第二数据的引用计数值。
其中,当第一存储单元中缓存有第二数据时,则表示存储控制器可以直接用第一数据覆盖第二数据,将第一数据缓存至第一存储单元,并更新第一存储单元中缓存的第二数据的引用计数值,此时,第二数据的引用计数值纪委第一数据的引用计数值。
其中,第一数据的引用计数值用于记录存储控制器对第一数据的读写的次数,存储控制器每次读取或者缓存第一数据(元数据)后都可以对第一数据的引用计数值作加1的操作,例如,在一次读取元数据前,该元数据的引用计数值为3(表示存储控制器曾经对该元数据进行过3次读写操作),则在本次读取该元数据后,该元数据的引用计数值则更新为4。
进一步可选的,若第一存储单元中未缓存第二数据,则在存储控制器将所述第一数据缓存至所述第一存储单元之前,本发明实施例的方法还可以包括S304:
S304、存储控制器判断第一存储单元的缓存是否达到预设上限值。
具体的,若第一存储单元的缓存已达到预设上限值,则继续执行S305;若第一存储单元的缓存未达到预设上限值,则继续执行S306。
S305、存储控制器采用第一数据置换第一存储单元中缓存的第三数据,第三数据至少包括:缓存于第一存储单元中的,引用计数值按照由小到大的顺序排在第一位的数据。
具体的,存储控制器可以将第三数据写入第二存储单元,以减少第一存储单元的缓存,并缓存第一数据至第一存储单元。
需要说明的是,第三数据中除缓存于第一存储单元中的,引用计数值按照由小到大的顺序排在第一位的数据之外,还可以包括缓存于第一存储单元中的,引用计数值按照由小到大的顺序排在第二位、第三位、第四位的数据等。
示例性的,若第一存储单元中缓存的有N个数据,且预设采用第一数据置换第一存储单元中缓存的第三数据时,置换的数据个数为3。这N个数据的引用计数值按照由小到大的顺序排列:数据a的引用计数值为1、数据b的引用计数值为3、数据c的引用计数值为4、数据d的引用计数值为5,则存储控制器可以将数据a、数据b、数据c都写入第二存储单元,以减少第一存储单元的缓存,并缓存第一数据至第一存储单元。
S306、存储控制器直接将第一数据缓存至第一存储单元。
S307、存储控制器在第一存储单元中增加第一数据的引用计数值,第一数据的引用计数值为1。
S308、当检测到对第一数据的写入指示时,存储控制器将第一存储单元中缓存的所有第一数据写入第二存储单元。
其中,写入指示为接收自上层软件层控制器的刷写指令;或者,写入指示为断电指示
需要说明的是,本发明实施例的方法还可以包括:通过第二读写接口获取第二写命令,第二写命令不是元数据的写命令,第二写命令中包含待写入的数据;将待写入的数据缓存至第三存储单元,并从第三存储单元将待写入的数据写入第二存储单元,第三存储单元为RAM。
本发明实施例提供的数据写入方法,通过第一读写接口获取软件层控制器发送的第一写命令,第一写命令中包含第一数据的特征值和待写入的第一数据;根据第一数据的特征值,采用预设写策略将第一数据缓存至第一存储单元,并在第一存储单元中更新第一数据的引用计数值,第一数据的引用计数值用于记录在第一存储单元读写第一数据的次数;当检测到写入指示时,将第一存储单元中缓存的所有第一数据写入第二存储单元。与现有技术中并不识别待读写数据的类型,数据(元数据和一般数据)一旦缓存至RAM,就会立即被写入到Flash芯片中相比,可以通过设置第一读写接口和第一存储单元,即在RAM中设置SPRAM,将第一数据(需要多次读写的数据,包括元数据)缓存在SPRAM中,并且仅仅在检测到写入指示时,才将第一数据写入到flash芯片,减少了第一数据在flash芯片中的写次数,可以降低对flash芯片的损耗,进而有效的提升系统的存储性能。
本发明另一实施例提供一种数据读取方法,如图4所示,包括:
S401、存储控制器通过第一读写接口获取软件层控制器发送的第一读命令,第一读命令中包含第一数据的特征值。
其中,第一数据可以参考本发明其他实施例中的相关描述,本发明实施例这里不再赘述。
S402、存储控制器根据第一数据的特征值判断第一存储单元中是否缓存有第一数据。
具体的,若第一存储单元中未缓存第一数据,存储控制器则根据第一数据的特征值从第二存储单元读取第一数据,即继续执行S404;若第一存储单元中缓存有第一数据,存储控制器则根据第一数据的特征值直接从第一存储单元读取第一数据,即继续执行S403。
S403、存储控制器根据第一数据的特征值直接从第一存储单元读取第一数据。
S404、存储控制器根据第一数据的特征值从第二存储单元读取第一数据。
其中,本是实例中的第一存储单元、第二存储单元可以参考本发明其他实施例中的相关描述,本实施例这里不再赘述。
需要说明的是,若第一存储单元中未缓存第一数据,存储控制器则根据第一数据的特征值从第二存储单元读取第一数据,即继续执行S403后,本发明实施例的方法还可以包括S405-S407:
S405、存储控制器判断第一存储单元的缓存是否达到预设上限值。
具体的,若第一存储单元的缓存已达到预设上限值,则继续执行S407;若第一存储单元的缓存未达到预设上限值,则继续执行S408。
S406、存储控制器将第三数据写入第二存储单元,以减少第一存储单元的缓存,并缓存第一数据至第一存储单元,第三数据至少包括:缓存于第一存储单元中的,引用计数值按照由小到大的顺序排在第一位的数据。
S407、存储控制器直接将第一数据缓存至第一存储单元。
其中,在读取第一数据后,本发明实施例的方法还包括S408:
S408、存储控制器通过第一读写接口发送第一数据至软件层控制器。
需要说明的是,本发明实施例的方法还可以包括:存储控制器通过第二读写接口获取第二读命令,所述第二读命令不是元数据的读命令,所述第二读命令中包含待读出数据的特征值;根据所述待读出数据的特征值从第三存储单元或者所述第二存储单元读取相应的数据,并通过所述第二读写接口发送读取到的数据至上层软件层控制器,所述第三存储单元为RAM。
本发明实施例提供的数据读取方法,通过第一读写接口获取软件层控制器第一读命令,第一读命令中包含第一数据的特征值;根据第一数据的特征值判断第一存储单元中是否缓存有第一数据;若第一存储单元中未缓存第一数据,则根据、、所述第一数据的特征值从第二存储单元读取第一数据;通过第一读写接口发送第一数据至软件层控制器,并将第一数据缓存至第一存储单元,以便于再次接收到第一读命令时直接从第一存储单元读取第一数据。与现有技术中并不识别待读写数据的类型,数据(元数据和一般数据)一旦缓存至RAM,就会立即被写入到Flash芯片中相比,可以通过设置第一读写接口和第一存储单元(SPRAM),将第一数据(需要多次读写的数据,包括元数据)缓存在SPRAM中,以便于再次接收到第一读命令时直接从第一存储单元读取第一数据,减少了第一数据在flash芯片中的读次数,可以降低对flash芯片的损耗,进而有效的提升系统的存储性能。
本发明另一实施例提供一种存储控制器,如图5所示,包括:获取单元51、缓存单元52、写入单元53。
获取单元51,用于通过第一读写接口获取软件层控制器发送的第一写命令,所述第一写命令中包含第一数据的特征值和待写入的所述第一数据。
缓存单元52,用于根据所述获取单元51获取的所述第一数据的特征值,采用预设写策略将所述第一数据缓存至第一存储单元,并在所述第一存储单元中更新所述第一数据的引用计数值,所述第一数据的引用计数值用于记录在所述第一存储单元读写所述第一数据的次数。
写入单元53,用于当检测到对所述第一数据的写入指示时,将所述缓存单元52缓存至所述第一存储单元的所有所述第一数据写入第二存储单元。
进一步的,所述第一读写接口为预设的专用接口SPI。
所述第一存储单元为特殊用途随机存储器SPRAM,所述第二存储单元为Flash芯片;所述第一数据至少包括:元数据,所述元数据用于索引其他数据或者描述其他数据的属性。
所述写入指示为接收自上层软件层控制器的刷写指令;或者,所述写入指示为断电指示。
进一步的,如图6所示,在本发明实施例的一种应用场景中,所述缓存单元52,包括:判断模块521、覆盖模块522。
判断模块521,用于判断所述第一存储单元中是否缓存有第二数据,所述第二数据的特征值与所述获取单元51获取的所述第一数据的特征值相同的数据。
覆盖模块522,用于若所述判断模块判断得到所述第一存储单元中缓存有所述第二数据,则将所述第一数据缓存至所述第一存储单元,且所述第一数据覆盖所述第二数据,并更新所述第一存储单元中缓存的所述第二数据的引用计数值。
或者,
如图6所示,在本发明实施例的另一种应用场景中,所述缓存单元52,包括:判断模块521、缓存模块523。
判断模块521,用于判断所述第一存储单元中是否缓存有第二数据,所述第二数据的特征值与所述获取单元51获取的所述第一数据的特征值相同的数据。
缓存模块523,用于若所述判断模块判断得到所述第一存储单元未缓存所述第二数据,则将所述第一数据缓存至所述第一存储单元,并在所述第一存储单元中增加所述第一数据的引用计数值,所述第一数据的引用计数值为1。
进一步的,在这种应用场景中,所述判断模块521,还用于在所述缓存模块将所述第一数据缓存至所述第一存储单元之前,判断所述第一存储单元的缓存是否达到预设上限值。
在这种应用场景的一种情形中,所述缓存模块523,还用于若所述判断模块判断得到所述第一存储单元的缓存已达到所述预设上限值,则采用所述第一数据置换所述第一存储单元中缓存的第三数据,所述第三数据至少包括:缓存于所述第一存储单元中的,所述引用计数值按照由小到大的顺序排在第一位的数据。
或者,
在这种应用场景的另一种情形中,所述缓存模块523,还用于若所述判断模块判断得到所述第一存储单元的缓存未达到所述预设上限值,则直接将所述第一数据缓存至所述第一存储单元。
进一步的,所述缓存模块,还用于将所述第三数据写入第二存储单元,以减少所述第一存储单元的缓存,并缓存所述第一数据至所述第一存储单元。
进一步的,所述获取单元51,还用于通过第二读写接口获取所述软件层控制器发送的第二写命令,所述第二写命令不是元数据的写命令,所述第二写命令中包含待写入的数据。
所述缓存单元52,还用于将所述获取单元51获取的所述待写入的数据缓存至第三存储单元,并从所述第三存储单元将所述待写入的数据写入所述第二存储单元,所述第三存储单元为随机存储器RAM。
需要说明的是,本发明实施例提供的存储控制器中部分功能模块的具体描述可以参考方法实施例中的对应内容,本实施例这里不再详细赘述。
本发明实施例提供的存储控制器,通过第一读写接口获取软件层控制器发送的第一写命令,第一写命令中包含第一数据的特征值和待写入的第一数据;根据第一数据的特征值,采用预设写策略将第一数据缓存至第一存储单元,并在第一存储单元中更新第一数据的引用计数值,第一数据的引用计数值用于记录在第一存储单元读写第一数据的次数;当检测到写入指示时,将第一存储单元中缓存的所有第一数据写入第二存储单元。与现有技术中并不识别待读写数据的类型,数据(元数据和一般数据)一旦缓存至RAM,就会立即被写入到Flash芯片中相比,可以通过设置第一读写接口和第一存储单元,即在RAM中设置SPRAM,将第一数据(需要多次读写的数据,包括元数据)缓存在SPRAM中,并且仅仅在检测到写入指示时,才将第一数据写入到flash芯片,减少了第一数据在flash芯片中的读写次数,可以降低对flash芯片的损耗,进而有效的提升系统的存储性能。
本发明另一实施例提供一种存储控制器,如图7所示,包括:获取单元61、判断单元62、读取单元63、发送单元64、缓存单元65。
获取单元61,用于通过第一读写接口获取软件层控制器发送的第一读命令,所述第一读命令中包含第一数据的特征值。
判断单元62,用于根据所述获取单元61获取的所述第一数据的特征值判断所述第一存储单元中是否缓存有所述第一数据。
读取单元63,用于若所述判断单元62判断得到所述第一存储单元中未缓存所述第一数据,则根据所述第一数据的特征值从第二存储单元读取所述第一数据。
发送单元64,用于通过所述第一读写接口发送所述读取单元63读取的所述第一数据至所述软件层控制器。
缓存单元65,用于将所述读取单元63读取的所述第一数据缓存至所述第一存储单元,以便于再次接收到所述第一读命令时直接从所述第一存储单元读取所述第一数据。
进一步的,所述第一读写接口为预设的专用接口SPI。
所述第一存储单元为特殊用途随机存储器SPRAM,所述第二存储单元为Flash芯片;所述第一数据至少包括:元数据,所述元数据用于索引其他数据或者描述其他数据的属性。
进一步的,所述读取单元63,还用于若所述判断单元62判断得到所述第一存储单元中缓存有所述第一数据,则根据所述第一数据的特征值直接从所述第一存储单元读取所述第一数据。
进一步的,所述判断单元62,还用于在所述缓存单元65将所述第一数据缓存至所述第一存储单元之前,判断所述第一存储单元的缓存是否达到预设上限值。
所述缓存单元65,还用于若所述判断单元62判断得到所述第一存储单元的缓存已达到所述预设上限值,则将第三数据写入所述第二存储单元,以减少所述第一存储单元的缓存,并缓存所述第一数据至所述第一存储单元,所述第三数据至少包括:缓存于所述第一存储单元中的,所述引用计数值按照由小到大的顺序排在第一位的数据。
或者,
所述缓存单元65,还用于若所述判断单元62判断得到所述第一存储单元的缓存未达到所述预设上限值,则直接将所述第一数据缓存至所述第一存储单元。
进一步的,所述获取单元61,还用于通过第二读写接口获取所述软件层控制器发送的第二读命令,所述第二读命令不是元数据的读命令,所述第二读命令中包含待读出数据的特征值。
所述读取单元63,还用于根据所述获取单元61获取的所述待读出数据的特征值从第三存储单元或者所述第二存储单元读取相应的数据。
所述发送单元64,还用于通过所述第二读写接口发送所述读取单元63读取到的数据至所述软件层控制器,所述第三存储单元为RAM。
需要说明的是,本发明实施例提供的存储控制器中部分功能模块的具体描述可以参考方法实施例中的对应内容,本实施例这里不再详细赘述。
本发明实施例提供的存储控制器,通过第一读写接口获取软件层控制器发送的第一读命令,第一读命令中包含第一数据的特征值;根据第一数据的特征值判断第一存储单元中是否缓存有第一数据;若第一存储单元中未缓存第一数据,则根据、、所述第一数据的特征值从第二存储单元读取第一数据;通过第一读写接口发送第一数据至软件层控制器,并将第一数据缓存至第一存储单元,以便于再次接收到第一读命令时直接从第一存储单元读取第一数据。与现有技术中并不识别待读写数据的类型,数据(元数据和一般数据)一旦缓存至RAM,就会立即被写入到Flash芯片中相比,可以通过设置第一读写接口和第一存储单元(SPRAM),将第一数据(需要多次读写的数据,包括元数据)缓存在SPRAM中,以便于再次接收到第一读命令时直接从第一存储单元读取第一数据,减少了第一数据在flash芯片中的读次数,可以降低对flash芯片的损耗,进而有效的提升系统的存储性能。
本发明另一实施例提供一种存储控制器,如图8所示,包括:处理器71、第一读写接口72。
处理器71,用于通过第一读写接口72获取存储控制器发送的第一写命令,所述第一写命令中包含第一数据的特征值和待写入的所述第一数据;根据所述第一数据的特征值,采用预设写策略将所述第一数据缓存至第一存储单元,并在所述第一存储单元中更新所述第一数据的引用计数值,所述第一数据的引用计数值用于记录在所述第一存储单元读写所述第一数据的次数所述处理器71,还用于;当检测到对所述第一数据的写入指示时,将所述第一存储单元中缓存的所有所述第一数据写入第二存储单元。
进一步的,所述第一存储单元为特殊用途随机存储器SPRAM,所述第二存储单元为Flash芯片;所述第一数据至少包括:元数据,所述元数据用于索引其他数据或者描述其他数据的属性。
所述写入指示为接收自上层软件层控制器的刷写指令;或者,所述写入指示为断电指示。
进一步的,所述处理器71,还用于判断所述第一存储单元中是否缓存有第二数据,所述第二数据的特征值与所述第一数据的特征值相同的数据;若所述第一存储单元中缓存有所述第二数据,则将所述第一数据覆盖所述第二数据,缓存至所述第一存储单元,并更新所述第一存储单元中缓存的所述第二数据的引用计数值;或者,若所述第一存储单元未缓存所述第二数据,则将所述第一数据缓存至所述第一存储单元,并在所述第一存储单元中增加所述第一数据的引用计数值,所述第一数据的引用计数值为1。
进一步的,所述处理器71,还用于在将所述第一数据缓存至所述第一存储单元之前,判断所述第一存储单元的缓存是否达到预设上限值;若所述第一存储单元的缓存已达到所述预设上限值,则采用所述第一数据置换所述第一存储单元中缓存的第三数据,所述第三数据至少包括:缓存于所述第一存储单元中的,所述引用计数值按照由小到大的顺序排在第一位的数据;或者,若所述第一存储单元的缓存未达到所述预设上限值,则直接将所述第一数据缓存至所述第一存储单元。
进一步的,所述处理器71,还用于将所述第三数据写入第二存储单元,以减少所述第一存储单元的缓存,并缓存所述第一数据至所述第一存储单元。
进一步的,所述存储控制器,还包括:第二读写接口73。
进一步的,所述处理器71,还用于通过第二读写接口73获取第二写命令,所述第二写命令不是元数据的写命令,所述第二写命令中包含待写入的数据;将所述待写入的数据缓存至第三存储单元,并从所述第三存储单元将所述待写入的数据写入所述第二存储单元,所述第三存储单元为随机存储器RAM。
需要说明的是,本发明实施例提供的存储控制器中部分功能模块的具体描述可以参考方法实施例中的对应内容,本实施例这里不再详细赘述。
本发明实施例提供的存储控制器,通过第一读写接口获取软件层控制器发送的第一写命令,第一写命令中包含第一数据的特征值和待写入的第一数据;根据第一数据的特征值,采用预设写策略将第一数据缓存至第一存储单元,并在第一存储单元中更新第一数据的引用计数值,第一数据的引用计数值用于记录在第一存储单元读写第一数据的次数;当检测到写入指示时,将第一存储单元中缓存的所有第一数据写入第二存储单元。与现有技术中并不识别待读写数据的类型,数据(元数据和一般数据)一旦缓存至RAM,就会立即被写入到Flash芯片中相比,可以通过设置第一读写接口和第一存储单元,即在RAM中设置SPRAM,将第一数据(需要多次读写的数据,包括元数据)缓存在SPRAM中,并且仅仅在检测到写入指示时,才将第一数据写入到flash芯片,减少了第一数据在flash芯片中的写次数,可以降低对flash芯片的损耗,进而有效的提升系统的存储性能。
本发明另一实施例提供一种存储控制器,如图8所示,包括:处理器71、第一读写接口72。
处理器71,用于通过第一读写接口72获取软件层控制器发送的第一读命令,所述第一读命令中包含第一数据的特征值;根据所述第一数据的特征值判断第一存储单元中是否缓存有所述第一数据;若所述第一存储单元中未缓存所述第一数据,则根据所述第一数据的特征值从第二存储单元读取所述第一数据;通过所述第一读写接口72发送所述第一数据至所述软件层控制器,并将所述第一数据缓存至所述第一存储单元,以便于再次接收到所述第一读命令时直接从所述第一存储单元读取所述第一数据。
进一步的,所述第一读写接口为预设的专用接口SPI。
所述第一存储单元为特殊用途随机存储器SPRAM,所述第二存储单元为Flash芯片;所述第一数据至少包括:元数据,所述元数据用于索引其他数据或者描述其他数据的属性。
进一步的,所述处理器71,还用于若所述第一存储单元中缓存有所述第一数据,则根据所述第一数据的特征值直接从所述第一存储单元读取所述第一数据。
进一步的,所述处理器71,还用于在所述将所述第一数据缓存至所述第一存储单元之前,判断所述第一存储单元的缓存是否达到预设上限值;若所述第一存储单元的缓存已达到所述预设上限值,则将第三数据写入所述第二存储单元,以减少所述第一存储单元的缓存,并缓存所述第一数据至所述第一存储单元,所述第三数据至少包括:缓存于所述第一存储单元中的,所述引用计数值按照由小到大的顺序排在第一位的数据;或者,若所述第一存储单元的缓存未达到所述预设上限值,则直接将所述第一数据缓存至所述第一存储单元。
进一步的,如图8所示,所述存储控制器,还包括:第二读写接口73。
进一步的,所述处理器71,还用于通过第二读写接口73获取第二读命令,所述第二读命令不是元数据的读命令,所述第二读命令中包含待读出数据的特征值;根据所述待读出数据的特征值从第三存储单元或者所述第二存储单元读取相应的数据,并通过所述第二读写接口发送读取到的数据至所述软件层控制器,所述第三存储单元为RAM。
需要说明的是,本发明实施例提供的存储控制器中部分功能模块的具体描述可以参考方法实施例中的对应内容,本实施例这里不再详细赘述。
本发明实施例提供的存储控制器,通过第一读写接口获取软件层控制器发送的第一读命令,第一读命令中包含第一数据的特征值;根据第一数据的特征值判断第一存储单元中是否缓存有第一数据;若第一存储单元中未缓存第一数据,则根据、、所述第一数据的特征值从第二存储单元读取第一数据;通过第一读写接口发送第一数据至软件层控制器,并将第一数据缓存至第一存储单元,以便于再次接收到第一读命令时直接从第一存储单元读取第一数据。与现有技术中并不识别待读写数据的类型,数据(元数据和一般数据)一旦缓存至RAM,就会立即被写入到Flash芯片中相比,可以通过设置第一读写接口和第一存储单元(SPRAM),将第一数据(需要多次读写的数据,包括元数据)缓存在SPRAM中,以便于再次接收到第一读命令时直接从第一存储单元读取第一数据,减少了第一数据在flash芯片中的读次数,可以降低对flash芯片的损耗,进而有效的提升系统的存储性能。
本发明另一实施例提供一种计算机,如图9所示,包括:存储控制器81、软件层控制器82、第一存储单元83、第二存储单元84。
存储控制器81,用于通过所述第一读写接口获取所述软件层控制器发送的第一写命令,所述第一写命令中包含第一数据的特征值和待写入的所述第一数据;根据所述第一数据的特征值,采用预设写策略将所述第一数据缓存至第一存储单元,并在所述第一存储单元中更新所述第一数据的引用计数值,所述第一数据的引用计数值用于记录在所述第一存储单元读写所述第一数据的次数;当检测到对所述第一数据的写入指示时,将所述第一存储单元中缓存的所有所述第一数据写入第二存储单元。
软件层控制器82,用于通过所述第一读写接口发送第一写命令至所述存储控制器。
进一步的,所述存储控制器81,还用于通过所述第一读写接口获取所述软件层控制器发送的第一读命令,所述第一读命令中包含所述第一数据的特征值;根据所述第一数据的特征值判断所述第一存储单元中是否缓存有所述第一数据;若所述第一存储单元中未缓存所述第一数据,则根据所述第一数据的特征值从所述第二存储单元读取所述第一数据;通过所述第一读写接口发送所述第一数据至所述软件层控制器,并将所述第一数据缓存至所述第一存储单元,以便于再次接收到所述第一读命令时直接从所述第一存储单元读取所述第一数据。
软件层控制器82,还用于通过所述第一读写接口发送第一读命令至所述存储控制器;接收所述存储控制器通过所述第一读写接口发送的所述第一数据。
第一存储单元83,用于缓存所述第一数据。
第二存储单元84,用于缓存所述第一数据。
进一步的,所述计算机,还可以包括:第三存储单元85。
第三存储单元85,用于存储所述第一数据。
本发明实施例提供的计算机,存储控制器通过第一读写接口获取软件层控制器发送的第一写命令,第一写命令中包含第一数据的特征值和待写入的第一数据;根据第一数据的特征值,采用预设写策略将第一数据缓存至第一存储单元,并在第一存储单元中更新第一数据的引用计数值,第一数据的引用计数值用于记录在第一存储单元读写第一数据的次数;当检测到写入指示时,将第一存储单元中缓存的所有第一数据写入第二存储单元。与现有技术中并不识别待读写数据的类型,数据(元数据和一般数据)一旦缓存至RAM,就会立即被写入到Flash芯片中相比,可以通过设置第一读写接口和第一存储单元,即在RAM中设置SPRAM,将第一数据(需要多次读写的数据,包括元数据)缓存在SPRAM中,并且仅仅在检测到写入指示时,才将第一数据写入到flash芯片,减少了第一数据在flash芯片中的写次数,可以降低对flash芯片的损耗,进而有效的提升系统的存储性能。
通过以上的实施方式的描述,所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(processor)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。

Claims (24)

1.一种数据写入方法,其特征在于,包括:
通过第一读写接口获取软件层控制器发送的第一写命令,所述第一写命令中包含第一数据的特征值和待写入的所述第一数据;
根据所述第一数据的特征值,采用预设写策略将所述第一数据缓存至第一存储单元,并在所述第一存储单元中更新所述第一数据的引用计数值,所述第一数据的引用计数值用于记录在所述第一存储单元读写所述第一数据的次数;
当检测到对所述第一数据的写入指示时,将所述第一存储单元中缓存的所有所述第一数据写入第二存储单元。
2.根据权利要求1所述的数据写入方法,其特征在于,所述第一读写接口为预设的专用接口SPI;
所述第一存储单元为特殊用途随机存储器SPRAM,所述第二存储单元为Flash芯片;所述第一数据至少包括:元数据,所述元数据用于索引其他数据或者描述其他数据的属性;
所述写入指示为接收自所述软件层控制器的刷写指令;或者,所述写入指示为断电指示。
3.根据权利要求1或2所述的数据写入方法,其特征在于,所述根据所述第一数据的特征值,采用预设写策略将所述第一数据缓存至第一存储单元,并在所述第一存储单元中更新所述第一数据的引用计数值,包括:
判断所述第一存储单元中是否缓存有第二数据,所述第二数据的特征值与所述第一数据的特征值相同;
若所述第一存储单元中缓存有所述第二数据,则将所述第一数据缓存至所述第一存储单元,且所述第一数据覆盖所述第二数据,并更新所述第一存储单元中缓存的所述第二数据的引用计数值;
或者,
若所述第一存储单元未缓存所述第二数据,则将所述第一数据缓存至所述第一存储单元,并在所述第一存储单元中增加所述第一数据的引用计数值,所述第一数据的引用计数值为1。
4.根据权利要求3所述的数据写入方法,其特征在于,在所述将所述第一数据缓存至所述第一存储单元之前,所述方法还包括:
判断所述第一存储单元的缓存是否达到预设上限值;
所述将所述第一数据缓存至所述第一存储单元,包括:
若所述第一存储单元的缓存已达到所述预设上限值,则采用所述第一数据置换所述第一存储单元中缓存的第三数据,所述第三数据至少包括:缓存于所述第一存储单元中的,所述引用计数值按照由小到大的顺序排在第一位的数据;
或者,
若所述第一存储单元的缓存未达到所述预设上限值,则直接将所述第一数据缓存至所述第一存储单元。
5.根据权利要求4所述的数据写入方法,其特征在于,所述采用所述第一数据置换所述第一存储单元中缓存的第三数据,包括:
将所述第三数据写入第二存储单元,以减少所述第一存储单元的缓存,并缓存所述第一数据至所述第一存储单元。
6.根据权利要求1所述的数据写入方法,其特征在于,还包括:
通过第二读写接口获取所述软件层控制器发送的第二写命令,所述第二写命令不是元数据的写命令,所述第二写命令中包含待写入的数据;
将所述待写入的数据缓存至第三存储单元,并从所述第三存储单元将所述待写入的数据写入所述第二存储单元,所述第三存储单元为随机存储器RAM。
7.一种数据读取方法,其特征在于,包括:
通过第一读写接口获取软件层控制器发送的第一读命令,所述第一读命令中包含第一数据的特征值;
根据所述第一数据的特征值判断第一存储单元中是否缓存有所述第一数据;
若所述第一存储单元中未缓存所述第一数据,则根据所述第一数据的特征值从第二存储单元读取所述第一数据;
通过所述第一读写接口发送所述第一数据至所述软件层控制器,并将所述第一数据缓存至所述第一存储单元,以便于再次接收到所述第一读命令时直接从所述第一存储单元读取所述第一数据。
8.根据权利要求7所述的数据读取方法,其特征在于,所述第一读写接口为预设的专用接口SPI;
所述第一存储单元为特殊用途随机存储器SPRAM,所述第二存储单元为Flash芯片;所述第一数据至少包括:元数据,所述元数据用于索引其他数据或者描述其他数据的属性。
9.根据权利要求7或8所述的数据读取方法,其特征在于,
若所述第一存储单元中缓存有所述第一数据,则根据所述第一数据的特征值直接从所述第一存储单元读取所述第一数据。
10.根据权利要求7或8所述的数据读取方法,其特征在于,在所述将所述第一数据缓存至所述第一存储单元之前,所述方法还包括:
判断所述第一存储单元的缓存是否达到预设上限值;
所述将所述第一数据缓存至所述第一存储单元,包括:
若所述第一存储单元的缓存已达到所述预设上限值,则将第三数据写入所述第二存储单元,以减少所述第一存储单元的缓存,并缓存所述第一数据至所述第一存储单元,所述第三数据至少包括:缓存于所述第一存储单元中的,所述引用计数值按照由小到大的顺序排在第一位的数据;
或者,
若所述第一存储单元的缓存未达到所述预设上限值,则直接将所述第一数据缓存至所述第一存储单元。
11.根据权利要求7所述的数据读取方法,其特征在于,还包括:
通过第二读写接口获取所述软件层控制器发送的第二读命令,所述第二读命令不是元数据的读命令,所述第二读命令中包含待读出数据的特征值;
根据所述待读出数据的特征值从第三存储单元或者所述第二存储单元读取相应的数据,并通过所述第二读写接口发送读取到的数据至所述软件层控制器,所述第三存储单元为随机存储器RAM。
12.一种存储控制器,其特征在于,包括:
获取单元,用于通过第一读写接口获取软件层控制器发送的第一写命令,所述第一写命令中包含第一数据的特征值和待写入的所述第一数据;
缓存单元,用于根据所述获取单元获取的所述第一数据的特征值,采用预设写策略将所述第一数据缓存至第一存储单元,并在所述第一存储单元中更新所述第一数据的引用计数值,所述第一数据的引用计数值用于记录在所述第一存储单元读写所述第一数据的次数;
写入单元,用于当检测到对所述第一数据的写入指示时,将所述缓存单元缓存至所述第一存储单元的所有所述第一数据写入第二存储单元。
13.根据权利要求12所述的存储控制器,其特征在于,所述第一读写接口为预设的专用接口SPI;
所述第一存储单元为特殊用途随机存储器SPRAM,所述第二存储单元为Flash芯片;所述第一数据至少包括:元数据,所述元数据用于索引其他数据或者描述其他数据的属性;
所述写入指示为接收自上层软件层控制器的刷写指令;或者,所述写入指示为断电指示。
14.根据权利要求12或13所述的存储控制器,其特征在于,所述缓存单元,包括:
判断模块,用于判断所述第一存储单元中是否缓存有第二数据,所述第二数据的特征值与所述获取单元获取的所述第一数据的特征值相同;
覆盖模块,用于若所述判断模块判断得到所述第一存储单元中缓存有所述第二数据,则将所述第一数据缓存至所述第一存储单元,且所述第一数据覆盖所述第二数据,并更新所述第一存储单元中缓存的所述第二数据的引用计数值;
或者,
所述缓存单元,还包括:
缓存模块,用于若所述判断模块判断得到所述第一存储单元未缓存所述第二数据,则将所述第一数据缓存至所述第一存储单元,并在所述第一存储单元中增加所述第一数据的引用计数值,所述第一数据的引用计数值为1。
15.根据权利要求14所述的存储控制器,其特征在于,所述判断模块,还用于在所述缓存模块将所述第一数据缓存至所述第一存储单元之前,判断所述第一存储单元的缓存是否达到预设上限值;
所述缓存模块,还用于若所述判断模块判断得到所述第一存储单元的缓存已达到所述预设上限值,则采用所述第一数据置换所述第一存储单元中缓存的第三数据,所述第三数据至少包括:缓存于所述第一存储单元中的,所述引用计数值按照由小到大的顺序排在第一位的数据;
或者,
所述缓存模块,还用于若所述判断模块判断得到所述第一存储单元的缓存未达到所述预设上限值,则直接将所述第一数据缓存至所述第一存储单元。
16.根据权利要求15所述的存储控制器,其特征在于,所述缓存模块,还用于将所述第三数据写入第二存储器第二存储单元,以减少所述第一存储器第一存储单元的缓存,并缓存所述第一数据至所述第一存储器第一存储单元。
17.根据权利要求12所述的存储控制器,其特征在于,所述获取单元,还用于通过第二读写接口获取所述软件层控制器发送的第二写命令,所述第二写命令不是元数据的写命令,所述第二写命令中包含待写入的数据;
所述缓存单元,还用于将所述获取单元获取的所述待写入的数据缓存至第三存储单元,并从所述第三存储单元将所述待写入的数据写入所述第二存储单元,所述第三存储单元为随机存储器RAM。
18.一种存储控制器,其特征在于,包括:
获取单元,用于通过第一读写接口获取软件层控制器发送的第一读命令,所述第一读命令中包含第一数据的特征值;
判断单元,用于根据所述获取单元获取的所述第一数据的特征值判断所述第一存储单元中是否缓存有所述第一数据;
读取单元,用于若所述判断单元判断得到所述第一存储单元中未缓存所述第一数据,则根据所述第一数据的特征值从第二存储单元读取所述第一数据;
发送单元,用于通过所述第一读写接口发送所述读取单元读取的所述第一数据至所述软件层控制器;
缓存单元,用于将所述读取单元读取的所述第一数据缓存至所述第一存储单元,以便于再次接收到所述第一读命令时直接从所述第一存储单元读取所述第一数据。
19.根据权利要求18所述的存储控制器,其特征在于,所述第一读写接口为预设的专用接口SPI;
所述第一存储单元为特殊用途随机存储器SPRAM,所述第二存储单元为Flash芯片;所述第一数据至少包括:元数据,所述元数据用于索引其他数据或者描述其他数据的属性。
20.根据权利要求18或19所述的存储控制器,其特征在于,
所述读取单元,还用于若所述判断单元判断得到所述第一存储单元中缓存有所述第一数据,则根据所述第一数据的特征值直接从所述第一存储单元读取所述第一数据。
21.根据权利要求18或19所述的存储控制器,其特征在于,所述判断单元,还用于在所述缓存单元将所述第一数据缓存至所述第一存储单元之前,判断所述第一存储单元的缓存是否达到预设上限值;
所述缓存单元,还用于若所述判断单元判断得到所述第一存储单元的缓存已达到所述预设上限值,则将第三数据写入所述第二存储单元,以减少所述第一存储单元的缓存,并缓存所述第一数据至所述第一存储单元,所述第三数据至少包括:缓存于所述第一存储单元中的,所述引用计数值按照由小到大的顺序排在第一位的数据;
或者,
所述缓存单元,还用于若所述判断单元判断得到所述第一存储单元的缓存未达到所述预设上限值,则直接将所述第一数据缓存至所述第一存储单元。
22.根据权利要求18所述的存储控制器,其特征在于,所述获取单元,还用于通过第二读写接口获取所述软件层控制器发送的第二读命令,所述第二读命令不是元数据的读命令,所述第二读命令中包含待读出数据的特征值;
所述读取单元,还用于根据所述获取单元获取的所述待读出数据的特征值从第三存储单元或者所述第二存储单元读取相应的数据;
所述发送单元,还用于通过所述第二读写接口发送所述读取单元读取到的数据至所述软件层控制器,所述第三存储单元为RAM。
23.一种计算机,其特征在于,包括:硬件层和运行于所述硬件层之上的软件层控制器,所述硬件层包括存储控制器,以及与所述存储控制器连接的至少一个存储单元;所述存储控制器包括至少一个第一读写接口,所述第一读写接口能够被所述软件层控制器感知;
所述存储控制器,用于通过所述第一读写接口获取所述软件层控制器发送的第一写命令,所述第一写命令中包含第一数据的特征值和待写入的所述第一数据;根据所述第一数据的特征值,采用预设写策略将所述第一数据缓存至第一存储单元,并在所述第一存储单元中更新所述第一数据的引用计数值,所述第一数据的引用计数值用于记录在所述第一存储单元读写所述第一数据的次数;当检测到对所述第一数据的写入指示时,将所述第一存储单元中缓存的所有所述第一数据写入第二存储单元;
所述软件层控制器,用于通过所述第一读写接口发送第一写命令至所述存储控制器。
24.根据权利要求23所述的计算机,其特征在于,
所述存储控制器,还用于通过所述第一读写接口获取所述软件层控制器发送的第一读命令,所述第一读命令中包含所述第一数据的特征值;根据所述第一数据的特征值判断所述第一存储单元中是否缓存有所述第一数据;若所述第一存储单元中未缓存所述第一数据,则根据所述第一数据的特征值从所述第二存储单元读取所述第一数据;通过所述第一读写接口发送所述第一数据至所述软件层控制器,并将所述第一数据缓存至所述第一存储单元,以便于再次接收到所述第一读命令时直接从所述第一存储单元读取所述第一数据;
所述软件层控制器,还用于通过所述第一读写接口发送第一读命令至所述存储控制器;接收所述存储控制器通过所述第一读写接口发送的所述第一数据。
CN201310162901.6A 2013-05-06 2013-05-06 一种数据读写方法、存储控制器及计算机 Active CN104142894B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN201310162901.6A CN104142894B (zh) 2013-05-06 一种数据读写方法、存储控制器及计算机
PCT/CN2013/087235 WO2014180112A1 (zh) 2013-05-06 2013-11-15 一种数据读写方法、存储控制器及计算机

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201310162901.6A CN104142894B (zh) 2013-05-06 一种数据读写方法、存储控制器及计算机

Publications (2)

Publication Number Publication Date
CN104142894A true CN104142894A (zh) 2014-11-12
CN104142894B CN104142894B (zh) 2018-02-09

Family

ID=

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104461935A (zh) * 2014-11-27 2015-03-25 华为技术有限公司 一种进行数据存储的方法、装置及系统
CN105677585A (zh) * 2015-12-31 2016-06-15 联想(北京)有限公司 一种数据处理方法、电子设备
CN108628545A (zh) * 2017-03-23 2018-10-09 爱思开海力士有限公司 数据存储装置及其操作方法
CN109471596A (zh) * 2018-10-31 2019-03-15 北京小米移动软件有限公司 数据写入方法、装置、设备及存储介质
CN110209343A (zh) * 2018-07-23 2019-09-06 腾讯科技(深圳)有限公司 数据存储方法、装置、服务器及存储介质
CN112114756A (zh) * 2020-09-27 2020-12-22 海光信息技术有限公司 存储系统及电子设备
CN113064843A (zh) * 2021-03-24 2021-07-02 深圳市时创意电子有限公司 一种固态硬盘的制造方法与固态硬盘

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120131283A1 (en) * 2010-05-18 2012-05-24 Lsi Corporation Memory manager for a network communications processor architecture
CN102667737A (zh) * 2009-12-21 2012-09-12 索尼公司 缓冲存储器和缓冲存储器控制单元
CN103049394A (zh) * 2012-11-30 2013-04-17 记忆科技(深圳)有限公司 固态硬盘数据缓存的方法及其系统
CN103078944A (zh) * 2013-01-08 2013-05-01 赛凡信息科技(厦门)有限公司 基于分布式对称文件系统的数据中心架构

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102667737A (zh) * 2009-12-21 2012-09-12 索尼公司 缓冲存储器和缓冲存储器控制单元
US20120131283A1 (en) * 2010-05-18 2012-05-24 Lsi Corporation Memory manager for a network communications processor architecture
CN103049394A (zh) * 2012-11-30 2013-04-17 记忆科技(深圳)有限公司 固态硬盘数据缓存的方法及其系统
CN103078944A (zh) * 2013-01-08 2013-05-01 赛凡信息科技(厦门)有限公司 基于分布式对称文件系统的数据中心架构

Cited By (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2016082524A1 (zh) * 2014-11-27 2016-06-02 华为技术有限公司 一种进行数据存储的方法、装置及系统
CN104461935B (zh) * 2014-11-27 2018-03-13 华为技术有限公司 一种进行数据存储的方法、装置及系统
CN104461935A (zh) * 2014-11-27 2015-03-25 华为技术有限公司 一种进行数据存储的方法、装置及系统
CN105677585A (zh) * 2015-12-31 2016-06-15 联想(北京)有限公司 一种数据处理方法、电子设备
CN105677585B (zh) * 2015-12-31 2019-01-15 联想(北京)有限公司 一种数据处理方法、电子设备
US10642494B2 (en) 2015-12-31 2020-05-05 Lenovo (Beijing) Limited Method, electronic device and computer program product for data processing
CN108628545B (zh) * 2017-03-23 2021-05-07 爱思开海力士有限公司 数据存储装置及其操作方法
CN108628545A (zh) * 2017-03-23 2018-10-09 爱思开海力士有限公司 数据存储装置及其操作方法
CN110209343A (zh) * 2018-07-23 2019-09-06 腾讯科技(深圳)有限公司 数据存储方法、装置、服务器及存储介质
CN110209343B (zh) * 2018-07-23 2021-12-14 腾讯科技(深圳)有限公司 数据存储方法、装置、服务器及存储介质
CN109471596A (zh) * 2018-10-31 2019-03-15 北京小米移动软件有限公司 数据写入方法、装置、设备及存储介质
CN112114756A (zh) * 2020-09-27 2020-12-22 海光信息技术有限公司 存储系统及电子设备
CN112114756B (zh) * 2020-09-27 2022-04-05 海光信息技术股份有限公司 存储系统及电子设备
CN113064843A (zh) * 2021-03-24 2021-07-02 深圳市时创意电子有限公司 一种固态硬盘的制造方法与固态硬盘

Also Published As

Publication number Publication date
WO2014180112A1 (zh) 2014-11-13

Similar Documents

Publication Publication Date Title
US20080195833A1 (en) Systems, methods and computer program products for operating a data processing system in which a file system's unit of memory allocation is coordinated with a storage system's read/write operation unit
CN106445398B (zh) 一种基于新型存储器的嵌入式文件系统及其实现方法
US20070174549A1 (en) Method for utilizing a memory interface to control partitioning of a memory module
CN105224237A (zh) 一种数据存储方法及装置
US9164890B2 (en) Storage device capable of increasing its life cycle and operating method thereof
KR101566849B1 (ko) 메모리 장치 관리 방법, 그 관련 메모리 장치 및 그 관련 제어기
US20130124793A1 (en) Method For Utilizing A Memory Interface To Control Partitioning Of A Memory Module
CN107423231B (zh) 用来管理一记忆装置的方法以及记忆装置与控制器
CN102955751B (zh) 存储器储存装置、存储器控制器与数据写入方法
KR20140044070A (ko) 버퍼 메모리 장치를 포함하는 데이터 저장 장치
US20200142620A1 (en) Solid state drive and data accessing method thereof
KR102595233B1 (ko) 데이터 처리 시스템 및 그것의 동작 방법
CN105183388A (zh) 一种硬盘物理序列号的获取方法、装置以及系统
KR20160105625A (ko) 데이터 저장 장치 및 그것의 동작 방법
CN104991736A (zh) 写数据方法、装置以及存储设备
CN102880432B (zh) 利用数据有限寿命提高闪存芯片写入速度的方法、系统及其控制器
CN104216834A (zh) 一种内存访问的方法、缓冲调度器和内存模块
CN103970512A (zh) 多核处理器及其并行重放方法
CN103617135B (zh) 一种存储设备中数据读取的方法及装置
CN103389941A (zh) 存储器格式化方法、存储器控制器及存储器存储装置
CN102543184B (zh) 存储器储存装置、其存储器控制器与数据写入方法
CN104238956A (zh) 数据写入方法、存储器控制器与存储器存储装置
CN102467459B (zh) 数据写入方法、存储器控制器与存储器储存装置
CN104142894A (zh) 一种数据读写方法、存储控制器及计算机
CN104424124A (zh) 内存装置、电子设备和用于控制内存装置的方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant