一种命中率感知并行淘汰的固态硬盘缓存管理方法

文档序号:36871124发布日期:2024-02-02 20:51阅读:15来源:国知局
一种命中率感知并行淘汰的固态硬盘缓存管理方法

本发明涉及固态硬盘存储,尤其涉及一种命中率感知并行淘汰的固态硬盘缓存管理方法。


背景技术:

1、随着5g通信技术、云计算以及人工智能等信息技术等飞速发展,越来越多的数据随之产生。面对海量数据,传统磁性介质存储的设备例如机械硬盘(hard disk drive,hdd)在访问时延上并不能给用户一个较好的体验。正因为如此,以闪存为存储介质,特别是nand型闪存的固态硬盘正在逐渐取代传统机械硬盘。由于固态硬盘具备功耗低、无噪音、抗震防摔以及低时延的访问,目前被广泛用在各个领域。

2、固态硬盘可以提供较低延迟的访问性能,这与它天然的物理并行结构密不可分。固态硬盘的层级结构从高到低依次为:通道(channel)、芯片(chip)、晶圆(die)、分组(plane)、块(block)以及页(page)。不同通道上的芯片可以同时传输数据,并不会相互干扰。固态硬盘中存在四种级别的并行,分别是通道级别并行、芯片级别并行、晶圆级别并行以及分组级别并行。例如,请求1和请求2同时达到固态硬盘时,可以将请求1发送到通道0,请求2发送到通道1。这样两个请求就可以同时被固态硬盘服务,这便是通道级别并行。由于多个芯片共享同一个通道,所以数据从通道控制器到不同的芯片是串行执行的。而数据从不同的芯片写入到对应的闪存介质上的过程是并行进行的,这便是芯片级别并行。另外晶圆级别并行和分组级别并行需要固态硬盘的高级指令来支持。交错操作命令(interleaving command)使得固态硬盘可以对同一个通道、同一个芯片下的不同晶圆进行流水操作。多分组命令(multi-plane command)使得固态硬盘可以对同一个通道、同一个芯片、同一个晶圆下的不同分组进行并行的访问操作。只有充分的利用固态硬盘的并行性,才能最大化其性能。

3、现在固态硬盘的产品普遍内部都有一个高速缓存介质作为其内部的缓存,例如dram。使用该缓存,可以将地址映射表数据、用户读取和写入的数据以及作为垃圾回收过程中数据迁移的中转站。因为缓存的读取写入的速度比闪存的读取写入速度快一个数量级,所以经常访问的数据应该存储在缓存中。但是缓存是有限的,所以需要设计缓存管理算法来合理的安排在缓存中的数据。现有的缓存替换算法没有将缓存替换算法和并行结合。


技术实现思路

1、本发明的目的在于提供一种命中率感知并行淘汰的固态硬盘缓存管理方法。

2、本发明采用的技术方案是:

3、一种命中率感知并行淘汰的固态硬盘缓存管理方法,其包括以下步骤:

4、s1. 主机接口收到上层应用发起的读写请求,并将读请求和写请求对应转化为缓存读请求和缓存写请求;

5、s2. 判断请求所需要的数据是否在缓存中;如果是,则请求命中转至步骤s3;否则,请求未命中转至步骤s5;

6、s3. 请求在缓存中命中时判定请求是否为读请求;如果是读请求,则将缓存中的数据返回给上层,同时将数据从缓存移动到mru端并完成请求处理;如果是写请求,则转至s4;

7、s4. 当写请求命中时将对应的缓存数据作出更新,并根据缓存数据的结构将缓存数据移动到mru端并完成请求处理;

8、s5. 当请求在缓存中未命中时,进入命中率感知模块判断当前未命中是否因为淘汰缓存数量过多导致的;如果是,则将flag的值加1;否则,flag值不变;

9、s6. 检查现在缓存能否容纳没有命中的数据;如果能够容纳没有命中的数据,则根据映射表读取对应的数据载入缓存;否则,转至步骤s7;

10、s7. 当缓存没有足够的空间时,命中率感知模块检查flag是否到达设定的阈值;如果是,则命中率感知模块会进行状态转变形成不同状态;否则,命中率感知模块的当前状态不变;

11、s8. 命中率感知模块计算得到不同状态下对应的“命中率感知模块所给的淘汰数量”in,并与“请求按需淘汰的数量”dn比较后得到最终的指定淘汰数量;

12、s9.从缓存中淘汰指定淘汰数量的缓存数据;

13、s10.当缓存拥有足够空间后,根据请求的不同进行对应的处理;

14、对于读请求,访问映射表,将数据从对应的物理页上读取到缓存中并移动到mru端;

