技术新讯 > 计算推算,计数设备的制造及其应用技术 > 一种数据存储方法及相关设备与流程  >  正文

一种数据存储方法及相关设备与流程

  • 国知局
  • 2024-09-14 14:50:33

本技术涉及存储,尤其涉及一种数据存储方法及相关设备。

背景技术:

1、在现有技术中,内存系统会因为设计故障/缺陷或任何一个部件中的电噪声而发生错误。为了在内存系统运行时处理这些内存错误,内存系统必须具有先进的可靠性、可用性和可维护性(reliability availability,and serviceability,ras)功能,以在内存系统发生内存错误时进行修正,延长整个内存系统的正常运行时间。

2、目前内存系统中较常用的ras方案是通过纠错码(error correcting code,ecc)内存校验实现单位(bit)纠错和双位(bit)检错(single error correction/double errordetection,secded)来维护内存系统的ras。

3、然而,该方案对纠错码引入了ecc检查机制,即,在读取操作期间,内存控制器从存储器中读取数据并读取相应的ecc数据。内存控制器利用读取到的数据重新生成ecc数据,并将其与读取到的ecc数据进行比较,基于两者的比较结果判断是否发生错误。但是,该ecc检查机制的引入也导致了内存系统的访问性能下降,其具体表现为ecc数据相较于存储的业务数据为冗余数据,该冗余数据会导致内存系统的带宽利用率下降和时延增加。例如:相较于正常的读写数据,需要多生成针对ecc数据的读写命令,造成了命令冗余。又例如:需要分别读取数据和相应的ecc数据再进行校验,导致时延大幅度增加。

4、因此,如何在维持内存系统ras的同时,确保内存系统的访问性能,是亟待解决的问题。

技术实现思路

1、本技术实施例提供一种数据存储方法及相关设备,通过将业务数据和冗余数据存储在同一个存储单元burst中,实现在维持内存系统ras的同时,确保内存系统的访问性能。

2、第一方面,本技术实施例提供了一种数据存储方法,可包括:确定针对业务数据的第一存储命令,上述第一存储命令包括上述业务数据对应的第一存储地址和上述业务数据的第一数据长度;确定上述业务数据对应冗余数据的第二数据长度,上述冗余数据用于校验上述业务数据;将上述第一数据长度和第二数据长度的总长度与预设阈值进行对比;当上述总长度小于或等于上述预设阈值时,基于上述第一存储命令,将上述业务数据和上述冗余数据写入上述第一存储地址对应的存储单元burst中。

3、通过第一方面所述的方法,在确定针对业务数据的第一存储命令后,基于业务数据的第一数据长度和业务数据对应冗余数据的第二数据长度,判断该业务数据和冗余数据是否能够被写入同一个存储单元burst中,相应的即是判断该第一存储命令是否为不跨存储单元burst的命令。其中,若第一数据长度和第二数据长度的总长度小于或等于预设阈值,则说明该业务数据和冗余数据能够被写入至同一个存储单元burst中,相应的该第一存储命令为不跨存储单元burst的命令,进而本技术实施例可以通过该第一存储命令将业务数据和冗余数据一起写入同一个存储单元burst中。其中,该预设阈值的大小是由单个存储单元burst的存储长度确定。本技术实施例通过第一存储命令将业务数据和业务数据对应冗余数据一起写入至同一个存储单元burst中,相较于现有技术中通过两个存储命令分别存储业务数据和冗余数据的方案,可以减少额外生成的针对冗余命令的存储命令,再维持内存系统ras的同时,提高了当前内存系统的带宽利用率,减小了时延。

4、在一种可能的实现方式中,上述基于上述第一存储命令,将上述业务数据和上述冗余数据写入上述第一存储地址对应的存储单元burst中之前,还包括:基于上述第一存储地址通过预设抽象算法获得上述第一存储地址对应的地址冗余信息;将上述地址冗余信息保存至地址存储区域。

