首页> 中国专利> 一种GPDSP中DMA数据合并传输方法

一种GPDSP中DMA数据合并传输方法

摘要

本发明公开一种GPDSP中DMA数据合并传输方法,该方法包括:当需要执行DMA数据合并传输时,由发起DMA数据合并传输事务的DMA作为主DMA,并生成对应多个参与核的读请求发送至片上网络;各参与传输的参与核作为从DMA从片上网络中接收对应的读请求,并在返回数据至片上网络时进行计数直至传输事务结束。本发明能够启动一次DMA事务实现数据合并传输,且具有实现方法简单、所需成本低、数据传输及DDR写效率高、DMA开销及功耗低、数据传输带宽大等优点。

著录项

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2020-01-14

    授权

    授权

  • 2018-06-15

    实质审查的生效 IPC(主分类):G06F13/28 申请日:20171229

    实质审查的生效

  • 2018-05-22

    公开

    公开

说明书

技术领域

本发明涉及GPDSP(General Purpose Digital Signal Processer,通用数字信号处理器)技术领域,尤其涉及一种GPDSP中DMA(Director Memory Access,直接存储访问)数据合并传输方法。

背景技术

数字信号处理器(Digital Signal Processer,DSP)作为一种典型的嵌入式微处理器被广泛用于嵌入式系统中,它以其数据处理能力强大、可编程性好、使用灵活和低功耗等特点,给信号处理的发展带来了巨大机遇,其应用领域拓展到军事、经济发展的各个方面。在现代通信、图像处理和雷达信号处理等应用领域,随着数据处理量加大,对计算精度和实时性要求的增加,通常需要使用更高性能的微处理器进行处理。

通用科学计算需要高性能的DSP,然而传统DSP用于科学计算时有以下缺点:①位宽小,使得计算精度和寻址空间不足,通用科学计算应用至少需要64位精度;②缺乏任务管理、文件控制、进程调度、中断管理等软硬件支持,或者说缺乏操作系统硬件环境,给通用、多道计算任务管理带来不便;③缺乏统一高级语言编程模式的支持,对多核、向量、数据并行等的支持基本依靠汇编程序编程,不便于通用编程;④不支持本地宿主的程序调试模式,仅依靠它机交叉调试仿真。这些问题严重限制了DSP在通用科学计算领域的应用。

GPDSP是一种既保持嵌入式DSP基本特征和高性能低功耗的优势,又高效支持通用科学计算的新型体系结构,该结构能够克服一般DSP用于科学计算的上述问题,可同时提供对64位高性能计算机和嵌入式高精度信号处理的高效支持。该结构具有如下特征:①具有双精度浮点和64位顶点数据的直接表示,通用寄存器、数据总线、指令位宽64位以上,地址总线40位以上;②CPU与DSP异构多核紧密耦合,CPU核支持完整操作系统,DSP核的标量单元支持操作系统微核;③考虑CPU核、DSP核以及DSP核内向量阵列结构的统一编程模式;④保持它机交叉仿真调试,同时提供本地CPU宿主调试模式;⑤保留除位数之外的普通DSP的基本特征。

GPDSP通常由多个同构的64位处理单元组成处理阵列来获得较高浮点运算能力,然而,由于GPDSP需处理的数据量巨大,导致GPDSP核内存储部件和核外存储部件之间需要交换大量的数据。核外存储空间存放的数据首先需要搬移到核内存储空间以方便内核进行计算,内核计算得到的结果需要搬移到核外存储空间进行保存,此时核内存储部件和核外存储部件之间的数据传输速率成为限制GPDSP处理速度的关键因素,与通用处理器相同,GPDSP也面临着“存储墙”的问题。

DMA是一种能较好缓解“存储墙”问题的技术,DMA可以在处理核进行数据计算的同时,后台高速进行数据搬移,搬移过程不需要处理核的参与。由于DMA技术将内核的计算操作和存储部件的数据搬移操作重叠执行,在一定程度上降低了核内存储部件和核外存储部件之间的数据传输速度对GPDSP处理性能的影响。然而随着GPDSP中集成的处理核数目的不断增加,现有DMA数据传输方式已不能满足多核并行处理对数据量的需求,高效多核DMA涉及必须考虑应用程序的访存需求和多核GPDSP的硬件结构特性。

矩阵乘、快速傅里叶变换、HPL(High Performance Linpack)等等常用算法在多核GPDSP上并行实现时,一个或者多个核需要往核外存储空间DDR同时写入数据,例如矩阵乘运算(C+=AB)中多个核中的更新后的C矩阵需要写回核外存储空间DDR,如果是使用传统的DMA点到点核内到核外的传输,需要启动多个DMA,而且每个核到核外存储空间DDR的距离不同,可能出现多个核写入的数据处在不同的DDR页上,这无疑增加了DDR的换页次数,同时增加了传输延时,而大大降低了DDR的写效率;同时上述传统的DMA传输方式需要启动多次DMA,造成了多余的开销和功耗的浪费,给片上网络增加了拥堵。

发明内容

本发明要解决的技术问题就在于:针对现有技术存在的技术问题,本发明提供一种实现方法简单、所需成本低、数据传输及DDR写效率高、DMA开销及功耗低、数据传输带宽大的GPDSP中DMA数据合并传输方法。

为解决上述技术问题,本发明提出的技术方案为:

一种GPDSP中DMA数据合并传输方法,其特征在于,该方法包括:当需要执行DMA数据合并传输时,由发起DMA数据合并传输事务的DMA作为主DMA,并生成对应多个参与核的读请求发送至片上网络;各参与传输的参与核作为从DMA从所述片上网络中接收对应的读请求,并在返回数据至片上网络时进行计数直至传输事务结束。

作为本发明的进一步改进,所述在返回数据至片上网络时进行计数具体包括:预先为每个所述参与核设置一个用于控制传输事务结束的从机计数寄存器M_SCR,每当所述参与核返回数据至片上网络时,启动对应的所述从机计数寄存器M_SCR计数;当各所述参与核的所述从机计数寄存器M_SCR均计数达到指定阈值时结束当前合并传输事务。

作为本发明的进一步改进,所述各参与传输的参与核作为从DMA从所述片上网络中接收对应的读请求具体包括:预先设置用于配置需要接收读请求的各参与核的信息的源选择向量M_SrcVec,各所述参与核根据所述源选择向量M_SrcVec的配置从所述片上网络中接收对应的读请求。

作为本发明的进一步改进,所述各参与传输的参与核作为从DMA从所述片上网络中接收对应的读请求还包括:预先设置合并循环次数参数M_SHIFT以及合并步参数M_STEP,通过所述合并循环次数参数M_SHIFT配置需要参与传输的参与核的个数,所述源选择向量M_SrcVec具体包括n位,每一位对应一个参与核是否需要接收读请求的状态,当所述源选择向量M_SrcVec左移所述合并循环次数参数M_SHIFT次后,将所述源选择向量M_SrcVec重载为初始值,通过所述合并步参数M_STEP配置每次移位的长度。

作为本发明的进一步改进,所述返回数据至片上网络时具体包括:预先设置用于配置每个所述参与核每帧写入核外存储空间的数据量的合并传输粒度参数M_CNT,各所述参与核根据所述合并传输粒度参数M_CNT返回数据至片上网络。

作为本发明的进一步改进,还包括预先设置用于配置传输方式的数据合并传输方式参数M_TMODE,当所述数据合并传输方式参数M_TMODE有效时,启动执行DMA数据合并传输方式。

作为本发明的进一步改进,所述读请求包括用于配置接收读请求核信息的读选择向量RetVec,根据所述读选择向量RetVec定需要接收读请求的目的核。所述读请求还包括读地址、读掩码、读返回地址中一种或多种信息。

作为本发明的进一步改进,所述返回数据至片上网络的具体步骤为:各目的参与核将接收到的请求发送至核内存储空间,核内存储空间依据请求将数据返回至片上网络,核外存储空间再按照每个参与核返回数据的顺序将读返回数据写入DDR上。

作为本发明的进一步改进,该方法的具体步骤为:

