一种数据存储控制方法及装置与流程

文档序号:21778960发布日期:2020-08-07 19:52阅读:166来源:国知局
一种数据存储控制方法及装置与流程

本发明涉及计算机技术领域,特别涉及一种数据存储控制方法及装置。



背景技术:

神经网络,是一种模仿动物神经网络行为特征,进行分布式并行信息处理的算法数学模型,依靠系统的复杂程度,通过调整内部大量节点之间相互连接的关系,从而达到处理信息的目的。nna(neuralnetworkaccelerator)也称为神经网络加速器,是专用的计算人工智能应用场景里包含的运算任务的模块,神经网络模型的计算复杂度和输入数据大小成正比,随着人工智能运用场景越来越广,需要运算的数据量也越来越大。

现有的nna在运行时,从片外的ddr(doubledatarate,双倍速率同步动态随机存储器)中读取数据后存入内部的sram(staticrandomaccessmemory,静态随机存储器),再从内部的sram读取数据并进行运算后,其运算结果需要存入片外的ddr。当进行下一步运算时,需要重新从片外的ddr中读取数据,一旦数据量大,则等待时间过长,运算效率低。



技术实现要素:

为解决上述技术问题,本发明提供一种数据存储控制方法及装置,能够将神经网络加速处理器的运算结果存储至内部的静态随机存储器,降低后续运算时读取数据的延时,提高运算效率。

本发明一方面提供一种数据存储控制方法,应用于具有直接内存存取控制器的神经网络加速器系统,所述直接内存存取控制器中配置有读取模块、存储模块和控制模块,所述方法包括:

所述读取模块接收神经网络加速处理器发送的数据请求指令,根据所述数据请求指令从静态随机存储器中的第一物理地址读取数据,并将所述数据发送至所述神经网络加速处理器,以使所述神经网络加速处理器对所述数据进行运算,得到运算结果;

所述存储模块接收所述神经网络加速处理器发送的数据存储指令,根据所述数据存储指令将所述运算结果发送至所述控制模块;

所述控制模块接收所述运算结果,并根据第一控制指令将所述运算结果发送至所述静态随机存储器中的第二物理地址。

优选地,所述直接内存存取控制器中还配置有网桥模块;所述控制模块接收所述运算结果,并根据所述第一控制指令将所述运算结果发送至所述静态随机存储器中的第二物理地址,包括:

所述控制模块接收所述运算结果,并根据所述第一控制指令控制所述网桥模块转换接口读写请求,以便将所述运算结果发送至所述静态随机存储器中的第二物理地址。

优选地,所述方法还包括:

所述控制模块接收所述运算结果,并根据第二控制指令将所述运算结果通过总线发送至双倍速率同步动态随机存储器。

优选地,在所述读取模块接收神经网络加速处理器发送的数据请求指令之前,所述方法还包括:

所述读取模块接收所述神经网络加速处理器发送的数据读取指令,根据所述数据读取指令从所述双倍速率同步动态随机存储器中读取数据并进行格式处理,将格式处理后的数据存储至所述静态随机存储器中的第一物理地址。

优选地,所述格式处理具体为:通过3d算子将数据转换为卷积运算需要的格式。

本发明另一方面提供一种数据存储控制装置,包括直接内存存取控制器,所述直接内存存取控制器中配置有读取模块、存储模块和控制模块;

所述读取模块用于接收神经网络加速处理器发送的数据请求指令,根据所述数据请求指令从静态随机存储器中的第一物理地址读取数据,并将所述数据发送至所述神经网络加速处理器,以使所述神经网络加速处理器对所述数据进行运算,得到运算结果;

所述存储模块用于接收所述神经网络加速处理器发送的数据存储指令,根据所述数据存储指令将所述运算结果发送至所述控制模块;

所述控制模块用于接收所述运算结果,并根据第一控制指令将所述运算结果发送至所述静态随机存储器中的第二物理地址。

优选地,所述直接内存存取控制器中还配置有网桥模块;

所述网桥模块用于转换接口读写请求,以使所述控制模块将所述运算结果发送至所述静态随机存储器中的第二物理地址。

优选地,所述控制模块还用于,

接收所述运算结果,并根据第二控制指令将所述运算结果通过总线发送至双倍速率同步动态随机存储器。

优选地,所述读取模块还用于,

接收所述神经网络加速处理器发送的数据读取指令,根据所述数据读取指令从所述双倍速率同步动态随机存储器中读取数据并进行格式处理,将格式处理后的数据存储至所述静态随机存储器中的第一物理地址。

优选地,所述格式处理具体为:通过3d算子将数据转换为卷积运算需要的格式。

本发明至少具有以下有益效果:

本发明通过在神经网络加速处理器内部的直接内存存取控制器中配置读取模块、存储模块和控制模块,神经网络加速处理器通过读取模块从静态随机存储器中的第一物理地址读取数据并进行运算后,当神经网络加速处理器需要对上一步的运算结果进行后续运算时,其运算结果可以通过控制模块发送至内部的静态随机存储器中与第一物理地址不同物理bank的第二物理地址进行存储,从而降低后续运算时读取数据的延时,提高运算效率。

附图说明

为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本发明实施例提供的一种数据存储控制方法的流程示意图;

图2为本发明实施例提供的又一种数据存储控制方法的流程示意图;

图3为本发明实施例提供的一种数据存储控制装置的结构示意图。

具体实施方式

本发明的核心是提供一种数据存储控制方法及装置,当神经网络加速处理器需要对上一步的运算结果进行后续运算时,可以将上一步的运算结果存储至内部的静态随机存储器,从而降低后续运算时读取数据的延时,提高运算效率。

为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

本发明实施例一方面提供一种数据存储控制方法,应用于具有直接内存存取控制器的神经网络加速器系统,直接内存存取控制器中配置有读取模块、存储模块和控制模块。

需要说明的是,神经网络加速(neuralnetworkaccelerator,nna)处理器内部具有直接内存存取(directmemoryaccess,dma)控制器和静态随机存储器(staticrandomaccessmemory,sram)。本发明实施例中,nna内部的dma控制器被配置为具有读取模块dma_load、存储模块dma_store和控制模块data_routecontroller。具体实施时,可以通过硬件进行配置。

请参阅图1,该数据存储控制方法包括:

步骤s110、读取模块接收神经网络加速处理器发送的数据请求指令,根据数据请求指令从静态随机存储器中的第一物理地址读取数据,并将数据发送至神经网络加速处理器,以使神经网络加速处理器对数据进行运算,得到运算结果。

本发明实施例中,当nna处理器需要对内部的sram中的数据进行运算时,可以发出数据请求命令,通过dma控制器中配置的读取模块dma_load从sram中的第一物理地址读取数据,收到读取的数据后可以进行运算,得到运算结果。

步骤s120、存储模块接收神经网络加速处理器发送的数据存储指令,根据数据存储指令将运算结果发送至控制模块。

本发明实施例中,nna处理器运算后需要对上一步的运算结果进行存储,可以发出数据存储指令,通过dma控制器中配置的存储模块dma_store将上一步的运算结果发送至控制模块data_routecontroller。

步骤s130、控制模块接收运算结果,并根据第一控制指令将运算结果发送至静态随机存储器中的第二物理地址。

本发明实施例中,控制模块data_routecontroller具有缓存buffer,nna处理器上一步的运算结果被临时存入控制模块data_routecontroller中的buffer,由控制模块data_routecontroller决定该运算结果的去向。具体来说,当nna处理器需要对上一步的运算结果进行后续运算时,可以发出第一控制指令,控制模块data_routecontroller收到该第一控制指令后将上一步的运算结果发送至nna处理器内sram中的第二物理地址。可以理解的是,sram中的第二物理地址与sram中的第一物理地址属于不同的物理bank。如此,当nna处理器需要对上一步的运算结果进行后续运算时,可以直接从内部sram中读取数据,从而读取数据的延时会大大降低。

以上可知,本发明实施例提供的数据存储控制方法,通过在nna处理器内部的dma控制器中配置读取模块、存储模块和控制模块,nna处理器通过读取模块从静态随机存储器中的第一物理地址读取数据并进行运算后,当nna处理器需要对上一步的运算结果进行后续运算时,其运算结果可以通过控制模块发送至内部的sram中与第一物理地址不同物理bank的第二物理地址进行存储,从而降低后续运算时读取数据的延时,提高运算效率。

请参阅图2,在本发明另一些实施例中,直接内存存取控制器中还配置有网桥模块axi2sram_bridge,该数据存储控制方法包括:

步骤s210、读取模块接收神经网络加速处理器发送的数据读取指令,根据数据读取指令从双倍速率同步动态随机存储器中读取数据并进行格式处理,将格式处理后的数据存储至静态随机存储器中的第一物理地址。

本发明实施例中,nna处理器需要运算的原始数据一般存储在外部的ddr中,nna处理器发出数据读取指令后,通过dma控制器中配置的读取模块dma_load从外部的双倍速率同步动态随机存储器(doubledatarate,ddr)中读取数据并进行格式处理,存储至nna处理器内sram中的第一物理地址。

具体的,上述实施例中,dma控制器中配置的读取模块dma_load进行格式处理具体为:通过3d算子将数据转换为卷积运算需要的格式。具体来说,读取模块dma_load可以通过3d算子,即permute算子、reshape算子和flatten算子将读取的数据转换成卷积运算需要的格式,也就是说,通过将三维数组处理成一维数据,可以减少nna处理器的运算负担。

步骤s220、读取模块接收神经网络加速处理器发送的数据请求指令,根据数据请求指令从静态随机存储器中的第一物理地址读取数据,并将数据发送至神经网络加速处理器,以使神经网络加速处理器对数据进行运算,得到运算结果。

步骤s230、存储模块接收神经网络加速处理器发送的数据存储指令,根据数据存储指令将运算结果发送至控制模块。

当nna处理器对从sram中的第一物理地址读取的数据进行运算得到运算结果后,其运算结果需要进行后续运算。此时,有可能是由nna处理器对上一步的该运算结果进行后续运算,也有可能是由外部的host处理器对上一步的该运算结果进行后续运算。因此,需要对nna处理器上一步的运算结果的去向进行不同处理,下面结合实施例分别进行说明。

本发明一些实施例中,当nna处理器上一步的运算结果需要由外部的host处理器进行后续运算时,在步骤s230后,该数据存储控制方法还包括:

步骤s241、控制模块接收运算结果,并根据第二控制指令将运算结果通过总线发送至双倍速率同步动态随机存储器。

本发明实施例中,当nna处理器上一步的运算结果需要由外部的host处理器进行后续运算时,可以由外部的host处理器发出第二控制指令,控制模块data_routecontroller收到该第二控制指令后将nna处理器上一步的运算结果通过外部总线发送至外部的ddr进行存储。具体实施时,可以通过axi(advancedextensibleinterface)总线,将上一步的该运算结果传入外部ddr。其中,axi总线协议是一种面向高性能、高带宽、低延迟的片内总线,可以满足超高性能和复杂的片上系统设计的需求。

本发明另一些实施例中,当nna处理器上一步的运算结果需要由nna处理器继续进行后续运算时,在步骤s230后,该数据存储控制方法还包括:

步骤s242、控制模块接收运算结果,并根据第一控制指令控制网桥模块转换接口读写请求,以便将运算结果发送至静态随机存储器中的第二物理地址。

本发明实施例中,当nna处理器上一步的运算结果需要由nna处理器继续进行后续运算时,可以由nna处理器发出第一控制指令,控制模块data_routecontroller收到该第一控制指令后,将存储模块dma_store的aximaster接口接入网桥模块axi2sram_bridge的axislave接口,通过网桥模块axi2sram_bridge将axislave接口的读写请求转换为sram_if接口的读写请求,以便将nna处理器上一步的运算结果发送至sram中的第二物理地址进行存储。如此,当nna处理器需要对上一步的运算结果进行后续运算时,可以直接从内部sram中读取数据,从而读取数据的延时会大大降低。

以上可知,通过本发明实施例提供的数据存储控制方法,可以实现将神经网络加速处理器的运算结果存储至内部的静态随机存储器,降低后续运算时读取数据的延时,提高运算效率。

本发明另一方面提供一种数据存储控制装置,下文描述的该装置可以与上文描述的方法相互对应参照。

请参阅图3,该数据存储控制装置包括直接内存存取控制器,直接内存存取控制器中配置有读取模块dma_load、存储模块dma_store和控制模块data_routecontroller;

读取模块dma_load用于接收神经网络加速处理器nna发送的数据请求指令,根据数据请求指令从静态随机存储器sram中的第一物理地址读取数据,并将数据发送至神经网络加速处理器nna,以使神经网络加速处理器nna对数据进行运算,得到运算结果;

存储模块dma_store用于接收神经网络加速处理器nna发送的数据存储指令,根据数据存储指令将运算结果发送至控制模块data_routecontroller;

控制模块data_routecontroller用于接收运算结果,并根据第一控制指令将运算结果发送至静态随机存储器sram中的第二物理地址。

作为本发明优选的实施例,直接内存存取控制器中还配置有网桥模块axi2sram_bridge;

网桥模块axi2sram_bridge用于转换接口读写请求,以使控制模块data_routecontroller将运算结果发送至静态随机存储器sram中的第二物理地址。

作为本发明优选的实施例,控制模块data_routecontroller还用于,

接收运算结果,并根据第二控制指令将运算结果通过总线发送至双倍速率同步动态随机存储器ddr。

作为本发明优选的实施例,读取模块dma_load还用于,

接收神经网络加速处理器nna发送的数据读取指令,根据数据读取指令从双倍速率同步动态随机存储器ddr中读取数据并进行格式处理,将格式处理后的数据存储至静态随机存储器sram中的第一物理地址。

作为本发明优选的实施例,格式处理具体为:通过3d算子将数据转换为卷积运算需要的格式。

以上可知,本发明实施例提供的数据存储控制装置,可以实现将神经网络加速处理器的运算结果存储至内部的静态随机存储器,降低后续运算时读取数据的延时,提高运算效率。

本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。还需要说明的是,在本说明书中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者设备中还存在另外的相同要素。

对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其他实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1