固态硬盘的数据写入方法及装置、计算机可读存储介质

著录项
  • CN201811480434.0
  • 20181205
  • CN109753241A
  • 20190514
  • 新华三技术有限公司合肥分公司
  • 许靖
  • G06F3/06
  • G06F3/06

  • 安徽省合肥市高新区创新大道2800号创新产业园二期J1楼A座5-9层
  • 安徽(34)
  • 北京超凡志成知识产权代理事务所(普通合伙)
  • 吴迪
摘要
本申请涉及固态硬盘控制技术领域,尤其涉及一种固态硬盘的数据写入方法及装置、计算机可读存储介质,用以提高flash的利用率,降低写入放大又提升使用寿命。上述数据写入方法包括:在DDR缓存中创建TLB节点资源池和头节点资源池;TLB节点资源池包含多个TLB节点资源,头节点资源池包含至少一个头节点资源,头节点资源的数量等于TLBPAGE的数量;在获取到任一TLB PAGE的待写入数据后,从TLB节点资源池中为待写入数据申请TLB节点资源,将待写入数据写入对应的TLB节点资源;以及,从头节点资源池中为任一TLB PAGE申请头节点资源,将存储待写入数据的TLB节点资源的地址信息写入头节点资源;在固态硬盘掉电时,将TLB节点资源池和头节点资源池中各节点资源的存储内容写入flash中。
权利要求

1.一种固态硬盘的数据写入方法,其特征在于,所述固态硬盘包括双倍速率DDR缓存和闪存flash;所述DDR缓存中预先保存有所述flash中的转换后备缓冲区页TLB PAGE;所述方法包括:

在所述DDR缓存中创建TLB节点资源池和头节点资源池;其中,所述TLB节点资源池包含多个TLB节点资源,所述头节点资源池包含至少一个头节点资源,所述头节点资源的数量等于TLB PAGE的数量;

在获取到任一TLB PAGE的待写入数据后,从所述TLB节点资源池中为所述待写入数据申请TLB节点资源,将所述待写入数据写入对应的TLB节点资源;以及,从所述头节点资源池中为所述任一TLB PAGE申请头节点资源,将存储所述待写入数据的TLB节点资源的地址信息写入所述头节点资源;

在所述固态硬盘掉电时,将所述TLB节点资源池和所述头节点资源池中各节点资源的存储内容写入所述flash中。

2.根据权利要求1所述的方法,其特征在于,所述在获取到任一TLB PAGE的待写入数据后,从所述TLB节点资源池中为所述待写入数据申请TLB节点资源,将所述待写入数据写入对应的TLB节点资源;以及,从所述头节点资源池中为所述任一TLB PAGE申请头节点资源,将存储所述待写入数据的TLB节点资源的地址信息写入所述头节点资源,包括:

针对所述任一TLB PAGE,在获取到该TLB PAGE的任一条待写入数据后,从所述TLB节点资源池中为所述待写入数据申请一个TLB节点资源,将所述任一条待写入数据写入对应的TLB节点资源;以及,

若所述任一TLB PAGE存在所述任一条待写入数据的下一条待写入数据,将存储所述下一条待写入数据的TLB节点资源的地址信息写入所述任一条待写入数据的TLB节点资源;以及,

若所述任一条待写入数据为所述任一TLB PAGE的第一条待写入数据,从所述头节点资源池中申请头节点资源,将存储所述第一条待写入数据的TLB节点资源的地址信息写入所述头节点资源。

3.根据权利要求1所述的方法,其特征在于,所述方法还包括:

监控所述TLB节点资源池中被写入所述待写入数据的TLB节点资源的数量;

若监控到所述TLB节点资源的数量大于预设阈值,则将所述TLB节点资源池和所述头节点资源池中各节点资源的存储内容写入所述flash中。

4.根据权利要求3所述的方法,其特征在于,所述方法还包括:

根据各TLB PAGE对应的被写入所述待写入数据的TLB节点资源的数量,确定每个所述TLB PAGE对应的老化等级;

所述将所述TLB节点资源池和所述头节点资源池中各节点资源的存储内容写入所述flash中,包括:

将最高老化等级对应的TLB PAGE对应的所述TLB节点资源池和所述头节点资源池中各节点资源的存储内容写入所述flash中。

5.根据权利要求1~4任一所述的方法,其特征在于,所述方法还包括:

在所述固态硬盘上电时,从所述flash中获取所述固态硬盘掉电时写入的所述TLB节点资源池和所述头节点资源池中各节点资源的存储内容,并恢复到所述DDR缓存中所述存储内容对应的TLB PAGE中;以及,