15、对于写请求,将上层请求携带的数据插入到组织缓存数据链表的mru端。

16、进一步地,缓存既处理读请求也处理写请求;同时缓存既存储写请求数据,也存储读请求数据。

17、进一步地,每一次需要淘汰缓存数据时,最后要淘汰的缓存数量,需要考虑当前请求所需要的缓存空间大小以及命中率感知模块所建议的淘汰数量。

18、进一步地,命中率感知模块处于不同的状态时,采用不同的公式来计算in值;并根据实时状态来合理调整in值的大小。

19、进一步地,s7中指定淘汰数量取“请求按需淘汰的数量”dn和“命中率感知模块所给的淘汰数量” in两者中的最大值。

20、进一步地,s9中指定淘汰数量数据时,综合考虑对应数据的并行执行的可能性和时间特性确定淘汰的缓存数据。

21、进一步地,s9中将超过“按需淘汰的数量”的数据的逻辑地址记录下来,供后续命中率感知模块来判断缓存未命中的原因;

22、进一步地,s9中在缓存未命中时,命中率感知模块查看请求的逻辑地址是否落在记录的逻辑地址中;如果是,判定为淘汰数量过多导致请求未命中。

23、本发明采用以上技术方案,利用并行淘汰多个缓存数据,从而降低缓存未命中而带来的替换开销。为了克服激进的淘汰缓存数据导致原本就不高的缓存命中率继续下降的问题,本发明加入了命中率监测模块,使其可以动态的调整每次淘汰的缓存数量。如果该模块判定连续几次的命中率下降是因为前面多淘汰的数据,那么后续将会降低淘汰的数量,直到淘汰的数据为该请求所需的淘汰数量或者是命中率稳定下来。



技术特征:

1.一种命中率感知并行淘汰的固态硬盘缓存管理方法,其特征在于:其包括以下步骤:

2.根据权利要求1所述的一种命中率感知并行淘汰的固态硬盘缓存管理方法,其特征在于:缓存既处理读请求也处理写请求;同时缓存既存储写请求数据,也存储读请求数据。

3.根据权利要求1所述的一种命中率感知并行淘汰的固态硬盘缓存管理方法,其特征在于:每一次需要淘汰缓存数据时,最后要淘汰的缓存数量,需要考虑当前请求所需要的缓存空间大小以及命中率感知模块所建议的淘汰数量。

4.根据权利要求1所述的一种命中率感知并行淘汰的固态硬盘缓存管理方法,其特征在于:命中率感知模块处于不同的状态时,采用不同的公式来计算in值;并根据实时状态来合理调整in值的大小。

5. 根据权利要求1所述的一种命中率感知并行淘汰的固态硬盘缓存管理方法,其特征在于:s7中指定淘汰数量取“请求按需淘汰的数量”dn和“命中率感知模块所给的淘汰数量”in两者中的最大值。

6.根据权利要求1所述的一种命中率感知并行淘汰的固态硬盘缓存管理方法,其特征在于:s9中指定淘汰数量数据时,综合考虑对应数据的并行执行的可能性和时间特性确定淘汰的缓存数据。

7.根据权利要求1所述的一种命中率感知并行淘汰的固态硬盘缓存管理方法,其特征在于:s9中将超过“按需淘汰的数量”的数据的逻辑地址记录下来,供后续命中率感知模块来判断缓存未命中的原因。

8.根据权利要求7所述的一种命中率感知并行淘汰的固态硬盘缓存管理方法,其特征在于:s9中在缓存未命中时,命中率感知模块查看请求的逻辑地址是否落在记录的逻辑地址中;如果是,判定为淘汰数量过多导致请求未命中。


技术总结
本发明公开一种命中率感知并行淘汰的固态硬盘缓存管理方法,通过结合缓存数据的时空特性以及并行特性,通过一次或少许几次缓存淘汰的时间来淘汰更多的缓存数据,减少淘汰缓存数据的时间。提出命中率感知模块监测缓存命中率情况,同时会判定最近几次的缓存命中率下降是否是因为过度淘汰缓存的原因。如果是因为这个原因,该模块会将这个信息反馈至缓存管理模块,从而降低淘汰的缓存数据。与现有的技术相比,本发明着重考虑到了大量负载缓存命中率不高这个特点,同时采用动态管理的方式来调节缓存淘汰的阈值。在不增加写放大和不降低命中率的同时,大大降低了请求的响应时间和写延迟,提高了固态硬盘的性能。

技术研发人员:林铭炜,苏良宽,姚志强
受保护的技术使用者:福建师范大学
技术研发日:
技术公布日:2024/2/1
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1