CN109992542B - 一种数据搬运方法、相关产品及计算机存储介质 - Google Patents
一种数据搬运方法、相关产品及计算机存储介质 Download PDFInfo
- Publication number
- CN109992542B CN109992542B CN201711479137.XA CN201711479137A CN109992542B CN 109992542 B CN109992542 B CN 109992542B CN 201711479137 A CN201711479137 A CN 201711479137A CN 109992542 B CN109992542 B CN 109992542B
- Authority
- CN
- China
- Prior art keywords
- data
- unit
- storage
- target data
- control unit
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 38
- 238000013475 authorization Methods 0.000 claims description 76
- 238000012546 transfer Methods 0.000 claims description 32
- 238000004891 communication Methods 0.000 claims description 11
- 239000000284 extract Substances 0.000 claims description 10
- 239000000872 buffer Substances 0.000 claims description 8
- 230000003139 buffering effect Effects 0.000 claims description 8
- 238000004590 computer program Methods 0.000 claims description 3
- 238000012545 processing Methods 0.000 abstract description 15
- 238000010586 diagram Methods 0.000 description 20
- 238000013528 artificial neural network Methods 0.000 description 19
- 238000013500 data storage Methods 0.000 description 7
- 230000005540 biological transmission Effects 0.000 description 5
- 230000006870 function Effects 0.000 description 4
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 238000013473 artificial intelligence Methods 0.000 description 1
- 238000013135 deep learning Methods 0.000 description 1
- 238000013136 deep learning model Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- UJKWLAZYSLJTKA-UHFFFAOYSA-N edma Chemical compound O1CCOC2=CC(CC(C)NC)=CC=C21 UJKWLAZYSLJTKA-UHFFFAOYSA-N 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/20—Handling requests for interconnection or transfer for access to input/output bus
- G06F13/28—Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/06—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
- G06N3/063—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Health & Medical Sciences (AREA)
- Life Sciences & Earth Sciences (AREA)
- General Engineering & Computer Science (AREA)
- Molecular Biology (AREA)
- Evolutionary Computation (AREA)
- General Health & Medical Sciences (AREA)
- Data Mining & Analysis (AREA)
- Computing Systems (AREA)
- Computational Linguistics (AREA)
- Artificial Intelligence (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Neurology (AREA)
- Bus Control (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明实施例提供了一种数据搬运方法、相关产品及计算机存储介质,应用于计算装置中,所述计算装置包括存储介质、寄存器单元以及通道控制单元,其中,所述方法包括:所述存储控制单元获取数据搬运指令,所述数据搬运指令包括待搬运的目标数据以及所述目标数据所在的第一数据块的存储格式;所述存储控制单元根据所述第一数据块的存储格式,在所述存储介质和所述寄存器单元之间完成所述目标数据的搬运。采用本发明实施例,能够提升数据搬运的速度和效率,从而提升数据处理的效率。
Description
技术领域
本发明涉及数据处理技术领域,尤其涉及一种数据搬运方法、相关产品以及计算机存储介质。
背景技术
随着人工智能(Artificial Intelligence,AI)的发展和深入研究,芯片对数据的供给要求越来越高。现有技术中多维直接内存存取(Direct Memory Access,DMA)数据搬运方法是采用连续的存储地址来存储所搬运的数据,其仅仅考虑到如何完成数据的搬运,并没考虑到数据的后续处理,给后续数据的读/写操作带来一些不必要的麻烦。例如在深度学习模型中这种数据存储方法无法很好地与运算器相匹配,降低数据的读写速率,从而降低了数据的处理效率。
发明内容
本发明实施例所要解决的技术问题在于,提供一种数据搬运方法、相关产品及计算机存储介质,能够提升数据传输的效率。
第一方面,本发明实施例公开提供了一种数据搬运方法,应用于计算装置中,所述计算装置包括存储介质、寄存器单元以及存储控制单元所述方法包括:
所述存储控制单元获取数据搬运指令,所述数据搬运指令包括指示信息,所述指示信息用于指示待搬运的目标数据以及所述目标数据所在的第一数据块的存储格式;
所述存储控制单元根据所述第一数据块的存储格式,在所述存储介质和所述寄存器单元之间完成所述目标数据的搬运。
第二方面,本发明实施例还公开提供了一种计算装置,包括存储介质、寄存器单元以及存储控制单元,
所述存储介质和所述寄存器单元均用于存储数据;
所述存储控制单元用于获取数据搬运指令,所述数据搬运指令包括指示信息,所述指示信息用于指示待搬运的目标数据以及所述目标数据所在的第一数据块的存储格式;
所述存储控制单元还用于根据所述第一数据块的存储格式,在所述存储介质和所述寄存器单元之间完成所述目标数据的搬运。
第三方面,本发明实施例还公开提供了一种计算装置,包括:处理器、存储器、通信接口和总线;所述处理器、所述存储器和所述通信接口通过所述总线连接并完成相互间的通信;所述存储器存储可执行程序代码;所述处理器通过读取所述存储器中存储的可执行程序代码来运行与所述可执行程序代码对应的程序,以执行如上第一方面所述的方法。
第四方面,本发明实施例还公开提供了一种计算机可读存储介质,所述计算机可读存储介质存储了用于数据搬运的程序代码。所述程序代码包括用于执行上述第一方面描述的方法的指令。
本发明实施例中计算装置中的存储控制单元获取数据搬运指令,所述数据搬运指令包括指示信息,该指示信息用于指示待搬运的目标数据以及所述目标数据所在的第一数据块的存储格式,然后所述存储控制单元根据所述第一数据块的存储格式在所述存储介质和所述寄存器单元之间完成所述目标数据的搬运。采用本发明实施例,能够高效完成数据的搬运,提升数据搬运的效率。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例提供的一种计算装置的结构示意图;
图2A和图2B是本发明实施例提供的两种数据存储的示意图;
图3是本发明实施例的一种数据搬运方法的流程示意图;
图4是本发明实施例提供的又一种数据存储的示意图;
图5A是本发明实施例提供的一种第一存储控制单元的结构示意图;
图5B是本发明实施例提供的又一种数据搬运方法的流程示意图;
图6A是本发明实施例提供的一种第二存储控制单元的结构示意图;
图6B是本发明实施例提供的又一种数据搬运方法的流程示意图;
图7是本发明实施例提供的又一种计算装置的结构示意图;
图8是本发明实施例提供的又一种计算装置的结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”和“第三”(如果存在)等是用于区别不同对象,而非用于描述特定顺序。此外,术语“包括”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、***、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其它步骤或单元。
为解决现有技术中数据搬运效率较低等问题,本申请特提出一种高效的数据搬运方法,该方法应用于计算装置中。如图1示出一种可能的计算装置的结构示意图。如图1,该计算装置100包括存储介质102、寄存器单元104以及存储控制单元106;其中,
所述存储介质102用于存储外部数据;所述外部数据是指存储在神经网络处理器之外的数据。相应地,所述存储介质可以是外部存储器、高速缓存器以及双倍速率同步动态随机存储器(Double Data Rate,DDR)等独立存在于神经网络处理器之外的存储器。
所述寄存器单元104用于存储内部数据,这里的内部数据是指存储在神经网络处理器内部的数据,所述寄存器单元104可为安装在神经网络处理器内部的存储器,例如高速缓存器、闪存等等。本申请中,将所述外部数据和所述内部数据均统称为数据,该数据包括但不限于图像数据、文本数据、语音数据等等。所述神经网络处理器也可称为深度学习处理器,或者其他用于处理大数据的处理器/芯片,本申请不做限定。
所述存储控制单元106(Enhanced Direct Memory Access,EDMA,也可称为增强型直接内存存取)用于实现所述存储介质和所述寄存器单元之间的数据搬运。具体的,所述存储控制单元包括第一存储控制单元1062(Enhanced Output Direct Memory Access,EoDMA,也可称为增强型输出直接内存存取)和第二存储控制单元1064(Enhanced IutputDirect Memory Access,EiDMA,也可称为增强型输入直接内存存取)。其中,所述第一存储控制单元EoDMA用于将所述寄存器单元中的数据往外搬运至所述存储介质中进行存储。所述第二存储控制单元EiDMA用于将所述存储介质中的数据向内搬运至所述寄存器单元中进行存储。关于在所述寄存器单元和所述存储介质之间如何完成数据的搬运将在下文中进行详细阐述。
应理解的,在神经网络处理器内部支持数据处理的颗粒度为通道,具体是指通过通道传输的数据块/数据。其中,所述通道包括输入通道CI和输出通道CO。其中,CI用于实现所述存储介质到所述寄存器单元的数据传输;CO用于实现所述寄存器单元到所述存储介质的数据传输。也即是,所述存储介质需通过输入通道CI将数据搬运至所述寄存器单元中存储,所述寄存器单元需通过输出通道CO将数据搬运至所述存储介质中存储。
此外,在神经网络处理器内部的所述寄存器单元中支持数据存储的最小颗粒度为像素pixel。可选地,可将多个pixel合并定义为数据片slice,还可将多个数据片slice合并定义为数据块bank。即是,在所述寄存器单元中支持以数据块bank的存储格式来存储数据。
其中,所述数据片中包含的像素pixel数量以及所述数据块中包含的数据片slice数量可为用户侧或计算装置侧自定义设置的,本申请不做限定。例如7个pixel合并定义为一个slice,2个slice合并定义为一个bank等等,本申请不做限定。
如图2A示出一种在寄存器单元中数据存储的示意图。如图2A,示出两个个通道CI/CO各自对应的数据块bank0和bank1,其中,每个数据块是由两个数据片slice组成的,每个数据片是由7个像素pixel组成的,图示为在宽度方向上(即行方向上)每个数据片是由7个pixel组成。其中,黑色线条对应的部分表示有效数据(如图像数据)在寄存器单元中的存储;其余部分表示在寄存器单元中存储的无效数据或没有数据存储。以所述数据为图像数据为例,图2A示出一张8*4的图像数据在寄存器单元中的存储示意图。
在神经网络处理器外部的所述存储介质中支持数据的存储格式为连续存储。具体的,在所述存储介质中,数据是按照通道CI/CO的传输顺序(如CI0,CI1,CI2,等等)依次连续存储的。如图2B示出一种在存储介质中数据存储的示意图。如图2B,给出两个通道CI/CO中的数据块在存储介质中以连续存储的方式存放数据,例如在第一个CI/CO0通道中按照图示箭头方向连续存放CI/CO0通道对应的数据块中的所有数据,在存放完CI/CO0通道的数据块后,在接着存放下一个CI/CO1通道的数据块中包含的所有数据。针对每个通道的数据块而言,可按照行的顺序从低位至高位依次存储数据块中的数据。如图2B示出CI/CO0通道中数据块的存储示意图,具体的可先将第一行数据存放完后,再接着存放第二行数据。
基于图1所示的计算装置,请参阅图3,是本发明实施例提供的一种数据搬运方法的流程示意图。如图3所示的方法包括如下实施步骤:
步骤S202、存储控制单元106获取数据搬运指令,所述数据搬运指令包括指示信息,该指示信息用于指示待搬运的目标数据以及所述目标数据所在的第一数据块的存储格式。
本申请中,所述目标数据可为第一数据块中的数据,该第一数据块可表示为C*H*W,即由C个H*W的数据块组成。其中,C表示传输所述数据块所需的通道数,H和W分别为该数据块的高度和宽度,如图2A中可理解数据块在高度方向(即列方向上)的高度H和数据块在宽度方向上(即行方向上)的宽度W。
例如,利用计算装置传输一张图像,该图像对应的图像数据可表示为C*H*W,其中C表示传输所述图像的通道数,H*W表示该图像在二维平面中的尺寸大小。当C=1时,该图像可为灰度图像;当C=3时,该图像可为彩色图像,如以RGB图像为例,可1个通道传输该图像的红色Red数据,1个通道传输该图片的绿色Green数据,1个通道传输该图像的蓝色Blue数据。相应地,该RGB图像可由这三个通道中传输的颜色数据组合形成,本申请不做过多详述。
步骤S204、存储控制单元106根据所述第一数据块的存储格式,在所述存储介质和所述寄存器单元之间完成所述目标数据的搬运。
具体的,所述数据搬运指令中的指示信息包括但不限于以下多维信息中的任一项或多项的组合,所述多维信息具体为:
维度1:所述数据块在宽度方向上(即行方向上)的第一搬运指示,所述第一搬运指示用于指示每连续K1个数据确定一个所需搬运的所述目标数据。其中K1为正整数,当K1=1时,表示所述数据块中在行方向上存储的每个数据均为所述目标数据,均需被搬运。
具体的,如果在从存储介质向所述寄存器单元搬运数据的场景中,所述第一搬运指示具体用于指示在宽度方向上每连续K1个数据存放一个从所述存储介质中读取的所需搬运的所述目标数据。例如,当K1=1时具体表示所述数据块中在行方向上存储的每个数据均为所述计算装置从所述存储介质中获取的连续的待搬运的所述目标数据。
如果在从所述寄存器单元向所述存储介质搬运数据的场景中,所述第一搬运指示具体用于指示在宽度方向上每连续K1个数据提取一个数据,作为需搬运至所述存储介质中的一个待搬运的所述目标数据。例如,当K1=1时具体表示所述数据块中在行方向上存储的每个数据均为待搬运的所述目标数据,即所述计算装置需将行方向上的每个数据搬运至所述存储介质中存储。
应理解的,所述目标数据为有效数据,除所述目标数据外所述数据块中存储的数据也可有效数据或者无效数据,优选地为了区分,可为无效数据,本申请不做限定。
可选的,所述无效数据在所述数据块中可用预设字符、预设数值、预设字母等形式来存储表示。例如,所述无效数据可用0或无效的气泡数据填充代替等,本申请不做限定。
维度2:所述数据块在宽度方向上(即行方向上)的宽度W,即是所述数据块在宽度方向上包含的所有数据的宽度,其中所述数据可为有效数据和/或无效数据。可选的,所述宽度也可为所述数据块在宽度方向上的有效数据的宽度等。
维度3:所述数据块在高度方向上(即列方向上)的第二搬运指示,所述第二搬运指示用于指示每连续K2个数据确定一个所需搬运的所述目标数据。也即是,每连续K2行的数据确定一行所需搬运的所述目标数据。其中,K2为正整数。当K2=1时,表示所述数据块中在列方向上的每行数据均为所述目标数据,需被搬运。
具体的,如果在从存储介质向所述寄存器单元搬运数据的场景中,所述第二搬运指示具体用于指示在高度方向上每连续K2行数据确定一行数据,用于存放从所述存储介质中读取的所需搬运的所述目标数据。例如,当K2=1时具体表示所述数据块中在高度方向上的每行数据均用于存放所述计算装置从所述存储介质中读取的待搬运的所述目标数据。
如果在从所述寄存器单元向所述存储介质搬运数据的场景中,所述第二搬运指示具体用于指示在高度方向上每连续K2行数据提取一行数据,作为需搬运至所述存储介质中的待搬运的所述目标数据。例如,当K2=1时具体表示所述数据块中在高度方向上存储的每行数据均为待搬运的所述目标数据,即所述计算装置需将高度方向上的每行数据搬运至所述存储介质中存储。
关于所述目标数据以及无效数据的相关阐述,可参见前述实施例所述,这里不再赘述。
维度4:所述数据块在高度方向上(即列方向上)的高度H,即是所述数据块在高度方向上包含的所有数据的高度。可选的,所述数据可为有效数据和/或无效数据。可选的,所述高度可指所述数据块在高度方向上的有效数据的高度等。
应理解的,上述维度1至维度4,定义了一个通道CI/CO的数据块在所述寄存器单元中的存储格式。可选的,所述多维信息还可包括:
维度5:每两个所述数据块之间在宽度方向上(即行方向上)的存储间隔,和/或,所述数据块在宽度方向上(即行方向上)的存储数量M1。其中,M1为正整数。
维度6:每两个所述数据块之间在高度方向上(即列方向上)的存储间隔,和/或,所述数据块在高度方向上(即列方向上)的存储数量M2。其中,M2为正整数。
应理解的,受限于神经网络处理器中所述寄存器单元的存储空间,M1和M2可为所述计算装置侧或用户侧自定义设置的,本申请不做限定。可选的,受限于神经网络处理器的处理能力(即所述计算装置的数据搬运能力,也可称为处理能力),每次搬运的数据量有所限制,因此可能会涉及多个巡回round的数据搬运。可选地,所述多维信息还可包括:
维度7:批数据块在高度方向(即列方向)上的存储间隔,即是每两个round之间的存储间隔。每个round(即本申请称的批数据块)中包含的数据块的总数量为M1*M2。
可选的,每个round(即每个批数据块)中所包含的数据块M1*M2为用户侧或所述计算装置侧自定义设置的,本申请不做限定。
可选的,所述指示信息还可包括其他参数信息,例如所述数据块的优先级等信息,本申请不做限定。
相应地,如图4给出一种数据存储的示意图。如图4,维度1至维度7分别定义了通道CI/CO数据块在所述寄存器单元中的存储格式,同时也定义出所述数据块中所需搬运的所述目标数据。
基于此,相应地步骤S204存在如下两种具体实施方式。
第一种实施方式中,若所述数据搬运指令用于指示从所述存储介质向所述寄存器单元中搬运数据,则所述存储控制单元根据所述数据搬运指令,先从所述存储介质中连续读取所需搬运的所述目标数据,然后根据所述指示信息的指示将所述目标数据以所述第一数据块的存储格式存放至所述寄存器单元中。
具体的,所述存储控制单元在从所述存储介质中连续读取到所需搬运的所述目标数据后,如图4,先按照维度1和维度2完成一个通道CI/CO数据块中行方向上针对所述目标数据的存放,即如图4中箭头方向所示,在一个通道CI/CO数据块的行方向上从低位到高低依次存储所述目标数据。接着,按照维度3和维度4完成一个通道CI/CO数据块中列方向上针对所述目标数据的存放。此时即可完成一个通道CI/CO数据块中针对所述目标数据的存储。之后,接着可根据所述指示信息的指示再按照维度5或维度6完成行/列方向上其他通道CI/CO数据块中所述目标数据的存储,即按照维度5或维度6将后续读取的所述目标数据存储至行/列方向上其他通道CI/CO数据块中,直至完成一个round的针对所述目标数据的存储。然后,还可根据实际情况,即所需搬运的所述目标数据的数据量决定是否还需按照维度7完成多个round的所述目标数据的存储。关于每个round中针对所述目标数据的具体存储方式都相同,这里不再赘述。
例如图4,所述计算装置根据所述指示信息的指示按照维度1和维度2沿着行方向将所述目标数据存储至所述寄存器单元的数据块CI/CO0中,然后按照维度3和维度4沿着列方向上将所述目标数据存储至所述寄存器单元的数据块CI/CO0中。即是按照维度1至维度4先将所述目标数据存储至所述寄存器单元的数据块CI/CO0中,即先完成数据块CI/CO0中针对所述目标数据的存储。然后在按照维度5或维度6将后续读取的所述目标数据存储至所述寄存器单元对应在行/列方向上的数据块CI/CO1或者CI/CO2。依次类推,假设本申请中依据神经网络处理器的处理能力,定义每个round支持处理的通道CI/CO的数据块的数量为4。相应地,如果所述存储介质中所需搬运的所述目标数量的数据量较多,超过4个通道CI/CO数据块中针对所述目标数据存储的数据量时,相应地,所述存储控制单元还需按照维度7完成下一个round中针对所述目标数据的存放,即将后续所需搬运的所述目标数据存放到下一个round的通道CI/CO数据块中。
第二种实施方式中,若所述数据搬运指令用于指示从所述寄存器单元向所述存储介质中搬运数据,则所述存储控制单元根据所述数据搬运指令中所述指示信息的指示,先从所述寄存器单元中读取所述目标数据所在的第一数据块,然后从所述第一数据块中提取出所需传输的所述目标数据,接着将所述目标数据依次连续地发送并存储至所述存储介质中。
具体的,如图4,先按照维度1和维度2读取并抽取通道CI/CO数据块行方向上所需搬运的所述目标数据,即如图4中箭头方向所示,在一个通道CI/CO数据块的行方向上从低位到高低依次读取所需搬运的所述目标数据。接着,按照维度3和维度4读取并抽取通道CI/CO数据块在列方向上所需搬运的所述目标数据。此时即可完成一个通道CI/CO数据块中所有待搬运的所述目标数据的获取。之后,所述存储控制单元可根据所述指示信息的指示再按照维度5或维度6完成行/列方向上其他通道CI/CO数据块中所需搬运的所述目标数据块的读取,直至完成一个round中所述目标数据的读取。然后,根据实际情况,即是所述第一数据块的数量C以及每个round支持处理的批数据块的数量M1*M2,确定是否继续按照维度7实现其他round中所述目标数据的读取和搬运。
应理解的,所述存储控制单元从所述寄存器单元中读取到所需搬运的所述目标数据后,可连续发送给所述存储介质,以便于将所述目标数据连续存储至所述存储介质中。
相应地,例如图4,所述计算装置根据所述指示信息的指示按照维度1和维度2读取所述寄存器单元的数据块CI/CO0中行方向上所需搬运的目标数据,并将所述目标数据连续发送至所述存储介质中存储,即先按照维度1和维度2完成通道数据块CI/CO0行方向上的所述目标数据的搬运。接着,按照维度3和维度4读沿着列方向上读取所述寄存器单元的数据块CI/CO0中所需搬运的目标数据,并将所述目标数据连续发送至所述存储介质中存储,即按照维度3和维度4完成通道数据块CI/CO0行方向上的所述目标数据的搬运。相应地,按照维度1至维度4可先完成数据块CI/CO0中所述目标数据的搬运。然后,再按照维度5或维度6实现行/列方向上其他通道CI/CO数据块中所述目标数据的读取和搬运,依次类推,直至完成一个round中所述目标数据的读取和搬运。假设本申请中依据神经网络处理器的处理能力,定义每个round支持处理的通道CI/CO的数据块的数量为4。相应地,如果所述寄存器单元中所需搬运的所述目标数据被存储在6个通道CI/CO数据块中,具体为图4的数据块CI/CO0至数据块CI/CO5中。由此可知,所述存储控制单元还需按照维度7完成下一个round中针对所述目标数据的读取和搬运。
下面介绍本申请中涉及的所述存储控制单元的结构框架以及基于该框架对应给出的数据搬运的具体实施例。
如图5A示出一种第一存储控制单元EoDMA的结构示意图。如图5A所示的第一存储控制单元包括第一控制单元202、第一读数据单元204、第一写数据单元206。可选地,还可包括第一先进先出(First In First Out,FIFO)单元208以及第一授权单元210。可选的,所述第一控制单元202包括指令存储单元以及指令控制单元,图未示。其中,
所述指令存储单元(EoDMA_iq)用于接收神经网络处理器发送的所述数据搬运指令,其中当然包括所述数据搬运指令中包含的指示信息等参数。
所述指令控制单元(EoDMA_ctrl)用于负责所述数据搬运指令(具体为指令中的参数,如指示信息)的分发、启动EoDMA以及控制完成所述指示信息中除维度1之外的其他多维信息之间的切换等。
所述第一授权单元(Rd_dm_grant)用于负责读取所述寄存器单元的授权(即是否支持从所述寄存器单元中读取所需搬运的所述目标数据)。应理解的,所述寄存器单元的授权可与以下信息有关,如所述寄存器单元中存储的所需搬运的所述目标数据或者所述目标数据所在的第一数据块的优先级,例如多条数据搬运指令同时需从所述寄存器单元中搬运数据时,受限于数据传输能力,所述寄存单元可考虑所需搬运的所述目标数据的优先级,如优先级越高,则越早授权;优先级较低,则等待优先级较高的所述目标数据搬运完后再搬运优先级较低的目标数据等等。
可选的,所述第一授权单元还用于根据第一FIFO的读使能(即通过读使能指令获知所述第一FIFO单元中被占用的存储空间)以及所述第一读数据单元的读使能(即向所述寄存器单元发送的数据读取指令,以获知所述寄存器单元中所需搬运的所述目标数据的数据量)预测所述第一FIFO是否将溢出或者,所述第一FIFO单元的存储空间超过预设阈值等。可选的,还用于向所述第一读数据单元反馈相应地的数据读取授权指示,所述数据读取授权指示用于指示是否授权从所述寄存器单元中读取数据,也即是是否授权数据的读取。具体的,当所述所述寄存器单元不授权,或者所述第一FIFO单元的存储空间超过预设阈值或溢出时,反馈的所述数据读取授权指示用于指示不授权所述寄存器单元中数据的读取;否则用于指示授权所述寄存器单元中数据的读取。
所述第一读数据单元用于在所述数据读取授权指示用于指示授权数据读取时,根据指令中指示信息的指示从所述寄存器单元中读取所需搬运的目标数据,并将所述目标数据连续发送至所述第一FIFO单元中缓存。
具体的,所述第一读数据单元,也可称为数据抽取单元(extract valid data)用于通过接口(如Xbar接口)从所述寄存器单元中读取所述目标数据所在的第一数据块,并负责基于所述指示信息中的维度1来实现所述目标数据的提取;同时将提取的所述目标数据连续缓存至所述第一FIFO单元中。
所述第一FIFO单元用于连续缓存所需搬运的所述目标数据。
所述第一写数据单元,也可称为数据发送单元(send data unit)用于从所述第一FIFO单元中将缓存的所述目标数据连续发送到所述存储介质中进行存储。可选的,所述第一写数据单元还可用于负责与所述计算装置中的总线对接,受总线的控制,允许/禁止将所述目标数据连续写入至所述存储介质中存储。
相应地基于图5A所示的EoDMA结构示意图,参见图5B是本发明实施例提供的又一种数据搬运方法的流程示意图。如图5B所示的方法可包括如下实施步骤:
步骤301、第一控制单元202接收来自神经网络处理器发送的所述数据搬运指令,并将所述数据搬运指令发送给所述第一读数据单元204。其中,所述数据搬运指令包括所述指示信息,该指示信息用于指示从所述寄存器单元中向所述存储介质中搬运数据,可选地还可包括所需搬运的目标数据以及所述目标数据所在的第一数据块的存储格式,具体可参见前述实施例中的相关阐述,这里不再赘述。
步骤S302、所述第一授权单元210根据授权因素,确定数据读取授权指示。其中,所述数据读取授权指示用于指示是否授权所述第一读数据单元204从所述寄存器单元中读取所需搬运的所述目标数据,即指示是否授权数据读取。所述授权因素包括以下中的任一项或多项的组合:所述第一FIFO单元中被占用的存储空间是否超过预设阈值、所述目标数据的优先级、所述第一数据块的优先级、或者其他用于影响数据传输的因素等等,本申请不做限定。
步骤S303、所述第一读数据单元204接收所述数据搬运指令,在所述数据读取授权指示用于指示授权数据读取的情况下,根据所述数据搬运指令中所述第一数据块的存储格式,从所述寄存器单元中读取所需搬运的目标数据。相应地,所述第一读数据单元204将读取的所述目标数据连续缓存至所述第一FIFO单元208中。关于所述目标数据的读取可参见前述实施例中的相关介绍,这里不再赘述。
步骤S304、所述第一FIFO单元208连续缓存所需搬运的所述目标数据。
步骤S305、所述第一写数据单元206从所述第一FIFO单元208中获取所述目标数据,并将所述目标数据连续写入/存储至所述存储介质中。
如图6A示出一种第二存储控制单元EiDMA的结构示意图。如图6A所示的第二存储控制单元包括第二控制单元302、第二读数据单元304、第二写数据单元306。可选地,还可包括第二先进先出(First In First Out,FIFO)单元308以及第二授权单元310。可选的,所述第二控制单元302包括指令存储单元以及指令控制单元,图未示。其中,
所述指令存储单元(EiDMA_iq)用于接收神经网络处理器发送的所述数据搬运指令,其中当然包括所述数据搬运指令中包含的指示信息等参数。
所述指令控制单元(EiDMA_ctrl)用于负责所述数据搬运指令(具体为指令中的参数,如指示信息)的分发以及启动EiDMA。
所述第二授权单元(Rd_dm_grant)用于负责读取所述存储介质的授权(即是否支持从所述存储介质中读取所需搬运的所述目标数据)。应理解的,所述存储介质的授权可与以下信息有关,如所述存储介质中存储的所需搬运的所述目标数据或者所述目标数据所在的第一数据块的优先级,例如多条数据搬运指令同时需从所述存储介质中搬运数据时,受限于数据传输能力,所述存储介质可考虑所需搬运的所述目标数据的优先级,如优先级越高,则越早授权;优先级较低,则等待优先级较高的所述目标数据搬运完后再搬运优先级较低的目标数据等等。
可选的,所述第二授权单元还用于根据第二FIFO的读使能(即通过读使能指令获知所述第二FIFO单元中被占用的存储空间)以及所述第二读数据单元的读使能(即向所述存储介质发送的数据读取指令,以获知所述存储介质中所需搬运的所述目标数据的数据量)预测所述第二FIFO是否将溢出或者,所述第二FIFO单元的存储空间超过预设阈值等。可选的,还用于向所述第二读数据单元反馈相应地的数据读取授权指示,所述数据读取授权指示用于指示是否授权从所述存储介质中读取数据,也即是是否授权数据的读取。具体的,当所述所述存储介质不授权,或者所述第二FIFO单元的存储空间超过预设阈值或溢出时,反馈的所述数据读取授权指示用于指示不授权所述存储介质中数据的读取;否则用于指示授权所述存储介质中数据的读取。
所述第二读数据单元(Rd_ext_data)用于在所述数据读取授权指示用于指示授权数据读取时,根据数据搬运指令从所述存储介质中读取所需搬运的目标数据,并将所述目标数据发送至所述第二FIFO单元中进行缓存。
可选的,还用于负责与所述计算装置中的总线对接,受总线的控制,允许/禁止所述目标数据的读取。
所述第二FIFO单元用于缓存所需搬运的所述目标数据。
所述第二写数据单元(Wr_dm_data)用于从所述第二FIFO单元中将缓存的所述目标数据按照指令中所述指示信息的指示以所述第一数据块的存储格式发送到所述存储介质中进行存储。具体的,所述第二写数据单元可用于负责控制所述指示信息中多维信息之间的相互切换,以完成在所述寄存器单元中针对所述目标数据的存储。
基于图6A所示的结构示意图,参见图6B是本发明实施例提供的又一种数据搬运方法的流程示意图。如图6B所示的方法包括如下实施步骤:
步骤S401、第二控制单元302接收来自神经网络处理器发送的所述数据搬运指令,并将所述数据搬运指令发送给所述第二读数据单元304。其中,所述数据搬运指令包括所述指示信息,该指示信息用于指示从所述存储介质中向所述寄存器单元中搬运数据,可选地还可包括所需搬运的目标数据以及所述目标数据在所述寄存器单元中的存储格式,即本申请中所述目标数据所在的第一数据块的存储格式,具体可参见前述实施例中的相关阐述,这里不再赘述。
步骤S402、第二授权单元310根据授权因素,确定数据读取授权指示。其中,所述数据读取授权指示用于指示是否授权所述第二读数据单元304从所述存储介质中读取所需搬运的所述目标数据,即指示是否授权数据读取。所述授权因素包括以下中的任一项或多项的组合:所述第二FIFO单元中被占用的存储空间是否超过预设阈值、所述目标数据的优先级、所述第一数据块的优先级、或者其他用于影响数据传输的因素等等,本申请不做限定。
步骤S403、第二读数据单元304接收所述数据搬运指令,在所述数据读取授权指示用于指示授权数据读取的情况下,根据所述数据搬运指令,从所述存储介质中连续读取所需搬运的所述目标数据。相应地,所述第二读数据单元304还可进一步根据指令中所述指示信息指示的所述第一数据块的存储格式,将所述目标数据按照所述第一数据块的存储格式缓存至第二FIFO单元308中。
步骤S404、第二FIFO单元308缓存所需搬运的所述目标数据。
步骤S405、第二写数据单元306从所述第二FIFO单元中读取符合所述第一数据块的存储格式的所需搬运的所述目标数据,并将所述符合所述第一数据块的存储格式的所述目标数据发送至所述寄存器单元中存储。关于所述目标数据如何按照所述指示信息中所述第一数据块的存储格式进行存储,可参见前述实施例中的相关阐述,这里不再赘述。
由此可以看出,本申请可根据神经网络处理器支持处理的数据格式来设计多维DMA数据的存储格式,即利用与神经网络处理器所匹配的数据存储格式来对应进行数据的存储,可提高数据的读写速率,从而实现数据的高效搬运,提高数据搬运/数据处理的效率。
请参见图7,是本发明实施例提供的又一种计算装置的结构示意图。如图7所述的计算装置包括存储介质70、寄存器单元72以及存储控制单元74,其中,
所述存储介质70和所述寄存器单元72均用于存储数据;
所述存储控制单元74用于获取数据搬运指令,所述数据搬运指令包括指示信息,所述指示信息用于指示待搬运的目标数据以及所述目标数据所在的第一数据块的存储格式;
所述存储控制单元74还用于根据所述第一数据块的存储格式,在所述存储介质和所述寄存器单元之间完成所述目标数据的搬运。
在可选实施例中,所述第一数据块是由C个H*W的数据块构成,C表示传输所述第一数据块所需的通道数,H和W分别表示所述数据块的高度和宽度;
所述指示信息包括以下信息中的至少一项:所述数据块在宽度方向上的第一搬运指示、所述数据块在宽度方向上的宽度W、所述数据块在高度方向上第二搬运指示、所述数据块在高度方向上的高度H、所述数据块之间在宽度方向上的存储间隔、所述数据块在宽度方向上的存储数量M1、所述数据块之间在高度方向上的存储间隔、所述数据块在高度方向上的存储数量M2以及批数据块在高度方向上的存储间隔,所述批数据块包含的数据块的总数量为M1*M2,用于指示所述计算装置的数据搬运能力;
所述第一搬运指示用于指示所述数据块在宽度方向上每连续K1个数据确定一个所需搬运的目标数据;
所述第二搬运指示用于指示所述数据块在高度方向上每连续K2个数据确定一个所需搬运的目标数据;
其中,所述目标数据为所述数据块中的数据,M1、M2、K1和K2均为正整数。
在可选实施例中,所述存储控制单元74包括第一存储控制单元720和第二存储控制单元730;其中,
所述第一存储控制单元720用于根据所述第一数据块的存储格式从所述寄存器单元中提取所述第一数据块中的目标数据,并将所述目标数据连续存储至所述存储介质中;
所述第二存储控制单元722用于从所述存储介质中获取连续存储的所述目标数据,并按照所述第一数据块的存储格式将所述目标数据存储至所述寄存器单元中。
在可选实施例中,所述第一存储控制单元720包括第一控制单元721、第一读数据单元722、第一写数据单元723、第一先进先出FIFO单元724以及第一授权单元725;
所述第一控制单元721用于获取所述数据搬运指令,并将所述数据搬运指令发送给所述第一读数据单元722;
所述第一授权单元725用于根据授权因素确定数据读取授权指示,所述数据读取授权指示用于指示是否授权读取所需搬运的所述目标数据,所述授权因素包括以下中的至少一项:所述第一FIFO单元中被占用的存储空间是否超过预设阈值、所述目标数据的优先级、所述第一数据块的优先级;
所述第一读数据单元722用于在所述数据读取授权指示用于指示授权数据读取的情况下,根据所述第一数据块的存储格式从所述寄存器单元中提取所述第一数据块中的目标数据,并将所述目标数据连续缓存至所述第一FIFO单元724中;
所述第一FIFO单元724用于连续缓存所需搬运的所述目标数据;
所述第一写数据单元723用于从所述第一FIFO单元724中连续提取所需搬运的所述目标数据,并发送至所述存储介质中存储。
在可选实施例中,所述第二存储控制单元730包括第二控制单元731、第二读数据单元732、第二写数据单元733、第二先进先出FIFO单元734以及第二授权单元735;
所述第二控制单元731用于获取所述数据搬运指令,并将所述数据搬运指令发送给所述第二读数据单元732;
所述第二授权单元735用于根据授权因素确定数据读取授权指示,并将所述数据读取授权指示发送给所述第二读数据单元732;其中,所述数据读取授权指示用于指示是否授权读取所需搬运的所述目标数据,所述授权因素包括以下中的至少一项:所述第二FIFO单元中被占用的存储空间是否超过预设阈值、所述目标数据的优先级及所述第一数据块的优先级;
所述第二读数据单元732用于在所述数据读取授权指示用于指示授权数据读取的情况下,根据所述数据搬运指令从所述存储介质中连续提取所需搬运的所述目标数据,按照所述第一数据块的存储格式将所述目标数据缓存至所述第二FIFO单元734中;
所述第二FIFO单元734用于缓存符合所述存储格式的所述目标数据;
所述第二写数据单元733用于从所述第二FIFO单元734中提取符合所述存储格式的所述目标数据,并将所述目标数据发送至所述寄存器单元中存储。
再请参见图8,是本发明实施例的一种计算装置的结构示意图。所述计算装置可以为智能手机、平板电脑、智能可穿戴设备等带神经网络处理器以及通信网络功能的设备,如图8所示,本发明实施例的所述计算装置可以包括显示屏、按键、扬声器、拾音器等模块,并且还包括:至少一个总线501、与总线501相连的至少一个处理器502以及与总线501相连的至少一个存储器503,实现通信功能的通信装置505,为终端各耗电模块供电的电源装置504。
所述处理器502可通过总线501,调用存储器503中存储的代码以执行相关的功能,其中,存储器503包括操作***、数据搬运应用程序。其中,所述处理器502,用于执行如上所述方法实施例提供的所有或者部分实施步骤。
本发明实施例还提供一种计算机存储介质,其中,该计算机存储介质可存储有程序,该程序执行时包括上述方法实施例中记载的部分或全部步骤。
本申请实施例还提供一种计算机程序产品,所述计算机程序产品包括存储了计算机程序的非瞬时性计算机可读存储介质,所述计算机程序可操作来使计算机执行如上述方法实施例中记载的部分或全部步骤。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置,可通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个***,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明的各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。
Claims (10)
1.一种数据搬运方法,其特征在于,应用于计算装置中,所述计算装置包括:存储介质、寄存器单元以及存储控制单元,所述方法包括:
所述存储控制单元获取数据搬运指令,所述数据搬运指令包括指示信息,所述指示信息用于指示待搬运的目标数据以及所述目标数据所在的第一数据块的存储格式;
所述存储控制单元根据所述第一数据块的存储格式,在所述存储介质和所述寄存器单元之间完成所述目标数据的搬运;
所述第一数据块是由C个H*W的数据块构成,其中,C表示传输所述第一数据块所需的通道数,H和W分别表示所述数据块的高度和宽度;所述目标数据为所述数据块中的有效数据;
所述指示信息包括以下信息中的至少一项:所述数据块在宽度方向上的第一搬运指示、所述数据块在宽度方向上的宽度W、所述数据块在高度方向上的第二搬运指示、所述数据块在高度方向上的高度H、所述数据块之间在宽度方向上的存储间隔、所述数据块在宽度方向上的存储数量M1、所述数据块之间在高度方向上的存储间隔、所述数据块在高度方向上的存储数量M2以及批数据块在高度方向上的存储间隔;其中,所述第一搬运指示用于指示所述数据块在宽度方向上每连续K1个数据确定一个所需搬运的目标数据;所述第二搬运指示用于指示所述数据块在高度方向上每连续K2个数据确定一个所需搬运的目标数据;其中,所述目标数据为所述数据块中的数据,M1、M2、K1和K2均为正整数;所述批数据块包含的数据块的总数量为M1*M2,用于指示所述计算装置的数据搬运能力;所述批数据块是指数据搬运的巡回;
其中,所述目标数据的搬运,包括:
按照所述第一搬运指示、所述数据块在宽度方向上的宽度W读取并抽取所述数据块宽度方向上所需搬运的所述目标数据;
按照所述第二搬运指示、所述数据块在高度方向上的高度H读取并抽取所述数据块在高度方向上所需搬运的所述目标数据。
2.根据权利要求1所述的方法,其特征在于,所述存储控制单元包括第一存储控制单元和第二存储控制单元;
所述存储控制单元根据所述第一数据块的存储格式,在所述存储介质和所述寄存器单元之间完成所述目标数据的搬运包括:
所述第一存储控制单元根据所述第一数据块的存储格式从所述寄存器单元中提取所述第一数据块中的目标数据,并将所述目标数据连续存储至所述存储介质中;或者,
所述第二存储控制单元从所述存储介质中获取连续存储的所述目标数据,并按照所述第一数据块的存储格式将所述目标数据存储至所述寄存器单元中。
3.根据权利要求2所述的方法,其特征在于,所述第一存储控制单元包括第一控制单元、第一读数据单元、第一写数据单元、第一先进先出FIFO单元以及第一授权单元;
所述存储控制单元根据所述第一数据块的存储格式,在所述存储介质和所述寄存器单元之间完成所述目标数据的搬运包括:
所述第一控制单元将获取的所述数据搬运指令发送给所述第一读数据单元;
所述第一授权单元根据授权因素确定数据读取授权指示,并将所述数据读取授权指示发送给所述第一读数据单元;其中,所述数据读取授权指示用于指示是否授权读取所需搬运的所述目标数据,所述授权因素包括以下中的至少一项:所述第一FIFO单元中被占用的存储空间是否超过预设阈值、所述目标数据的优先级及所述第一数据块的优先级;
所述第一读数据单元在所述数据读取授权指示用于指示授权数据读取的情况下,根据所述第一数据块的存储格式从所述寄存器单元中提取所述第一数据块中的目标数据,并将所述目标数据连续缓存至所述第一FIFO单元中;
所述第一写数据单元从所述第一FIFO单元中连续提取所需搬运的所述目标数据,并发送至所述存储介质中存储。
4.根据权利要求2所述的方法,其特征在于,所述第二存储控制单元包括第二控制单元、第二读数据单元、第二写数据单元、第二先进先出FIFO单元以及第二授权单元;
所述存储控制单元根据所述第一数据块的存储格式,在所述存储介质和所述寄存器单元之间完成所述目标数据的搬运包括:
所述第二控制单元将获取的所述数据搬运指令发送给所述第二读数据单元;
所述第二授权单元根据授权因素确定数据读取授权指示,并将所述数据读取授权指示发送给所述第二读数据单元;其中,所述数据读取授权指示用于指示是否授权读取所需搬运的所述目标数据,所述授权因素包括以下中的至少一项:所述第二FIFO单元中被占用的存储空间是否超过预设阈值、所述目标数据的优先级及所述第一数据块的优先级;
所述第二读数据单元在所述数据读取授权指示用于指示授权数据读取的情况下,根据所述数据搬运指令从所述存储介质中连续提取所需搬运的所述目标数据,并按照所述第一数据块的存储格式将所述目标数据缓存至所述第二FIFO单元中;
所述第二写数据单元从所述第二FIFO单元中提取符合所述存储格式对应的所述目标数据,并将所述目标数据存储所述寄存器单元中。
5.一种计算装置,其特征在于,包括存储介质、寄存器单元以及存储控制单元,
所述存储介质和所述寄存器单元均用于存储数据;
所述存储控制单元用于获取数据搬运指令,所述数据搬运指令包括指示信息,所述指示信息用于指示待搬运的目标数据以及所述目标数据所在的第一数据块的存储格式;
所述存储控制单元还用于根据所述第一数据块的存储格式,在所述存储介质和所述寄存器单元之间完成所述目标数据的搬运;
所述第一数据块是由C个H*W的数据块构成,C表示传输所述第一数据块所需的通道数,H和W分别表示所述数据块的高度和宽度;所述目标数据为所述数据块中的有效数据;
所述指示信息包括以下信息中的至少一项:所述数据块在宽度方向上的第一搬运指示、所述数据块在宽度方向上的宽度W、所述数据块在高度方向上第二搬运指示、所述数据块在高度方向上的高度H、所述数据块之间在宽度方向上的存储间隔、所述数据块在宽度方向上的存储数量M1、所述数据块之间在高度方向上的存储间隔、所述数据块在高度方向上的存储数量M2以及批数据块在高度方向上的存储间隔,所述第一搬运指示用于指示所述数据块在宽度方向上每连续K1个数据确定一个所需搬运的目标数据;所述第二搬运指示用于指示所述数据块在高度方向上每连续K2个数据确定一个所需搬运的目标数据;其中,所述目标数据为所述数据块中的数据,M1、M2、K1和K2均为正整数;所述批数据块包含的数据块的总数量为M1*M2,用于指示所述计算装置的数据搬运能力;所述批数据块是指数据搬运的巡回;
其中,所述目标数据的搬运,包括:
按照所述第一搬运指示、所述数据块在宽度方向上的宽度W读取并抽取所述数据块宽度方向上所需搬运的所述目标数据;
按照所述第二搬运指示、所述数据块在高度方向上的高度H读取并抽取所述数据块在高度方向上所需搬运的所述目标数据。
6.根据权利要求5所述的计算装置,其特征在于,所述存储控制单元包括第一存储控制单元和第二存储控制单元;
所述第一存储控制单元用于根据所述第一数据块的存储格式从所述寄存器单元中提取所述第一数据块中的目标数据,并将所述目标数据连续存储至所述存储介质中;
所述第二存储控制单元用于从所述存储介质中获取连续存储的所述目标数据,并按照所述第一数据块的存储格式将所述目标数据存储至所述寄存器单元中。
7.根据权利要求6所述的计算装置,其特征在于,所述第一存储控制单元包括第一控制单元、第一读数据单元、第一写数据单元、第一先进先出FIFO单元以及第一授权单元;
所述第一控制单元用于获取所述数据搬运指令,并将所述数据搬运指令发送给所述第一读数据单元;
所述第一授权单元用于根据授权因素确定数据读取授权指示,所述数据读取授权指示用于指示是否授权读取所需搬运的所述目标数据,所述授权因素包括以下中的至少一项:所述第一FIFO单元中被占用的存储空间是否超过预设阈值、所述目标数据的优先级、所述第一数据块的优先级;
所述第一读数据单元用于在所述数据读取授权指示用于指示授权数据读取的情况下,根据所述第一数据块的存储格式从所述寄存器单元中提取所述第一数据块中的目标数据,并将所述目标数据连续缓存至所述第一FIFO单元中;
所述第一FIFO单元用于连续缓存所需搬运的所述目标数据;
所述第一写数据单元用于从所述第一FIFO单元中连续提取所需搬运的所述目标数据,并发送至所述存储介质中存储。
8.根据权利要求6所述的计算装置,其特征在于,所述第二存储控制单元包括第二控制单元、第二读数据单元、第二写数据单元、第二先进先出FIFO单元以及第二授权单元;
所述第二控制单元用于获取所述数据搬运指令,并将所述数据搬运指令发送给所述第二读数据单元;
所述第二授权单元用于根据授权因素确定数据读取授权指示,并将所述数据读取授权指示发送给所述第二读数据单元;其中,所述数据读取授权指示用于指示是否授权读取所需搬运的所述目标数据,所述授权因素包括以下中的至少一项:所述第二FIFO单元中被占用的存储空间是否超过预设阈值、所述目标数据的优先级及所述第一数据块的优先级;
所述第二读数据单元用于在所述数据读取授权指示用于指示授权数据读取的情况下,根据所述数据搬运指令从所述存储介质中连续提取所需搬运的所述目标数据,按照所述第一数据块的存储格式将所述目标数据缓存至所述第二FIFO单元中;
所述第二FIFO单元用于缓存符合所述存储格式的所述目标数据;
所述第二写数据单元用于从所述第二FIFO单元中提取符合所述存储格式的所述目标数据,并将所述目标数据发送至所述寄存器单元中存储。
9.一种计算装置,其特征在于,包括:处理器、存储器、通信接口和总线;所述处理器、所述存储器和所述通信接口通过所述总线连接并完成相互间的通信;所述存储器存储可执行程序代码;所述处理器通过读取所述存储器中存储的可执行程序代码来运行与所述可执行程序代码对应的程序,以执行如权利要求1-4任一项所述的方法。
10.一种计算机可读存储介质,其特征在于,所述计算机存储介质存储有计算机程序,所述计算机程序包括程序指令,所述程序指令当被处理器执行时使所述处理器执行如权利要求1-4任一项所述的方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711479137.XA CN109992542B (zh) | 2017-12-29 | 2017-12-29 | 一种数据搬运方法、相关产品及计算机存储介质 |
PCT/CN2018/079368 WO2019127922A1 (zh) | 2017-12-29 | 2018-03-16 | 一种数据搬运方法、计算装置及计算机可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711479137.XA CN109992542B (zh) | 2017-12-29 | 2017-12-29 | 一种数据搬运方法、相关产品及计算机存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109992542A CN109992542A (zh) | 2019-07-09 |
CN109992542B true CN109992542B (zh) | 2021-11-30 |
Family
ID=67062964
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201711479137.XA Active CN109992542B (zh) | 2017-12-29 | 2017-12-29 | 一种数据搬运方法、相关产品及计算机存储介质 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN109992542B (zh) |
WO (1) | WO2019127922A1 (zh) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111583095B (zh) * | 2020-05-22 | 2022-03-22 | 浪潮电子信息产业股份有限公司 | 图像数据存储方法、图像数据处理方法、***及相关装置 |
CN111782562B (zh) * | 2020-07-22 | 2024-05-17 | Oppo广东移动通信有限公司 | 数据传输方法、dma控制器、npu芯片及计算机设备 |
CN114448587B (zh) * | 2021-12-21 | 2023-09-15 | 北京长焜科技有限公司 | 一种dsp中使用edma搬移lte上行天线数据的方法 |
CN114399034B (zh) * | 2021-12-30 | 2023-05-02 | 北京奕斯伟计算技术股份有限公司 | 用于直接存储器访问装置的数据搬运方法 |
CN114356243A (zh) * | 2022-01-06 | 2022-04-15 | 苏州挚途科技有限公司 | 数据处理方法、装置及服务器 |
CN114661644B (zh) * | 2022-02-17 | 2024-04-09 | 之江实验室 | 辅助3d架构近存计算加速器***的预存储dma装置 |
CN116166583B (zh) * | 2023-04-26 | 2023-07-11 | 太初(无锡)电子科技有限公司 | 一种数据精度的转换方法、装置、dma控制器及介质 |
CN116909626B (zh) * | 2023-09-13 | 2023-12-29 | 腾讯科技(深圳)有限公司 | 数据处理方法、处理器及计算机设备 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101552916A (zh) * | 2009-05-05 | 2009-10-07 | 北京红旗胜利科技发展有限责任公司 | 视频yuv数据的dma传输方法、装置及dma控制器 |
CN104504137A (zh) * | 2014-12-31 | 2015-04-08 | 深圳市科漫达智能管理科技有限公司 | 数据存储方法及*** |
CN105843775A (zh) * | 2016-04-06 | 2016-08-10 | 中国科学院计算技术研究所 | 片上数据划分读写方法、***及其装置 |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100369024C (zh) * | 2005-01-17 | 2008-02-13 | 北京中星微电子有限公司 | 直接存储访问控制装置和图像处理***以及传输方法 |
CN100468380C (zh) * | 2006-06-07 | 2009-03-11 | 普天信息技术研究院 | 存储卡可变长多块数据传输方法 |
CN100484069C (zh) * | 2007-05-21 | 2009-04-29 | 华为技术有限公司 | 一种文件数据分发方法及相关设备 |
JP5149567B2 (ja) * | 2007-08-29 | 2013-02-20 | キヤノン株式会社 | 画像処理装置及び方法 |
CN101853229B (zh) * | 2010-05-17 | 2012-08-08 | 华为终端有限公司 | 数据搬运方法、装置及数据读操作与写操作的方法 |
CN102508800A (zh) * | 2011-09-30 | 2012-06-20 | 北京君正集成电路股份有限公司 | 二维数据块的传输方法及*** |
CN102567258B (zh) * | 2011-12-29 | 2014-08-27 | 中国科学院自动化研究所 | 多维dma传输装置与方法 |
CN103793342B (zh) * | 2012-11-02 | 2017-02-08 | 中兴通讯股份有限公司 | 一种多通道直接内存存取dma控制器 |
CN103207847B (zh) * | 2013-04-27 | 2015-07-22 | 杭州士兰微电子股份有限公司 | Dma控制器及直接内存存取控制方法 |
-
2017
- 2017-12-29 CN CN201711479137.XA patent/CN109992542B/zh active Active
-
2018
- 2018-03-16 WO PCT/CN2018/079368 patent/WO2019127922A1/zh active Application Filing
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101552916A (zh) * | 2009-05-05 | 2009-10-07 | 北京红旗胜利科技发展有限责任公司 | 视频yuv数据的dma传输方法、装置及dma控制器 |
CN104504137A (zh) * | 2014-12-31 | 2015-04-08 | 深圳市科漫达智能管理科技有限公司 | 数据存储方法及*** |
CN105843775A (zh) * | 2016-04-06 | 2016-08-10 | 中国科学院计算技术研究所 | 片上数据划分读写方法、***及其装置 |
Also Published As
Publication number | Publication date |
---|---|
CN109992542A (zh) | 2019-07-09 |
WO2019127922A1 (zh) | 2019-07-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109992542B (zh) | 一种数据搬运方法、相关产品及计算机存储介质 | |
CN109992541B (zh) | 一种数据搬运方法、计算装置及计算机存储介质 | |
US10297046B2 (en) | Techniques for reducing accesses for retrieving texture images | |
CN103348320A (zh) | 通用图形处理单元中的计算资源管线化 | |
CN110378203B (zh) | 图像处理方法、装置、终端及存储介质 | |
CN104012059A (zh) | 协处理器之间的直接链路同步通信 | |
US20210201122A1 (en) | Data processing methods, apparatuses, devices, storage media and program products | |
CN104700141A (zh) | 动态二维码显示方法与显示***以及识别程序 | |
CN105095250A (zh) | 页面调度的处理方法和装置 | |
CN107205128A (zh) | 文件的显示方法、装置和*** | |
US20200128264A1 (en) | Image processing | |
CN104065937B (zh) | 用于cmos图像传感器的实时高速图像预处理方法 | |
CN104572000B (zh) | 拼接墙开机logo显示方法以及装置 | |
CN108470547B (zh) | 显示面板的背光控制方法、计算机可读介质及显示装置 | |
CN113222806A (zh) | 大数据的存储分配方法及*** | |
CN106549730A (zh) | 基于二维码的数据传输方法和*** | |
CN104219529B (zh) | 图像缩放方法、***及装置 | |
CN104079368B (zh) | 一种应用软件的测试数据传输方法及服务器 | |
US20190122328A1 (en) | Graphics processing method and device | |
CN105550245A (zh) | 基于Android平台网络图片加载及缓存的优化***及方法 | |
CN109933560A (zh) | 一种基于fifo与随机存储器结合的模块间流控制通信方法 | |
US11010661B2 (en) | Neural network chip, method of using neural network chip to implement de-convolution operation, electronic device, and computer readable storage medium | |
CN106658121A (zh) | 一种机顶盒显示指纹信息的方法及*** | |
WO2017058423A1 (en) | Processing display of digital camera readout with minimal latency | |
CN109361956B (zh) | 基于时间的视频剪切方法及相关产品 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |