本申请涉及数据访问领域,具体而言,涉及一种数据访问方法、装置、电子设备及存储介质。
背景技术:
1、目前,随着cpu(central processing unit,中央处理器)频率不断提高,访问dram(dynamic random access memory,动态随机存取存储器)的延迟已经成为整个soc(系统级芯片)系统的关键瓶颈,特别是当多进程并行访问dram,尤为明显。
2、相关技术中,多进程并行访问dram的时候,可能会存在读写命令连续访问同一个存储单元bank或存储单元组bank group中的不同行的情况,导致存在存储单元冲突bankconflict和存储单元组冲突bank group conflict,使得dram的数据访问存在访问延迟。
技术实现思路
1、为解决上述技术问题,本申请的实施例提供了一种数据访问方法、装置、电子设备及存储介质,以能够减少针对动态随机存取存储器并行数据访问时的访问延迟。
2、根据本申请实施例的一个方面,提供了一种数据访问方法,包括:在接收到访问请求的情况下,根据所述访问请求包含的针对存储数据的访问地址,确定与所述访问地址存在映射关系的目标地址;所述目标地址为与所述存储数据相同的复制数据的存储地址,但所述复制数据与所述存储数据分别存储在不同的存储单元;根据所述目标地址确定存储所述复制数据的存储单元的负载信息,并根据所述访问地址确定存储所述存储数据的存储单元的负载信息;将获取到的所有负载信息进行对比,确定出负载最小的存储单元,并在所述负载最小的存储单元中进行数据访问。
3、在一些实施例中,所述根据所述访问请求包含的访问地址确定对应的目标地址之前,所述方法还包括:从历史数据访问记录中确定出访问延迟大于预设延迟阈值,且访问次数大于预设次数阈值的存储数据;对所述存储数据进行复制,获得所述存储数据的复制数据;根据所述存储数据的存储地址,确定所述存储数据的复制数据的存储地址;按照所述复制数据的存储地址,对所述复制数据进行存储,并建立所述存储数据的存储地址与所述复制数据的存储地址之间的映射关系。
4、在一些实施例中,数据存储区域中包括多个存储单元组,每个存储单元组包括多个存储单元,每个存储单元包括第一存储区域和第二存储区域,所述第一存储区域用于对存储数据进行存储,所述第二存储区域用于对复制数据进行存储;所述存储地址包括存储单元组地址和存储单元地址;所述根据所述存储数据的存储地址,确定所述复制数据的存储地址,包括:分别对所述存储数据的存储单元组地址和存储单元地址进行取模运算,获得所述复制数据的存储单元组地址和存储单元地址;按照所述复制数据的存储地址对所述复制数据进行存储,包括:将所述复制数据,存储到所述复制数据的存储单元组地址和存储单元地址对应的第二存储区域中的空行。
5、在一些实施例中,所述根据所述目标地址确定存储所述复制数据的存储单元的负载信息,并根据所述访问地址确定存储所述存储数据的存储单元的负载信息,包括:获取所述目标地址对应的标签信息;根据所述标签信息确定所述目标地址对应的复制数据是否为有效数据;若所述复制数据为有效数据,则根据所述目标地址确定存储所述复制数据的存储单元的负载信息,并根据所述访问地址确定存储所述存储数据的存储单元的负载信息。
6、在一些实施例中,所述方法还包括:对数据访问带宽进行监测,在所述数据访问带宽低于预设带宽阈值的情况下,统计所有复制数据的访问次数;将访问次数低于预设阈值的复制数据确定为待更新数据,并对所述待更新数据进行更新。
7、在一些实施例中,所述对所述待更新数据进行更新,包括:从历史数据访问记录中确定出访问延迟大于预设延迟阈值,且访问次数大于预设次数阈值的新存储数据;对所述新存储数据进行复制,获得所述新存储数据的复制数据;将所述新存储数据的复制数据,存储到所述待更新数据的存储地址中,并建立所述新存储数据的存储地址,与所述新存储数据的复制数据的存储地址之间的映射关系。
8、在一些实施例中,所述方法还包括:在检测到针对目标存储单元的数据重写指令的情况下,获取所述目标存储单元的负载信息;其中,所述目标存储单元为存储有相同数据的两个存储单元;在所述两个存储单元的负载信息均小于预设负载阈值的情况下,对所述两个存储单元同时进行数据重写;或,在只有一个存储单元的负载信息小于所述预设负载阈值的情况下,对小于所述预设负载阈值的第一存储单元进行数据重写,并对大于所述预设负载阈值的第二存储单元的负载信息进行监测;在监测到所述第二存储单元的负载信息小于所述预设负载阈值的情况下,从所述第一存储单元中读取出重写后的存储数据,并根据所述重写后的存储数据对所述第二存储单元进行数据重写。在一些实施例中,
9、根据本申请实施例的一个方面,提供了一种数据访问装置,所述装置包括:第一确定模块,被配置为在接收到访问请求的情况下,根据所述访问请求包含的针对存储数据的访问地址,确定与所述访问地址存在映射关系的目标地址;所述目标地址为与所述存储数据相同的复制数据的存储地址,但所述复制数据与所述存储数据分别存储在不同的存储单元;第二确定模块,被配置为根据所述目标地址确定存储所述复制数据的存储单元的负载信息,并根据所述访问地址确定存储所述存储数据的存储单元的负载信息;数据访问模块,被配置为将获取到的所有负载信息进行对比,确定出负载最小的存储单元,并在所述负载最小的存储单元中进行数据访问。
10、根据本申请实施例的一个方面,提供了一种电子设备,包括:一个或多个处理器;存储装置,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述电子设备实现如上述的数据访问方法。
11、根据本申请实施例的一个方面,提供了一种计算机可读存储介质,其上存储有计算机可读指令,当所述计算机可读指令被计算机的处理器执行时,使计算机执行上述的数据访问方法。
12、在本申请的实施例提供的技术方案中,通过将动态随机存取存储器中存储的存储数据进行复制,并将复制数据存储到与原存储数据不同的其他存储单元中,这样在接收到访问请求的情况下,通过访问请求包含的访问地址确定对应的目标地址,能够查找出对应的存储单元的负载信息,并将其与访问地址对应的存储单元的负载信息进行对比,并选择负载最小的存储单元进行数据访问。这样在其中一个存储单元负载较高时,通过选择另一个负载较低的存储单元进行数据访问,能够从根本上减少bank conflict的发生次数,从而减少针对动态随机存取存储器的并行数据访问时的延迟。
13、应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本申请。
1.一种数据访问方法,其特征在于,包括:
2.根据权利要求1所述的方法,其特征在于,所述根据所述访问请求包含的访问地址确定对应的目标地址之前,所述方法还包括:
3.根据权利要求2所述的方法,其特征在于,数据存储区域中包括多个存储单元组,每个存储单元组包括多个存储单元,每个存储单元包括第一存储区域和第二存储区域,所述第一存储区域用于对存储数据进行存储,所述第二存储区域用于对复制数据进行存储;所述存储地址包括存储单元组地址和存储单元地址;所述根据所述存储数据的存储地址,确定所述复制数据的存储地址,包括:
4.根据权利要求1所述的方法,其特征在于,所述根据所述目标地址确定存储所述复制数据的存储单元的负载信息,并根据所述访问地址确定存储所述存储数据的存储单元的负载信息,包括:
5.根据权利要求1所述的方法,其特征在于,所述方法还包括:
6.根据权利要求5所述的方法,其特征在于,所述对所述待更新数据进行更新,包括:
7.根据权利要求1所述的方法,其特征在于,所述方法还包括:
8.一种数据访问装置,其特征在于,所述装置包括:
9.一种电子设备,其特征在于,包括:
10.一种计算机可读存储介质,其特征在于,其上存储有计算机可读指令,当所述计算机可读指令被计算机的处理器执行时,使计算机执行权利要求1至7中任一项所述的数据访问方法。