S1.预先分别为每个所述参与核设置一个用于控制传输事务结束的从机计数寄存器M_SCR,以及设置数据合并传输参数,所述数据合并传输参数包括源选择向量M_SrcVec、合并循环次数参数M_SHIFT、合并步参数M_STEP以及合并传输粒度参数M_CNT;

S2.主DMA启动数据合并传输事务,并对每个所述参与核的所述从机计数寄存器M_SCR进行配置;主DMA根据所述数据合并传输参数生成读请求后,将生成的读请求发送至片上网络;

S3.各需要接收读请求的目标核分别从片上网络接收对应的读请求,各目标参与核根据接收到的读请求返回数据至片上网络,且每当所述参与核返回数据至片上网络时,启动所述从机计数寄存器M_SCR计数,若所述从机计数寄存器M_SCR计数达到预设阈值,结束当前参与核的传输事务,当所有目标参与核均结束传输事务时,完成当前数据合并传输。

作为本发明的进一步改进,所述从机计数寄存器M_SCR具体包括对应参与核需要接收的数据量,所述步骤S3中目标参与核从片上网络上接收到读请求后,将读返回数据发往片上网络,本核对应的所述从机计数寄存器M_SCR的值减去当前发送数据块的大小,当所述从机计数寄存器M_SCR值为0时,置预先配置的数据传输结束寄存器M_OR的值为有效,若所有目标参与核的所述数据传输结束寄存器M_OR均为有效状态,完成当前数据合并传输。

与现有技术相比,本发明的优点在于:

1)本发明GPDSP中DMA数据合并传输方法,由发起传输的DMA作为主机DMA负责读请求的产生,参与传输的DMA自行进行计数以确认传输结束,使得只需要启动一次DMA传输事务就能满足多个核对核外存储空间DDR的写请求,将一个或者多个核的核内存储空间的数据搬移至核外存储空间上,避免了多个DMA同时启动所造成的开销和功耗,能有效减少DMA的开销和功耗,同时有效减轻了片上网络的拥堵,能够实现高带宽传输。

2)本发明GPDSP中DMA数据合并传输方法,可以实现类似于GEMM矩阵乘运算中(C+=AB)更新后的C矩阵写入DDR的数据合并传输,由于仅需要一次DMA传输事务就能满足多个核对核外存储空间DDR的写请求,大大减少了核外存储空间DDR的访问次数及换页次数,提升了DDR的访问效率和写命中率,从而有效提高了芯片的传输带宽。

3)本发明GPDSP中DMA数据合并传输方法,进一步通过设置数据合并传输模式M_TMODE、源选择向量M_SrcVec、合并循环次数M_SHIFT、合并步长M_STEP以及合并传输粒度M_CNT,启动事务传输的DMA通过配置上述数据合并传输参数即可以进行数据合并传输,使得启动1次DMA传输事务把一个或者多个核的核内存储空间的数据搬移至核外存储空间DDR上,配合配置的从机计数寄存器M_SCR由各参与传输的DMA自行计数确认传输结束,整个传输配置过程简单,同时可实现灵活的配置。

附图说明

图1是本实施例所采用的GPDSP体系结构示意图。

图2是本实施例中DMA在GPDSP中的位置及工作原理示意图。

图3是本发明具体实施例中实现DMA数据合并传输的数据流动原理示意图。

图4是本发明具体实施例中实现DMA数据合并传输的传输参数字原理示意图。

图5是本发明具体实施例中实现DMA数据合并传输的实现流程示意图。

具体实施方式

以下结合说明书附图和具体优选的实施例对本发明作进一步描述,但并不因此而限制本发明的保护范围。

如图1~5所示,本实施例GPDSP中DMA数据合并传输方法包括:当需要执行DMA数据合并传输时,由发起DMA数据合并传输事务的DMA作为主DMA,并生成对应多个参与核的读请求发送至片上网络;各参与传输的参与核(DSP核)作为从DMA从片上网络中接收对应的读请求,并在返回数据至片上网络时进行计数直至传输事务结束。

