基于片上缓存的数据访问方法、装置及转置方法和装置制造方法及图纸

技术编号:37638717 阅读:14 留言:0更新日期:2023-05-25 10:05
本发明专利技术涉及一种基于片上缓存的数据访问方法、装置及转置方法和装置;数据访问方法包括:采用支持矩阵传输的块状结构DMA,按块状批量从DDR中读出数据块;采用行向写入模式或列向写入模式将所述数据块写入到阵列式片上缓存中对于阵列式片上缓存中缓存数据,根据向量处理器的访存请求,采用行向取出模式或列向取出模式进行并行数据取出;转置方法包括:将待转置的大规模二维矩阵划分为等规模大小的小规模矩阵;采用基于片上缓存的数据访问方法逐块读出小规模矩阵进行转置;将每块转置后得到矩阵按照正确的位置进行存放,合成大规模二维转置矩阵。本发明专利技术提升向量处理器在访存矩阵数据时获取列向数据的性能,提高矩阵转置的效率。率。率。

【技术实现步骤摘要】
基于片上缓存的数据访问方法、装置及转置方法和装置


[0001]本专利技术属于数据处理
,具体涉及一种基于片上缓存的数据访问方法、装置及转置方法和装置。

技术介绍

[0002]在大规模信号处理领域中,要处理的矩阵规模较大,往往会达到几百MB的规模,需要分多个数据批次进行处理。并且信号矩阵经常要进行列向的数据处理,例如:列向FFT和列向共轭运算等。
[0003]另一方面,基于SIMD(全称为单指令多数据流)计算模式的向量处理器常被用于处理向量和矩阵类的计算任务。它通过把多个要执行相同指令操作的操作数据打包到大型寄存器里,一并进行访存和运算操作来实现较高的计算密度。然而SIMD操作在面临矩阵列向访问时,因为数据元素的非连续存放导致操作数据无法打包获取,直接降低向量处理器的运算效率。
[0004]此外,传统的矩阵转置是通过DMA按行读取放到片上缓存,然后按列存回到DDR存储器。列向存回的过程中,由于数据在DDR上不连续,DDR要激活多个访问通道降低数据传输带宽,最终成为整体处理流程的性能瓶颈。

技术实现思路