5、在本技术实施例中,在业务数据和冗余数据可以被写入至同一个存储单元burst中的情况下,为了保证内存系统的可靠性,需要将其对应的第一存储地址进行存储,防止地址发生错误时,被写入至错误的存储地址,进而导致在读取第一地址对应的业务数据和冗余数据时,造成读取到的数据错误。

6、在一种可能的实现方式中,上述基于上述第一存储命令,将上述业务数据和上述业务数据对应的冗余数据写入上述第一存储地址对应的存储单元burst中,包括:基于上述地址冗余信息,将上述业务数据中信号校验位对应的数据进行数据翻转,获得翻转后的业务数据;基于上述第一存储命令,将上述翻转后的业务数据和上述冗余数据写入上述第一存储地址对应的存储单元burst中。

7、在本技术实施例中,为了进一步的保证业务数据和冗余数据被写入至同一个存储单元burst时内存系统的可靠性,将第一存储地址与业务数据关联,即,基于第一存储地址对应的地址冗余信息对业务数据的数据校验位进行数据翻转,以使得在读取业务数据和冗余数据时确保业务数据的准确性,进而维持内存系统ras。

8、在一种可能的实现方式中,上述方法还包括:在上述总长度大于上述预设阈值时,基于上述第一存储命令,将上述业务数据写入上述第一存储地址对应的存储区域;确定针对上述冗余数据的第二存储命令,上述第二存储命令包括上述冗余数据对应的第二存储地址,其中,上述第二存储地址对应的存储单元burst与上述第一存储地址对应的存储单元burst相邻;基于上述第二存储命令,将上述冗余数据写入上述第二存储地址对应的存储单元burst中。

9、在本技术实施例中,在业务数据和冗余数据不可以被写入至同一个存储单元burst中的情况下,需要生成两个存储命令分别将业务数据写入第一存储地址,将冗余数据写入第二存储地址,为了确保内存系统的访问性能,可以将冗余数据与业务数据相邻的存储单元中,相较于现有技术中存储在两个不同的不相邻的两个存储地址,可以更快速的读取业务数据和冗余数据,减少时延。

10、在一种可能的实现方式中,上述方法还包括:确定针对上述业务数据的第一读取命令,上述第一读取命令包括上述第一存储地址和上述第一数据长度;将上述总长度与上述预设阈值进行对比;当上述总长度小于或等于上述预设阈值时,基于上述第一读取命令,从上述第一存储地址对应的存储单元burst中获取上述业务数据和上述业务数据对应的冗余数据。

11、在本技术实施例中,在确定针对业务数据的第一读取命令后,基于业务数据的第一数据长度和业务数据对应冗余数据的第二数据长度,判断该业务数据和冗余数据是否被写入了同一个存储单元burst中,相应的即是判断该第一读取命令是否为不跨存储单元burst的命令。其中,若第一数据长度和第二数据长度的总长度小于或等于预设阈值,则说明该业务数据和冗余数据被写入至同一个存储单元burst中,相应的该第一读取命令为不跨存储单元burst的命令,进而本技术实施例可以通过该第一读取命令可以从同一个存储单元burst中读取业务数据和冗余数据。相较于现有技术中通过两个读取命令分别读取业务数据和冗余数据的方案,可以减少额外生成的针对冗余命令的读取命令,提高了当前内存系统的带宽利用率,减小了时延。

12、在一种可能的实现方式中,上述方法还包括:从上述地址存储区域获取上述第一存储地址对应的上述地址冗余信息;上述基于上述第一读取命令,从上述第一存储地址对应的存储区域获取上述业务数据和上述业务数据对应的冗余数据,包括:根据上述第一读取命令,从上述第一存储地址对应的存储区域读取上述翻转后的业务数据和上述冗余数据;基于上述地址冗余信息,将上述翻转后的业务数据进行数据反翻转,获取上述业务数据。