本实施例通过上述方法,由发起传输的DMA作为主机DMA负责读请求的产生,参与传输的DMA自行进行计数以确认传输结束,使得只需要启动一次DMA传输事务就能满足多个核对核外存储空间DDR的写请求,将一个或者多个核的核内存储空间的数据搬移至核外存储空间上,避免了多个DMA同时启动所造成的开销和功耗,能有效减少DMA的开销和功耗,同时有效减轻了片上网络的拥堵,能够实现高带宽传输。

本实施例上述方法可以实现类似于GEMM矩阵乘运算中(C+=AB)更新后的C矩阵写入DDR的数据合并传输,由于仅需要一次DMA传输事务就能满足多个核对核外存储空间DDR的写请求,大大减少了核外存储空间DDR的访问次数及换页次数,提升了DDR的访问效率和写命中率,从而有效提高了芯片的传输带宽。

如图1所示,本实施例所采用的GPDSP体系结构,该多核GPDSP由内核节点、IO节点、片上网络、DDR控制器、核外存储部件DDR组成,其中每个内核节点包含两个DSP核,DDR控制器控制DDR数据的搬移,片上网络实现各DSP之间以及DSP和核外存储空间之间的数据通信。

本实施例中DMA在GPDSP中的位置以及工作原理如图2所示,DMA在DSP核中通过配置总线PBUS与SPU相连,通过数据总线与核内存储空间(向量存储部件AM和标量存储部件SM)相连,通过核外总线接口与核外存储空间DDR相连;SPU标量处理单元负责给DMA产生传输参数字,使得DMA可以主动从核内存储空间搬移至核外存储空间或者从核外存储空间搬移至核内存储空间。DMA也可以被动接收来自片上网络的读写请求。

本实施例中,在返回数据至片上网络时进行计数具体包括:预先为每个参与核设置一个用于控制传输事务结束的从机计数寄存器M_SCR,每当参与核返回数据至片上网络时,启动对应的从机计数寄存器M_SCR计数,当各参与核的从机计数寄存器M_SCR均计数达到指定阈值时结束当前合并传输事务。本实施例通过分别为每个参与核设置一个从机计数寄存器M_SCR,实现简单,可以方便、高效的实现各参与核传输事务的控制,从而结合主DMA使得仅需要一次DMA传输事务就能满足多个核对核外存储空间DDR的写请求。

本实施例中,各参与传输的参与核作为从DMA从所述片上网络中接收对应的读请求具体包括:预先设置用于配置需要接收读请求的各参与核的信息的源选择向量M_SrcVec,各参与核根据源选择向量M_SrcVec的配置从片上网络中接收对应的读请求,即由源选择向量M_SrcVec来配置需要接收读请求的参与核。

本实施例中,各参与传输的参与核作为从DMA从片上网络中接收对应的读请求还包括:预先设置合并循环次数参数M_SHIFT以及合并步参数M_STEP,通过合并循环次数参数M_SHIFT配置需要参与传输的参与核的个数,源选择向量M_SrcVec具体包括n位,每一位对应一个参与核是否需要接收读请求的状态,当源选择向量M_SrcVec左移合并循环次数参数M_SHIFT次后,将源选择向量M_SrcVec重载为初始值,通过合并步参数M_STEP配置每次移位的长度。

本实施例中,返回数据至片上网络时具体包括:预先设置用于配置每个参与核每帧写入核外存储空间的数据量的合并传输粒度参数M_CNT,各参与核根据合并传输粒度参数M_CNT返回数据至片上网络。

本实施例具体预先分别配置上述数据合并传输参数M_SrcVec、M_SHIFT、M_SrcVec以及M_CNT,其中M_SrcVec共有n位,每一位表示一个DSP核,当相应位为1时表示该核需要接收读请求;M_SHIFT的值表示参与传输的核的个数,也表示循环左移的次数,其最大值为多核GPDSP中的DSP核数,当M_SrcVec左移M_SHIFT次后,M_SrcVec重载其初始值,M_STEP为每次左移的长度;M_CNT的大小具体为DSP核每帧传输数据块的大小,即表示每个核每帧写入核外存储空间的数据量。

