CN107153619A - 固态硬盘数据缓存方法及装置 - Google Patents

固态硬盘数据缓存方法及装置 Download PDF

Info

Publication number
CN107153619A
CN107153619A CN201710447323.9A CN201710447323A CN107153619A CN 107153619 A CN107153619 A CN 107153619A CN 201710447323 A CN201710447323 A CN 201710447323A CN 107153619 A CN107153619 A CN 107153619A
Authority
CN
China
Prior art keywords
data
cache resources
resources pond
threshold
cached
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.)
Pending
Application number
CN201710447323.9A
Other languages
English (en)
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.)
Hunan Goke Microelectronics Co Ltd
Original Assignee
Hunan Goke Microelectronics 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 Hunan Goke Microelectronics Co Ltd filed Critical Hunan Goke Microelectronics Co Ltd
Priority to CN201710447323.9A priority Critical patent/CN107153619A/zh
Publication of CN107153619A publication Critical patent/CN107153619A/zh
Pending legal-status Critical Current

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/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0866Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
    • G06F12/0871Allocation or management of cache space
    • 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/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0893Caches characterised by their organisation or structure
    • G06F12/0895Caches characterised by their organisation or structure of parts of caches, e.g. directory or tag array
    • 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/10Providing a specific technical effect
    • G06F2212/1016Performance improvement
    • G06F2212/1021Hit rate 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/10Providing a specific technical effect
    • G06F2212/1041Resource optimization
    • G06F2212/1044Space efficiency 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/21Employing a record carrier using a specific recording technology
    • G06F2212/214Solid state disk
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/60Details of cache memory
    • G06F2212/604Details relating to cache allocation

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)

Abstract

本申请实施例公开一种固态硬盘数据缓存方法及装置,通过将固态硬盘缓存资源划分为第一缓存资源池和第二缓存资源池,其中,第一缓存资源池压和第二缓存资源池的配额大于第二缓存资源池,在缓存数据时,检测待缓存数据的数据块大小,将数据块小于或等于第一阈值的常用特征数据缓存至第一缓存资源池,将数据块大于第一阈值的非常用特征数据缓存至第二缓存资源池,本方法可将有限的缓存资源尽量分给常用特征数据,从而提升常用特征数据的缓存使用率,减少常用特征数据的下刷率,提升其缓存命中率,从而达到提升固态硬盘性能的目的。

Description