13、在本技术实施例中,为了进一步的保证内存系统的可靠性,在业务数据和冗余数据被写入至同一个存储单元burst时将第一存储地址与业务数据进行了关联,即,基于第一存储地址对应的地址冗余信息对业务数据的数据校验位进行数据翻转,因此在读取到第一存储地址对应存储单元burst中的业务数据和冗余数据时,需要根据第一存储地址对应的地址冗余信息进行数据反翻转,以确保业务数据的准确性,进而维持内存系统ras。

14、在一种可能的实现方式中,上述方法还包括:当上述总长度大于上述预设阈值时,基于上述第一读取命令,从上述第一存储地址对应的存储单元burst中读取上述业务数据;确定针对上述冗余数据的第二读取命令,上述第二存储命令包括上述冗余数据对应的上述第二存储地址;从上述第二存储地址对应的存储单元burst中读取上述冗余数据。

15、在本技术实施例中,在业务数据和冗余数据不可以被写入至同一个存储单元burst中的情况下,可以生成两个读取命令从相邻的两个存储地址中分别读取业务数据和冗余数据,大大的提高了读取效率,减少了时延。

16、在一种可能的实现方式中,上述方法还包括:通过上述冗余数据对上述业务数据进行校验,获得校验结果;当上述校验结果指示上述业务数据正确时,响应上述第一读取命令,输出上述业务数据;当上述校验结果指示上述业务数据出现单位bit错误时,纠正上述业务数据中的上述单位bit错误,响应上述第一读取命令,输出纠正后的业务数据;当上述校验结果指示上述业务数据出现双位bit错误时,中断上述第一读取命令,并上报中断信息。

17、在获取到业务数据和冗余数据后,可以对业务数据进行校验,以防止该业务数据发生错误。在本技术实施例中,可以基于不同的校验结果对该业务数据进行相应的处理,以维护内存系统的ras。

18、在一种可能的实现方式中,上述方法还包括:获取针对业务数据的业务命令,判断上述业务命令所属的命令类型,上述命令类型包括写命令和读命令;若上述业务命令属于上述写命令,则将上述业务命令确定为针对业务数据的上述第一存储命令;若上述业务命令属于上述读命令,则将上述业务命令确定为针对业务数据的上述第一读取命令。

19、在本技术实施例中,在获得针对业务数据的业务命令后,需要判断该业务命令是属于写命令还是读命令,以防止错误执行该业务命令以维护内存系统的ras。

20、第二方面,本技术实施例提供了一种数据存储装置,其特征在于,包括:

21、第一确定单元,用于确定针对业务数据的第一存储命令,上述第一存储命令包括上述业务数据对应的第一存储地址和上述业务数据的第一数据长度;

22、第二确定单元,用于确定上述业务数据对应冗余数据的第二数据长度,上述冗余数据用于校验上述业务数据;

23、第一对比单元,用于将上述第一数据长度和第二数据长度的总长度与预设阈值进行对比;

24、第一写入单元,用于当上述总长度小于或等于上述预设阈值时,基于上述第一存储命令,将上述业务数据和上述冗余数据写入上述第一存储地址对应的存储单元burst中。

25、在一种可能的实现方式中,上述第一写入单元,还用于:基于上述第一存储命令,将上述业务数据和上述冗余数据写入上述第一存储地址对应的存储单元burst中之前,基于上述第一存储地址通过预设抽象算法获得上述第一存储地址对应的地址冗余信息;将上述地址冗余信息保存至地址存储区域。

26、在一种可能的实现方式中,上述第一写入单元,具体用于:基于上述地址冗余信息,将上述业务数据中信号校验位对应的数据进行数据翻转,获得翻转后的业务数据;基于上述第一存储命令,将上述翻转后的业务数据和上述冗余数据写入上述第一存储地址对应的存储单元burst中。