从所述flash中获取掉电时写入的所述存储内容对应的TLB PAGE的其它剩余存储内容,并恢复到所述DDR缓存中的所述TLB PAGE中。

6.根据权利要求5所述的方法,其特征在于,所述从所述flash中获取所述固态硬盘掉电时写入的所述TLB节点资源池和所述头节点资源池中各节点资源的存储内容,并恢复到所述DDR缓存中所述存储内容对应的TLB PAGE中,包括:

从所述头节点资源池中查写入TLB节点资源的地址信息的头节点资源;

从所述头节点资源中提取所述TLB节点资源的地址信息,并从所述地址信息对应的所述TLB节点资源中,提取占用所述头节点资源的TLB PAGE的第一条待写入数据,并将该第一条待写入数据写入到所述DDR缓存中对应该第一条待写入数据的TLB PAGE中;以及,若存在该TLB PAGE的下一条待写入数据,则提取存储该TLB PAGE的下一条待写入数据的TLB节点资源的地址信息;

基于所述下一条待写入数据的TLB节点资源的地址信息,从该地址信息对应的TLB节点资源中提取所述下一条待写入数据,并将该下一条待写入数据写入到对应的所述TLB PAGE中。

7.一种固态硬盘的数据写入装置,其特征在于,所述固态硬盘包括双倍速率DDR缓存和闪存flash;所述DDR缓存中预先保存有所述flash中的转换后备缓冲区页TLB PAGE;所述装置包括:

资源创建模块,用于在所述DDR缓存中创建TLB节点资源池和头节点资源池;其中,所述TLB节点资源池包含多个TLB节点资源,所述头节点资源池包含至少一个头节点资源,所述头节点资源的数量等于TLB PAGE的数量;

数据写入模块,用于在获取到任一TLB PAGE的待写入数据后,从所述TLB节点资源池中为所述待写入数据申请TLB节点资源,将所述待写入数据写入对应的TLB节点资源;以及,从所述头节点资源池中为所述任一TLB PAGE申请头节点资源,将存储所述待写入数据的TLB节点资源的地址信息写入所述头节点资源;

第一内容写入模块,用于在所述固态硬盘掉电时,将所述TLB节点资源池和所述头节点资源池中各节点资源的存储内容写入所述flash中。

8.根据权利要求7所述的装置,其特征在于,所述数据写入模块,具体用于:

针对所述任一TLB PAGE,在获取到该TLB PAGE的任一条待写入数据后,从所述TLB节点资源池中为所述待写入数据申请一个TLB节点资源,将所述任一条待写入数据写入对应的TLB节点资源;以及,

若所述任一TLB PAGE存在所述任一条待写入数据的下一条待写入数据,将存储所述下一条待写入数据的TLB节点资源的地址信息写入所述任一条待写入数据的TLB节点资源;以及,

若所述任一条待写入数据为所述任一TLB PAGE的第一条待写入数据,从所述头节点资源池中申请头节点资源,将存储所述第一条待写入数据的TLB节点资源的地址信息写入所述头节点资源。

9.根据权利要求7所述的装置,其特征在于,所述装置还包括:

第二内容写入模块,用于监控所述TLB节点资源池中被写入所述待写入数据的TLB节点资源的数量;若监控到所述TLB节点资源的数量大于预设阈值,则将所述TLB节点资源池和所述头节点资源池中各节点资源的存储内容写入所述flash中。

10.根据权利要求9所述的装置,其特征在于,所述装置还包括:

老化确定模块,用于根据各TLB PAGE对应的被写入所述待写入数据的TLB节点资源的数量,确定每个所述TLB PAGE对应的老化等级;

所述第二内容写入模块,具体用于:

将最高老化等级对应的TLB PAGE对应的所述TLB节点资源池和所述头节点资源池中各节点资源的存储内容写入所述flash中。

11.根据权利要求7~10任一所述的装置,其特征在于,所述装置还包括:

内容恢复模块,用于在所述固态硬盘上电时,从所述flash中获取所述固态硬盘掉电时写入的所述TLB节点资源池和所述头节点资源池中各节点资源的存储内容,并恢复到所述DDR缓存中所述存储内容对应的TLB PAGE中;以及,

从所述flash中获取掉电时写入的所述存储内容对应的TLB PAGE的其它剩余存储内容,并恢复到所述DDR缓存中的所述TLB PAGE中。

12.根据权利要求11所述的装置,其特征在于,所述内容恢复模块,具体用于:

从所述头节点资源池中查写入TLB节点资源的地址信息的头节点资源;

