一种面向ZNSSSD的多芯片协同调度方法

文档序号:34400425发布日期:2023-06-08 14:19阅读:38来源:国知局
一种面向ZNSSSD的多芯片协同调度方法

本发明涉及计算机存储,尤其涉及一种面向zns ssd的多芯片协同调度方法。


背景技术:

1、基于闪存介质的固态硬盘(ssd)因其高性能、低功耗等特点被广泛用于现代计算机系统,如存储中心,个人电脑以及嵌入式设备等。由于大数据和云计算时代的到来,用户对ssd的性能要求进一步提高,然而传统块接口和闪存介质特性的不匹配逐渐成为了阻碍ssd性能进一步提升的原因之一。因此,zns(zoned namespace,分区命名空间)接口被提出作为传统块接口的替代品来弥补传统块接口的不足,从而进一步提升ssd的性能。

2、一方面,zns接口将逻辑地址空间划分为固定大小的分区(zone)以便于主机能够根据自己的应用信息进行更加合理地分区数据放置以减少垃圾回收开销。另一方面,zns接口规定每个分区必须顺序写以及重置(reset)后重写,使得数据的写入更加符合闪存介质的特性以避免进行不必要的转换。此外,基于上述方式,zns ssd设备内部只需要维持分区到物理块(block)的映射关系,从而降低映射表的空间开销。虽然nvme zns规范并没有规定具体的分区映射方法,但是为了能够利用ssd的芯片并行性,每个分区通常都需要被映射到多个芯片上,从而使得该分区的请求能够被这些芯片并行地响应。然而,在ssd设备内部的调度往往仅考虑了单一芯片内部事务的调度(如公平性调度),而忽略了其协同响应同一请求的其他芯片,从而导致其他某些请求的响应时间增加。


技术实现思路

1、针对上述问题,本发明的目的是提出一种面向于zns ssd设备的多芯片协同调度方法,用于和现有调度算法结合使用,在保证调度效果的同时,最小化所有请求的总响应时间。

2、本发明所提出的一种面向zns ssd的多芯片协同调度方法,包括以下步骤:

3、s1.初始化zns ssd设备,该zns ssd设备包括分区转换层、分区映射模块、ssd控制器、事务调度模块和闪存模块;所述闪存模块包括多个芯片,每个芯片均对应有一个芯片队列;

4、s2.以最小化所有请求的总响应时间为目的,设计第一多芯片协同方法和第二多芯片协同方法;

5、s3.当zns ssd设备接收到请求后,通过分区转换层对该请求进行转换,ssd控制器根据分区映射模块将转换后的请求拆分为多个事务,每个事务对应一个芯片;

6、s4若该请求被调度算法选中,则事务调度模块根据调度算法和第一多芯片协同方法对该请求中所有事务进行位置调度;

7、s5.若该请求未被调度算法选中,则事务调度模块根据第二多芯片协同方法对该请求中所有事务进行位置调度;

8、s6.闪存模块中的芯片不断从自身的芯片队列的头部取出事务进行响应,当一个请求所拆分出来的所有事务都被响应后,该请求响应完成。

9、进一步的,在步骤s4中,采用第一多芯片协同方法对被调度算法选中的请求进行位置调度时,具体过程包括:

10、s11.将被调度算法选中的请求的所有事务存放到各自对应的芯片队列时,根据调度算法计算每个事务在其所处芯片队列的最近头部位置;

11、s12.在所有最近头部位置中选取最大值作为该请求中所有事务的最大调度位置;

12、s13.每个芯片队列的队尾均为初始位置,所有事务从各自对应的芯片队列中的初始位置出发,向芯片队列的头部方向进行移动;

13、s14.每移动一个位置,就计算出此次移动的总响应时间收益,直到移动到最大调度位置;

14、s15.筛选出总响应时间收益的最大值,并将最大值对应的位置作为最终调度位置,将该请求中所有事务插入到最终调度位置。

15、进一步的,假设每个芯片响应每个事务的响应时间都为t,将一个请求中最后一个响应的事务称作最后事务,将由于被调度事务的插入而向芯片队列的尾部移动的事务称作被插队事务;步骤s14每一次移动的总响应时间收益的计算过程包括:

16、从位置a移动一个位置到位置b前,获取被调度算法选中的请求中当前处于位置a的事务总数m;

17、将这m个事务移动到位置b后,被调度算法选中的请求的响应时间减少t;同时导致产生多个被插队事务,在多个被插队事务中去重地获取属于最后事务的事务数量nm,得到此次位置a到位置b移动的响应时间收益为tm=(1-nm)×t;

18、设初始位置为1,最终调度位置为k,则位置b的总响应时间收益为:

19、进一步的,未被调度算法选中的请求采用第二多芯片协同方法进行位置调度,具体包括:

20、s21.将未被调度算法选中的请求中所有事务存放到各自对应的芯片队列时,遍历该请求中所有事务各自对应的芯片队列的深度;

21、s22.选取最小深度对应的位置作为该请求中所有事务的目标位置;

22、s23.将属于最小深度所对应的芯片队列中的事务直接插到该芯片队列的队尾;

23、s24.计算该请求中其余事务在芯片队列中的最大收益位置,并进行位置调度。

24、进一步的,在步骤s24中,计算其余事务的最大收益位置的过程包括:

25、s241.确定每一个其余事务所处芯片队列的队尾,从队尾向目标位置的方向进行移动;

26、s242.每移动一个位置,就计算出此次移动的总响应时间收益;当总响应时间收益小于等于0时,结束移动;

27、s243.筛选出总响应时间收益的最大值,并将所有其余事务插入到总响应时间收益的最大值对应的位置。

28、进一步的,假设每个芯片响应每个事务的响应时间都为t,一个请求中最后响应的事务称作最后事务,将由于被调度事务的插入而向芯片队列的尾部移动的事务称作被插队事务;在步骤s242中,每一次移动的总响应时间收益的计算过程包括:

29、从位置a移动一个位置到位置b前,获取当前处于位置a的其余事务的事务总数n;

30、将这n个其余事务移动到位置b后,其余事务所属的请求的响应时间减少t;同时导致产生多个被插队事务,在多个被插队事务中去重地获取属于最后事务的事务数量ni,得到此次位置a到位置b移动的响应时间收益为ti=(1-ni)×t;

31、设初始位置为1,最终调度位置为k,则位置b的总响应时间收益为:

32、本发明的有益效果:

33、本发明提出了一种面向zns ssd的多芯片协同调度方法,其能够和现有的调度算法配合使用,对于现有调度算法需要调度的那些事务,通过综合调度与该事务属于同一请求的其他事务来避免由于仅调度单个芯片队列中的事务而导致的请求总响应时间增加;对于那些不需要被调度的事务,通过综合考虑同一请求的所有事务对应芯片队列的事务情况来将其插入到芯片队列中最合适的位置以最小化请求总响应时间。本发明的方法在保证了现有调度算法的调度效果基础上,进一步减少了所有请求的总响应时间。



技术特征:

1.一种面向zns ssd的多芯片协同调度方法,其特征在于,包括:

2.根据权利要求1所述的一种面向zns ssd的多芯片协同调度方法,其特征在于,在步骤s4中,采用第一多芯片协同方法对被调度算法选中的请求进行位置调度时,具体过程包括:

3.根据权利要求2所述的一种面向zns ssd的多芯片协同调度方法,其特征在于,假设每个芯片响应每个事务的响应时间都为t,将一个请求中最后一个响应的事务称作最后事务,将由于被调度事务的插入而向芯片队列的尾部移动的事务称作被插队事务;步骤s14每一次移动的总响应时间收益的计算过程包括:

4.根据权利要求1所述的一种面向zns ssd的多芯片协同调度方法,其特征在于,未被调度算法选中的请求采用第二多芯片协同方法进行位置调度,具体包括:

5.根据权利要求4所述的一种面向zns ssd的多芯片协同调度方法,其特征在于,在步骤s24中,计算其余事务的最大收益位置的过程包括:

6.根据权利要求5所述的一种面向zns ssd的多芯片协同调度方法,其特征在于,假设每个芯片响应每个事务的响应时间都为t,一个请求中最后响应的事务称作最后事务,将由于被调度事务的插入而向芯片队列的尾部移动的事务称作被插队事务;在步骤s242中,每一次移动的总响应时间收益的计算过程包括:


技术总结
本发明涉及计算机存储技术领域,尤其涉及一种面向ZNS SSD的多芯片协同调度方法;该方法以最小化所有请求的总响应时间为目的,设计第一多芯片协同方法和第二多芯片协同方法;当ZNS SSD设备接收到请求后,通过分区转换层对该请求进行转换,SSD控制器根据分区映射模块将转换后的请求拆分为多个事务,每个事务对应一个芯片;若该请求被调度算法选中,则事务调度模块根据调度算法和第一多芯片协同方法对该请求中所有事务进行位置调度;若该请求未被调度算法选中,则事务调度模块根据第二多芯片协同方法对该请求中所有事务进行位置调度;本发明在保证了现有调度算法的调度效果基础上,进一步减少了所有请求的总响应时间。

技术研发人员:刘人萍,龙林波,谭振华
受保护的技术使用者:重庆邮电大学
技术研发日:
技术公布日:2024/1/13
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1