27、在一种可能的实现方式中,上述装置还包括:第二写入单元,用于在上述总长度大于上述预设阈值时,基于上述第一存储命令,将上述业务数据写入上述第一存储地址对应的存储区域;第三确定单元,用于确定针对上述冗余数据的第二存储命令,上述第二存储命令包括上述冗余数据对应的第二存储地址,其中,上述第二存储地址对应的存储单元burst与上述第一存储地址对应的存储单元burst相邻;第三写入单元,用于基于上述第二存储命令,将上述冗余数据写入上述第二存储地址对应的存储单元burst中。

28、在一种可能的实现方式中,上述装置还包括:第四确定单元,用于确定针对上述业务数据的第一读取命令,上述第一读取命令包括上述第一存储地址和上述第一数据长度;第二对比单元,用于将上述第一数据长度和第二数据长度的上述总长度与上述预设阈值进行对比;第一获取单元,用于当上述总长度小于或等于上述预设阈值时,基于上述第一读取命令,从上述第一存储地址对应的存储单元burst中获取上述业务数据和上述业务数据对应的冗余数据。

29、在一种可能的实现方式中,上述装置还包括:第二获取单元,用于从上述地址存储区域获取上述第一存储地址对应的上述地址冗余信息;上述第一获取单元,具体用于:根据上述第一读取命令,从上述第一存储地址对应的存储区域读取上述翻转后的业务数据和上述冗余数据;基于上述地址冗余信息,将上述翻转后的业务数据进行数据反翻转,获取上述业务数据。

30、在一种可能的实现方式中,上述装置还包括:第一读取单元,用于当上述总长度大于上述预设阈值时,基于上述第一读取命令,从上述第一存储地址对应的存储单元burst中读取上述业务数据;第五确定单元,用于确定针对上述冗余数据的第二读取命令,上述第二存储命令包括上述冗余数据对应的上述第二存储地址;第二读取单元,用于从上述第二存储地址对应的存储单元burst中读取上述冗余数据。

31、在一种可能的实现方式中,上述装置还包括:校验单元,用于:通过上述冗余数据对上述业务数据进行校验,获得校验结果;当上述校验结果指示上述业务数据正确时,响应上述第一读取命令,输出上述业务数据;当上述校验结果指示上述业务数据出现单位bit错误时,纠正上述业务数据中的上述单位bit错误,响应上述第一读取命令,输出纠正后的业务数据;当上述校验结果指示上述业务数据出现双位bit错误时,中断上述第一读取命令,并上报中断信息。

32、在一种可能的实现方式中,上述装置还包括:业务单元,用于:获取针对业务数据的业务命令,判断上述业务命令所属的命令类型,上述命令类型包括写命令和读命令;若上述业务命令属于上述写命令,则将上述业务命令确定为针对业务数据的上述第一存储命令;若上述业务命令属于上述读命令,则将上述业务命令确定为针对业务数据的上述第一读取命令。

33、第三方面,本技术实施例提供一种服务设备,该服务设备中包括处理器,处理器被配置为支持该服务设备执行上述第一方面提供的一种数据存储方法中相应的功能。该服务设备还可以包括存储器,存储器用于与处理器耦合,其保存该服务设备必要的程序指令和数据。该服务设备还可以包括通信接口,用于该服务设备与其他设备或通信网络通信。

34、第四方面,本技术实施例提供了一种计算机程序,该计算机程序包括指令,当该计算机程序被计算机执行时,使得计算机可以执行上述第四方面提供的一种数据存储装置或上述第五方面提供的另一种数据存储装置所执行的流程。

35、第五方面,本技术实施例提供一种计算机存储介质,用于储存为上述第二方面提供的一种数据存储装置所用的计算机软件指令,其包含用于执行上述方面所设计的程序。

本文地址:https://www.jishuxx.com/zhuanli/20240914/296117.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 YYfuon@163.com 举报,一经查实,本站将立刻删除。