从所述头节点资源中提取所述TLB节点资源的地址信息,并从所述地址信息对应的所述TLB节点资源中,提取占用所述头节点资源的TLB PAGE的第一条待写入数据,并将该第一条待写入数据写入到所述DDR缓存中对应该第一条待写入数据的TLB PAGE中;以及,若存在该TLB PAGE的下一条待写入数据,则提取存储该TLB PAGE的下一条待写入数据的TLB节点资源的地址信息;

基于所述下一条待写入数据的TLB节点资源的地址信息,从该地址信息对应的TLB节点资源中提取所述下一条待写入数据,并将该下一条待写入数据写入到对应的所述TLB PAGE中。

13.一种计算机可读存储介质,其特征在于,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行如权利要求1~6任一所述的固态硬盘的数据写入方法的步骤。

说明书
技术领域

本申请涉及固态硬盘控制技术领域,具体而言,涉及一种固态硬盘的数据写入方法及装置、计算机可读存储介质。

相对于传统硬盘,即硬盘驱动器(Hard Disk Drive,HDD),固态硬盘(Solid StateDrives,SSD)以其读写速度快、低功耗、抗震动、体积小等优越性,已经被广泛应用于军事、车载、工控、视频监控、电力、医疗、航空等、导航设备等领域。以与非闪存(NAND Flash)为存储介质的SSD的寿命与写入操作次数息息相关。

NAND Flash根据存储原理主要分为三类,单层单元(Single-Level Cell,SLC)、多层单元(Multi-Level Cell,MLC)、三层单元(Triple-Level Cell,TLC)。SLC类型容量小,寿命长且读写错误率低,TLC类型比MLC类型容量大,但相比SLC类型寿命较短、读写错误率较高,适合储存用户数据等,而前者更适合储存核心数据如转换后备缓冲区(TranslationLookaside Buffer,TLB)数据表。其中,每1条TLB数据对应储存一个逻辑区块地址(LogicalBlock Address,LBA)与物理区块地址(Physics Block Address,PBA)的映射关系,每1024条TLB数据组成一个TLB页(PAGE),通常为4k大小。

相关技术中通常在用户随机写入TLB数据时,先从Flash中读取对应的TLB PAGE保存至双倍速率(Double Data Rate,DDR)缓存,在DDR缓存中,可以将修改的TLB数据更新至TLB PAGE中。这样,在更新的TLB PAGE数量达到一定阈值时,可以将TLB PAGE写入至SLC中。

然而,采用上述方法写入的LBA比较分散,导致TLB PAGE中即使只有一个TLB更新也需要同步至SLC中,对于SLC的利用率较低、写入放大增加而降低了使用寿命。

有鉴于此,本申请的目的在于提供一种固态硬盘的数据写入方法及装置、计算机可读存储介质,以提高flash的利用率、降低写入放大又提升使用寿命。

第一方面,提供一种固态硬盘的数据写入方法,所述固态硬盘包括双倍速率DDR缓存和闪存flash;所述DDR缓存中预先保存有所述flash中的转换后备缓冲区页TLB PAGE;所述方法包括:

在所述DDR缓存中创建TLB节点资源池和头节点资源池;其中,所述TLB节点资源池包含多个TLB节点资源,所述头节点资源池包含至少一个头节点资源,所述头节点资源的数量等于TLB PAGE的数量;

在获取到任一TLB PAGE的待写入数据后,从所述TLB节点资源池中为所述待写入数据申请TLB节点资源,将所述待写入数据写入对应的TLB节点资源;以及,从所述头节点资源池中为所述任一TLB PAGE申请头节点资源,将存储所述待写入数据的TLB节点资源的地址信息写入所述头节点资源;

在所述固态硬盘掉电时,将所述TLB节点资源池和所述头节点资源池中各节点资源的存储内容写入所述flash中。

第二方面,提供一种固态硬盘的数据写入装置,所述固态硬盘包括双倍速率DDR缓存和闪存flash;所述DDR缓存中预先保存有所述flash中的转换后备缓冲区页TLB PAGE;所述装置包括:

资源创建模块,用于在所述DDR缓存中创建TLB节点资源池和头节点资源池;其中,所述TLB节点资源池包含多个TLB节点资源,所述头节点资源池包含至少一个头节点资源,所述头节点资源的数量等于TLB PAGE的数量;

数据写入模块,用于在获取到任一TLB PAGE的待写入数据后,从所述TLB节点资源池中为所述待写入数据申请TLB节点资源,将所述待写入数据写入对应的TLB节点资源;以及,从所述头节点资源池中为所述任一TLB PAGE申请头节点资源,将存储所述待写入数据的TLB节点资源的地址信息写入所述头节点资源;

第一内容写入模块,用于在所述固态硬盘掉电时,将所述TLB节点资源池和所述头节点资源池中各节点资源的存储内容写入所述flash中。

第三方面,提供一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行如第一方面所述的固态硬盘的数据写入方法的步骤。

采用上述方案,可以在DDR缓存中创建TLB节点资源池和头节点资源池,这样,在获取到任一TLB PAGE的待写入数据后,可以从TLB节点资源池中为待写入数据申请TLB节点资源,将待写入数据写入对应的TLB节点资源;以及,从头节点资源池中为任一TLB PAGE申请头节点资源,将存储待写入数据的TLB节点资源的地址信息写入头节点资源。在固态硬盘掉电时,将TLB节点资源池和头节点资源池中各节点资源的存储内容写入flash中。本申请实施例可以利用TLB节点资源和头节点资源存储有关待写入数据,以能够在掉电时及时将上述TLB节点资源和头节点资源存储的有关待写入数据写入flash,实现数据写入,这样,对于任一TLB PAGE即使写入多条待写入数据,也无需将整个TLB PAGE同步写入flash,不仅提高了flash的利用率,还降低了写入放大、提升了使用寿命。

为使本申请的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。

为了更清楚地说明本申请实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。

图1示出了本申请实施例所提供的一种固态硬盘的数据写入方法的流程图;

图2示出了本申请实施例所提供的另一种固态硬盘的数据写入方法的流程图;

图3示出了本申请实施例所提供的一种固态硬盘的数据写入方法的应用示意图;

图4示出了本申请实施例所提供的另一种固态硬盘的数据写入方法的流程图;

图5示出了本申请实施例所提供的另一种固态硬盘的数据写入方法的流程图;

图6示出了本申请实施例所提供的一种固态硬盘的数据写入装置的结构示意图;

图7示出了本申请实施例所提供的一种控制装置的结构示意图。

为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本申请实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本申请的实施例的详细描述并非旨在限制要求保护的本申请的范围,而是仅仅表示本申请的选定实施例。基于本申请的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。

考虑到相关技术的数据写入方法写入的逻辑区块地址(Logical Block Address,LBA)比较分散,导致转换后备缓冲区(Translation Lookaside Buffer,TLB)TLB页(PAGE)中即使只有一个TLB更新也需要同步至单层单元(Single-Level Cell,SLC)中,对于SLC的利用率较低、写入放大增加而降低了使用寿命。基于此,本申请实施例提供了一种固态硬盘的数据写入方法以提高闪存(flash)的利用率、降低写入放大又提升使用寿命。

如图1所示,为本申请一种实施例提供的固态硬盘的数据写入方法的流程图。该数据写入方法的执行主体可以是固态硬盘的控制装置。该固态硬盘除了可以包括上述控制装置之外,还可以包括双倍速率(Double Data Rate,DDR)缓存和flash。上述DDR缓存中预先保存有flash中的TLB PAGE,这样,本申请实施例提供的数据写入方法则主要是控制装置对DDR缓存的操作,也即,采用上述数据写入方法无需对flash进行TLB PAGE的读取操作,从而可以节省整个数据写入时间,随机写的性能较佳。除此之外,上述数据写入方法可以利用创建TLB节点资源池和头节点资源池进行待写入数据的存储,这样,在固态硬盘掉电时,无需同步整个TLB PAGE至flash,仅需将TLB节点资源池和头节点资源池中写入的存储内容写入flash,有效的降低了写入放大,提升了flash的利用率的同时也提高了使用寿命。上述数据写入方法具体通过如下步骤实现:

S101、在DDR缓存中创建TLB节点资源池和头节点资源池;其中,TLB节点资源池包含多个TLB节点资源,头节点资源池包含至少一个头节点资源,头节点资源的数量等于TLBPAGE的数量。

这里,在DDR缓存中创建的TLB节点资源池可以包含多个TLB节点资源,每个TLB节点资源能够在进行数据写入操作时被申请。也即,上述TLB节点资源提供了一种临时存储数据的空间概念,且各TLB节点资源在写入数据之前可以没有直接的逻辑关系。在DDR缓存中创建的头节点资源池则可以包含至少一个头节点资源,每个头节点资源可以存在与之对应的TLB PAGE,从而可以方便TLB PAGE的待写入数据在上述节点资源中的存储操作。

S102、在获取到任一TLB PAGE的待写入数据后,从TLB节点资源池中为待写入数据申请TLB节点资源,将待写入数据写入对应的TLB节点资源;以及,从头节点资源池中为任一TLB PAGE申请头节点资源,将存储待写入数据的TLB节点资源的地址信息写入头节点资源。

