闪存接口的性能评估方法及相关装置与流程

文档序号:35464280发布日期:2023-09-16 02:51阅读:28来源:国知局
闪存接口的性能评估方法及相关装置与流程

本技术涉及存储设备应用领域,特别是涉及一种闪存接口的性能评估方法及相关装置。


背景技术:

1、闪存设备,例如:固态硬盘(solid state drives,ssd),是采用固态电子存储芯片阵列而制成的硬盘,固态硬盘包括控制单元和存储单元(flash存储芯片或 dram存储芯片)。在对闪存设备进行性能评估时,需要评估闪存接口的性能。

2、目前,通常采用先计算读(写)请求数据传输时间和读(写)请求等待时间,然后根据读(写)请求等待时间和(n-1)*读(写)请求数据传输时间的关系,确定读(写)带宽的方式评估闪存接口的性能,其中,n为一个通道内裸片(die)的数量。然而,这种方式只能针对纯读和纯写场景进行评估,无法评估混合读写场景下闪存接口的性能;且未考虑命令和地址传输时间及查询时间,性能评估不够准确。


技术实现思路

1、本技术实施例提供一种闪存接口的性能评估方法及相关装置,以准确评估闪存接口在纯读、纯写或混合读写场景下的理论性能。

2、本技术实施例提供以下技术方案:

3、第一方面,本技术实施例提供一种闪存接口的性能评估方法,包括:

4、获取io模型的信息;

5、根据io模型的信息生成io命令,并将若干个io命令存放至不同的命令队列;

6、根据命令队列的状态执行io命令;

7、根据在命令执行总时间内执行完成的io命令的数量,计算每种命令类型对应的闪存接口带宽。

8、在一些实施例中,io模型的信息包括命令类型、每一种命令类型对应的命令数据大小、每一种命令类型对应的带宽占比;

9、根据io模型的信息生成io命令,并将若干个io命令存放至不同的命令队列,包括:

10、根据带宽占比,计算每一种命令类型对应的命令类型数量占比;

11、根据命令类型数量占比,确定每种命令类型对应的命令类型占比区间;

12、基于随机算法生成一个随机数,计算随机数对应的区间概率,其中,随机数对应的区间概率=随机数的数值/随机数的区间范围;

13、根据区间概率对应的命令类型占比区间,确定待生成的io命令的命令类型,以生成io命令;

14、将每一io命令依次存放至不同的命令队列,直至生成的io命令的个数大于或等于预设命令个数阈值。

15、在一些实施例中,该闪存接口的性能评估方法应用于闪存命令执行模拟器,闪存命令执行模拟器包括命令模拟执行器,命令模拟执行器包括队列调度器、写命令执行器和读命令执行器,命令队列与队列调度器一一对应;

16、命令队列的状态包括空闲状态和执行状态;

17、根据命令队列的状态执行io命令,包括:

18、控制队列调度器遍历命令队列,获取处于空闲状态的命令队列中的io命令;

19、根据io命令的命令类型,控制写命令执行器或读命令执行器执行io命令,以得到第一执行时间;

20、根据第一执行时间,控制队列调度器更新命令执行总时间和队列深度;

21、控制队列调度器将命令队列的状态修改为执行状态,并将当前队列的开始执行时间设置为更新后的命令执行总时间。

22、在一些实施例中,根据命令队列的状态执行io命令,还包括:

23、控制写命令执行器或读命令执行器,执行处于执行状态的命令队列中的io命令,以得到第二执行时间和io命令的执行状态;

24、根据第二执行时间,控制队列调度器更新命令执行总时间;

25、在io命令的执行状态为完成状态时,控制队列调度器将命令队列的状态修改为空闲状态,其中,io命令的执行状态包括未完成状态和完成状态。

26、在一些实施例中,根据io命令的命令类型,控制写命令执行器或读命令执行器执行io命令,以得到第一执行时间,包括:

27、若写命令执行器处于发送命令状态,则控制写命令执行器计算发送写命令和地址的时间、数据传输时间与第一执行时间,并确定io命令的执行状态为未完成状态,其中,第一执行时间=发送写命令和地址的时间+数据传输时间;

28、若写命令执行器不处于发送命令状态,则控制写命令执行器执行写查询命令,并记录写查询命令对应的写查询时间;

29、在命令执行总时间与当前队列的开始执行时间之差大于编程等待时间时,确定io命令的执行状态为完成状态,并确定第一执行时间为所述写查询时间;

30、在命令执行总时间与当前队列的开始执行时间之差小于或等于编程等待时间时,确定io命令的执行状态为未完成状态,并确定第一执行时间为写查询时间。

31、在一些实施例中,根据io命令的命令类型,控制写命令执行器或读命令执行器执行io命令,以得到第一执行时间,还包括:

32、若读命令执行器处于发送命令状态,则控制读命令执行器计算发送读命令和地址的时间与第一执行时间,并确定io命令的执行状态为未完成状态;

33、若读命令执行器不处于发送命令状态,则控制读命令执行器执行读查询命令,并记录读查询命令对应的读查询时间;

34、在命令执行总时间与当前队列的开始执行时间之差大于编程等待时间时,控制读命令执行器进行数据传输,并计算数据传输时间;

35、确定io命令的执行状态为完成状态,并计算第一执行时间;

36、在命令执行总时间与当前队列的开始执行时间之差小于或等于编程等待时间时,确定io命令的执行状态为未完成状态,并确定第一执行时间为读查询时间。

37、在一些实施例中,每种命令类型对应的闪存接口带宽=闪存设备的通道数目*命令数据大小*io命令的数量/命令执行总时间。

38、第二方面,本技术实施例提供一种闪存命令执行模拟器,应用如第一方面所述的闪存接口的性能评估方法,闪存命令执行模拟器包括:

39、命令生成器,用于根据io模型的信息,生成io命令,并将若干个io命令存放至不同的命令队列;

40、命令模拟执行器,用于根据命令队列的状态,执行io命令。

41、在一些实施例中,命令模拟执行器包括队列调度器、写命令执行器和读命令执行器,其中,

42、队列调度器,用于控制写命令执行器或读命令执行器执行io命令,得到第一执行时间或第二执行时间,以及io命令的执行状态,以更新命令执行总时间和命令队列的状态,其中,命令队列的状态包括空闲状态和执行状态;

43、写命令执行器,用于执行写命令,计算第一执行时间或第二执行时间,并确定io命令的执行状态,其中,io命令的执行状态包括未完成状态和完成状态;

44、读命令执行器,用于执行读命令,计算第一执行时间或第二执行时间,并确定io命令的执行状态。

45、第三方面,本技术实施例提供一种存储控制芯片,包括:

46、如第二方面的闪存命令执行模拟器。

47、第四方面,本技术实施例提供一种闪存设备,包括:

48、如第三方面的存储控制芯片;

49、至少一个闪存介质,与存储控制芯片通信连接。

50、第五方面,本技术实施例还提供了一种非易失性计算机可读存储介质,非易失性计算机可读存储介质存储有计算机可执行指令,计算机可执行指令用于使闪存设备能够执行第一方面的闪存接口的性能评估方法。

51、本技术实施例的有益效果是:区别于现有技术的情况下,本技术实施例提供一种闪存接口的性能评估方法,该闪存接口的性能评估方法包括:获取io模型的信息;根据io模型的信息生成io命令,并将若干个io命令存放至不同的命令队列;根据命令队列的状态执行io命令;根据在命令执行总时间内执行完成的io命令的数量,计算每种命令类型对应的闪存接口带宽。通过根据io模型的信息生成io命令,将若干个io命令存放至不同的命令队列,并根据命令队列的状态执行io命令,以及根据在命令执行总时间内执行完成的io命令的数量,计算每种命令类型对应的闪存接口带宽,本技术能够准确评估闪存接口在纯读、纯写或混合读写场景下的理论性能,而不依赖任何硬件实现。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1