假设配置的参数M_SrcVec=“12‘h001”,M_SHIFT=“4‘hb”,M_STEP=“4‘h1”,M_CNT=“16‘d48”,此时每个从DMA每帧传输48个字;首先先从核0(假定为主机DMA),此时核0负责生成读请求,每次计算完M_CNT大小的数据,M_SrcVec左移M_STEP位,此时M_SrcVec的值为“12‘h002”,M_SHIFT减1,生成的读请求中包含有读选择向量RetVec,它的值恒等于M_SrcVec的值,此时应为“12‘h002”表示核1需要接收此读请求。M_SrcVec左移M_SHIFT次后,M_SrcVec重载其初始值。

本实施例中,还包括预先设置用于配置传输方式的数据合并传输方式参数M_TMODE,当数据合并传输方式参数M_TMODE有效时,启动执行DMA数据合并传输方式,具体可以配置为当M_TMODE=“1‘b1”时,传输方式为DMA数据合并传输。

在具体实施例中,当M_TMODE=“1‘b1”(即DMA进行数据合并传输),DMA根据上述数据合并传输参数M_SrcVec、M_SHIFT、M_STEP、M_CNT生成读请求并传输至片上网络,读请求中包括读地址、读掩码、读返回地址和读返回选择向量RetVec等信息,其中RetVec的值取为始终等于源选择向量M_SrcVec的值,挂在片上网络上的DSP核根据RetVec的值选择性地接收读请求。

本实施例中,读请求具体包括用于配置接收读请求核信息的读选择向量RetVec,根据读选择向量RetVec确定需要接收读请求的目的核,即由读请求携带需要接收读请求的核信息,各参与核由读返回选择向量RetVec的值确定是否需要接收读请求。读请求具体还包括读地址、读掩码、读返回地址等信息。

本实施例设置上述数据合并传输参数,启动事务传输的DMA通过配置上述数据合并传输参数即可以进行数据合并传输,使得启动1次DMA传输事务把一个或者多个核的核内存储空间的数据搬移至核外存储空间DDR上,配合配置的从机计数寄存器M_SCR由各参与传输的DMA自行计数确认传输结束,整个传输配置过程简单,同时可实现灵活的配置。

本实施例中,返回数据至片上网络的具体步骤为:各目的参与核将接收到的请求发送至核内存储空间,核内存储空间依据请求将数据返回至片上网络,核外存储空间再按照每个参与核返回数据的顺序将读返回数据写入DDR上。即通过启动一次DMA传输事务将一个或者多个核的核内存储空间传输至片上网络,然后经片上网络搬移至核外存储空间DDR,实现DMA数据合并传输,能够显著减轻片上网络的拥堵,同时大大提高核外存储空间的写效率、减少访存延时,以及提高传输带宽。

本发明具体实施例中实现DMA数据合并传输的数据流动原理如图3所示,其中芯片中带有12个DSP核,每个核中带有独立的DMA和LM,LM为核内存储空间(包括向量存储部件AM和标量存储部件SM),Array表示搬移的帧,C0~C11表示每一行数据块,大小为512bits,即8words。本次DMA数据合并传输一共12个DSP核参与传输,一共搬移4x96words大小的数据,每个DSP核分别搬移4x8words大小的数据;每个核每一帧的数据大小为8words,12个核的相同帧处在核外存储空间的同一页上,DDR按照虚线所示方向写入数据。由图中可以看出,经过本实施例DMA数据合并传输,可以极大的减少核外存储空间DDR的翻页次数,提高了DDR的写效率、降低访问延时,有效提高了传输带宽,同时只需要启动一次DMA事务就能满足12个核的请求,减少了DMA的启动次数及功耗开销。