[0005]鉴于上述的分析,本专利技术旨在公开了一一种基于片上缓存的数据访问方法、装置及转置方法和装置,提升向量处理器在访存矩阵数据时获取列向数据的性能,提高矩阵转置的效率。
[0006]本专利技术公开了一种基于片上缓存的数据访问方法,包括以下步骤:
[0007]步骤S1、采用支持矩阵传输的块状结构DMA,按块状批量从DDR中读出数据块;采用行向写入模式或列向写入模式将所述数据块写入到阵列式片上缓存中;
[0008]在行向写入模式下,将数据块中数据逐行连续的写入到缓存中;
[0009]在列向写入模式下,将数据块中数据逐行分别的写入到缓存中各对应的行中,使缓存数据与数据块保持相同的行列结构;
[0010]步骤S2、对于阵列式片上缓存中缓存数据,根据向量处理器的访存请求,采用行向取出模式或列向取出模式进行并行数据取出;
[0011]在行向取出模式下,向量处理器按缓存数据行向地址连续的方式顺序从缓存中取出数据后进行SIMD向量数据输出;
[0012]在列向取出模式下,向量处理器按缓存数据列向地址相同并行顺序从缓存各行地址中取数进行SIMD合并后,进行SIMD向量数据输出。
[0013]进一步地,所述数据访问方法包括三种数据传输模式:
[0014]模式一、步骤S1采用行向写入模式,步骤S2采用行向写出模式;实现数据块的正常数据传输;
[0015]模式二、步骤S1采用列向写入模式,步骤S2采用列向写出模式;实现数据块的转置数据传输;
[0016]模式三、步骤S1采用列向写入模式,步骤S2采用行向写出模式;实现数据块的正常数据传输。
[0017]进一步地,所述阵列式片上缓存的存储结构中,把存储空间进行多个行组的拆分;所述拆分后的行组数与向量处理器的SIMD合并所计算的宽度相同或成倍数关系。
[0018]进一步地,所述步骤S1,具体包括:
[0019]步骤S101、对块状结构DMA进行参数化配置,使DMA每次搬移的数据块大小与阵列式片上缓存的存储规模匹配;
[0020]步骤S102、根据参数化配置结果,DMA自动计算出从DDR中所搬移数据块各行地址;
[0021]步骤S103、根据参数化配置中传输方式标志位判断传输方式,标志位为“0”,则进入步骤S104;标志位为“1”,则进入步骤S105;
[0022]步骤S104、采用行向写入模式进行正常传输;计算数据块总大小,将数据块中数据逐行连续的写入到缓存中,完成数据块写入缓存过程;
[0023]步骤S105、采用列向写入模式进行转置传输;根据数据块的行数,计算出数据块每一行要写入到缓存中的行号地址,根据数据块的列数计算出每一行中各数据的行内地址;将数据块中数据逐行分别的写入到缓存中各对应的行中,使缓存数据与数据块保持相同的行列结构。
[0024]进一步地,对块状结构DMA进行参数化配置包括:
[0025]配置数据块起始地址Mem_Addr0,用于表示数据块左上角起始元素在DDR的存放地址;
[0026]配置数据块的连续有效长度X_Slice;其中,在转置数据传输时,X_Slice大小不能超过阵列式片上缓存中每一行容量大小;并且X_Slice大小还需小于DDR中原始数据全规模矩阵的行宽X_Full;
[0027]配置数据块的行数Y_Slice;其中,在转置数据传输时,Y_Slice为阵列式片上缓存行数或者为阵列式片上缓存行数的整数倍;
[0028]配置数据块写入阵列式片上缓存中的传输方式标志位;标志位为“1”时,为“转置传输”;标志位为“0”时,为“正常传输”。
[0029]进一步地,所述步骤S2,具体包括:
[0030]步骤S201、对于步骤S1中的参数化配置,判断出阵列式片上缓存中写入数据的写入模式,如果是行向写入模式下写入阵列式片上缓存中的数据块数据,则进入步骤S202;如果是列向写入模式下写入阵列式片上缓存中的数据块数据,则进入步骤S203;
[0031]步骤S202、采用行向取出模式,向量处理器按缓存数据行向地址连续的方式顺序从缓存中取出数据后进行SIMD向量数据输出,完成缓存数据的取出;
[0032]步骤S203、判断向量处理器的访存指令,如果为转置访存指令,则进入步骤S204,如果为正常访存指令,则进入步骤S205;
[0033]步骤S204、采用列向取出模式,向量处理器按缓存数据列向地址相同并行顺序从缓存各行地址中取数进行SIMD合并后,进行SIMD向量数据输出,完成缓存数据的取出。
[0034]步骤S205、采用行向取出模式,向量处理器按缓存数据行向地址连续的方式顺序
从缓存中逐行取出数据行后进行SIMD向量数据输出,完成缓存数据的取出。
[0035]进一步地,在列向取出模式下,通过地址译码器计算出进行SIMD合并的缓存数据列向和行向地址;根据计算出列向和行向地址逐次从缓存数据取出列向地址相同的各行上的数据进行SIMD合并。
[0036]本专利技术还公开了一种基于阵列式片上缓存的数据访问装置,包括数据写入模块和数据读出模块:
[0037]所述数据写入模块,用于采用支持矩阵传输的块状结构DMA,按块状批量从DDR中读出数据块;采用行向写入模式或列向写入模式将所述数据块写入到阵列式片上缓存中;在行向写入模式下,将数据块中数据逐行连续的写入到缓存中;在列向写入模式下,将数据块中数据逐行分别的写入到缓存中各对应的行中,使缓存数据与数据块保持相同的行列结构;
[0038]所述数据读出模块,用于对于阵列式片上缓存中缓存数据,根据向量处理器的访存请求,采用行向取出模式或列向取出模式进行并行数据取出;在行向取出模式下,向量处理器按缓存数据行向地址连续的方式顺序从缓存中取出数据后进行SIMD向量数据输出;在列向取出模式下,向量处理器按本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于片上缓存的数据访问方法,其特征在于,包括以下步骤:步骤S1、采用支持矩阵传输的块状结构DMA,按块状批量从DDR中读出数据块;采用行向写入模式或列向写入模式将所述数据块写入到阵列式片上缓存中;在行向写入模式下,将数据块中数据逐行连续的写入到缓存中;在列向写入模式下,将数据块中数据逐行分别的写入到缓存中各对应的行中,使缓存数据与数据块保持相同的行列结构;步骤S2、对于阵列式片上缓存中缓存数据,根据向量处理器的访存请求,采用行向取出模式或列向取出模式进行并行数据取出;在行向取出模式下,向量处理器按缓存数据行向地址连续的方式顺序从缓存中取出数据后进行SIMD向量数据输出;在列向取出模式下,向量处理器按缓存数据列向地址相同并行顺序从缓存各行地址中取数进行SIMD合并后,进行SIMD向量数据输出。2.根据权利要求1所述的基于片上缓存的数据访问方法,其特征在于,所述数据访问方法包括三种数据传输模式:模式一、步骤S1采用行向写入模式,步骤S2采用行向写出模式;实现数据块的正常数据传输;模式二、步骤S1采用列向写入模式,步骤S2采用列向写出模式;实现数据块的转置数据传输;模式三、步骤S1采用列向写入模式,步骤S2采用行向写出模式;实现数据块的正常数据传输。3.根据权利要求1或2所述的基于片上缓存的数据访问方法,其特征在于,所述阵列式片上缓存的存储结构中,把存储空间进行多个行组的拆分;所述拆分后的行组数与向量处理器的SIMD合并所计算的宽度相同或成倍数关系。4.根据权利要求3所述的基于片上缓存的数据访问方法,其特征在于,所述步骤S1,具体包括:步骤S101、对块状结构DMA进行参数化配置,使DMA每次搬移的数据块大小与阵列式片上缓存的存储规模匹配;步骤S102、根据参数化配置结果,DMA自动计算出从DDR中所搬移数据块各行地址;步骤S103、根据参数化配置中传输方式标志位判断传输方式,标志位为“0”,则进入步骤S104;标志位为“1”,则进入步骤S105;步骤S104、采用行向写入模式进行正常传输;计算数据块总大小,将数据块中数据逐行连续的写入到缓存中,完成数据块写入缓存过程;步骤S105、采用列向写入模式进行转置传输;根据数据块的行数,计算出数据块每一行要写入到缓存中的行号地址,根据数据块的列数计算出每一行中各数据的行内地址;将数据块中数据逐行分别的写入到缓存中各对应的行中,使缓存数据与数据块保持相同的行列结构。5.根据权利要求4所述的基于片上缓存的数据访问方法,其特征在于,对块状结构DMA进行参数化配置包括:配置数据块起始地址Mem_Addr0,用于表示数据块左上角起始元素在DDR的存放地址;
配置数据块的连续有效长度X_Slice;其中,在转置数据传输时,X_Slice大小不能超过阵列式片上缓存中每一行容量大小;并且X_Slice大小还需小于DDR中原始数据全规模矩阵的行宽X_Full;配置数据块的行数Y_Slice;其中,在转置数据传输时,Y_Slice为阵列式片上缓存行数或者为阵列式片上缓存行数的整数倍;配置数据块写入阵列式片上缓存中的传输方式标志位;标志位为“1”时,为“转置传输”;标志位为“0”时,为“正常传输”。6.根据权利要求3所述的基于片上缓存的数据访问方法,其特征在于,所述步骤S2,具体包括:步骤S201、对于步骤S1中的参数化配置,判断出阵列式片上缓存中写入数据的写入模式,如果是行向写入模式下写入阵列式片上缓存中的数据块数据,则进入步骤S202;如果是列向写入模式下写入阵列式片上缓存中的数据块数据,则进入步骤S203;步骤S202、采用行向取出模式,向量处理器按缓存数据行向地址连续的方式顺序从缓存中取出数...

【专利技术属性】
技术研发人员:王胤燊周良将汪丙南丁满来丁赤飚
申请(专利权)人:中国科学院空天信息创新研究院
类型:发明
国别省市:

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

1