这里,在控制装置获取到任一TLB PAGE的待写入数据后,将向上述创建的TLB节点资源池和头节点资源分别申请对应的节点资源,并能将待写入数据写入对应的TLB节点资源以及将该节点资源的地址信息写入对应的头节点资源,以便在数据恢复时,能够先根据头节点资源中存储的地址信息查到对应的TLB节点资源,并从该TLB节点资源中提取出对应的待写入数据以实现数据恢复。

其中,上述待写入数据可以是TLB数据,该TLB数据对应储存一个逻辑区块地址(Logical Block Address,LBA)与物理区块地址(Physics Block Address,PBA)的映射关系。当控制装置的处理器收到应用程序发来的LBA后,首先到TLB中查相应的页表数据,如果TLB中正好存放着所需的页表,则称为TLB命中(TLB Hit),接下来处理器再依次看TLB中页表所对应的物理区块地址中的数据是不是已经在一级、二级缓存里了,它们的存在均是为了减少高速处理器对慢速内存的访问。

值得说明的是,上述任一TLB PAGED的待写入数据可以有多条,在存在多条待写入数据时,为了最大可能的降低后续数据恢复所占用的时间,本申请实施例可以在存储任一非最后一条待写入数据时,均可以在将该非最后一条待写入数据写入对应的TLB节点资源的同时,将非最后一条待写入数据的下一条待写入数据的绝对地址信息或该下一条待写入数据相对该非最后一条待写入数据的相对地址信息一同写入上述TLB节点资源。同时,本申请实施例还可以将存储第一条待写入数据的TLB节点资源的地址信息写入头节点资源,以便在数据恢复时,能够根据该第一条待写入数据的TLB节点资源的地址信息查到第一条待写入数据所对应的TLB节点资源,此时,可以从查到的TLB节点资源中查到第一条待写入数据,以及下一条待写入数据的地址信息,以此类推,可以查到最后一条待写入数据。这样,便可以基于所有查到的待写入数据进行数据恢复。

S103、在固态硬盘掉电时,将TLB节点资源池和头节点资源池中各节点资源的存储内容写入flash中。

这里,在固态硬盘掉电时,仅需将TLB节点资源池和头节点资源池中各节点资源的存储内容写入flash中即可,无需同步整个TLB PAGE至flash,有效的降低了写入放大,提升了flash的利用率的同时也提高了使用寿命。

值得说明的是,固态硬盘掉电时,可以利用电容设备的蓄电功能确保DDR缓存将TLB节点资源池和头节点资源池中各节点资源的存储内容能够全部写入flash中,从而可以进一步确保后续数据的恢复。这里,TLB节点资源池和头节点资源池中各节点资源的存储内容在过多的情况下,如果想要确保写入flash的数据不丢失,必然需要较大容量的电容设备,甚至需要超级电容,成本较高,在过少的情况下,不仅不能充分的利用电容设备的蓄电功能,在掉电前可能存在更多的flash写入操作,会降低flash的使用寿命,综上,为了兼顾成本和使用寿命,本申请实施例中TLB节点资源池和头节点资源池中各节点资源的存储内容不宜过多,也不易过少。

本申请实施例中,针对任一TLB PAGE而言,在获取到该TLB PAGE的任一条待写入数据后,从TLB节点资源池中为待写入数据申请一个TLB节点资源,将任一条待写入数据写入对应的TLB节点资源;若任一TLB PAGE存在任一条待写入数据的下一条待写入数据,将存储下一条待写入数据的TLB节点资源的地址信息写入任一条待写入数据的TLB节点资源;若任一TLB PAGE存在下一条待写入数据的下一条待写入数据,则将存储下一条待写入数据的下一条待写入数据的TLB节点资源的地址信息写入下一条待写入数据的TLB节点资源;依次类推,直至将任一TLB PAGE的所有待写入数据均写入对应的TLB节点资源。

除此之外,若任一条待写入数据为任一TLB PAGE的第一条待写入数据,从头节点资源池中申请头节点资源,将存储第一条待写入数据的TLB节点资源的地址信息写入头节点资源。这样,在固态硬盘重新上电时,便可以基于该第一条待写入数据的TLB节点资源的地址信息查到所有待写入数据以实现数据恢复。

考虑到本申请实施例中TLB节点资源池和头节点资源池中各节点资源的存储内容不宜过多,也不易过少。这里,可以基于预设阈值的设置来控制存储内容向flash的写入操作。如图2所示,上述数据写入方法通过如下步骤实现:

S201、监控TLB节点资源池中被写入待写入数据的TLB节点资源的数量;

S202、若监控到TLB节点资源的数量大于预设阈值,则将TLB节点资源池和头节点资源池中各节点资源的存储内容写入flash中。

