存储器访问方法和电子装置制造方法及图纸

技术编号:31576831 阅读:13 留言:0更新日期:2021-12-25 11:18
本文描述了一种用于访问存储器的方法、计算机可读存储介质、计算机程序产品和电子设备。在本公开中,可以将多维张量的目标数据的逻辑地址转换为存储器中的物理地址,并且使用该物理地址来访问存储器。这样,编程人员可以仅需要从多维张量的角度考虑张量的逻辑地址,而无需知晓从多维张量到一维物理地址的映射关系,从而减少编程人员的认知负担,并且减少了开发时间。了开发时间。了开发时间。

【技术实现步骤摘要】
存储器访问方法和电子装置


[0001]本公开的实施例一般地涉及电子领域,更具体而言涉及一种用于对存储器进行访问的方法和电子装置。

技术介绍

[0002]诸如图形处理器(GPU)之类的并行高性能多线程多核处理系统处理数据的速度比过去快得多。这些处理系统可以将复杂的计算分解为较小的任务,并且由多核并行处理以增加处理效率并且减少处理时间。
[0003]在一些情形下,诸如GPU之类的多核处理器对具有大量相同或相似形式的数据的张量的处理尤为有利。张量数据在计算机领域通常表示一维或多维数组的数据,例如图像数据就是一种常规的二维张量数据,其可以由二维数组表示。对图像数据进行处理时,可以由多核处理器对图像数据中的不同部分并行处理以减少处理时间。
[0004]常规的张量数据在存储器中通常以一维数组形式进行存储,因此程序的编程人员在设计程序时,需要考虑程序加载张量数据的情形下如何对存储器中的张量数据正确寻址。当张量数据表示多维张量时,编程人员通常需要知晓这种多维张量到一维数据的映射,即多维张量到存储器中的一维数据的物理地址的正确映射,这给编程人员增加了严重的认知负担。

技术实现思路

