CN111190842B - 直接存储器访问、处理器、电子设备和数据搬移方法 - Google Patents
直接存储器访问、处理器、电子设备和数据搬移方法 Download PDFInfo
- Publication number
- CN111190842B CN111190842B CN201911396393.1A CN201911396393A CN111190842B CN 111190842 B CN111190842 B CN 111190842B CN 201911396393 A CN201911396393 A CN 201911396393A CN 111190842 B CN111190842 B CN 111190842B
- Authority
- CN
- China
- Prior art keywords
- descriptor
- data
- address space
- direct memory
- information
- 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 26
- 238000012546 transfer Methods 0.000 title description 48
- 230000005540 biological transmission Effects 0.000 claims abstract description 12
- 238000012545 processing Methods 0.000 claims description 10
- 238000013528 artificial neural network Methods 0.000 claims description 4
- 238000010586 diagram Methods 0.000 description 6
- 239000000725 suspension Substances 0.000 description 6
- 238000004364 calculation method Methods 0.000 description 3
- 238000013508 migration Methods 0.000 description 3
- 230000005012 migration Effects 0.000 description 3
- 230000003993 interaction Effects 0.000 description 2
- 238000012423 maintenance Methods 0.000 description 2
- 238000001514 detection method Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000011218 segmentation Effects 0.000 description 1
- 230000001360 synchronised effect Effects 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Bus Control (AREA)
Abstract
本申请实施例提供一种直接存储器访问、处理器、电子设备和数据搬移方法,直接存储器访问包括描述符控制模块和数据传输模块,所述描述符控制模块用于对描述符进行解析,至少解析出源端地址空间、目的端地址空间和暂停信息;所述数据传输模块与所述描述符控制模块连接,所述数据传输模块用于根据所述描述符控制模块所解析出的信息将所述源端地址空间的数据搬移到所述目的端地址空间;所述描述符控制模块还用于:在所述直接存储器访问搬移一次数据后判断所述暂停信息是否有效;若所述暂停信息有效,则暂停解析新的描述符;若所述暂停信息无效,则解析新的描述符。本申请实施例可以提高直接存储器访问搬移数据的效率。
Description
技术领域
本申请涉及处理器技术领域,特别涉及一种直接存储器访问、处理器、电子设备和数据搬移方法。
背景技术
直接存储器访问(Direct Memory Access,DMA)可将数据从一个地址空间搬移到另一个地址空间。DMA搬移数据或者说传输数据的具体方式可以是:由上级驱动软件诸如可编程单元下发描述符给DMA,DMA基于描述符来进行数据传输。
DMA的逻辑通道与可编程处理单元有业务依赖关系时,会存在若干复杂的软件同步工作。例如软件循环查询,DMA每完成一次任务,软件会读取DMA状态和可编程处理单元状态,再维护描述符并下发命令,循环往复。导致DMA搬移数据效率低。
发明内容
本申请实施例提供一种直接存储器访问、处理器、电子设备和数据搬移方法,可以提高直接存储器访问搬移数据的效率。
本申请实施例公开一种直接存储器访问,包括:
描述符控制模块,所述描述符控制模块用于对描述符进行解析,至少解析出源端地址空间、目的端地址空间和暂停信息;和
数据传输模块,所述数据传输模块与所述描述符控制模块连接,所述数据传输模块用于根据所述描述符控制模块所解析出的信息将所述源端地址空间的数据搬移到所述目的端地址空间;
所述描述符控制模块还用于:
在所述直接存储器访问搬移一次数据后判断所述暂停信息是否有效;
若所述暂停信息有效,则暂停解析新的描述符;
若所述暂停信息无效,则解析新的描述符。
本申请实施例还公开一种处理器,包括相互连接的直接存储器访问和存储模块,所述直接存储器访问为如如上所述的直接存储器访问,所述直接存储器访问用于将数据搬移到所述存储模块或将所述存储模块所存储的数据搬移出。
本申请实施例还公开一种电子设备,包括:
神经网络处理器,所述神经网络处理器包括直接存储器访问,所述直接存储器访问为如上所述的直接存储器访问;
系统总线,所述系统总线与所述直接存储器访问连接;
存储器,所述存储器与所述系统总线连接;和
中央处理器,所述中央处理器与所述系统总线连接。
本申请实施例还公开一种基于直接存储器访问的数据搬移方法,包括:
根据数据搬移指令解析描述符,至少解析出源端地址空间、目的端地址空间、暂停信息和结束信息;
根据所述源端地址空间和所述目的端地址空间将所述源端地址空间的数据搬移到所述目的端地址空间;
判断所述结束信息是否有效;
若所述结束信息有效,则结束数据搬移;
若所述结束信息无效,则进一步判断所述暂停信息是否有效;
若所述暂停信息有效,则暂停解析新的描述符;
若所述暂停信息无效,则解析新的描述符。
本申请实施例中,直接存储器访问可以根据描述符控制模块解析描述符,以根据描述符控制模块解析出的信息进行数据的搬移,直接存储器访问还可以根据描述符控制模块解析出的信息进行暂停解析新的描述符,从而可以提高直接存储器访问搬移数据的效率。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍。
图1为本申请实施例提供的直接存储器访问的结构示意图。
图2为本申请实施例提供的处理器的结构示意图。
图3为本申请实施例提供的电子设备的结构示意图。
图4为本申请实施例提供的基于直接存储器访问的数据搬移方法的流程示意图。
图5为本申请实施例提供的基于直接存储器访问的数据搬移方法的另一流程示意图。
具体实施方式
直接存储器访问(Direct Memory Access,DMA)可将数据从一个地址空间搬移到另一个地址空间。数据搬移的地址空间可以是内部存储模块,也可以外部存储器。诸如DMA可以将中央处理器(Central Processing Unit,CPU)的存储模块的数据通过总线搬移到外部存储器,DMA也可以将外部存储器的数据搬移到CPU的存储模块。再比如:DMA可以将神经网络处理器(Neural-network Processing Units,NPU)的存储模块的数据通过总线搬移到外部存储器,DMA也可以将外部存储器的数据搬移到NPU的存储模块。DMA可包括多个逻辑通道以搬移数据。
每一条逻辑通道均可以通过其接口连接到可编程单元,每一条逻辑通道均可以连接到数据总线。可编程单元诸如上级软件可以实现描述符的配置以及下发数据搬移命令,描述符中可以添加多条信息,诸如描述符中添加有源端地址空间、目的端地址空间和暂停信息(Pause)。需要说明的是,描述符中还可以添加其他信息,诸如数据长度、结束信息(End)及下一描述符的地址等信息。
每一条逻辑通道可以根据数据搬移命令解析描述符以解析出多条信息,诸如每一条逻辑通道解析描述符可以解析出源端地址空间、目的端地址空间和暂停信息。可以理解的是,当描述符还添加有其他信息时,每一条逻辑通道还可以解析出其他信息,诸如每一条逻辑通道还可以解析出数据长度、结束信息(End)及下一描述符的地址等信息。每一条逻辑通道可以根据其所解析出来的信息进行数据搬移、暂停数据搬移等操作。诸如每一条逻辑通道可以将数据从源端地址空间搬移到目的端地址空间,诸如每一条逻辑通道基于暂停信息暂停解析新的描述符,以减少描述符的维护次数,从而可以提高DMA搬移数据的效率。
需要说明的是,在描述符中添加暂停信息诸如1bit暂停信息,上级软件在配置描述符时可以根据自己需要进行配置。这样上级软件可以根据业务特点,决定是否在数据搬移过程中进行暂停,等待某些处理完成再重启。还需要说明的是,在描述符中添加下一描述符的地址,这样上级软件在维护描述符时,无需地址连续,配置更加灵活。
下面结合附图对本申请实施例提供的DMA进行详细说明。
请参阅图1,图1为本申请实施例提供的直接存储器访问的结构示意图。DMA200可包括多个逻辑通道以搬移数据,DMA200的多个逻辑通道可包括一读(Read)通道220和一写(Write)通道240。读通道220可以将内部存储模块的数据通过数据总线搬移到外部存储器,写通道240可以将外部存储器的数据通过数据总线搬移到内部存储模块。
需要说明的是,本申请实施例DMA200的多个逻辑通道的个数并不限于一条读通道220和一条写通道240,DMA200可以包括至少两条读通道和至少两条写通道,诸如DMA200包括两条读通道和两条写通道。
请继续参阅图1,读通道220可包括描述符控制模块222和数据传输模块224。描述符控制模块222和数据传输模块224连接,描述符控制模块222可以连接到可编程单元,或者说可编程处理单元。可编程单元诸如上级软件可以实现描述符的配置以及下发数据搬移命令,描述符控制模块222可根据数据搬移指令解析描述符,并将解析出的信息传输到数据传输模块,以通过数据传输模块实现对数据的搬移。
其中,描述符中可以添加多条信息,诸如描述符中添加有源端地址空间、目的端地址空间和暂停信息(Pause)。需要说明的是,描述符中还可以添加其他信息,诸如数据长度、结束信息(End)及下一描述符的地址等信息。
描述符可以提前写入到存储器或寄存器中,诸如通过上级软件提前配置或上电配置。DMA200在搬移数据之前还需通过上级软件初始化,诸如上级软件将DMA200搬移数据所需的配置写入到对应的控制状态寄存器中,该配置诸如为工作模块、描述符地址、参数配置等。
DMA200可接收来自上级软件下发的数据搬移指令,DMA200进行数据的搬移。DMA200搬移数据的具体过程诸如:DMA200的描述符控制模块222根据上级软件对DMA200初始化的描述符地址读取描述符,并对其所读取的描述符进行解析,以至少解析出源端地址空间、目的端地址空间和暂停信息。DMA200的数据传输模块224基于描述符控制模块222所解析出来的信息将数据从源端地址空间搬移到目的端地址空间,诸如数据传输模块224基于描述符控制模块222所解析出来的信息将内部存储模块的数据搬移到外部存储器。从而完成一次数据搬移。
需要说明的是,在完成一次数据搬移之后,DMA200可判断暂停信息是否有效。诸如DMA200通过描述符控制模块222判断暂停信息是否有效,若该暂停信息有效,则暂停DMA200搬移数据,或者说暂停描述符控制模块222解析新的描述符,直至描述符控制模块222接收到重启指令。也即当描述符控制模块222在暂停解析新的描述符过程中,描述符控制模块222接收到重启指令时,描述符控制222根据该重启指令解除暂停解析新的描述符,并根据继续解析新的描述符。诸如描述符控制模块222在接收到重启指令后,描述符控制模块222根据其所解析出来的下一描述符地址继续读取新的描述符,并对其新读取的描述符进行解析,数据传输模块224可根据描述符控制模块222新解析出的信息进行又一次的数据搬移。
可以理解的是,本申请实施例DMA200在完成一次数据搬移之后,DMA200可判断描述符控制模块222解析出来的结束信息是否有效。诸如DMA200通过描述符控制模块222判断其解析出来的结束信息是否有效,若描述符控制模块222判断出结束信息有效,则结束DMA200的数据搬移。若描述符控制模块222判断出结束信息无效,则执行下一操作,该下一操作可以是描述符控制模块222进一步判断暂停信息是否有效。需要说明的是,该下一操作也可以是描述符控制模块222继续解析新的描述符。
请继续参阅图1,写通道240可包括描述符控制模块242和数据传输模块244。描述符控制模块242和数据传输模块244连接,描述符控制模块242可以连接到可编程单元,或者说可编程处理单元。可编程单元诸如上级软件可以实现描述符的配置以及下发数据搬移命令,描述符控制模块242可根据数据搬移指令解析描述符,并将解析出的信息传输到数据传输模块,以通过数据传输模块实现对数据的搬移。
DMA200搬移数据的具体过程还比如:DMA200的描述符控制模块242根据上级软件对DMA200初始化的描述符地址读取描述符,并对其所读取的描述符进行解析,以至少解析出源端地址空间、目的端地址空间和暂停信息。DMA200的数据传输模块244基于描述符控制模块242所解析出来的信息将数据从源端地址空间搬移到目的端地址空间,诸如数据传输模块244基于描述符控制模块242所解析出来的信息将外部存储器的数据搬移到内部存储模块。从而完成一次数据搬移。
需要说明的是,在完成一次数据搬移之后,DMA200可判断暂停信息是否有效。诸如DMA200通过描述符控制模块242判断暂停信息是否有效,若该暂停信息有效,则暂停DMA200搬移数据,或者说暂停描述符控制模块242解析新的描述符,直至描述符控制模块242接收到重启指令。也即当描述符控制模块242在暂停解析新的描述符过程中,描述符控制模块242接收到重启指令时,描述符控制242根据该重启指令解除暂停解析新的描述符,并根据继续解析新的描述符。诸如描述符控制模块242在接收到重启指令后,描述符控制模块242根据其所解析出来的下一描述符地址继续读取新的描述符,并对其新读取的描述符进行解析,数据传输模块244可根据描述符控制模块242新解析出的信息进行又一次的数据搬移。
可以理解的是,本申请实施例DMA200在完成一次数据搬移之后,DMA200可判断描述符控制模块242解析出来的结束信息是否有效。诸如DMA200通过描述符控制模块242判断其解析出来的结束信息是否有效,若描述符控制模块242判断出结束信息有效,则结束DMA200的数据搬移。若描述符控制模块242判断出结束信息无效,则执行下一操作,该下一操作可以是描述符控制模块242进一步判断暂停信息是否有效。需要说明的是,该下一操作也可以是描述符控制模块242继续解析新的描述符。
相比相关技术中,DMA连续解析描述符,诸如主机端每执行一次任务需连续执行板卡端中所有描述符,除非DMA出错否则不能中途暂停,这样在某些业务场景时,主机端维护一次描述符只能执行一次任务。例如在上级软件循环查询时,数据传输到同一位置,则上级软件必须每查询一次配置一次描述符,否则可能会造成查询结果覆盖。同样,DMA向同一目的端地址空间传输不同源端数据时,一个任务只能传输一个源端的数据,必须等待主机端再维护一次描述符后再进行下一次数据传输,否则可能会造成目的端数据未被处理完就被覆盖,造成错误。
由上可知,本申请实施例与相关技术相比可知,本申请实施例通过在描述符中添加下一描述符地址以及暂停信息,描述符地址灵活配置,不必要求连续地址块。可减小上级软件复杂度,可配置多个任务而仅维护一次描述符,可减少上级软件对描述符的维护次数。从而提升DMA200性能,减少可编程处理单元与DMA交互时间,提高DMA200数据传输效率。
请继续参阅图1,DMA200还可以包括仲裁模块260,仲裁模块260可连接多条逻辑通道,诸如仲裁模块260连接读通道220的数据传输模块224和写通道240的数据传输模块244。仲裁模块260还可以连接数据总线,仲裁模块260可以对多个总线请求仲裁处一个请求。诸如当读通道220和写通道240同时发起对总线请求时,仲裁模块260仲裁出一个请求发送到数据总线。
需要说明的是,本申请实施例DMA200的架构并不限于此。诸如DMA200还可以包括控制状态寄存器等。
可以理解的是,本申请实施例DMA200可应用到处理器中。
请参阅图2,图2为本申请实施例提供的处理器的结构示意图。处理器20可包括DMA200,该DMA200具有可参阅以上内容,在此不再赘述。需要说明的是,处理器20可包括内部存储模块100,DMA200可以与处理器20的内部存储模块100连接。处理器20可以具有各种接口,诸如处理器20可以具有数据总线接口,处理器20通过数据总线接口与数据总线连接,以便于DMA200通过数据总线将外部存储器的数据搬移到处理器20的内部存储模块100,或者DMA200通过数据总线将处理器的内部存储模块100的数据搬移到外部存储器。
其中,该处理器20可以为神经网络处理器,该处理器20可以应用于各种需要对输入图像进行图像处理以得到相应地输出图像的场景,本申请实施例对此并不限定。诸如,本申请实施例提供的技术方案可以应用于计算机视觉等领域的各种场景,比如:人脸识别、图像分类、目标检测及语义分割等。处理器20可以单独集成一个集成电路,或者说芯片,诸如NPU芯片。需要说明的是,处理器20也可以和其他处理器诸如CPU、存储器等一起集成一个集成电路。可以理解的是,该处理器20也可以为CPU或其他类型的处理器。
在一些实施例中,处理器20的内部存储模块100可包括至少两块地址空间。
当所述至少两块地址空间包括至少两块地址空间未存储待处理数据时,所述DMA200连续搬移数据到所述至少两块地址空间直至所有未存储待处理数据的地址空间均存储有待处理数据。
当所有未存储待处理数据的地址空间均存储有待处理时所述DMA200暂停搬移数据。
当所述至少两块地址空间包括一块地址空间所存储的数据已被处理时,所述DMA200根据重启指令再次搬移数据到数据已被处理的地址空间内。
举例来说,处理器20诸如NPU当前算子的权重分成多段数据,会依次参与计算,内部存储模块200(memory)里诸如有两块地址空间,第一次搬移数据时DMA200可连续搬移数据将两块地址空间填满,NPU依次用这两块地址空间的数据来进行计算,在此期间DMA200暂停搬移数据,即此时暂停信息有效。当两块地址空间中的第1块地址空间120的数据被计算完成后,再使用第2块地址空间140的数据计算,在此期间,第1块地址空间120的数据已经无效,可以给DMA200重启脉冲来使得DMA200继续搬移数据到第1块地址空间120,然后第2块地址空间140的数据使用完成,就再次重启脉冲使得DMA200再次搬移数据到第2块地址空间140。以此类推,除第一次一次性将两块地址空间的数据搬移完成,后续每次搬移数据都建立在其中一块地址空间的数据已经无效可以重新写入的基础上,因此设置暂停信息在描述符中,控制DMA200搬移数据的时间差。从而整个过程中上级软件不再参与,由NPU内部模块自主完成交互,提高数据搬移的效率。
可以理解的是,本申请实施例DMA200可应用到电子设备中。
请参阅图3,图3为本申请实施例提供的电子设备的结构示意图。电子设备2可包括DMA200、可编程单元400、存储器600和数据总线800。其中,DMA200可以参阅以上内容,在此不再赘述。需要说明的是,该DMA200可应用到电子设备2的处理器诸如NPU中。
其中,可编程单元400与DMA200连接,可编程单元400可通过第一选择器210连接读通道220和写通道240。该可编程单元400可理解为CPU,其可以下发数据搬移指令到DMA200,也可以初始化DMA200。
其中,数据总线800与DMA200连接,数据总线800可与仲裁模块260连接,仲裁模块260可通过第二选择器230连接读通道220,仲裁模块260可通过第三选择器250连接写通道240。数据总线800还与存储器600连接,或者数据总线还与外部存储器600连接。通过DMA200可以实现存储器600与NPU的内部存储模块之间数据的传输。
为了进一步详细说明本申请实施例DMA搬移数据的具体过程,下面从DMA搬移数据的具体过程的角度进行描述。
请参阅图4,图4为本申请实施例提供的基于直接存储器访问的数据搬移方法的流程示意图。结合图1至图3,本申请实施例数据搬移方法包括:
1001,根据数据搬移指令解析描述符,至少解析出源端地址空间、目的端地址空间、暂停信息和结束信息。需要说明的是,可以通过可编程单元诸如可编程单元400下发数据搬移指令到DMA200,DMA200的描述符控制模块(222或242)可以获取描述符地址,并根据该地址读取描述符,然后对读取到的描述符进行解析,以解析出源端地址空间、目的端地址空间、暂停信息和结束信息。当然,DMA200的描述符控制模块(222或242)还可以解析出其他信息诸如数据长度、下一描述符地址等信息。
1002,根据所述源端地址空间和所述目的端地址空间将所述源端地址空间的数据搬移到所述目的端地址空间。DMA200的数据传输模块(224或244)根据DMA200的描述符控制模块(222或242)所解析出来的信息进行数据搬移操作,诸如将内部存储模块的数据搬移到外部存储器,再比如将外部存储器的数据搬移到内部存储模块。
1003,判断所述结束信息是否有效。DMA200的描述符控制模块(222或242)解析完一次描述符,以及DMA200的数据传输模块(224或244)进行一次数据搬移后,DMA200的描述符控制模块(222或242)判断其所解析出来的结束信息是否有效。若有效,则执行1007;若无效,则执行1004。
1004,进一步判断所述暂停信息是否有效。DMA200的描述符控制模块(222或242)在判断出结束信息无效的情况下进一步判断暂停信息是否有效。若有效,则执行1006;若无效,则执行1005。
1005,解析新的描述符。DMA200的描述符控制模块(222或242)在判断出结束信息无效,以及判断出暂停信息无效的情况下,则确定DMA200需继续解析描述符。需要说明的是,DMA200的描述符控制模块(222或242)可以根据其所解析出的下一描述符地址读取新的描述符,进而对新的描述符进行解析。同样,当DMA200的描述符控制模块(222或242)解析完新的描述符,则DMA200的数据传输模块(224或244)根据新的信息进行数据的搬移。
1006,暂停解析新的描述符。DMA200的描述符控制模块(222或242)在判断出结束信息无效,以及判断出暂停信息有效的情况下,则可以根据需要暂停DMA200进行数据的搬移。待接收到重启指令时,或者说等待暂停结束时,DMA200的描述符控制模块(222或242)再进行新的描述符的解析。而在暂停信息有效的过程中,DMA200的描述符控制模块(222或242)不解析新的描述符,而处理暂停状态。
1007,结束数据搬移。可以理解的是,DMA200的描述符控制模块(222或242)在判断出结束信息有效时,则可以确定出DMA200完成了数据搬移,以结束DMA200工作。
请参阅图5,图5为本申请实施例提供的基于直接存储器访问的数据搬移方法的另一流程示意图。结合图1至图3,本申请实施例数据搬移方法包括:
2001,描述符配置。可以理解的是,DMA200在搬移数据之前需要完成描述符的配置,以使得DMA200基于描述符信息完成数据搬移。可以提前将描述符写入存储器或寄存器,诸如通过可编程单元400提前配置或上电配置。
2002,初始化DMA。DMA200在搬移数据之前还需通过可编程单元诸如上级软件进行初始化初始化,诸如可编程单元400将DMA200搬移数据所需的配置写入到对应的控制状态寄存器中,该配置诸如为工作模块、描述符地址、参数配置等。
2003,选择逻辑通道。根据数据搬移方向,若需要将内部存储模块的数据搬移到外部存储器,则选择读通道220。若需要将外部存储器的数据搬移到内部存储模块,则选择写通道240。
2004,索引描述符。DMA200的描述符控制模块(222或242)获取描述符地址,诸如DMA200的描述符控制模块(222或242)从控制状态寄存器中获取其所需解析描述符的描述符地址。DMA200的描述符控制模块(222或242)根据描述符地址读取描述符。
2005,解析描述符。DMA200的描述符控制模块(222或242)对其读取的描述符进行解析,并解析出源端地址空间、目的端地址空间、数据长度、下一描述符地址、暂停信息(Pause)及结束信息(End)等。
2006,数据搬移。DMA200的数据传输模块(224或244)根据DMA200的描述符控制模块(222或242)所解析出来的信息进行数据搬移操作,诸如将内部存储模块的数据搬移到外部存储器,再比如将外部存储器的数据搬移到内部存储模块。
2007,判断结束信息(End)是否有效。判断结束信息(End)是否有效可以理解为判断End是否等于1,若End=1,则确定有效;若End=0则确定无效。DMA200的描述符控制模块(222或242)解析完一次描述符,以及DMA200的数据传输模块(224或244)进行一次数据搬移后,DMA200的描述符控制模块(222或242)可判断其所解析出来的结束信息是否有效。若结束信息有效,则执行2012。若结束信息无效,则执行2008。
2008,判断暂停信息(Pause)是否有效。判断暂停信息是否有效可以理解为Pause是否等于1,若Pause=1,则确定有效;若Pause=0则确定无效。DMA200的描述符控制模块(222或242)在判断出结束信息无效的情况下进一步判断暂停信息是否有效。若有效,则执行2009。若无效,则执行2011。
2009,暂停解析新的描述符。DMA200的描述符控制模块(222或242)在判断出结束信息无效,以及判断出暂停信息有效的情况下,则可以根据需要暂停DMA200进行数据的搬移。待接收到重启指令时,或者说等待暂停结束时,DMA200的描述符控制模块(222或242)再进行新的描述符的解析。而在暂停信息有效的过程中,DMA200的描述符控制模块(222或242)不解析新的描述符,而处理暂停状态。
需要说明的是,当其中一个逻辑通道诸如读通道220处于暂停数据搬移的状态,其不会对写通道240的工作状态产生影响,若写通道240此时未处于暂停状态,则可以继续解析新的描述以继续搬移数据。
2010,接收重启指令(Resume)。接收重启指令可理解为判断Resume脉冲是否有效,具体可以理解为Resume是否等于1,若Resume=1,则确定有效,若Resume=0则确定无效。若Resume脉冲无效则继续保持暂停状态,若Resume脉冲有效,则重启,以执行2011。上级软件诸如可编程单元400可重启DMA200暂停的逻辑通道。
2011,根据下一描述符地址索引新的描述符。在DMA200暂停的逻辑通道重启后,或者DMA200的暂停信息无效时,则DMA200的描述符控制模块(222或242)可根据其所解析出的下一描述符地址去索引新的描述符,以解析新的描述符。
2012,结束数据搬移。可以理解的是,在结束信息有效的情况下,DMA200结束数据搬移。
以上对本申请实施例提供的直接存储器访问、处理器、电子设备和数据搬移方法进行了详细介绍。本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请。同时,对于本领域的技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。
Claims (7)
1.一种直接存储器访问,其特征在于,所述直接存储器访问用于将数据搬移至第一地址空间或者第二地址空间,所述直接存储器访问包括:
描述符控制模块,所述描述符控制模块用于对描述符进行解析,至少解析出源端地址空间、目的端地址空间、暂停信息、结束信息和下一描述符地址信息;和
数据传输模块,所述数据传输模块与所述描述符控制模块连接,所述数据传输模块用于根据所述描述符控制模块所解析出的信息将所述源端地址空间的数据搬移到所述目的端地址空间;
所述描述符控制模块还用于:
在所述直接存储器访问搬移一次数据至所述第一地址空间后判断所述结束信息是否有效;
若所述结束信息有效,则结束数据搬移;
若所述结束信息无效,则在所述直接存储器访问搬移一次数据至所述第一地址空间后判断所述暂停信息是否有效;
若所述暂停信息有效,则暂停解析新的描述符,其中在暂停解析新的描述符的过程中接收到重启指令时解除暂停解析新的描述符,并根据所述下一描述符地址信息继续解析新的描述符,所述直接存储器访问用于将所述新的描述符对应的数据搬移至第二地址空间;
若所述暂停信息无效,则根据所述下一描述符地址信息解析新的描述符,所述直接存储器访问用于将所述新的描述符对应的数据搬移至第二地址空间。
2.根据权利要求1所述的直接存储器访问,其特征在于,所述描述符控制模块还解析出下一描述符地址,所述描述符控制模块还用于:
根据所述下一描述符地址索引新的描述符,并解析所述新的描述符。
3.根据权利要求1或2所述的直接存储器访问,其特征在于,所述直接存储器访问包括:
读通道,所述读通道包括相互连接的一所述描述符控制模块和一所述数据搬移模块;
写通道,所述写通道包括相互连接的一所述描述符控制模块和一所述数据搬移模块;和
仲裁模块,所述仲裁模块连接所述读通道和写通道。
4.一种处理器,其特征在于,包括相互连接的直接存储器访问和存储模块,所述直接存储器访问为如权利要求1至3任一项所述的直接存储器访问,所述直接存储器访问用于将数据搬移到所述存储模块或将所述存储模块所存储的数据搬移出。
5.根据权利要求4所述的处理器,其特征在于,所述存储模块包括至少两块地址空间;
当所述至少两块地址空间包括至少两块地址空间未存储待处理数据时,所述直接存储器访问连续搬移数据到所述至少两块地址空间直至所有未存储待处理数据的地址空间均存储有待处理数据;
当所有未存储待处理数据的地址空间均存储有待处理时所述直接存储器访问暂停搬移数据;
当所述至少两块地址空间包括一块地址空间所存储的数据已被处理时,所述直接存储器访问根据重启指令再次搬移数据到数据已被处理的地址空间内。
6.一种电子设备,其特征在于,包括:
神经网络处理器,所述神经网络处理器包括直接存储器访问,所述直接存储器访问为如权利要求1至3任一项所述的直接存储器访问;
系统总线,所述系统总线与所述直接存储器访问连接;
存储器,所述存储器与所述系统总线连接;和
中央处理器,所述中央处理器与所述系统总线连接。
7.一种基于直接存储器访问的数据搬移方法,其特征在于,所述直接存储器访问用于将数据搬移至第一地址空间或者第二地址空间,包括:
根据数据搬移指令解析描述符,至少解析出源端地址空间、目的端地址空间、暂停信息、结束信息和下一描述符地址信息;
根据所述源端地址空间和所述目的端地址空间将所述源端地址空间的数据搬移到所述目的端地址空间;
在所述直接存储器访问搬移一次数据至所述第一地址空间后,判断所述结束信息是否有效;
若所述结束信息有效,则结束数据搬移;
若所述结束信息无效,则进一步判断所述暂停信息是否有效;
若所述暂停信息有效,则暂停解析新的描述符,其中在暂停解析新的描述符的过程中接收到重启指令时解除暂停解析新的描述符,并根据所述下一描述符地址信息继续解析新的描述符,所述直接存储器访问用于将所述新的描述符对应的数据搬移至第二地址空间;
若所述暂停信息无效,则根据所述下一描述符地址信息解析新的描述符,所述直接存储器访问用于将所述新的描述符对应的数据搬移至第二地址空间。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911396393.1A CN111190842B (zh) | 2019-12-30 | 2019-12-30 | 直接存储器访问、处理器、电子设备和数据搬移方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911396393.1A CN111190842B (zh) | 2019-12-30 | 2019-12-30 | 直接存储器访问、处理器、电子设备和数据搬移方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111190842A CN111190842A (zh) | 2020-05-22 |
CN111190842B true CN111190842B (zh) | 2021-07-20 |
Family
ID=70709585
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911396393.1A Active CN111190842B (zh) | 2019-12-30 | 2019-12-30 | 直接存储器访问、处理器、电子设备和数据搬移方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111190842B (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112506828B (zh) * | 2020-12-18 | 2024-05-17 | 展讯半导体(成都)有限公司 | 直接内存访问的传输配置方法及装置 |
CN112650558B (zh) * | 2020-12-29 | 2022-07-05 | 优刻得科技股份有限公司 | 数据处理方法、装置、可读介质和电子设备 |
CN113220346B (zh) * | 2021-04-29 | 2024-06-07 | 上海阵量智能科技有限公司 | 一种硬件电路、数据搬移方法、芯片和电子设备 |
CN114490465B (zh) * | 2021-12-28 | 2024-04-26 | 北京奕斯伟计算技术股份有限公司 | 用于直接存储器访问的数据传输方法和装置 |
CN114756490A (zh) * | 2022-03-21 | 2022-07-15 | 奥比中光科技集团股份有限公司 | 一种dma数据搬运方法及装置 |
CN114443529B (zh) * | 2022-04-02 | 2022-07-05 | 苏州浪潮智能科技有限公司 | 内存直接访问架构、系统、方法、电子设备和介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106547709A (zh) * | 2016-11-24 | 2017-03-29 | 盛科网络(苏州)有限公司 | 灵活配置多通道dma控制器的方法及装置 |
CN107562659A (zh) * | 2016-06-30 | 2018-01-09 | 中兴通讯股份有限公司 | 一种数据搬移装置及方法 |
CN109471816A (zh) * | 2018-11-06 | 2019-03-15 | 西安微电子技术研究所 | 一种基于描述符的pcie总线dma控制器及数据传输控制方法 |
CN109739786A (zh) * | 2019-01-08 | 2019-05-10 | 郑州云海信息技术有限公司 | 一种dma控制器和异构加速系统 |
CN110515872A (zh) * | 2018-05-21 | 2019-11-29 | 阿里巴巴集团控股有限公司 | 直接内存存取方法、装置、专用计算芯片及异构计算系统 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8250253B2 (en) * | 2010-06-23 | 2012-08-21 | Intel Corporation | Method, apparatus and system for reduced channel starvation in a DMA engine |
CN103034599B (zh) * | 2012-12-12 | 2015-07-22 | 深圳国微技术有限公司 | 安全dma控制器、soc系统及其数据搬运方法 |
CN105847180A (zh) * | 2016-03-25 | 2016-08-10 | 深圳深宝电器仪表有限公司 | 一种基于ADSP-BF60x网络通信的DMA配置模式及中断方法 |
-
2019
- 2019-12-30 CN CN201911396393.1A patent/CN111190842B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107562659A (zh) * | 2016-06-30 | 2018-01-09 | 中兴通讯股份有限公司 | 一种数据搬移装置及方法 |
CN106547709A (zh) * | 2016-11-24 | 2017-03-29 | 盛科网络(苏州)有限公司 | 灵活配置多通道dma控制器的方法及装置 |
CN110515872A (zh) * | 2018-05-21 | 2019-11-29 | 阿里巴巴集团控股有限公司 | 直接内存存取方法、装置、专用计算芯片及异构计算系统 |
CN109471816A (zh) * | 2018-11-06 | 2019-03-15 | 西安微电子技术研究所 | 一种基于描述符的pcie总线dma控制器及数据传输控制方法 |
CN109739786A (zh) * | 2019-01-08 | 2019-05-10 | 郑州云海信息技术有限公司 | 一种dma控制器和异构加速系统 |
Also Published As
Publication number | Publication date |
---|---|
CN111190842A (zh) | 2020-05-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111190842B (zh) | 直接存储器访问、处理器、电子设备和数据搬移方法 | |
US11294599B1 (en) | Registers for restricted memory | |
CN112256601B (zh) | 数据存取控制方法、嵌入式存储系统及嵌入式设备 | |
CN112765059A (zh) | 一种基于fpga的dma设备及dma数据搬移方法 | |
KR20210033996A (ko) | 전용 저 레이턴시 링크를 사용한 다수의 하드웨어 가속기에 대한 통합된 어드레스 공간 | |
US10761822B1 (en) | Synchronization of computation engines with non-blocking instructions | |
CN112947857B (zh) | 一种数据搬移方法、装置、设备及计算机可读存储介质 | |
US20210158131A1 (en) | Hierarchical partitioning of operators | |
JPH05205005A (ja) | ロジック・シミュレーション・マシン用ホスト・インタフェース | |
US11175919B1 (en) | Synchronization of concurrent computation engines | |
US10996860B2 (en) | Method to improve mixed workload performance on storage devices that use cached operations | |
US11467946B1 (en) | Breakpoints in neural network accelerator | |
CN115827524A (zh) | 一种数据传输方法以及装置 | |
US10922146B1 (en) | Synchronization of concurrent computation engines | |
CN112506676B (zh) | 进程间的数据传输方法、计算机设备和存储介质 | |
CN105404635A (zh) | 字符串匹配的方法、设备和异构计算系统 | |
CN109992539B (zh) | 双主机协同工作装置 | |
CN115994115B (zh) | 芯片控制方法、芯片组及电子设备 | |
US20080052429A1 (en) | Off-board computational resources | |
US12056072B1 (en) | Low latency memory notification | |
US20080126472A1 (en) | Computer communication | |
CN104025026B (zh) | 访问用于配置空间的配置和状态寄存器 | |
US11061654B1 (en) | Synchronization of concurrent computation engines | |
CN106325377B (zh) | 外部设备扩展卡及输入输出外部设备的数据处理方法 | |
CN110413562B (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 | ||
TR01 | Transfer of patent right | ||
TR01 | Transfer of patent right |
Effective date of registration: 20240703 Address after: 510000 No. 106 Fengze East Road, Nansha District, Guangzhou City, Guangdong Province Patentee after: Guangzhou dinghang Information Technology Service Co.,Ltd. Country or region after: China Address before: Changan town in Guangdong province Dongguan 523860 usha Beach Road No. 18 Patentee before: GUANGDONG OPPO MOBILE TELECOMMUNICATIONS Corp.,Ltd. Country or region before: China |