固态硬盘数据缓存方法及装置
技术领域
本申请涉及存储技术领域,尤其涉及一种固态硬盘数据缓存方法及装置。
背景技术
固态硬盘(英文:Solid State Drives,缩写:SSD)通常指用固态电子存储芯片阵列制成的硬盘,由控制单元和存储单元组成。固态硬盘在接口的规范和定义、功能及使用方法上与普通硬盘相同,被广泛应用于各行各业。
固态硬盘不存在寻道时间,在随机读取零散小文件的时候效率较高,加载程序的速度较快。固态硬盘缓存技术即将需要频繁读写的数据缓存到读写速度较为快速的固态硬盘中,加速这类热点数据的读写速度。目前,固态硬盘主控通常采用业务无关性设计,即固态硬盘主控不理解业务数据内容,不预估各种类型数据的数据块大小和访问频率。现有的固态硬盘数据缓存方法通常针对所有数据进行统一处理,使用有限的RAM空间对所有主机类型数据进行统一缓存,其中,所有主机类型数据均采用相同方式存储。
然而,在常用特征数据和非常用特征数据同时读写的情况下,现有的固态硬盘数据缓存方法,会造成非常用特征数据与常用特征数据抢占有限的缓存资源,引发常用特征数据与非常用特征数据的缓存数据交叉下刷,促使常用特征数据与非常用特征数据在闪存上交叉存放的概率提升,进一步导致后续垃圾回收(英文:Garbage Collection,缩写:GC)机制搬移有效数据量的增加,并且,常用特征数据的缓存命中率低,下刷率较高,容易因为频繁访问元数据而频繁访问闪存,导致固态硬盘的性能降低。
发明内容
本申请提供一种固态硬盘数据缓存方法及装置,以解决现有的固态硬盘数据缓存方法导致固态硬盘的性能降低的问题。
第一方面,本申请实施例提供一种固态硬盘数据缓存方法,包括如下步骤:
检测待缓存数据的数据块大小;
判断所述数据块大小是否小于或等于第一阈值;
如果所述数据块小于或等于第一阈值,查询第一缓存资源池;
判断所述第一缓存资源池的已用缓存区中是否存在与所述待缓存数据相匹配的历史数据;
如果所述第一缓存资源池内不存在与所述待缓存数据相匹配的历史数据,对所述待缓存数据标记时间戳;
将所述待缓存数据缓存至所述第一缓存资源池的空闲缓存区;
如果所述待缓存数据的数据块大于第一阈值,判断所述待缓存数据的数据块大小是否小于或者等于第二阈值;
如果所述待缓存数据的数据块小于或者等于第二阈值,将所述待缓存数据缓存至第二缓存资源池,所述第二缓存资源池的空间配额小于所述第一缓存资源池的空间配额。
结合本申请实施例,在本申请实施例的第一种可实施方式中,将所述待缓存数据缓存至所述第一缓存资源池的空闲缓存区之后,包括:
判断所述空闲缓存区的缓存资源是否小于预设资源阈值;
如果所述空闲缓存区的缓存资源小于预设资源阈值,将所述第一缓存资源池的已用缓存区中时间戳最远的数据下刷至NAND-flash存储介质。
结合本申请实施例,在本申请实施例的第二种可实施方式中,判断所述第一缓存资源池的已用缓存区中是否存在与所述待缓存数据相匹配的历史数据之后,包括:
如果所述第一缓存资源池的已用缓存区中存在与所述待缓存数据相匹配的历史数据,将所述待缓存数据缓存至所述第一缓存资源池的已用缓存区,覆盖与所述待缓存数据相匹配的历史数据,同时刷新缓存数据时间戳。
结合本申请实施例,在本申请实施例的第三种可实施方式中,如果所述待缓存数据的数据块大于第一阈值,判断所述待缓存数据的数据块大小是否小于或者等于第二阈值之后,包括:
如果所述待缓存数据的数据块大于第二阈值,将所述待缓存数据写入NAND-flash存储介质。
结合本申请实施例,在本申请实施例的第四种可实施方式中,如果所述待缓存数据的数据块小于或者等于第二阈值,将所述待缓存数据缓存至第二缓存资源池,所述第二缓存资源池的空间配额小于所述第一缓存资源池的空间配额之后,包括:
判断所述第二缓存资源池内是否写满一个闪存页;
如果所述第二缓存资源池内写满一个闪存页,将所述第二缓存资源池内的数据下刷至NAND-flash存储介质。
第一方面,本申请还提供一种固态硬盘数据缓存装置,包括:
检测单元,用于检测待缓存数据的数据块大小;
第一判断单元,用于判断所述数据块大小是否小于或等于第一阈值;
查询单元,用于如果所述数据块小于或等于第一阈值,查询第一缓存资源池;
第二判断单元,用于判断所述第一缓存资源池的已用缓存区中是否存在与所述待缓存数据相匹配的历史数据;
标记单元,用于如果所述第一缓存资源池内不存在与所述待缓存数据相匹配的历史数据,对所述待缓存数据标记时间戳;
第一缓存单元,用于将所述待缓存数据缓存至所述第一缓存资源池的空闲缓存区;
第三判断单元,用于如果所述待缓存数据的数据块大于第一阈值,判断所述待缓存数据的数据块大小是否小于或者等于第二阈值;
第二缓存单元,用于如果所述待缓存数据的数据块小于或者等于第二阈值,将所述待缓存数据缓存至第二缓存资源池,所述第二缓存资源池的空间配额小于所述第一缓存资源池的空间配额。
结合本申请实施,在本申请实施例的第一种可实施方式中,所述装置还包括:
第四判断单元,用于判断所述空闲缓存区的缓存资源是否小于预设资源阈值;
下刷单元,用于如果所述空闲缓存区的缓存资源小于预设资源阈值,将所述第一缓存资源池的已用缓存区中时间戳最远的数据下刷至NAND-flash存储介质。
结合本申请实施,在本申请实施例的第二种可实施方式中,所述装置还包括:
第三缓存单元,用于如果所述第一缓存资源池的已用缓存区中存在与所述待缓存数据相匹配的历史数据,将所述待缓存数据缓存至所述第一缓存资源池的已用缓存区,覆盖与所述待缓存数据相匹配的历史数据,同时刷新缓存数据时间戳。
结合本申请实施,在本申请实施例的第三种可实施方式中,写入单元,用于如果所述待缓存数据的数据块大于第二阈值,将所述待缓存数据写入NAND-flash存储介质。
结合本申请实施,在本申请实施例的第四种可实施方式中,所述装置还包括:
第五判断单元,用于判断所述第二缓存资源池内是否写满一个闪存页;
第二下刷单元,用于如果所述第二缓存资源池内写满一个闪存页,将所述第二缓存资源池内的数据下刷至NAND-flash存储介质。
由以上技术方案可知,本申请实施例提供的一种固态硬盘数据缓存方法及装置,通过将固态硬盘缓存资源划分为第一缓存资源池和第二缓存资源池,其中,第一缓存资源池压和第二缓存资源池的配额大于第二缓存资源池,在缓存数据时,检测待缓存数据的数据块大小,将数据块小于或等于第一阈值的常用特征数据缓存至第一缓存资源池,将数据块大于第一阈值的非常用特征数据缓存至第二缓存资源池,本方法可将有限的缓存资源尽量分给常用特征数据,从而提升常用特征数据的缓存使用率,减少常用特征数据的下刷率,提升其缓存命中率,从而达到提升固态硬盘性能的目的。
附图说明
为了更清楚地说明本申请的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本申请提供的一种固态硬盘数据缓存方法的示意图。
图2为本申请提供的一种固态硬盘数据缓存方法第一实施例的流程图。
图3为本申请提供的一种固态硬盘数据缓存方法第二实施例的流程图。
图4为本申请提供的一种固态硬盘数据缓存方法第三实施例的流程图。
图5为本申请提供的一种固态硬盘数据缓存方法第四实施例的流程图。
图6为本申提供的一种固态硬盘数据缓存方法请第五实施例的流程图。
图7为本申请提供的一种固态硬盘数据缓存装置第一实施例的流程图。
图8为本申请提供的一种固态硬盘数据缓存装置第二实施例的流程图。
图9为本申请提供的一种固态硬盘数据缓存装置第三实施例的流程图。
图10为本申请提供的一种固态硬盘数据缓存装置第四实施例的流程图。
图11为本申请提供的一种固态硬盘数据缓存装置第五实施例的流程图。
具体实施方式
请参阅图1和图2,本申请第一实施例提供一种固态硬盘数据缓存方法,包括如下步骤:
步骤S101,检测待缓存数据的数据块1的大小。
其中,待缓存数据的数据块大小即数据IO的大小,通常情况下,小IO数据为文件系统元数据,文件系统元数据的读写频率远远大于数据本身,远超元数据本身在整个数据中的比例(元数据通常占整个数据量的6%左右)。在本实施例中被看作是常用特征数据,从某些方面来讲,常用特征数据在一定程度上表示热点数据,本实施例将读/写频繁的数据都称作常用特征数据,需要使用尽可能多的缓存资源。
大IO数据通常是采集回来的视频数据等,在本实施例中可被看作是非常用特征数据,本实施例将读/写相对不频繁的数据称作非常用特征数据,需要使用少量缓存资源。
步骤S102,判断所述数据块1大小是否小于或等于第一阈值。
具体地,本实施例中,第一阈值为8k,即常用特征数据统一指小于等于8k大小的IO数据,非常用特征数据统一指大于8k大小的IO数据。因此,在检测待缓存数据的数据块大小之后,通过判断数据块大小是否小于或等于8k,来划分待缓存数据是常用特征数据还是非常用特征数据。
步骤S103,如果所述数据块小于或等于第一阈值,查询第一缓存资源池2。
具体地,如果待缓存数据的数据块小于或等于8k,则将该数据划分为常用特征数据。将固态硬盘的缓存资源划分为第一缓存资源池和第二缓存资源池。第一缓存资源池和第二缓存资源池的配额大于第二缓存资源池,本实施例中,第一缓存资源池的配额为总量的90%~95%。在缓存数据时,将数据块小于或等于第一阈值的常用特征数据缓存至第一缓存资源池,将数据块大于第一阈值的非常用特征数据缓存至第二缓存资源池。
步骤S104,判断所述第一缓存资源池的已用缓存区21中是否存在与所述待缓存数据相匹配的历史数据。
上步查询第一缓存资源池的目的在于,确定第一缓存资源池的已用缓存区中是否存在与待缓存数据相匹的历史数据,即判断待缓存数据是否是新数据。
步骤S105,如果所述第一缓存资源池内不存在与所述待缓存数据相匹配的历史数据,对所述待缓存数据标记时间戳。
第一缓存资源池内不存在与所述待缓存数据相匹配的历史数据,即说明待缓存数据是新数据。对所述待缓存数据标记时间戳,使得所缓存的数据具有时间属性。
步骤S106,将所述待缓存数据缓存至所述第一缓存资源池的空闲缓存区22。
第一缓存资源池2包括空闲缓存区22和已用缓存区21,待缓存数据是常用特征数据,并且是新资源,则直接将该数据缓存至第一缓存资源池。
步骤S107,如果所述待缓存数据的数据块大于第一阈值,判断所述待缓存数据的数据块大小是否小于或者等于第二阈值。
例如,待缓存数据的数据块大于8k,说明待缓存数据是非常用特征数据,再判断非常用特征数据的数据块大小,以决定后续对该非常用特征数据的具体处理方法。
步骤S108,如果所述待缓存数据的数据块大于第一阈值,但小于或者等于第二阈值,将所述待缓存数据缓存至第二缓存资源池3,所述第二缓存资源池3的空间配额小于所述第一缓存资源池2的空间配额。
例如,如果待缓存数据的数据块大于8k,小于32k,使用第二缓存资源池缓存该数据。本方法可将有限的缓存资源尽量分给常用特征数据,从而提升常用特征数据的缓存使用率,减少常用特征数据的下刷率,提升其缓存命中率,从而达到提升固态硬盘性能的目的。
请参阅图1和图3,本申请第二实施例提供一种固态硬盘数据缓存方法,与第一实施例的不同之处在于,将所述待缓存数据缓存至所述第一缓存资源池的空闲缓存区之后,包括:
步骤S109,判断所述空闲缓存区的缓存资源是否小于预设资源阈值。
本实施例中,第一缓存资源池采用的数据下刷原则为资源受限原则,又可称为水位控制原则,即在空闲缓存区的缓存资源小于预设资源阈值,即空闲缓存区的缓存资源低于下刷淘汰水位时,将所述第一缓存资源池的已用缓存区中的数据,下刷至NAND-flash存储介质,及时释放第一缓存资源池的资源。
步骤S110,如果所述空闲缓存区的缓存资源小于预设资源阈值,将所述第一缓存资源池的已用缓存区中时间戳最远的数据下刷至NAND-flash存储介质。
根据已用缓存区中的数据的时间属性,选择最早最老数据11进行下刷,实现第一缓存资源池中资源的释放。
请参阅图1和图4,本申请第三实施例提供一种固态硬盘数据缓存方法,与第一实施例的不同之处在于,判断所述第一缓存资源池的已用缓存区中是否存在与所述待缓存数据相匹配的历史数据之后,包括:
步骤S111,如果所述第一缓存资源池的已用缓存区中存在与所述待缓存数据相匹配的历史数据,将所述待缓存数据缓存至所述第一缓存资源池的已用缓存区,覆盖与所述待缓存数据相匹配的历史数据,同时刷新缓存数据时间戳。
第一缓存资源池的已用缓存区中存在与待缓存数据相匹配的历史数据,即说明待缓存数据不是新数据,此时利用待缓存数据覆盖与所述待缓存数据重复的历史数据,将待缓存数据缓存至所述第一缓存资源池的已用缓存区,减少资源的占用。
请参阅图1和图5,本申请第三实施例提供一种固态硬盘数据缓存方法,与第一实施例的不同之处在于,如果所述待缓存数据的数据块大于第一阈值,判断所述待缓存数据的数据块大小是否小于或者等于第二阈值之后,包括:
步骤S112,如果所述待缓存数据的数据块大于第二阈值,将所述待缓存数据写入NAND-flash存储介质。
例如,如果所述待缓存数据的数据块大于32k,则不使用缓存资源缓冲该数据,而是直接将其下刷至NAND-flash存储介质,减少对缓存资源的占用。
请参阅图1和图6,本申请第三实施例提供一种固态硬盘数据缓存方法,与第一实施例的不同之处在于,如果所述待缓存数据的数据块小于或者等于第二阈值,将所述待缓存数据缓存至第二缓存资源池,所述第二缓存资源池的空间配额小于所述第一缓存资源池的空间配额之后,包括:
步骤S113,判断所述第二缓存资源池内是否写满一个闪存页。
该步骤中,是否写满一个闪存页,即指是否写满一个Flash Die Page。
其中,NAND-flash存储介质内部分为Chip、Die、Plane、Block、Page。Chip是指芯片,一个封装好的芯片就是一个Chip。
Die是晶圆上的小方块,一个芯片里可能封装若干个Die,由于NAND-flash的工艺不同,由此产生了Die的概念,常见的有Mono Die、a Die、b Die等,一个Chip包含N个Die。
Plane是NAND-flash能够根据读、写、擦除等命令进行操作的最小单位。一个Plane就是一个存储矩阵,一个Die包含多个Plane,一个Plane包含若干个Block。
Block是NAND-flash的最小擦除单位,一个Block包含了若干个Page。Page是NAND-flash的最小读写单位,一个Page包含若干个Byte。每个Plane内处于同一地址的Page组合称为Flash Die Page。
步骤S114,如果所述第二缓存资源池内写满一个闪存页,将所述第二缓存资源池内的数据下刷至NAND-flash存储介质4。
本实施例中,针对非常用特征数据,采用及时下刷原则,即新写入第二缓存资源池的非常用特征数据写满一个Flash Die Page大小,立即对多余数据12进行下刷,下刷后立即释放第二缓存资源池资源。
由以上技术方案可知,本申请实施例提供的一种固态硬盘数据缓存方法,,通过将固态硬盘缓存资源划分为第一缓存资源池和第二缓存资源池,其中,第一缓存资源池压和第二缓存资源池的配额大于第二缓存资源池,在缓存数据时,检测待缓存数据的数据块大小,将数据块小于或等于第一阈值的常用特征数据缓存至第一缓存资源池,将数据块大于第一阈值的非常用特征数据缓存至第二缓存资源池,本方法可将有限的缓存资源尽量分给常用特征数据,从而提升常用特征数据的缓存使用率,减少常用特征数据的下刷率,提升其缓存命中率,从而达到提升固态硬盘性能的目的。
请参阅图7,为本申请实施例提供的一种固态硬盘数据缓存装置的第一实施例,包括:
检测单元71,用于检测待缓存数据的数据块大小。
第一判断单元72,用于判断所述数据块大小是否小于或等于第一阈值。
查询单元73,用于如果所述数据块小于或等于第一阈值,查询第一缓存资源池。
第二判断单元74,用于判断所述第一缓存资源池的已用缓存区中是否存在与所述待缓存数据相匹配的历史数据。
标记单元75,用于如果所述第一缓存资源池内不存在与所述待缓存数据相匹配的历史数据,对所述待缓存数据标记时间戳。
第一缓存单元76,用于将所述待缓存数据缓存至所述第一缓存资源池的空闲缓存区。
第三判断单元77,用于如果所述待缓存数据的数据块大于第一阈值,判断所述待缓存数据的数据块大小是否小于或者等于第二阈值。
第二缓存单元78,用于如果所述待缓存数据的数据块小于或者等于第二阈值,将所述待缓存数据缓存至第二缓存资源池,所述第二缓存资源池的空间配额小于所述第一缓存资源池的空间配额。
请参阅图8,为本申请实施例提供的一种固态硬盘数据缓存装置的第二实施例,所述装置还包括:
第四判断单元79,用于判断所述空闲缓存区的缓存资源是否小于预设资源阈值。
下刷单元80,用于如果所述空闲缓存区的缓存资源小于预设资源阈值,将所述第一缓存资源池的已用缓存区中时间戳最远的数据下刷至NAND-flash存储介质。
请参阅图9,为本申请实施例提供的一种固态硬盘数据缓存装置的第三实施例,所述装置还包括:
第三缓存单元81,用于如果所述第一缓存资源池的已用缓存区中存在与所述待缓存数据相匹配的历史数据,将所述待缓存数据缓存至所述第一缓存资源池的已用缓存区,覆盖与所述待缓存数据相匹配的历史数据,同时刷新缓存数据时间戳。
请参阅图10,为本申请实施例提供的一种固态硬盘数据缓存装置的第四实施例,所述装置还包括:
写入单元82,用于如果所述待缓存数据的数据块大于第二阈值,将所述待缓存数据写入NAND-flash存储介质。
请参阅图11,为本申请实施例提供的一种固态硬盘数据缓存装置的第五实施例,所述装置还包括:
第五判断单元83,用于判断所述第二缓存资源池内是否写满一个闪存页。
第二下刷单元84,用于如果所述第二缓存资源池内写满一个闪存页,将所述第二缓存资源池内的数据下刷至NAND-flash存储介质。
具体实现中,本申请还提供一种计算机存储介质,其中,该计算机存储介质可存储有程序,该程序执行时可包括本发明提供的固态硬盘数据缓存方法的各实施例中的部分或全部步骤。所述的存储介质可为磁碟、光盘、只读存储记忆体(英文:read-only memory,简称:ROM)或随机存储记忆体(英文:random access memory,简称:RAM)等。
本领域的技术人员可以清楚地了解到本发明实施例中的技术可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本发明实施例中的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例或者实施例的某些部分所述的。
本说明书中各个实施例之间相同相似的部分互相参见即可。尤其,对于固态硬盘数据缓存装置实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见实施例中的说明即可。
以上所述的本申请实施方式并不构成对本申请保护范围的限定。

