存储系统及存储方法与流程

文档序号:37940796发布日期:2024-05-11 00:19阅读:15来源:国知局
存储系统及存储方法与流程

本技术涉及存储设备应用领域,特别是涉及一种存储系统及存储方法。


背景技术:

1、闪存设备,例如:固态硬盘(solid state drives,ssd),是一种以半导体闪存(nand flash)作为介质的存储设备。闪存设备通常需要将地址映射表存放在内存中,其中,内存包括动态随机存储器(dynami crandom access memory,dram)。

2、随着数据的爆炸式增长,数据中心对闪存设备的容量提出了更高的要求。然而,提升闪存设备的容量同时还需要配备更大的内存以存放地址映射表,从而保证高速的读写性能。

3、目前,为了节省闪存设备的内存容量,通常借助主机端的内存,通过计算快速链路(compressexpresslink,cxl)协议将闪存设备全部的地址映射表传输至主机端内存。

4、在实现本技术过程中,发明人发现现有技术中至少存在如下问题:将闪存设备全部的地址映射表存放至主机端的内存,会引起主机端严重的内存开销,而且当主机端的内存压力较大时,该方案难以在主机端找到足够的内存空间存放全量的映射表,存在严重的性能问题。


技术实现思路

1、本技术实施例提供一种存储系统及存储方法,以协同闪存设备的内存和至少一个外部设备的设备内存,存放闪存设备的映射表表项,避免主机内存压力较大时无法存放映射表的情况。

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

3、第一方面,本技术实施例提供一种存储系统,该存储系统包括闪存设备和至少一个外部设备;

4、其中,闪存设备包括映射块,映射块用于存储映射表表项,映射表表项包括第一部分映射表表项和第二部分映射表表项,外部设备包括设备内存;

5、闪存设备,用于读取映射块内存储的第一部分映射表表项,并将第一部分映射表表项存储至第一地址映射表,其中,第一地址映射表位于闪存设备的内存;

6、外部设备,用于获取第二部分映射表表项,并将第二部分映射表表项存储至设备内存中。

7、在一些实施例中,存储系统还包括主机;

8、主机,连接闪存设备和至少一个外部设备,用于获取映射块内存储的第二部分映射表表项,并将第二部分映射表表项传输给至少一个外部设备;

9、主机包括pcie硬件端口,主机通过pcie硬件端口与闪存设备、外部设备进行连接;

10、主机基于计算快速链路协议,分别与闪存设备、外部设备进行通信。

11、在一些实施例中,映射表表项包括逻辑页号与物理页号的映射关系,设备内存包括若干个区域,每一个区域包括若干个固定大小的存储块,存储块用于存储第二部分映射表表项中每一个映射表表项的物理页号;

12、设备内存中存储有区段表,区段表用于管理若干个存储块的分配信息;

13、外部设备还包括设备管理编码器,设备管理编码器用于向主机暴露设备内存中的可用内存的物理地址范围。

14、在一些实施例中,在存储系统上电时,主机用于:

15、访问每一个外部设备的设备管理编码器,以获取每一个外部设备的可用内存空间地址和可用内存容量;

16、基于每一个外部设备的可用内存容量,确定可用外部内存总量;

17、根据第一内存容量、可用外部内存总量、每一个外部设备的可用内存容量,按比例计算每一个外部设备的第二内存容量,其中,第一内存容量为全部的映射表表项存放所需的内存容量与闪存设备的内存容量之差,第二内存容量为外部设备实际使用的内存容量;

18、根据闪存设备的内存容量、每一个外部设备的第二内存容量,分别计算闪存设备、每一个外部设备需要存放的映射表表项的数量,并确定闪存设备与每一个外部设备实际存放的映射表表项的范围。

19、在一些实施例中,闪存设备包括闪存介质,闪存设备还用于:

20、获取主机发送的写请求,其中,写请求包括待写入数据;

21、基于写请求,将待写入数据写入所述闪存介质;

22、基于写请求、闪存设备与每一个外部设备实际存放的映射表表项的范围,确定写请求对应的第一目标表项所在的内存位置,其中,内存位置包括闪存设备的内存或者外部设备的设备内存;

23、在第一目标表项在闪存设备的内存中时,更新第一地址映射表中的对应表项,并向主机发送第一信息,其中,第一信息用于表示闪存设备已成功执行写请求。

24、在一些实施例中,在第一目标表项在某一个外部设备的设备内存中时,闪存设备用于:

25、向主机发送第一请求,其中,第一请求包括第一目标表项的目标逻辑页号、待更新物理页号、第一目标设备存放的映射表表项的范围,其中,第一目标设备为第一目标表项所在的外部设备;

26、在一些实施例中,在第一目标表项在某一个外部设备的设备内存中时,主机用于:

27、获取闪存设备发送的第一请求;

28、基于第一请求,向第一目标设备发送区段表查询请求,以获取内存起始地址、第一目标表项所在区域的起始逻辑页号;

29、将第一目标表项的目标逻辑页号与第一目标表项所在区域的起始逻辑页号之差,作为第一差值;

30、将第一差值与一个映射表表项的大小相乘,得到第一偏移地址;

31、将第一偏移地址与所述内存起始地址相加,得到第一目标表项的实际内存地址;

32、根据第一目标表项的实际内存地址、待更新物理页号,对第一目标设备中存储的第一目标表项的原物理页号进行更新,并向闪存设备发送第二信息,其中,第二信息用于表示主机已成功更新第一目标表项。

33、在一些实施例中,闪存设备还用于:

34、获取主机发送的读请求;

35、基于读请求、闪存设备与每一个外部设备实际存放的映射表表项的范围,确定读请求对应的第二目标表项所在的内存位置,其中,内存位置包括闪存设备的内存或者外部设备的设备内存;

36、在第二目标表项在某一个外部设备的设备内存中时,向主机发送第三请求,其中,第三请求包括第二目标表项的目标逻辑页号、第二目标设备存放的映射表表项的范围,第二目标设备为第二目标表项所在的外部设备;

37、在第二目标表项在闪存设备的内存中时,在第一地址映射表中查找所述第二目标表项,并根据第二目标表项中的物理页号在闪存介质中读取相应的数据;

38、将数据发送至主机。

39、在一些实施例中,在第二目标表项在某一个外部设备的设备内存中时,主机用于:

40、获取闪存设备发送的第三请求;

41、基于第三请求,向第二目标设备发送区段表查询请求,以获取内存起始地址、第二目标表项所在区域的起始逻辑页号;

42、将第二目标表项的目标逻辑页号与第二目标表项所在区域的起始逻辑页号之差,作为第二差值;

43、将第二差值与一个映射表表项的大小相乘,得到第二偏移地址;

44、将第二偏移地址与所述内存起始地址相加,得到第二目标表项的实际内存地址;

45、根据第二目标表项的实际内存地址,在第二目标设备的设备内存中读取第二目标表项,得到目标物理页号,并将目标物理页号发送给闪存设备。

46、在一些实施例中,在第二目标表项在某一个外部设备的设备内存中时,闪存设备还用于:

47、获取主机发送的目标物理页号;

48、根据目标物理页号在闪存介质中读取相应的数据,并将读取到的数据发送至主机。

49、在一些实施例中,在存储系统下电时,主机用于获取每一个外部设备的设备内存中存储的映射表表项,并将映射表表项发送至所述闪存设备;

50、在存储系统下电时,闪存设备用于将第一地址映射表中的每一个映射表表项或者主机发送的每一个映射表表项,存储至对应的映射块。

51、第二方面,本技术实施例提供一种存储方法,该存储方法应用于第一方面的存储系统,该存储方法包括:

52、基于闪存设备读取映射块内存储的第一部分映射表表项,并将第一部分映射表表项存储至第一地址映射表,其中,第一地址映射表位于闪存设备的内存;

53、获取映射块内存储的第二部分映射表表项,并将第二部分映射表表项存储到至少一个外部设备的设备内存中。

54、在一些实施例中,存储系统还包括主机,方法还包括:

55、根据主机发送的写请求,确定写请求对应的第一目标表项所在的内存位置;

56、在第一目标表项在闪存设备的内存中时,闪存设备更新第一地址映射表中的对应表项;

57、在第一目标表项在某一个外部设备的设备内存中时,主机根据第一目标表项的实际内存地址,对第一目标设备中存储的第一目标表项的原物理页号进行更新。

58、在一些实施例中,闪存设备包括闪存介质,存储系统还包括主机,方法还包括:

59、根据主机发送的读请求,确定读请求对应的第二目标表项所在的内存位置;

60、在第二目标表项在闪存设备的内存中时,闪存设备在闪存介质中读取相应的数据,并将数据发送至主机;

61、在第二目标表项在某一个外部设备的设备内存中时,主机根据第二目标表项的实际内存地址,在第二目标设备的设备内存中读取第二目标表项,得到目标物理页号,并将目标物理页号发送给闪存设备;

62、闪存设备根据目标物理页号在闪存介质中读取相应的数据,并将读取到的数据发送至主机。

63、第三方面,本技术实施例还提供了一种非易失性计算机可读存储介质,非易失性计算机可读存储介质存储有计算机可执行指令,当计算机可执行指令被处理器所执行时,使处理器执行如第二方面的存储方法。

64、本技术实施例的有益效果是:区别于现有技术的情况下,本技术实施例提供的一种存储系统,该存储系统包括闪存设备和至少一个外部设备;其中,闪存设备包括映射块,映射块用于存储映射表表项,映射表表项包括第一部分映射表表项和第二部分映射表表项,外部设备包括设备内存;闪存设备,用于读取映射块内存储的第一部分映射表表项,并将第一部分映射表表项存储至第一地址映射表,其中,第一地址映射表位于闪存设备的内存;外部设备,用于获取第二部分映射表表项,并将第二部分映射表表项存储至设备内存中。

65、通过闪存设备用于将第一部分映射表表项存储至第一地址映射表,外部设备用于将第二部分映射表表项存储至设备内存中,本技术能够协同闪存设备的内存和至少一个外部设备的设备内存,存放闪存设备的映射表表项,避免主机内存压力较大时无法存放映射表的情况,能够最大化利用外部设备的内存资源并减少主机的存储压力。

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