这里,本申请实施例可以监控TLB节点资源池中被写入待写入数据的TLB节点资源的数量,并在监控到TLB节点资源的数量大于预设阈值,则将TLB节点资源池和头节点资源池中各节点资源的存储内容写入flash中。也即,基于预设阈值的设置可以在存储内容累积到一定的数量时,及时将存储内容写入flash中,以避免存储内容过多所可能存在的异常写入和成本提升的问题。未被写入flash中的存储内容仅需满足电容设备的最大掉电保存数量即可,该最大掉电保存数量与固态硬盘掉电时电容设备的蓄电能力正相关,也即,电容设备的蓄电能力越强,最大掉电保存数量也就越多,反之亦然。

在具体实施中,可以通过TLB PAGE老化链结合TLB更新链的形式对TLB节点资源池中被写入待写入数据的TLB节点资源的数量进行监控。

如图3所示,DDR硬盘中存储有6个TLB PAGE,这样,在控制装置获取到第一个TLBPAGE的第一待写入数据后,可以利用节点资源管理模块可以向TLB节点资源池申请一个TLB节点资源并将上述待写入数据写入该TLB节点资源,并可以将被写入第一个待写入数据的TLB节点资源标识挂载至第一个TLB PAGE对应的TLB更新链上,还可以将第二个待写入数据的TLB节点资源标识、第三个待写入数据的TLB节点资源标识挂载至上述TLB更新链上。这样,便可以通过TLB更新链上挂载的TLB节点资源标识统计对应的被写入待写入数据的TLB节点资源的数量。同理,第二个TLB PAGE对应的TLB更新链也可能挂载对应的节点资源标识,可以采用上述方式进行节点资源数量的监控。

这样,在所有TLB更新链上的对应的被写入待写入数据的TLB节点资源的数量达到预设阈值时,便可以将任一TLB PAGE对应的TLB节点资源池和头节点资源池中各节点资源的存储内容写入flash中。

值得说明的是,相比现有技术中直接将TLB PAGE挂载在对应的更新链并实现数据写入的方案而言,本申请实施例仅需将TLB PAGE中更新的TLB(即待写入数据)进行数据写入即可,这也就意味着,同等条件下,本申请老化链上堆积的TLB PAGE的数量是现有技术的1024倍,且同一个TLB PAGE里可容许更新的TLB数量也会大大增加,提高了flash的利用率,减少了flash的写入放大,增加了使用寿命,进而增加了整个固态硬盘(Solid StateDrives,SSD)的寿命。

为了进一步降低写入放大,本申请实施例可以先确定每个TLB PAGE对应的老化等级,然后将最高老化等级对应的TLB PAGE对应的TLB节点资源池和头节点资源池中各节点资源的存储内容写入flash中。其中,上述每个TLB PAGE对应的老化等级与该TLB PAGE对应的被写入待写入数据的TLB节点资源的数量呈正相关,也即,TLB节点资源的数量越多,老化等级越高。

基于上述实施例的描述,本申请实施例还提供了一种TLB PAGE恢复方法,如图4所示。

S401、在固态硬盘上电时,从flash中获取固态硬盘掉电时写入的TLB节点资源池和头节点资源池中各节点资源的存储内容,并恢复到DDR缓存中存储内容对应的TLB PAGE中;

S402、从flash中获取掉电时写入的存储内容对应的TLB PAGE的其它剩余存储内容,并恢复到DDR缓存中的TLB PAGE中。

这里,本申请实施例在固态硬盘上电后,将flash中获取固态硬盘掉电时写入的TLB节点资源池和头节点资源池中各节点资源的存储内容,并恢复到DDR缓存中存储内容对应的TLB PAGE中,然后再从flash中获取掉电时写入的存储内容对应的TLB PAGE的其它剩余存储内容,并恢复到DDR缓存中的TLB PAGE中,这样,DDR缓存中TLB PAGE不仅包括了针对TLB PAGE写入TLB节点资源池和头节点资源池中各节点资源的存储内容,还包括了该存储内容之外的其他剩余存储内容,也即,利用全量数据(存储内容和其他剩余存储内容)便可以恢复出TLB PAGE,简单易操作。

与前述向节点资源写数据相对应的是,本申请实施例还可以从相应的节点资源中读取数据以进行TLB PAGE恢复,如图5所示,为本申请实施例提供的一种数据恢复方法。

S501、从头节点资源池中查写入TLB节点资源的地址信息的头节点资源;

S502、从头节点资源中提取TLB节点资源的地址信息,并从地址信息对应的TLB节点资源中,提取占用头节点资源的TLB PAGE的第一条待写入数据,并将该第一条待写入数据写入到DDR缓存中对应该第一条待写入数据的TLB PAGE中;以及,若存在该TLB PAGE的下一条待写入数据,则提取存储该TLB PAGE的下一条待写入数据的TLB节点资源的地址信息;