Claims (10)

1.一种固态硬盘数据缓存方法,其特征在于,包括如下步骤:
检测待缓存数据的数据块大小;
判断所述数据块大小是否小于或等于第一阈值;
如果所述数据块小于或等于第一阈值,查询第一缓存资源池;
判断所述第一缓存资源池的已用缓存区中是否存在与所述待缓存数据相匹配的历史数据;
如果所述第一缓存资源池内不存在与所述待缓存数据相匹配的历史数据,对所述待缓存数据标记时间戳;
将所述待缓存数据缓存至所述第一缓存资源池的空闲缓存区;
如果所述待缓存数据的数据块大于第一阈值,判断所述待缓存数据的数据块大小是否小于或者等于第二阈值;
如果所述待缓存数据的数据块小于或者等于第二阈值,将所述待缓存数据缓存至第二缓存资源池,所述第二缓存资源池的空间配额小于所述第一缓存资源池的空间配额。
2.如权利要求1所述的方法,其特征在于,将所述待缓存数据缓存至所述第一缓存资源池的空闲缓存区之后,包括:
判断所述空闲缓存区的缓存资源是否小于预设资源阈值;
如果所述空闲缓存区的缓存资源小于预设资源阈值,将所述第一缓存资源池的已用缓存区中时间戳最远的数据下刷至NAND-flash存储介质。
3.如权利要求1所述的方法,其特征在于,判断所述第一缓存资源池的已用缓存区中是否存在与所述待缓存数据相匹配的历史数据之后,包括:
如果所述第一缓存资源池的已用缓存区中存在与所述待缓存数据相匹配的历史数据,将所述待缓存数据缓存至所述第一缓存资源池的已用缓存区,覆盖与所述待缓存数据相匹配的历史数据,同时刷新缓存数据时间戳。
4.如权利要求1所述的方法,其特征在于,如果所述待缓存数据的数据块大于第一阈值,判断所述待缓存数据的数据块大小是否小于或者等于第二阈值之后,包括:
如果所述待缓存数据的数据块大于第二阈值,将所述待缓存数据写入NAND-flash存储介质。
5.如权利要求1所述的方法,其特征在于,如果所述待缓存数据的数据块小于或者等于第二阈值,将所述待缓存数据缓存至第二缓存资源池,所述第二缓存资源池的空间配额小于所述第一缓存资源池的空间配额之后,包括:
判断所述第二缓存资源池内是否写满一个闪存页;
如果所述第二缓存资源池内写满一个闪存页,将所述第二缓存资源池内的数据下刷至NAND-flash存储介质。
6.一种固态硬盘数据缓存装置,其特征在于,包括:
检测单元,用于检测待缓存数据的数据块大小;
第一判断单元,用于判断所述数据块大小是否小于或等于第一阈值;
查询单元,用于如果所述数据块小于或等于第一阈值,查询第一缓存资源池;
第二判断单元,用于判断所述第一缓存资源池的已用缓存区中是否存在与所述待缓存数据相匹配的历史数据;
标记单元,用于如果所述第一缓存资源池内不存在与所述待缓存数据相匹配的历史数据,对所述待缓存数据标记时间戳;
第一缓存单元,用于将所述待缓存数据缓存至所述第一缓存资源池的空闲缓存区;
第三判断单元,用于如果所述待缓存数据的数据块大于第一阈值,判断所述待缓存数据的数据块大小是否小于或者等于第二阈值;
第二缓存单元,用于如果所述待缓存数据的数据块小于或者等于第二阈值,将所述待缓存数据缓存至第二缓存资源池,所述第二缓存资源池的空间配额小于所述第一缓存资源池的空间配额。
7.如权利要求6所述的装置,其特征在于,所述装置还包括:
第四判断单元,用于判断所述空闲缓存区的缓存资源是否小于预设资源阈值;
下刷单元,用于如果所述空闲缓存区的缓存资源小于预设资源阈值,将所述第一缓存资源池的已用缓存区中时间戳最远的数据下刷至NAND-flash存储介质。
8.如权利要求6所述的装置,其特征在于,所述装置还包括:
第三缓存单元,用于如果所述第一缓存资源池的已用缓存区中存在与所述待缓存数据相匹配的历史数据,将所述待缓存数据缓存至所述第一缓存资源池的已用缓存区,覆盖与所述待缓存数据相匹配的历史数据,同时刷新缓存数据时间戳。
9.如权利要求6所述的装置,其特征在于,所述装置还包括:
写入单元,用于如果所述待缓存数据的数据块大于第二阈值,将所述待缓存数据写入NAND-flash存储介质。
10.如权利要求6所述的装置,其特征在于,所述装置还包括:
第五判断单元,用于判断所述第二缓存资源池内是否写满一个闪存页;
第二下刷单元,用于如果所述第二缓存资源池内写满一个闪存页,将所述第二缓存资源池内的数据下刷至NAND-flash存储介质。
CN201710447323.9A 2017-06-14 2017-06-14 固态硬盘数据缓存方法及装置 Pending CN107153619A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710447323.9A CN107153619A (zh) 2017-06-14 2017-06-14 固态硬盘数据缓存方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710447323.9A CN107153619A (zh) 2017-06-14 2017-06-14 固态硬盘数据缓存方法及装置