本发明具体实施例中实现DMA数据合并传输的传输参数字如图4所示,DMA数据合并传输参数包括数据合并传输方式M_TMODE、源选择向量M_SrcVec、合并循环次数M_SHIFT、合并循环步长M_STEP、合并传输粒度M_CNT,其中M_TMODE位宽为1,当M_TMODE=“1‘b1”时,DMA启动数据合并传输事务,从一个或者多个核外搬移数据至核外存储空间DDR;M_SrcVec为源选择向量,其位宽为n,表示n个DSP核,当其中某位为1时,表示相应读请求传输至该DSP核;M_SHIFT为合并循环次数,其位宽为4,它的最大值为多核GPDSP中的DSP核数,表示参与传输的核的个数即循环左移次数,当M_SrcVec左移M_SHIFT次后,M_SrcVec重载其初始值;M_STEP为合并循环步长,位宽为4,表示M_SrcVec循环左移时的长度;M_CNT为合并传输粒度,位宽为16,表示进行DMA数据合并传输时,参与核循环写入的数据块的大小即每个DSP核每帧数据块的大小,DMA根据这5个参数生成的读请求中包括读地址、读返回地址、读掩码和读选择向量RetVec,其中RetVec的值恒等于M_SrcVec的值,表示读请求应该接收的核号。

如图5所示,本实施例实现GPDSP中DMA数据合并传输的具体步骤为:

S1.预先分别为每个所述参与核设置一个用于控制传输事务结束的从机计数寄存器M_SCR,以及设置数据合并传输参数,数据合并传输参数包括源选择向量M_SrcVec、合并循环次数参数M_SHIFT、合并步参数M_STEP以及合并传输粒度参数M_CNT,其中源选择向量M_SrcVec用于配置需要接收读请求的各参与核的信息、合并循环次数参数M_SHIFT用于配置需要参与传输的参与核个数信息、合并步参数M_STEP用于配置每次移位的长度的,合并传输粒度参数M_CNT用于配置每个参与核每帧写入核外存储空间的数据量;

S2.主DMA启动数据合并传输事务,并对每个参与核的从机计数寄存器M_SCR进行配置;主DMA根据数据合并传输参数生成读请求,读请求包括读地址、读掩码、读返回地址以及用于配置接收读请求核信息的读选择向量RetVec等信息,将生成的读请求发送至片上网络;

S3.各需要接收读请求的目标核根据读选择向量RetVec的值分别从片上网络接收对应的读请求,各目标参与核根据接收到的读请求返回数据至片上网络,其中当源选择向量M_SrcVec左移合并循环次数参数M_SHIFT次后,将源选择向量M_SrcVec重载为初始值,由合并步参数M_STEP确定每次移位的长度,且每当参与核返回数据至片上网络时,启动从机计数寄存器M_SCR计数;若从机计数寄存器M_SCR计数达到预设阈值,结束当前参与核的传输事务,当所有目标参与核均结束传输事务时,完成当前数据合并传输。

本实施例中,从机计数寄存器M_SCR具体包括对应参与核需要接收的数据量,步骤S3中目标参与核从片上网络上接收到读请求后,将读返回数据发往片上网络,本核对应的从机计数寄存器M_SCR的值减去当前发送数据块的大小,当从机计数寄存器M_SCR值为0时,置预先配置的数据传输结束寄存器M_OR的值为有效,若所有目标参与核的数据传输结束寄存器M_OR均为有效状态,完成当前数据合并传输。

如图5所示,在启动DMA数据合并传输事务之前,所有参与传输的DSP核需要进行配置从机计数寄存器M_SCR,M_SCR中包含了每个从DMA需要接收的数据量和中断使能信息;当所有参与传输的DSP核配置好M_SCR的值后,主机DMA根据配置好的传输参数启动DMA数据合并传输,DMA启动传输事务时,主机DMA负责生成读请求,经片上网络传输至从DMA,从机DMA根据RetVec的值被动地从片上网络接收读请求,根据读请求将读返回数据发往片上网络,本核的M_SCR的值减去发送的数据块大小,经网络写入DDR;当M_SCR值为0时表示从机DMA计数完成,此时置本核数据传输结束寄存器M_OR的值为1,当参与传输的DSP核的M_OR都为1时,DMA数据合并传输结束。

上述只是本发明的较佳实施例,并非对本发明作任何形式上的限制。虽然本发明已以较佳实施例揭露如上,然而并非用以限定本发明。因此,凡是未脱离本发明技术方案的内容,依据本发明技术实质对以上实施例所做的任何简单修改、等同变化及修饰,均应落在本发明技术方案保护的范围内。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号