S503、基于下一条待写入数据的TLB节点资源的地址信息,从该地址信息对应的TLB节点资源中提取下一条待写入数据,并将该下一条待写入数据写入到对应的TLB PAGE中。

这里,先基于头节点资源确定第一条待写入数据,再根据该第一条待写入数据所占用TLB节点资源中存储的下一条待写入数据的地址信息确定下一条待写入数据,直至确定出所有待写入数据以实现TLB PAGE恢复。

基于同一发明构思,本申请实施例提供了一种与固态硬盘的数据写入方法对应的固态硬盘的数据写入装置,由于本申请实施例中的装置解决问题的原理与本申请实施例上述固态硬盘的数据写入方法相似,因此装置的实施可以参见方法的实施,重复之处不再赘述。

如图6所示,本申请一种实施例所提供的固态硬盘的数据写入装置的结构示意图,包括:

资源创建模块601,用于在DDR缓存中创建TLB节点资源池和头节点资源池;其中,TLB节点资源池包含多个TLB节点资源,头节点资源池包含至少一个头节点资源,头节点资源的数量等于TLB PAGE的数量;

数据写入模块602,用于在获取到任一TLB PAGE的待写入数据后,从TLB节点资源池中为待写入数据申请TLB节点资源,将待写入数据写入对应的TLB节点资源;以及,从头节点资源池中为任一TLB PAGE申请头节点资源,将存储待写入数据的TLB节点资源的地址信息写入头节点资源;

第一内容写入模块603,用于在固态硬盘掉电时,将TLB节点资源池和头节点资源池中各节点资源的存储内容写入flash中。

在一种实施方式中,数据写入模块602,具体用于:

针对任一TLB PAGE,在获取到该TLB PAGE的任一条待写入数据后,从TLB节点资源池中为待写入数据申请一个TLB节点资源,将任一条待写入数据写入对应的TLB节点资源;以及,

若任一TLB PAGE存在任一条待写入数据的下一条待写入数据,将存储下一条待写入数据的TLB节点资源的地址信息写入任一条待写入数据的TLB节点资源;以及,

若任一条待写入数据为任一TLB PAGE的第一条待写入数据,从头节点资源池中申请头节点资源,将存储第一条待写入数据的TLB节点资源的地址信息写入头节点资源。

在另一种实施方式中,装置还包括:

第二内容写入模块604,用于监控TLB节点资源池中被写入待写入数据的TLB节点资源的数量;若监控到TLB节点资源的数量大于预设阈值,则将TLB节点资源池和头节点资源池中各节点资源的存储内容写入flash中。

在又一种实施方式中,装置还包括:

老化确定模块605,用于根据各TLB PAGE对应的被写入待写入数据的TLB节点资源的数量,确定每个TLB PAGE对应的老化等级;

第二内容写入模块604,具体用于:

将最高老化等级对应的TLB PAGE对应的TLB节点资源池和头节点资源池中各节点资源的存储内容写入flash中。

在再一种实施方式中,装置还包括:

内容恢复模块606,用于在固态硬盘上电时,从flash中获取固态硬盘掉电时写入的TLB节点资源池和头节点资源池中各节点资源的存储内容,并恢复到DDR缓存中存储内容对应的TLB PAGE中;以及,

从flash中获取掉电时写入的存储内容对应的TLB PAGE的其它剩余存储内容,并恢复到DDR缓存中的TLB PAGE中。

在具体实施中,内容恢复模块606,具体用于:

从头节点资源池中查写入TLB节点资源的地址信息的头节点资源;

从头节点资源中提取TLB节点资源的地址信息,并从地址信息对应的TLB节点资源中,提取占用头节点资源的TLB PAGE的第一条待写入数据,并将该第一条待写入数据写入到DDR缓存中对应该第一条待写入数据的TLB PAGE中;以及,若存在该TLB PAGE的下一条待写入数据,则提取存储该TLB PAGE的下一条待写入数据的TLB节点资源的地址信息;

基于下一条待写入数据的TLB节点资源的地址信息,从该地址信息对应的TLB节点资源中提取下一条待写入数据,并将该下一条待写入数据写入到对应的TLB PAGE中。

如图7所示,为本申请另一种实施例所提供的控制装置的结构示意图,该控制装置包括:处理器701、存储器702和总线703,存储器702存储有处理器701可执行的机器可读指令,当控制装置运行时,处理器701与存储器702之间通过总线703通信,机器可读指令被处理器701执行时执行如下处理:

在DDR缓存中创建TLB节点资源池和头节点资源池;其中,TLB节点资源池包含多个TLB节点资源,头节点资源池包含至少一个头节点资源,头节点资源的数量等于TLB PAGE的数量;

在获取到任一TLB PAGE的待写入数据后,从TLB节点资源池中为待写入数据申请TLB节点资源,将待写入数据写入对应的TLB节点资源;以及,从头节点资源池中为任一TLBPAGE申请头节点资源,将存储待写入数据的TLB节点资源的地址信息写入头节点资源;

在固态硬盘掉电时,将TLB节点资源池和头节点资源池中各节点资源的存储内容写入flash中。

在一种实施方式中,上述处理器701执行的处理中,在获取到任一TLB PAGE的待写入数据后,从TLB节点资源池中为待写入数据申请TLB节点资源,将待写入数据写入对应的TLB节点资源;以及,从头节点资源池中为任一TLB PAGE申请头节点资源,将存储待写入数据的TLB节点资源的地址信息写入头节点资源,包括:

针对任一TLB PAGE,在获取到该TLB PAGE的任一条待写入数据后,从TLB节点资源池中为待写入数据申请一个TLB节点资源,将任一条待写入数据写入对应的TLB节点资源;以及,

若任一TLB PAGE存在任一条待写入数据的下一条待写入数据,将存储下一条待写入数据的TLB节点资源的地址信息写入任一条待写入数据的TLB节点资源;以及,

若任一条待写入数据为任一TLB PAGE的第一条待写入数据,从头节点资源池中申请头节点资源,将存储第一条待写入数据的TLB节点资源的地址信息写入头节点资源。

在另一种实施方式中,上述处理器701执行的处理还包括:

监控TLB节点资源池中被写入待写入数据的TLB节点资源的数量;

若监控到TLB节点资源的数量大于预设阈值,则将TLB节点资源池和头节点资源池中各节点资源的存储内容写入flash中。

在又一种实施方式中,上述处理器701执行的处理还包括:

根据各TLB PAGE对应的被写入待写入数据的TLB节点资源的数量,确定每个TLBPAGE对应的老化等级;

将TLB节点资源池和头节点资源池中各节点资源的存储内容写入flash中,包括:

将最高老化等级对应的TLB PAGE对应的TLB节点资源池和头节点资源池中各节点资源的存储内容写入flash中。

在再一种实施方式中,上述处理器701执行的处理还包括:

在固态硬盘上电时,从flash中获取固态硬盘掉电时写入的TLB节点资源池和头节点资源池中各节点资源的存储内容,并恢复到DDR缓存中存储内容对应的TLB PAGE中;以及,

从flash中获取掉电时写入的存储内容对应的TLB PAGE的其它剩余存储内容,并恢复到DDR缓存中的TLB PAGE中。

在具体实施中,上述处理器701执行的处理中,从flash中获取固态硬盘掉电时写入的TLB节点资源池和头节点资源池中各节点资源的存储内容,并恢复到DDR缓存中存储内容对应的TLB PAGE中,包括:

从头节点资源池中查写入TLB节点资源的地址信息的头节点资源;

从头节点资源中提取TLB节点资源的地址信息,并从地址信息对应的TLB节点资源中,提取占用头节点资源的TLB PAGE的第一条待写入数据,并将该第一条待写入数据写入到DDR缓存中对应该第一条待写入数据的TLB PAGE中;以及,若存在该TLB PAGE的下一条待写入数据,则提取存储该TLB PAGE的下一条待写入数据的TLB节点资源的地址信息;

基于下一条待写入数据的TLB节点资源的地址信息,从该地址信息对应的TLB节点资源中提取下一条待写入数据,并将该下一条待写入数据写入到对应的TLB PAGE中。

本申请实施例还提供了一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行上述固态硬盘的数据写入方法的步骤。

具体地,该存储介质能够为通用的存储介质,如移动磁盘、硬盘等,该存储介质上的计算机程序被运行时,能够执行上述固态硬盘的数据写入方法,从而解决目前数据写入方法存在的SLC的利用率较低、写入放大增加而降低了使用寿命的问题,进而达到提高flash的利用率、降低写入放大又提升使用寿命的效果。

本申请实施例所提供的固态硬盘的数据写入方法的计算机程序产品,包括存储了程序代码的计算机可读存储介质,程序代码包括的指令可用于执行前面方法实施例中的方法,具体实现可参见方法实施例,在此不再赘述。

所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统和装置的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。

功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。

以上,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以权利要求的保护范围为准。

本文发布于:2024-09-24 21:23:05,感谢您对本站的认可!

本文链接:https://www.17tex.com/tex/2/86230.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议