Publications (1)

Publication Number Publication Date
CN107153619A true CN107153619A (zh) 2017-09-12

Family

ID=59795825

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710447323.9A Pending CN107153619A (zh) 2017-06-14 2017-06-14 固态硬盘数据缓存方法及装置

Country Status (1)

Country Link
CN (1) CN107153619A (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109788305A (zh) * 2018-12-10 2019-05-21 北京爱奇艺科技有限公司 一种缓存数据的刷新方法及装置
CN110263010A (zh) * 2019-05-31 2019-09-20 广东睿江云计算股份有限公司 一种缓存文件自动更新方法及装置

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103778071A (zh) * 2014-01-20 2014-05-07 华为技术有限公司 缓存的空间分配方法及装置
CN105511802A (zh) * 2015-11-24 2016-04-20 北京达沃时代科技有限公司 写缓存的方法和装置以及磁盘缓存区的同步方法和装置
CN106648469A (zh) * 2016-12-29 2017-05-10 华为技术有限公司 一种缓存数据处理方法、装置和存储控制器

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103778071A (zh) * 2014-01-20 2014-05-07 华为技术有限公司 缓存的空间分配方法及装置
CN105511802A (zh) * 2015-11-24 2016-04-20 北京达沃时代科技有限公司 写缓存的方法和装置以及磁盘缓存区的同步方法和装置
CN106648469A (zh) * 2016-12-29 2017-05-10 华为技术有限公司 一种缓存数据处理方法、装置和存储控制器

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109788305A (zh) * 2018-12-10 2019-05-21 北京爱奇艺科技有限公司 一种缓存数据的刷新方法及装置
CN109788305B (zh) * 2018-12-10 2021-03-02 北京爱奇艺科技有限公司 一种缓存数据的刷新方法及装置
CN110263010A (zh) * 2019-05-31 2019-09-20 广东睿江云计算股份有限公司 一种缓存文件自动更新方法及装置
CN110263010B (zh) * 2019-05-31 2023-05-02 广东睿江云计算股份有限公司 一种缓存文件自动更新方法及装置

Similar Documents

Publication Publication Date Title
US9177670B1 (en) Method and apparatus for flash cache management
Kang et al. The multi-streamed {Solid-State} drive
CN105830166B (zh) 一种控制器、闪存装置和将数据写入闪存装置的方法
RU2661280C2 (ru) Контроллер массива, твердотельный диск и способ для управления твердотельным диском для записи данных
US10860494B2 (en) Flushing pages from solid-state storage device
CN108021510A (zh) 操作对多重名称空间进行管理的存储装置的方法
CN107209714A (zh) 分布式存储系统及分布式存储系统的控制方法
CN104156321B (zh) 一种数据预取的方法以及装置
CN106909314A (zh) 存储器系统及控制方法
CN105745628B (zh) 一种将数据写入闪存装置的方法、闪存装置和存储系统
CN105980992B (zh) 一种存储系统、识别数据块稳定性的方法以及装置
CN108733306A (zh) 一种文件合并方法及装置
CN106445832A (zh) 闪存存储系统的地址映射方法及装置
CN109086141B (zh) 内存管理方法和装置以及计算机可读存储介质
CN108733324B (zh) 一种固态硬盘的数据读写方法、装置、设备及存储介质
US20170160940A1 (en) Data processing method and apparatus of solid state disk
CN109471843A (zh) 一种元数据缓存方法、系统及相关装置
TW201719431A (zh) 寫入命令過濾技術
CN104134027B (zh) 一种顺序流识别的方法以及装置
CN105373487A (zh) 一种存储操作系统的碎片整理方法及系统
CN107153619A (zh) 固态硬盘数据缓存方法及装置
CN111209257B (zh) 一种文件系统碎片化的方法及装置
US20150212744A1 (en) Method and system of eviction stage population of a flash memory cache of a multilayer cache system
CN111177105A (zh) 分布式文件系统的海量文件写方法、装置、系统及介质
US8732404B2 (en) Method and apparatus for managing buffer cache to perform page replacement by using reference time information regarding time at which page is referred to

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
RJ01 Rejection of invention patent application after publication

Application publication date: 20170912

RJ01 Rejection of invention patent application after publication