[0005]本公开的实施例提供了一种用于访问存储器的方法和装置。
[0006]在第一方面,提供了一种用于访问存储器的方法。该方法包括将张量中的第一段中的目标元素的逻辑地址转换为目标元素在存储器中的物理地址。逻辑地址包括第一段在张量中的段基准数据和偏移数据,偏移数据表示目标元素在第一段的多个维度中的各维上的偏移量。该方法还包括使用目标元素的物理地址访问存储器。编程人员可以从多维张量角度考虑数据,而无需知晓这种多维张量到一维数据的映射,即多维张量到存储器中的一维数据的物理地址的正确映射,从而降低了编程人员的认知负担,增加了开发效率并且减少开发时间。
[0007]在一种可能的实现方式中,第一段包括至少一个页,至少一个页包括目标元素所在的目标元素页。将目标元素的逻辑地址转换为物理地址包括:至少根据目标元素页的各维的尺寸,将逻辑地址转换为线性地址,线性地址包括目标元素页的一维页标识和目标元素在目标元素页内的一维偏移值;以及根据针对目标元素页的页表项,将线性地址转换为物理地址,页表项包括目标元素页的页物理地址。通过将逻辑地址转换为线性地址并且再转换为物理地址,简化了计算操作,从而相应地提高了张量处理效率。
[0008]在一种可能的实现方式中,根据针对目标元素页的页表项将线性地址转换为物理地址包括:从页表项查找与目标元素页对应的页物理地址;以及将页物理地址与一维偏移值相加,以获得目标元素的物理地址。通过将页物理地址与一维偏移值相加,进一步简化了
计算操作,从而进一步提高了张量处理效率。
[0009]在一种可能的实现方式中,至少一个页中的每个页包括多个缓存行,张量的多个元素在缓存行中的维度布置顺序不同于张量的多个缓存行在至少一个页中的维度布置顺序或不同于至少一个页在第一段中的维度布置顺序。使用目标元素的物理地址访问存储器包括:使用目标元素的物理地址将包括目标元素的缓存行从存储器读取至一级高速缓存,存储器是二级高速缓存或片外存储器。通过在同一缓存行内交叉存储多个维上的相邻数据,可以确保张量处理过程中高速缓存的邻近性原理被极大地被利用,从而极大地地提高了一级高速缓存的命中率并且极大地减少了读取数据的时间,并且相应地减少了张量处理时间。
[0010]在一种可能的实现方式中,至少一个页中的第一页包括沿第一维度设置第一缓存行和第二缓存行以及沿第一维度设置的第三缓存行和第四缓存行,第一缓存行和第三缓存行沿与第一维度不同的第二维度设置,并且第二缓存行和第四缓存行沿第二维度设置。第一缓存行包括沿第二维度设置的第一元素和第二元素以及沿第二维度设置的第三元素和第四元素,第一元素和第三元素沿第一维度设置,并且第二元素和第四元素沿第一维度设置。目标元素是第一元素、第二元素、第三元素和第四元素之一。使用目标元素的物理地址从存储器读取包括目标元素的缓存行至一级高速缓存包括:至少将第一元素、第二元素、第三元素和第四元素存储至一级高速缓存。
[0011]在一种可能的实现方式中,至少一个页中的第一页包括第一多个缓存行,第一多个缓存行包括目标元素。至少一个页中的第二页包括第二多个缓存行,第二多个缓存行包括另一目标元素。第二页的尺寸不同于第一页的尺寸,或第二多个缓存行中的每个缓存行的尺寸不同于第一多个缓存行中的每个缓存行的尺寸,或第一多个缓存行的多个元素的维度布置顺序不同于第二多个缓存行的多个元素的维度布置顺序。该方法还包括:将另一目标元素的逻辑地址与目标元素并行地转换为另一目标元素在存储器中的另一物理地址,另一目标元素的逻辑地址包括段基准数据和另一偏移数据,另一偏移数据表示另一目标元素在第一段的多个维度中的各维上的偏移值;以及使用另一目标元素的物理地址与目标元素并行地访问存储器。由于页、缓存行和元素的尺寸和布置方式都可以灵活设置,这极大地增加了编程人员在处理张量数据时的灵活性,从而可以更有效率地处理张量数据,并且减少处理时间。
[0012]在一种可能的实现方式中,使用目标元素的物理地址访问存储器包括使用目标元素的物理地址访问存储器中所存储的张量的一部分。通过将张量划分为多个段,可以良好地适配硬件性能,从而可以基于硬件设置来灵活地处理张量数据。
[0013]在一种可能的实现方式中,该方法还包括:确定逻辑地址是否超出张量的逻辑边界;以及如果逻辑地址超出逻辑边界,则生成存储器访问异常信号。通过检测是否越界,可以在处理之前就确保张量处理的正确性。
[0014]在一种可能的实现方式中,确定逻辑地址是否超出张量的逻辑边界包括:确定段基准数据和偏移数据之和是否超出第一段的各维的逻辑边界,即第一段的各维的尺寸。通过基于逻辑地址确认是否越界,可以简化检测的步骤,降低计算量和处理时间。
[0015]在一种可能的实现方式中,该方法还包括:基于第一段的段属性,将目标元素留置在一级高速缓存中,段属性包括针对目标元素所在的缓存行在一级高速缓存中的替换规
则。由于某些元素具有较高的使用频率,因此并不期望频繁地将其移入和移出一级高速缓存,而是期望尽可能地保留在一级高速缓存中。通过设置替换规则,可以有效地提升目标元素被留置在一级高速缓存中的概率,从而减少元素传输时间并且相应地减少张量处理时间。
[0016]在一种可能的实现方式中,第一段包括多个页,该方法还包括:如果将多个页中的第一页移入存储器或片外存储器,则建立与第一页对应的第一页表项,第一页表项存储第一页在存储器或片外存储器中的物理地址。通过在页被移入时建立页表项,一方面可以有效地并且正确地进行寻址,另一方面也可以减少页表装置以及片内高速存储的用量,从而减少成本。
[0017]在一种可能的实现方式中,第一段包括多个页,该方法还包括:如果将多个页中的第一页从存储器或片外存储器移出,则删除与第一页对应的第一页表项,第一页表项存储第一页在存储器或片外存储器中的物理地址。通过及时删除不被本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种用于访问存储器的方法,包括:将张量中的第一段中的目标元素的逻辑地址转换为所述目标元素在所述存储器中的物理地址,所述逻辑地址包括所述第一段在所述张量中的段基准数据和偏移数据,所述偏移数据表示所述目标元素在所述第一段的多个维度中的各维上的偏移值;以及使用所述目标元素的物理地址访问所述存储器。2.根据权利要求1所述的方法,其中所述第一段包括至少一个页,所述至少一个页包括所述目标元素所在的目标元素页,将所述目标元素的逻辑地址转换为所述物理地址包括:至少根据所述目标元素页的各维的尺寸,将所述逻辑地址转换为线性地址,所述线性地址包括所述目标元素页的一维页标识和所述目标元素在所述目标元素页内的一维偏移值;以及根据针对所述目标元素页的页表项,将所述线性地址转换为所述物理地址,所述页表项包括所述目标元素页的页物理地址。3.根据权利要求2所述的方法,其中根据针对所述目标元素页的页表项将所述线性地址转换为所述物理地址包括:从所述页表项查找与所述目标元素页对应的页物理地址;以及将所述页物理地址与所述一维偏移值相加,以获得所述目标元素的物理地址。4.根据权利要求2或3所述的方法,其中所述至少一个页中的每个页包括多个缓存行,所述张量的多个元素在所述缓存行中的维度布置顺序不同于所述张量的多个缓存行在所述至少一个页中的维度布置顺序或不同于所述至少一个页在所述第一段中的维度布置顺序,使用所述目标元素的物理地址访问所述存储器包括:使用所述目标元素的物理地址将包括所述目标元素的缓存行从所述存储器读取至一级高速缓存,所述存储器是二级高速缓存或片外存储设备。5.根据权利要求4所述的方法,其中所述至少一个页中的第一页包括沿第一维度设置第一缓存行和第二缓存行以及沿所述第一维度设置的第三缓存行和第四缓存行,所述第一缓存行和所述第三缓存行沿与所述第一维度不同的第二维度设置,并且所述第二缓存行和所述第四缓存行沿所述第二维度设置;所述第一缓存行包括沿所述第二维度设置的第一元素和第二元素以及沿所述第二维度设置的第三元素和第四元素,所述第一元素和所述第三元素沿所述第一维度设置,并且所述第二元素和所述第四元素沿所述第一维度设置;所述目标元素是所述第一元素、所述第二元素、所述第三元素和所述第四元素之一;使用所述目标元素的物理地址从所述存储器读取包括所述目标元素的缓存行至一级高速缓存包括:至少将所述第一元素、所述第二元素、所述第三元素和所述第四元素存储至所述一级高速缓存。6.根据权利要求2或3所述的方法,其中所述至少一个页中的第一页包括第一多个缓存行,所述第一多个缓存行包括所述目标元素;所述至少一个页中的第二页包括第二多个缓存行,所述第二多个缓存行包括另一目标元素;
所述第二页的尺寸不同于所述第一页的尺寸,或所述第二多个缓存行中的每个缓存行的尺寸不同于所述第一多个缓存行中的每个缓存行的尺寸,或所述第一多个缓存行的多个元素的维度布置顺序不同于所述第二多个缓存行的多个元素的维度布置顺序;以及所述方法还包括:将所述另一目标元素的逻辑地址与所述目标元素并行地转换为所述另一目标元素在所述存储器中的另一物理地址,所述另一目标元素的逻辑地址包括所述段基准数据和另一偏移数据,所述另一偏移数据表示所述另一目标元素在所述第一段的多个维度中的各维上的偏移值;以及使用所述另一目标元素的物理地址与所述目标元素并行地访问所述存储器。7.根据权利要求1

3中任一项所述的方法,其中使用所述目标元素的物理地址访问所述存储器包括:使用所述目标元素的物理地址访问所述存储器中所存储的所述张量的一部分。8.根据权利要求1

3中任一项所述的方法,还包括:确定所述逻辑地址是否超出所述张量的逻辑边界;以及如果所述逻辑地址超出所述逻辑边界,则生成存储器访问异常信号。9.根据...

【专利技术属性】
技术研发人员:杨经纬葛建明谢钢锋许飞翔彭永超袁红岗仇小钢
申请(专利权)人:海飞科南京信息技术有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1