CN112823343A - 直接内存存取单元、处理器、设备、处理方法及存储介质 - Google Patents
直接内存存取单元、处理器、设备、处理方法及存储介质 Download PDFInfo
- Publication number
- CN112823343A CN112823343A CN202080005135.0A CN202080005135A CN112823343A CN 112823343 A CN112823343 A CN 112823343A CN 202080005135 A CN202080005135 A CN 202080005135A CN 112823343 A CN112823343 A CN 112823343A
- Authority
- CN
- China
- Prior art keywords
- task
- memory access
- direct memory
- data
- determining
- 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.)
- Pending
Links
- 238000003672 processing method Methods 0.000 title claims abstract description 12
- 238000012545 processing Methods 0.000 claims abstract description 26
- 230000004913 activation Effects 0.000 claims description 47
- 238000000034 method Methods 0.000 claims description 36
- 239000000872 buffer Substances 0.000 claims description 21
- 230000001360 synchronised effect Effects 0.000 claims description 18
- 238000004590 computer program Methods 0.000 claims description 10
- 238000012163 sequencing technique Methods 0.000 claims description 8
- 239000000126 substance Substances 0.000 claims description 4
- 238000013507 mapping Methods 0.000 claims 3
- 238000010586 diagram Methods 0.000 description 13
- 230000003993 interaction Effects 0.000 description 6
- 230000005540 biological transmission Effects 0.000 description 4
- 238000012546 transfer Methods 0.000 description 2
- 238000013473 artificial intelligence Methods 0.000 description 1
- 235000019800 disodium phosphate Nutrition 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
- 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
- G06F13/282—Cycle stealing DMA
Abstract
一种直接内存存取单元、数字信号处理器、直接内存存取任务处理设备、直接内存存取任务处理方法及存储介质,所述直接内存存取单元,包括至少一数据通路和直接内存存取单元控制器;其中,所述直接内存存取单元控制器包括与所述至少一数据通路和位于所述直接内存存取单元外部的精简指令集处理器连接的任务管理模块;其中,所述任务管理模块从所述精简指令集处理器获取与多个直接内存存取任务的数据对应的至少一任务描述参数信息,以根据所述至少一任务描述参数信息,确定至少一当前待执行的直接内存存取任务,以提高直接内存存取任务的执行效率。
Description
技术领域
本申请涉及通信技术领域,尤其涉及一种直接内存存取单元、处理器、设备、处理方法及存储介质。
背景技术
数字信号处理器(Digital Signal Processing,以下简称为DSP)由于具有较高的计算能力、良好的可编程特性,在图像处理、人工智能等领域都有广泛的应用。其中,直接存储器访问(Direct Memory Access,DMA)是DSP的重要组成部分,DMA用于实现DSP外部的双倍速率同步动态随机存储器(Double Data Rate,以下简称为DDR)和DSP内部缓存之间的直接内存存取任务的数据搬移。在较为复杂的应用中,需要执行的直接内存存取任务很多,并且直接内存存取任务类型也包括多种,如读取大批量数据任务,写大批量数据任务等等,目前,DSP是采用单线程的方式或者采用一个队列的方式来管理这些不同类型的多个直接内存存取任务的执行,效率低下。
发明内容
基于此,本申请提供了一种直接内存存取单元、处理器、设备、处理方法及存储介质,以提高直接内存存取任务的执行效率。
第一方面,本申请提供了一种直接内存存取单元,包括至少一数据通路和直接内存存取单元控制器;
其中,
所述至少一数据通路,用于传输直接内存存取任务的数据,其中,所述至少一数据通路对应传输不同类型的直接内存存取任务的数据;
所述直接内存存取控制单元控制器包括与所述至少一数据通路和位于所述直接内存存取单元外部的精简指令集处理器连接的任务管理模块;其中,
所述任务管理模块从所述精简指令集处理器获取与多个直接内存存取任务的数据对应的至少一任务描述参数信息,以根据所述至少一任务描述参数信息,确定至少一当前待执行的直接内存存取任务。
第二方面,本申请还提供了一种数字信号处理器,所述数字信号处理器包括精简指令集处理器和如上述的直接内存存取单元,所述。
第三方面,本申请还提供了一种直接内存存取任务处理设备,所述直接内存存取任务处理设备包括如上述的数字信号处理器。
第四方面,本申请还提供了一种多个直接内存存取任务处理方法,应用于如上述的直接内存存取单元,包括:
从精简指令集处理器获取与多个直接内存存取任务的数据对应的至少一任务描述参数信息;
根据所述至少一任务描述参数信息,确定至少一当前待执行的直接内存存取任务。
第五方面,本申请还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时使所述处理器实现如上述的多个直接内存存取任务处理方法。
本申请公开的直接内存存取单元、数字信号处理器、直接内存存取任务处理设备、多个直接内存存取任务处理方法及计算机可读存储介质,提高了直接内存存取任务的执行效率。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本申请。
附图说明
为了更清楚地说明本申请实施例技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是数字信号处理器的数据交互过程示意图;
图2是直接存储器访问中数据搬移通道的示意图;
图3是本申请的实施例提供的一种数字信号处理器的示意性框图;
图4a、4b是本申请的实施例提供的一种任务描述参数信息的示意图;
图5是本申请的实施例提供的一种直接内存存取单元交互的示意性框图;
图6a、6b、6c是本申请的实施例提供的直接内存存取任务执行的示意图;
图7是本申请的实施例提供的一种虚拟队列的示意图;
图8是本申请的实施例提供的一种虚拟队列的示意图;
图9是本申请的实施例提供的一种状态标记信息的示意图;
图10是本申请的实施例提供的一种多个直接内存存取任务处理方法的步骤示意流程图;
图11是本申请的实施例提供的一种直接内存存取单元的示意性框图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
附图中所示的流程图仅是示例说明,不是必须包括所有的内容和操作/步骤,也不是必须按所描述的顺序执行。例如,有的操作/步骤还可以分解、组合或部分合并,因此实际执行的顺序有可能根据实际情况改变。
应当理解,在此本申请说明书中所使用的术语仅仅是出于描述特定实施例的目的而并不意在限制本申请。如在本申请说明书和所附权利要求书中所使用的那样,除非上下文清楚地指明其它情况,否则单数形式的“一”、“一个”及“该”意在包括复数形式。
还应当理解,在本申请说明书和所附权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。
下面结合附图,对本申请的一些实施方式作详细说明。在不冲突的情况下,下述的实施例及实施例中的特征可以相互组合。
现有技术中,直接存储器访问(Direct Memory Access,DMA)是数字信号处理器(Digital Signal Processing,DSP)的重要组成部分,DMA用于实现DSP外部的双倍速率同步动态随机存储器(Double Data Rate,DDR)和DSP内部缓存(以下简称为BLK_MEM)之间的直接内存存取任务的数据搬移。例如,如图1所示,为DSP的数据交互过程,直接内存存取任务的数据存放在DDR上,通过DMA进行数据的搬移,搬移到DSP内部的DSP内部缓存BLK_MEM上,然后通过加载存储单元(load store unit,以下简称为LSU)完成DSP内部缓存BLK_MEM到矢量处理单元(vector process unit,以下简称为VPU)的数据加载,通过VPU处理数据,完成数据处理后,再通过LSU将结果写入DSP内部缓存BLK_MEM中,最后通过DMA将DSP内部缓存BLK_MEM中的数据写出到DDR中。
如图2所示,DMA中一般有4个数据搬移通道:读大量数据read nd、写大量数据write nd、读小量数据read imm、写小量数据write imm,其中:
read/write nd:这两通道执行数据量较大的数据(大批量数据)的搬移,nd可以分为1d/2d/3d,1d对应一维线性数据,2d对应二维平面数据,3d对应三维块数据,一般是从DSP外部DDR中将数据搬移至BLK MEM中。
read/write imm,这两通道用于执行数据量较小的数据(例如,立即数)的搬移,立即数一般存放在DSP内部的数据缓冲器(data buffer)中,精简指令集处理器(ReducedInstruction Set Computer,RISC)可直接快速访问数据缓存器。
在较为复杂的应用中,需要执行的直接内存存取任务很多,并且直接内存存取任务类型也包括多种,如读取大批量数据任务,写大批量数据任务等等,目前,DSP是采用单线程的方式或者采用一个队列的方式来管理这些不同类型的多个直接内存存取任务的执行,效率低下。
为了解决上述问题,本申请的实施例提供了一种直接内存存取单元、数字信号处理器、直接内存存取任务处理设备、多个直接内存存取任务处理方法及计算机可读存储介质,用于提高直接内存存取任务的执行效率。
请参阅图3,图3为本申请实施例提供的一种数字信号处理器的示意性框图。如图3所示,数字信号处理器1000可以包括直接内存存取单元100和精简指令集处理器200,精简指令集处理器200和直接内存存取单元100通信连接。
示例性的,直接内存存取单元100包括至少一数据通路(图中未示出)和直接内存存取单元控制器110,其中,至少一数据通,用于传输直接内存存取任务的数据,至少一数据通路对应传输不同类型的直接内存存取任务的数据。至少一数据通路包括但不限于读大批量数据通路、写大批量数据通路、读小批量数据通路、写小批量数据通路等,不同类型的直接内存存取任务包括但不限于读大批量数据任务、写大批量数据任务、读小批量数据任务、写小批量数据任务等,读大批量数据通路对应传输读大批量数据任务的数据,写大批量数据通路对应传输写大批量数据任务的数据,读小批量数据通路对应传输读小批量数据任务的数据,写小批量数据通路对应传输写小批量数据任务的数据。
直接内存存取单元控制器110包括与至少一数据通路和位于直接内存存取单元100外部的精简指令集处理器200连接的任务管理模块111,其中,任务管理模块111从精简指令集处理器200获取与多个直接内存存取任务的数据对应的至少一任务描述参数信息,以根据至少一任务描述参数信息,确定至少一当前待执行的直接内存存取任务,从而实现多直接内存存取任务的并行执行,相比于采用单线程的方式或者采用一个队列的方式来管理不同类型的多个直接内存存取任务的执行,提高了直接内存存取任务的执行效率。
预先定义直接内存存取任务的数据对应的至少一任务描述参数信息,其中,任务描述参数信息包括但不限于优先级(pri)、中断参数值(irq_mask)、保序参数值(order_preserve)、传输方向参数值(direction)等。例如,如图4a所示,一维线性数据对应的任务描述参数信息,任务管理相关的是优先级pri、中断参数值irq_mask、保序参数值order_preserve和传输方向参数值direction。如图4b所示,立即数对应的任务描述参数信息,任务管理相关的是中断参数值irq_mask、保序参数值order_preserve和传输方向参数值direction。
示例性的,直接内存存取任务的数据对应的任务描述参数信息中包含保序参数值order_preserve,保序参数值order_preserve表示直接内存存取任务是否严格保序执行,可选地,定义保序参数值order_preserve为0表示非严格保序执行,保序参数值order_preserve为1表示严格保序执行。或者,定义保序参数值order_preserve为1表示非严格保序执行,保序参数值order_preserve为0表示严格保序执行。
任务管理模块111根据多个直接内存存取任务对应的保序参数值order_preserve,确定多个直接内存存取任务中的保序执行直接内存存取任务。具体地,在多个直接内存存取任务中,若其中任何直接内存存取任务,为了便于描述,下文称为第一直接内存存取任务,若第一直接内存存取任务对应的保序参数值order_preserve为0,则确定第一直接内存存取任务为非保序执行直接内存存取任务;若第一直接内存存取任务对应的保序参数值order_preserve为1,则确定第一直接内存存取任务为保序执行直接内存存取任务。
或者,相反,若第一直接内存存取任务对应的保序参数值order_preserve为1,则确定第一直接内存存取任务为非保序执行直接内存存取任务;若第一直接内存存取任务对应的保序参数值order_preserve为0,则确定第一直接内存存取任务为保序执行直接内存存取任务。
之后,任务管理模块111将保序执行直接内存存取任务按照任务加载顺序进行排序,并将排序最前的保序执行直接内存存取任务确定为当前待执行的直接内存存取任务。通过设置直接内存存取任务对应的保序参数值order_preserve的取值,实现控制直接内存存取任务的执行顺序,对于存在数据依赖的应用场景,可高效实现多个直接内存存取任务间的有序调度。
示例性的,直接内存存取单元100还包括至少一任务队列120,预设有任务队列120与数据通路的对应关系,可选地,一个任务队列120对应一个数据通路。在一实施方式中,例如,如图5所示,至少一任务队列包括读大批量数据任务队列、写大批量数据任务队列、读小批量数据任务队列、写小批量数据任务队列,至少一数据通路包括读大批量数据通路、写大批量数据通路、读小批量数据通路、写小批量数据通路;读大批量数据任务队列对应读大批量数据通路,写大批量数据任务队列对应写大批量数据通路,读小批量数据任务队列对应读小批量数据通路,写小批量数据任务队列对应写小批量数据通路。
任务管理模块111包括任务处理模块,用于分发直接内存存取任务到相应的任务队列,任务队列一共有4个,4个队列用于维护4路并行的直接内存存取任务,完成直接内存存取任务的调度工作,最终将直接内存存取任务分配到数据通路(data path)中,完成DDR和DSP内部缓存BLK_MEM之间的数据交互。
具体地,若当前待执行的直接内存存取任务为读大批量数据任务,则从数字信号处理器外部的DDR中读取该读大批量数据任务对应的第一数据,将第一数据基于读大批量数据通路传输至数字信号处理器DSP的DSP内部缓存BLK_MEM,并将第一数据写入DSP内部缓存BLK_MEM。若当前待执行的直接内存存取任务为读小批量数据任务,则从DDR中读取该读小批量数据任务对应的第二数据,将第二数据基于读小批量数据通路传输至数字信号处理器的数据缓存器,并将第二数据写入数据缓存器。若当前待执行的直接内存存取任务为写大批量数据任务,则从DSP内部缓存BLK_MEM读取写大批量数据任务对应的第三数据,将第三数据基于写大批量数据通路传输至DDR,并将第三数据写入DDR。若当前待执行的直接内存存取任务为写小批量数据任务,则从数据缓存器读取写小批量数据任务对应的第四数据,将第四数据基于写小批量数据通路传输至DDR,并将第四数据写入DDR。
任务管理模块111根据至少一当前待执行的直接内存存取任务对应的至少一任务描述参数信息,确定至少一当前待执行的直接内存存取任务对应的任务队列,根据任务队列与数据通路的对应关系,执行至少一当前待执行的直接内存存取任务。具体地,将至少一当前待执行的直接内存存取任务调度至对应的任务队列中,以及根据任务队列与数据通路的对应关系,将调度至每一任务队列的直接内存存取任务分配至对应的数据通路中,以执行至少一当前待执行的直接内存存取任务。由于每个任务队列,分别对应相应的数据通路,单独管理,管理的粒度更细,实现直接内存存取任务管理更加高效。
例如,如图6a所示,先后压入3个任务:任务A、任务B、任务C,且都是保序执行直接内存存取任务,任务压入顺序为A->B->C,任务优先级相同,任务的执行顺序与任务压入顺序一致,为A->B->C,也即,先执行任务A,再执行任务B,最后执行任务C。
如图6b所示,先后压入3个任务:任务A、任务B、任务C,且都不是保序执行直接内存存取任务,任务压入顺序为A->B->C,任务优先级相同,任务的执行顺序与任务压入顺序不一致,先并行执行任务A和任务B,再执行任务C。
如图6c所示,先后压入4个任务:任务A、任务B、任务C、任务D,其中,任务A、任务B是保序执行直接内存存取任务,任务C、任务D不是保序执行直接内存存取任务,任务压入顺序为A->B->C->D,任务优先级相同,任务的执行顺序与任务压入顺序不一致,先并行执行任务A和任务D,再并行执行任务B和任务C。也就是说,当一个保序任何需要等待在该保序任务之前的其他通道中的其他保序任务先被执行,由于保序参数值的使用,使得同一通道中的非保序任务可以先于保序任务而被执行。
示例性的,任务管理模块111根据多个直接内存存取任务对应的保序参数值order_preserve,确定多个直接内存存取任务中的保序执行直接内存存取任务之后,以第一直接内存存取任务为例,若第一直接内存存取任务为保序执行直接内存存取任务,则将第一直接内存存取任务按照任务加载顺序压入虚拟队列中,也即,将保序执行直接内存存取任务压入虚拟队列中。该虚拟队列严格按照先入先出的顺序执行,只有处于虚拟队列头部的任务,才是有效的候选任务,处于队列非头部的任务,为无效候选任务。例如,如图7所示,虚拟队列中压入任务B、任务C、任务D、任务I,其中,任务B处于虚拟队列头部,只有任务B是有效的候选任务,任务C、任务D、任务I为无效候选任务。需要说明的是,虚拟队列的大小可根据实际情况进行灵活设置,如设置为64bit,在此不作具体限制。
示例性的,任务管理模块111将多个直接内存存取任务中的保序执行直接内存存取任务按照任务加载顺序压入虚拟队列中后,在当前待执行的直接内存存取任务执行完成时,也即处于虚拟队列头部的直接内存存取任务执行完成时,将虚拟队列的头部指针queue_head加1;另外,当虚拟队列中压入新的保序执行直接内存存取任务时,将虚拟队列的尾部指针queue_rear加1。
示例性的,任务管理模块111将每个直接内存存取任务对应的任务描述参数信息存储于预设优先队列中。可选地,优先队列可以缓存预设数量的任务描述参数信息,例如,如图8所示,优先队列缓存8个任务描述参数信息dscrp_data0至dscrp_data7。
示例性的,直接内存存取任务的数据对应的任务描述参数信息对应配置有状态标记信息,可选地,任务管理模块111将每个直接内存存取任务的任务描述参数信息对应的状态标记信息存储于状态寄存器pri_status中。可选地,如图8所示,状态寄存器pri_status包括4个区域,4个区域分别存储任务有效参数值valid、任务激活参数值active、优先级参数值dscrp_pri以及时间戳time_stamp等状态标记信息。
其中,任务有效参数值valid,1bit,表示当前位置上是否有任务;任务激活参数值active,1bit,表示当前位置上是否缓存被激活的任务,对于非保序执行直接内存存取任务,都属于被激活的任务,对于处于虚拟队列头部的保序执行直接内存存取任务,属于被激活的任务;优先级参数值dscrp_pri,3bit,直接从任务描述参数信息头部获取;时间戳time_stamp,3bit,数值越大,则表示压入的时间越久。
任务管理模块111根据多个直接内存存取任务的任务描述参数信息对应的状态标记信息,确定执行等级最高的直接内存存取任务,并将执行等级最高的直接内存存取任务确定为当前待执行的直接内存存取任务。
可选地,例如,如图8所示,每个任务描述参数信息对应的状态标记信息包括任务有效参数值valid、任务激活参数值active和优先级参数值dscrp_pri。任务管理模块111首先根据多个直接内存存取任务对应的任务有效参数值valid的取值,确定多个直接内存存取任务中的有效直接内存存取任务。可选地,若直接内存存取任务对应的任务有效参数值valid为0,则确定直接内存存取任务为无效直接内存存取任务;若直接内存存取任务对应的任务有效参数值valid为1,则确定直接内存存取任务为有效直接内存存取任务。或者,相反,若直接内存存取任务对应的任务有效参数值valid为1,则确定直接内存存取任务为无效直接内存存取任务;若直接内存存取任务对应的任务有效参数值valid为0,则确定直接内存存取任务为有效直接内存存取任务。
然后,根据确定的有效直接内存存取任务对应的任务激活参数值active的取值,确定有效直接内存存取任务中的激活直接内存存取任务。示例性的,若直接内存存取任务对应的任务激活参数值active为0,则确定直接内存存取任务为非激活直接内存存取任务;若直接内存存取任务对应的任务激活参数值active为1,则确定直接内存存取任务为激活直接内存存取任务。或者,相反,若直接内存存取任务对应的任务激活参数值active为1,则确定直接内存存取任务为非激活直接内存存取任务;若直接内存存取任务对应的任务激活参数值active为0,则确定直接内存存取任务为激活直接内存存取任务。
之后,根据激活直接内存存取任务对应的优先级参数值dscrp_pri的取值,确定优先级最高的激活直接内存存取任务,将优先级最高的激活直接内存存取任务确定为执行等级最高的直接内存存取任务。
示例性的,直接内存存取任务的任务描述参数信息对应的状态标记信息包括时间戳time_stamp,任务管理模块111根据多个直接内存存取任务对应的状态标记信息,确定优先级最高的激活直接内存存取任务,若优先级最高的激活直接内存存取任务为1个,则将该优先级最高的激活直接内存存取任务确定为执行等级最高的直接内存存取任务;若优先级最高的激活直接内存存取任务包括多个,则根据多个优先级最高的激活直接内存存取任务对应的时间戳time_stamp,将时间戳数值最大的优先级最高的激活直接内存存取任务,确定为执行等级最高的直接内存存取任务。
也即,任务有效参数值valid具有最高优先级,被选取的总是一个有效的直接内存存取任务;任务激活参数值active具有次高优先级,处于激活状态的直接内存存取任务优先于非激活状态的的直接内存存取任务;优先级参数值dscrp_pri具有第三优先级,对于两个有效且处于激活态的的直接内存存取任务,优先加载优先级参数值dscrp_pri高的直接内存存取任务;时间戳time_stamp具有最低优先级,对于两个有效且处于激活态的的直接内存存取任务,如果其优先级参数值dscrp_pri也相同,则选取时间戳time_stamp大的直接内存存取任务,也就是压入时间最久的直接内存存取任务。由于直接内存存取任务的压入总有先后顺序,所以不会存在两个直接内存存取任务的4种优先级全部相同。通过4种优先级调度同一队列中的直接内存存取任务,使得直接内存存取任务调度执行更加灵活。
示例性的,直接内存存取任务对应的任务描述参数信息中包含中断参数值irq_mask,中断参数值irq_mask表示直接内存存取任务完成后,是否发中断通知。可选地,中断参数值irq_mask为0表示发中断通知,中断参数值irq_mask为1表示不发中断通知。
在执行完成直接内存存取任务后,任务管理模块111根据直接内存存取任务对应的中断参数值irq_mask的取值,判断是否上报中断通知至所述精简指令集处理器。可选地,若直接内存存取任务对应的中断参数值irq_mask为1,则判定不上报中断通知至精简指令集处理器;若直接内存存取任务对应的中断参数值irq_mask为0,则判定上报中断通知至所述精简指令集处理器。或者,相反,若直接内存存取任务对应的中断参数值irq_mask为0,则判定不上报中断通知至精简指令集处理器;若直接内存存取任务对应的中断参数值irq_mask为1,则判定上报中断通知至精简指令集处理器。
例如,如图9所示,压入有任务A、任务B、任务C,其中,任务A对应的中断参数值irq_mask为1,任务B对应的中断参数值irq_mask为1,任务C对应的中断参数值irq_mask为0。当任务A执行后,由于其对应的中断参数值irq_mask为1,因此,不上报中断通知;接着任务B执行后,同样由于其对应的中断参数值irq_mask为1,因此,不上报中断通知;最后任务C执行后,由于其对应的中断参数值irq_mask为0,因此,上报中断通知至精简指令集处理器。通过设置特定任务完成后才发送中断通知至精简指令集处理器,因此,大大减少精简指令集处理器和直接内存存取单元的交互,提升精简指令集处理器的效率。需要说明的是,在另一实施方式中,也可以设置中断参数值irq_mask为1对应于上报中断通知,中断参数值irq_mask为0对应于上报中断通知。
可以理解的,上述对于数字信号处理器各部件的命名仅仅出于标识的目的,并不因此对本申请实施例进行限制。
以下将基于数字信号处理器、所述数字信号处理器中的直接内存存取单元和所述数字信号处理器中的精简指令集处理器对本申请的实施例提供的多个直接内存存取任务处理方法进行详细介绍。需知,图3中的数字信号处理器并不构成对该多个直接内存存取任务处理方法的应用场景的限定。
请参阅图10,图10是本申请的实施例提供的一种多个直接内存存取任务处理方法的示意流程图。该方法可以用于上述实施例提供的任意一种直接内存存取单元中,以提高直接内存存取任务的执行效率。
如图10所示,该多个直接内存存取任务处理方法具体包括步骤S101至步骤S102。
S101、从精简指令集处理器获取与多个直接内存存取任务的数据对应的至少一任务描述参数信息。
本实施例中,通过精简指令集处理器预先定义各个直接内存存取任务的数据对应的至少一任务描述参数信息,其中,任务描述参数信息包括但不限于优先级(pri)、中断参数值(irq_mask)、保序参数值(order_preserve)、传输方向参数值(direction)等。例如,如图4a所示,一维线性数据对应的任务描述参数信息,任务管理相关的是pri、irq_mask、order_preserve和direction。如图4b所示,立即数对应的任务描述参数信息,任务管理相关的是irq_mask、order_preserve和direction。
直接内存存取单元与外部的精简指令集处理器连接,当要对多个直接内存存取任务的执行进行管理时,直接内存存取单元从精简指令集处理器获取多个直接内存存取任务的数据对应的至少一任务描述参数信息。
S102、根据所述至少一任务描述参数信息,确定至少一当前待执行的直接内存存取任务。
在获取到多个直接内存存取任务的数据对应的至少一任务描述参数信息后,根据该至少一任务描述参数信息,确定至少一当前待执行的直接内存存取任务,以执行该至少一当前待执行的直接内存存取任务。
在一些实施例中,任务描述参数信息中包含保序参数值(order_preserve),所述根据所述至少一任务描述参数信息,确定至少一当前待执行的直接内存存取任务,包括:根据所述多个直接内存存取任务对应的保序参数值,确定所述多个直接内存存取任务中的保序执行直接内存存取任务;将所述保序执行直接内存存取任务按照任务加载顺序进行排序,并将排序最前的保序执行直接内存存取任务确定为当前待执行的直接内存存取任务。
其中,保序参数值order_preserve,表示直接内存存取任务是否严格保序执行,可选地,定义保序参数值order_preserve为0表示非严格保序执行,保序参数值order_preserve为1表示严格保序执行。或者,定义保序参数值order_preserve为1表示非严格保序执行,保序参数值order_preserve为0表示严格保序执行。
可选地,在多个直接内存存取任务中,若其中任何直接内存存取任务,为了便于描述,下文称为第一直接内存存取任务,若第一直接内存存取任务对应的保序参数值order_preserve为0,则确定第一直接内存存取任务为非保序执行直接内存存取任务;若第一直接内存存取任务对应的保序参数值order_preserve为1,则确定第一直接内存存取任务为保序执行直接内存存取任务。
或者,相反,若第一直接内存存取任务对应的保序参数值order_preserve为1,则确定第一直接内存存取任务为非保序执行直接内存存取任务;若第一直接内存存取任务对应的保序参数值order_preserve为0,则确定第一直接内存存取任务为保序执行直接内存存取任务。
之后,直接内存存取单元将保序执行直接内存存取任务按照任务加载顺序进行排序,并将排序最前的保序执行直接内存存取任务确定为当前待执行的直接内存存取任务。通过设置直接内存存取任务对应的保序参数值order_preserve的取值,实现控制直接内存存取任务的执行顺序,对于存在数据依赖的应用场景,可高效实现多个直接内存存取任务间的有序调度。
在另一些实施例中,直接内存存取单元根据多个直接内存存取任务对应的保序参数值order_preserve,确定多个直接内存存取任务中的保序执行直接内存存取任务之后,以第一直接内存存取任务为例,若第一直接内存存取任务为保序执行直接内存存取任务,则将第一直接内存存取任务按照任务加载顺序压入虚拟队列中,也即,将保序执行直接内存存取任务压入虚拟队列中。该虚拟队列严格按照先入先出的顺序执行,只有处于虚拟队列头部的任务,才是有效的候选任务,处于队列非头部的任务,为无效候选任务。例如,如图7所示,虚拟队列中压入任务B、任务C、任务D、任务I,其中,任务B处于虚拟队列头部,只有任务B是有效的候选任务,任务C、任务D、任务I为无效候选任务。需要说明的是,虚拟队列的大小可根据实际情况进行灵活设置,如设置为64bit,在此不作具体限制。
可选地,将多个直接内存存取任务中的保序执行直接内存存取任务按照任务加载顺序压入虚拟队列中后,在当前待执行的直接内存存取任务执行完成时,也即处于虚拟队列头部的直接内存存取任务执行完成时,将虚拟队列的头部指针queue_head加1;另外,当虚拟队列中压入新的保序执行直接内存存取任务时,将虚拟队列的尾部指针queue_rear加1。
在另一些实施例中,直接内存存取单元将每个直接内存存取任务对应的任务描述参数信息存储于预设优先队列中。可选地,优先队列可以缓存预设数量的任务描述参数信息。
在另一些实施例中,直接内存存取任务的数据对应的任务描述参数信息对应配置有状态标记信息,所述根据所述至少一任务描述参数信息,确定至少一当前待执行的直接内存存取任务,包括:根据所述多个直接内存存取任务的任务描述参数信息对应的状态标记信息,确定执行等级最高的直接内存存取任务;将执行等级最高的直接内存存取任务确定为当前待执行的直接内存存取任务。
可选地,每个任务描述参数信息对应的状态标记信息包括任务有效参数值valid、任务激活参数值active和优先级参数值dscrp_pri。首先根据多个直接内存存取任务对应的任务有效参数值valid的取值,确定多个直接内存存取任务中的有效直接内存存取任务。可选地,若直接内存存取任务对应的任务有效参数值valid为0,则确定直接内存存取任务为无效直接内存存取任务;若直接内存存取任务对应的任务有效参数值valid为1,则确定直接内存存取任务为有效直接内存存取任务。或者,相反,若直接内存存取任务对应的任务有效参数值valid为1,则确定直接内存存取任务为无效直接内存存取任务;若直接内存存取任务对应的任务有效参数值valid为0,则确定直接内存存取任务为有效直接内存存取任务。
然后,根据确定的有效直接内存存取任务对应的任务激活参数值active的取值,确定有效直接内存存取任务中的激活直接内存存取任务。示例性的,若直接内存存取任务对应的任务激活参数值active为0,则确定直接内存存取任务为非激活直接内存存取任务;若直接内存存取任务对应的任务激活参数值active为1,则确定直接内存存取任务为激活直接内存存取任务。或者,相反,若直接内存存取任务对应的任务激活参数值active为1,则确定直接内存存取任务为非激活直接内存存取任务;若直接内存存取任务对应的任务激活参数值active为0,则确定直接内存存取任务为激活直接内存存取任务。
之后,根据激活直接内存存取任务对应的优先级参数值dscrp_pri的取值,确定优先级最高的激活直接内存存取任务,将优先级最高的激活直接内存存取任务确定为执行等级最高的直接内存存取任务。
可选地,直接内存存取任务的任务描述参数信息对应的状态标记信息包括时间戳time_stamp,根据多个直接内存存取任务对应的状态标记信息,确定优先级最高的激活直接内存存取任务,若优先级最高的激活直接内存存取任务为1个,则将该优先级最高的激活直接内存存取任务确定为执行等级最高的直接内存存取任务;若优先级最高的激活直接内存存取任务包括多个,则根据多个优先级最高的激活直接内存存取任务对应的时间戳time_stamp,将时间戳数值最大的优先级最高的激活直接内存存取任务,确定为执行等级最高的直接内存存取任务。
也即,任务有效参数值valid具有最高优先级,被选取的总是一个有效的直接内存存取任务;任务激活参数值active具有次高优先级,处于激活状态的直接内存存取任务优先于非激活状态的的直接内存存取任务;优先级参数值dscrp_pri具有第三优先级,对于两个有效且处于激活态的的直接内存存取任务,优先加载优先级参数值dscrp_pri高的直接内存存取任务;时间戳time_stamp具有最低优先级,对于两个有效且处于激活态的的直接内存存取任务,如果其优先级参数值dscrp_pri也相同,则选取时间戳time_stamp大的直接内存存取任务,也就是压入时间最久的直接内存存取任务。由于直接内存存取任务的压入总有先后顺序,所以不会存在两个直接内存存取任务的4种优先级全部相同。通过4种优先级调度同一队列中的直接内存存取任务,使得直接内存存取任务调度执行更加灵活。
可选地,将每个直接内存存取任务的任务描述参数信息对应的状态标记信息存储于状态寄存器pri_status中。示例性的,如图7所示,状态寄存器pri_status包括4个区域,4个区域分别存储任务有效参数值valid、任务激活参数值active、优先级参数值dscrp_pri以及时间戳time_stamp等状态标记信息。
其中,任务有效参数值valid,1bit,表示当前位置上是否有任务;任务激活参数值active,1bit,表示当前位置上是否缓存被激活的任务,对于非保序执行直接内存存取任务,都属于被激活的任务,对于处于虚拟队列头部的保序执行直接内存存取任务,属于被激活的任务;优先级参数值dscrp_pri,3bit,直接从任务描述参数信息头部获取;时间戳time_stamp,3bit,数值越大,则表示压入的时间越久。
在另一些实施例中,直接内存存取任务对应的任务描述参数信息中包含中断参数值irq_mask,所述多个直接内存存取任务处理方法还包括:在执行完成直接内存存取任务后,根据所述直接内存存取任务对应的中断参数值的取值,判断是否上报中断通知至所述精简指令集处理器。
其中,irq_mask表示直接内存存取任务完成后,是否发中断通知。可选地,中断参数值irq_mask为0表示发中断通知,中断参数值irq_mask为1表示不发中断通知。
在执行完成直接内存存取任务后,根据直接内存存取任务对应的中断参数值irq_mask的取值,判断是否上报中断通知至所述精简指令集处理器。可选地,若直接内存存取任务对应的中断参数值irq_mask为1,则判定不上报中断通知至精简指令集处理器;若直接内存存取任务对应的中断参数值irq_mask为0,则判定上报中断通知至所述精简指令集处理器。或者,相反,若直接内存存取任务对应的中断参数值irq_mask为0,则判定不上报中断通知至精简指令集处理器;若直接内存存取任务对应的中断参数值irq_mask为1,则判定上报中断通知至精简指令集处理器。
例如,如图9所示,压入有任务A、任务B、任务C,其中,任务A对应的中断参数值irq_mask为1,任务B对应的中断参数值irq_mask为1,任务C对应的中断参数值irq_mask为0。当任务A执行后,由于其对应的中断参数值irq_mask为1,因此,不上报中断通知;接着任务B执行后,同样由于其对应的中断参数值irq_mask为1,因此,不上报中断通知;最后任务C执行后,由于其对应的中断参数值irq_mask为0,因此,上报中断通知至精简指令集处理器。通过设置特定任务完成后才发送中断通知至精简指令集处理器,因此,大大减少精简指令集处理器和直接内存存取单元的交互,提升精简指令集处理器的效率。
在另一些实施例中,直接内存存取单元包括至少一任务队列,预设任务队列与数据通路的对应关系,可选地,一个任务队列对应一个数据通路。至少一任务队列包括读大批量数据任务队列、写大批量数据任务队列、读小批量数据任务队列、写小批量数据任务队列,至少一数据通路包括读大批量数据通路、写大批量数据通路、读小批量数据通路、写小批量数据通路;读大批量数据任务队列对应读大批量数据通路,写大批量数据任务队列对应写大批量数据通路,读小批量数据任务队列对应读小批量数据通路,写小批量数据任务队列对应写小批量数据通路。
所述根据所述至少一任务描述参数信息,确定至少一当前待执行的直接内存存取任务之后,还包括:根据所述至少一当前待执行的直接内存存取任务对应的至少一任务描述参数信息,确定所述至少一当前待执行的直接内存存取任务对应的任务队列;根据任务队列与数据通路的对应关系,执行所述至少一当前待执行的直接内存存取任务。
可选地,将至少一当前待执行的直接内存存取任务调度至对应的任务队列中,以及根据任务队列与数据通路的对应关系,将调度至每一任务队列的直接内存存取任务分配至对应的数据通路中,以执行至少一当前待执行的直接内存存取任务。
具体地,若当前待执行的直接内存存取任务为读大批量数据任务,则从数字信号处理器外部的DDR中读取该读大批量数据任务对应的第一数据,将第一数据基于读大批量数据通路传输至数字信号处理器DSP的DSP内部缓存BLK_MEM,并将第一数据写入DSP内部缓存BLK_MEM。若当前待执行的直接内存存取任务为读小批量数据任务,则从DDR中读取该读小批量数据任务对应的第二数据,将第二数据基于读小批量数据通路传输至数字信号处理器的数据缓存器,并将第二数据写入数据缓存器。若当前待执行的直接内存存取任务为写大批量数据任务,则从DSP内部缓存BLK_MEM读取写大批量数据任务对应的第三数据,将第三数据基于写大批量数据通路传输至DDR,并将第三数据写入DDR。若当前待执行的直接内存存取任务为写小批量数据任务,则从数据缓存器读取写小批量数据任务对应的第四数据,将第四数据基于写小批量数据通路传输至DDR,并将第四数据写入DDR。
由于每个任务队列,分别对应相应的数据通路,单独管理,管理的粒度更细,实现直接内存存取任务管理更加高效。
请参阅图11,图11是本申请实施例提供的一种直接内存存取单元的示意性框图。如图11所示,该直接内存存取单元100包括处理器101和存储器102,处理器101和存储器102通过总线连接,该总线比如为I2C(Inter-integrated Circuit)总线。
具体地,处理器101可以是微控制单元(Micro-controller Unit,MCU)、中央处理单元(Central Processing Unit,CPU)或数字信号处理器(Digital Signal Processor,DSP)等。
具体地,存储器102可以是Flash芯片、只读存储器(ROM,Read-Only Memory)磁盘、光盘、U盘或移动硬盘等。
其中,所述处理器用于运行存储在存储器中的计算机程序,并在执行所述计算机程序时实现如下步骤:
从精简指令集处理器获取与多个直接内存存取任务的数据对应的至少一任务描述参数信息;
根据所述至少一任务描述参数信息,确定至少一当前待执行的直接内存存取任务。
在一些实施例中,所述任务描述参数信息中包含保序参数值,所述处理器在实现所述根据所述至少一任务描述参数信息,确定至少一当前待执行的直接内存存取任务时,具体实现:
根据所述多个直接内存存取任务对应的保序参数值,确定所述多个直接内存存取任务中的保序执行直接内存存取任务;
将所述保序执行直接内存存取任务按照任务加载顺序进行排序,并将排序最前的保序执行直接内存存取任务确定为当前待执行的直接内存存取任务。
在一些实施例中,所述处理器在实现所述根据所述多个直接内存存取任务对应的保序参数值,确定所述多个直接内存存取任务中的保序执行直接内存存取任务时,具体实现:
若所述多个直接内存存取任务中的第一直接内存存取任务对应的保序参数值为0,则确定所述第一直接内存存取任务为非保序执行直接内存存取任务;以及若所述多个直接内存存取任务中的第一直接内存存取任务对应的保序参数值为1,则确定所述第一直接内存存取任务为保序执行直接内存存取任务;
或者
若所述多个直接内存存取任务中的第一直接内存存取任务对应的保序参数值为1,则确定所述第一直接内存存取任务为非保序执行直接内存存取任务;以及若所述多个直接内存存取任务中的第一直接内存存取任务对应的保序参数值为0,则确定所述第一直接内存存取任务为保序执行直接内存存取任务。
在一些实施例中,所述处理器在实现所述根据所述多个直接内存存取任务对应的保序参数值,确定所述多个直接内存存取任务中的保序执行直接内存存取任务之后,具体实现:
若确定所述多个直接内存存取任务中的第一直接内存存取任务为保序执行直接内存存取任务,则将所述第一直接内存存取任务按照任务加载顺序压入虚拟队列中。
在一些实施例中,所述处理器在执行所述计算机程序时,还实现:
当所述当前待执行的直接内存存取任务执行完成时,将所述虚拟队列的头部指针加1;
当所述虚拟队列中压入新的保序执行直接内存存取任务时,将所述虚拟队列的尾部指针加1。
在一些实施例中,所述处理器在实现所述任务描述参数信息对应配置有状态标记信息,所述根据所述至少一任务描述参数信息,确定至少一当前待执行的直接内存存取任务时,具体实现:
根据所述多个直接内存存取任务的任务描述参数信息对应的状态标记信息,确定执行等级最高的直接内存存取任务;
将执行等级最高的直接内存存取任务确定为当前待执行的直接内存存取任务。
在一些实施例中,所述状态标记信息包括任务有效参数值、任务激活参数值和优先级参数值,所述处理器在实现所述根据所述多个直接内存存取任务的任务描述参数信息对应的状态标记信息,确定执行等级最高的直接内存存取任务时,具体实现:
根据所述多个直接内存存取任务对应的任务有效参数值的取值,确定所述多个直接内存存取任务中的有效直接内存存取任务;
根据所述有效直接内存存取任务对应的任务激活参数值的取值,确定所述有效直接内存存取任务中的激活直接内存存取任务;
根据所述激活直接内存存取任务对应的优先级参数值的取值,确定优先级最高的激活直接内存存取任务;
将优先级最高的激活直接内存存取任务确定为所述执行等级最高的直接内存存取任务。
在一些实施例中,所述状态标记信息包括时间戳,所述处理器在实现所述根据所述多个直接内存存取任务的任务描述参数信息对应的状态标记信息,确定执行等级最高的直接内存存取任务时,具体实现:
根据所述多个直接内存存取任务对应的状态标记信息,确定优先级最高的激活直接内存存取任务;
若优先级最高的激活直接内存存取任务包括多个,则根据多个所述优先级最高的激活直接内存存取任务对应的时间戳,将时间戳数值最大的优先级最高的激活直接内存存取任务,确定为所述执行等级最高的直接内存存取任务。
在一些实施例中,所述处理器在实现所述根据所述多个直接内存存取任务对应的任务有效参数值的取值,确定所述多个直接内存存取任务中的有效直接内存存取任务时,具体实现:
若直接内存存取任务对应的任务有效参数值为0,则确定直接内存存取任务为无效直接内存存取任务;若直接内存存取任务对应的任务有效参数值为1,则确定直接内存存取任务为有效直接内存存取任务;
或者
若直接内存存取任务对应的任务有效参数值为1,则确定直接内存存取任务为无效直接内存存取任务;若直接内存存取任务对应的任务有效参数值为0,则确定直接内存存取任务为有效直接内存存取任务。
在一些实施例中,所述处理器在实现所述根据所述有效直接内存存取任务对应的任务激活参数值的取值,确定所述有效直接内存存取任务中的激活直接内存存取任务时,具体实现:
若直接内存存取任务对应的任务激活参数值为0,则确定直接内存存取任务为非激活直接内存存取任务;若直接内存存取任务对应的任务激活参数值为1,则确定直接内存存取任务为激活直接内存存取任务;
或者
若直接内存存取任务对应的任务激活参数值为1,则确定直接内存存取任务为非激活直接内存存取任务;若直接内存存取任务对应的任务激活参数值为0,则确定直接内存存取任务为激活直接内存存取任务。
在一些实施例中,所述处理器在执行所述计算机程序时,还实现:
将每个直接内存存取任务的任务描述参数信息对应的状态标记信息存储于状态寄存器中。
在一些实施例中,所述状态寄存器包括4个区域,所述4个区域分别存储任务有效参数值、任务激活参数值、优先级参数值以及时间戳。
在一些实施例中,所述处理器在执行所述计算机程序时,还实现:
将每个直接内存存取任务对应的任务描述参数信息存储于预设优先队列中。
在一些实施例中,所述任务描述参数信息中包含中断参数值,所述处理器在执行所述计算机程序时,还实现:
在执行完成直接内存存取任务后,根据所述直接内存存取任务对应的中断参数值的取值,判断是否上报中断通知至所述精简指令集处理器。
在一些实施例中,所述处理器在实现所述根据所述直接内存存取任务对应的中断参数值的取值,判断是否上报中断通知至所述精简指令集处理器时,具体实现:
若所述直接内存存取任务对应的中断参数值为1,则判定不上报所述中断通知至所述精简指令集处理器;若所述直接内存存取任务对应的中断参数值为0,则判定上报所述中断通知至所述精简指令集处理器;
或者
若所述直接内存存取任务对应的中断参数值为0,则判定不上报所述中断通知至所述精简指令集处理器;若所述直接内存存取任务对应的中断参数值为1,则判定上报所述中断通知至所述精简指令集处理器。
在一些实施例中,所述直接内存存取单元还包括至少一任务队列,预设有任务队列与数据通路的对应关系,所述处理器在实现所述根据所述至少一任务描述参数信息,确定至少一当前待执行的直接内存存取任务之后,还实现:
根据所述至少一当前待执行的直接内存存取任务对应的至少一任务描述参数信息,确定所述至少一当前待执行的直接内存存取任务对应的任务队列;
根据任务队列与数据通路的对应关系,执行所述至少一当前待执行的直接内存存取任务。
在一些实施例中,所述任务队列与数据通路的对应关系包括:一个任务队列对应一个数据通路。
在一些实施例中,所述处理器在实现所述根据任务队列与数据通路的对应关系,执行所述至少一当前待执行的直接内存存取任务时,具体实现:
将所述至少一当前待执行的直接内存存取任务调度至对应的任务队列中,以及根据任务队列与数据通路的对应关系,将调度至每一任务队列的直接内存存取任务分配至对应的数据通路中,以执行所述至少一当前待执行的直接内存存取任务。
在一些实施例中,所述至少一数据通路包括读大批量数据通路、写大批量数据通路、读小批量数据通路、写小批量数据通路,所述至少一任务队列包括读大批量数据任务队列、写大批量数据任务队列、读小批量数据任务队列、写小批量数据任务队列;所述读大批量数据任务队列对应所述读大批量数据通路,所述写大批量数据任务队列对应所述写大批量数据通路,所述读小批量数据任务队列对应所述读小批量数据通路,所述写小批量数据任务队列对应所述写小批量数据通路。
在一些实施例中,所述直接内存存取单元设置于数字信号处理器中。
在一些实施例中,所述处理器在实现所述执行所述至少一当前待执行的直接内存存取任务时,具体实现:
若当前待执行的直接内存存取任务为读大批量数据任务,则从外部双倍速率同步动态随机存储器中读取所述读大批量数据任务对应的第一数据,将所述第一数据基于读大批量数据通路传输至所述数字信号处理器的内部缓存,并将所述第一数据写入所述内部缓存;
若所述目标直接内存存取任务为读小批量数据任务,则从所述外部双倍速率同步动态随机存储器中读取所述读小批量数据任务对应的第二数据,将所述第二数据基于读小批量数据通路传输至所述数字信号处理器的数据缓冲器,并将所述第二数据写入所述数据缓冲器;
若所述目标直接内存存取任务为写大批量数据任务,则从所述内部缓存读取所述写大批量数据任务对应的第三数据,将所述第三数据基于写大批量数据通路传输至所述外部双倍速率同步动态随机存储器,并将所述第三数据写入所述双倍速率同步动态随机存储器;
若所述目标直接内存存取任务为写小批量数据任务,则从所述数据缓冲器读取所述写小批量数据任务对应的第四数据,将所述第四数据基于写小批量数据通路传输至所述双倍速率同步动态随机存储器,并将所述第四数据写入所述双倍速率同步动态随机存储器。
本申请的实施例中还提供一种直接内存存取任务处理设备,该直接内存存取任务处理设备包括上述实施例中的数字信号处理器1000。直接内存存取任务处理设备通过从精简指令集处理器获取与多个直接内存存取任务的数据对应的至少一任务描述参数信息,并根据至少一任务描述参数信息,确定至少一当前待执行的直接内存存取任务,具体操作可参考本申请实施例提供的多个直接内存存取任务处理方法的步骤,在此不再赘述。
本申请的实施例中还提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序中包括程序指令,处理器执行所述程序指令,实现本申请实施例提供的多个直接内存存取任务处理方法的步骤。
其中,所述计算机可读存储介质可以是前述实施例所述的直接内存存取单元或数字信号处理器或直接内存存取任务处理设备的内部存储单元,例如所述直接内存存取单元或数字信号处理器或直接内存存取任务处理设备的硬盘或内存。所述计算机可读存储介质也可以是所述直接内存存取单元或数字信号处理器或直接内存存取任务处理设备的外部存储设备,例如所述直接内存存取单元或数字信号处理器或直接内存存取任务处理设备上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。
根据本发明实施方式,提出了直接内存存取单元、数字信号处理器、直接内存存取任务处理设备、多个直接内存存取任务处理方法及计算机可读存储介质。直接内存存取单元包括至少一数据通路和直接内存存取单元控制器,其中,至少一数据通路用于传输直接内存存取任务的数据,直接内存存取单元控制器包括与至少一数据通路和位于直接内存存取单元外部的精简指令集处理器连接的任务管理模块,任务管理模块从精简指令集处理器获取与多个直接内存存取任务的数据对应的至少一任务描述参数信息,以根据至少一任务描述参数信息,确定至少一当前待执行的直接内存存取任务,从而实现多直接内存存取任务的并行执行,相比于采用单线程的方式或者采用一个队列的方式来管理不同类型的多个直接内存存取任务的执行,提高了直接内存存取任务的执行效率。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以权利要求的保护范围为准。
Claims (45)
1.一种直接内存存取单元,其特征在于,
所述直接内存存取单元包括至少一数据通路和直接内存存取单元控制器;
其中,
所述至少一数据通路,用于传输直接内存存取任务的数据,其中,所述至少一数据通路对应传输不同类型的直接内存存取任务的数据;
所述直接内存存取单元控制器包括与所述至少一数据通路和位于所述直接内存存取单元外部的精简指令集处理器连接的任务管理模块;其中,
所述任务管理模块从所述精简指令集处理器获取与多个直接内存存取任务的数据对应的至少一任务描述参数信息,以根据所述至少一任务描述参数信息,确定至少一当前待执行的直接内存存取任务。
2.根据权利要求1所述的直接内存存取单元,其特征在于,所述任务描述参数信息中包含保序参数值,所述根据所述至少一任务描述参数信息,确定至少一当前待执行的直接内存存取任务,包括:
根据所述多个直接内存存取任务对应的保序参数值,确定所述多个直接内存存取任务中的保序执行直接内存存取任务;
将所述保序执行直接内存存取任务按照任务加载顺序进行排序,并将排序最前的保序执行直接内存存取任务确定为当前待执行的直接内存存取任务。
3.根据权利要求2所述的直接内存存取单元,其特征在于,所述任务管理模块具体用于:
若所述多个直接内存存取任务中的第一直接内存存取任务对应的保序参数值为0,则确定所述第一直接内存存取任务为非保序执行直接内存存取任务;以及若所述多个直接内存存取任务中的第一直接内存存取任务对应的保序参数值为1,则确定所述第一直接内存存取任务为保序执行直接内存存取任务;
或者
若所述多个直接内存存取任务中的第一直接内存存取任务对应的保序参数值为1,则确定所述第一直接内存存取任务为非保序执行直接内存存取任务;以及若所述多个直接内存存取任务中的第一直接内存存取任务对应的保序参数值为0,则确定所述第一直接内存存取任务为保序执行直接内存存取任务。
4.根据权利要求2所述的直接内存存取单元,其特征在于,所述根据所述多个直接内存存取任务对应的保序参数值,确定所述多个直接内存存取任务中的保序执行直接内存存取任务之后,还包括:
若确定所述多个直接内存存取任务中的第一直接内存存取任务为保序执行直接内存存取任务,则将所述第一直接内存存取任务按照任务加载顺序压入虚拟队列中。
5.根据权利要求4所述的直接内存存取单元,其特征在于,所述任务管理模块还用于:
当所述当前待执行的直接内存存取任务执行完成时,将所述虚拟队列的头部指针加1;
当所述虚拟队列中压入新的保序执行直接内存存取任务时,将所述虚拟队列的尾部指针加1。
6.根据权利要求1所述的直接内存存取单元,其特征在于,所述任务描述参数信息对应配置有状态标记信息,所述根据所述至少一任务描述参数信息,确定至少一当前待执行的直接内存存取任务,包括:
根据所述多个直接内存存取任务的任务描述参数信息对应的状态标记信息,确定执行等级最高的直接内存存取任务;
将执行等级最高的直接内存存取任务确定为当前待执行的直接内存存取任务。
7.根据权利要求6所述的直接内存存取单元,其特征在于,所述状态标记信息包括任务有效参数值、任务激活参数值和优先级参数值,所述根据所述多个直接内存存取任务的任务描述参数信息对应的状态标记信息,确定执行等级最高的直接内存存取任务,包括:
根据所述多个直接内存存取任务对应的任务有效参数值的取值,确定所述多个直接内存存取任务中的有效直接内存存取任务;
根据所述有效直接内存存取任务对应的任务激活参数值的取值,确定所述有效直接内存存取任务中的激活直接内存存取任务;
根据所述激活直接内存存取任务对应的优先级参数值的取值,确定优先级最高的激活直接内存存取任务;
将优先级最高的激活直接内存存取任务确定为所述执行等级最高的直接内存存取任务。
8.根据权利要求6所述的直接内存存取单元,其特征在于,所述状态标记信息包括时间戳,所述任务管理模块还用于:
根据所述多个直接内存存取任务对应的状态标记信息,确定优先级最高的激活直接内存存取任务;
若优先级最高的激活直接内存存取任务包括多个,则根据多个所述优先级最高的激活直接内存存取任务对应的时间戳,将时间戳数值最大的优先级最高的激活直接内存存取任务,确定为所述执行等级最高的直接内存存取任务。
9.根据权利要求7所述的直接内存存取单元,其特征在于,所述任务管理模块具体用于:
若直接内存存取任务对应的任务有效参数值为0,则确定直接内存存取任务为无效直接内存存取任务;若直接内存存取任务对应的任务有效参数值为1,则确定直接内存存取任务为有效直接内存存取任务;
或者
若直接内存存取任务对应的任务有效参数值为1,则确定直接内存存取任务为无效直接内存存取任务;若直接内存存取任务对应的任务有效参数值为0,则确定直接内存存取任务为有效直接内存存取任务。
10.根据权利要求7所述的直接内存存取单元,其特征在于,所述任务管理模块具体用于:
若直接内存存取任务对应的任务激活参数值为0,则确定直接内存存取任务为非激活直接内存存取任务;若直接内存存取任务对应的任务激活参数值为1,则确定直接内存存取任务为激活直接内存存取任务;
或者
若直接内存存取任务对应的任务激活参数值为1,则确定直接内存存取任务为非激活直接内存存取任务;若直接内存存取任务对应的任务激活参数值为0,则确定直接内存存取任务为激活直接内存存取任务。
11.根据权利要求6至10任一项所述的直接内存存取单元,其特征在于,所述任务管理模块还用于:
将每个直接内存存取任务的任务描述参数信息对应的状态标记信息存储于状态寄存器中。
12.根据权利要求11所述的直接内存存取单元,其特征在于,所述状态寄存器包括4个区域,所述4个区域分别存储任务有效参数值、任务激活参数值、优先级参数值以及时间戳。
13.根据权利要求6至12任一项所述的直接内存存取单元,其特征在于,所述任务管理模块还用于:
将每个直接内存存取任务对应的任务描述参数信息存储于预设优先队列中。
14.根据权利要求1所述的直接内存存取单元,其特征在于,所述任务描述参数信息中包含中断参数值,所述任务管理模块还用于:
在执行完成直接内存存取任务后,根据所述直接内存存取任务对应的中断参数值的取值,判断是否上报中断通知至所述精简指令集处理器。
15.根据权利要求14所述的直接内存存取单元,其特征在于,所述根据所述直接内存存取任务对应的中断参数值的取值,判断是否上报中断通知至所述精简指令集处理器,包括:
若所述直接内存存取任务对应的中断参数值为1,则判定不上报所述中断通知至所述精简指令集处理器;若所述直接内存存取任务对应的中断参数值为0,则判定上报所述中断通知至所述精简指令集处理器;
或者
若所述直接内存存取任务对应的中断参数值为0,则判定不上报所述中断通知至所述精简指令集处理器;若所述直接内存存取任务对应的中断参数值为1,则判定上报所述中断通知至所述精简指令集处理器。
16.根据权利要求1至15任一项所述的直接内存存取单元,其特征在于,所述直接内存存取单元还包括至少一任务队列,预设有任务队列与数据通路的对应关系,所述任务管理模块还用于:
根据所述至少一当前待执行的直接内存存取任务对应的至少一任务描述参数信息,确定所述至少一当前待执行的直接内存存取任务对应的任务队列;
根据任务队列与数据通路的对应关系,执行所述至少一当前待执行的直接内存存取任务。
17.根据权利要求16所述的直接内存存取单元,其特征在于,所述任务队列与数据通路的对应关系包括:一个任务队列对应一个数据通路。
18.根据权利要求16或17所述的直接内存存取单元,其特征在于,所述根据任务队列与数据通路的对应关系,执行所述至少一当前待执行的直接内存存取任务,包括:
将所述至少一当前待执行的直接内存存取任务调度至对应的任务队列中,以及根据任务队列与数据通路的对应关系,将调度至每一任务队列的直接内存存取任务分配至对应的数据通路中,以执行所述至少一当前待执行的直接内存存取任务。
19.根据权利要求16至18任一项所述的直接内存存取单元,其特征在于,所述至少一数据通路包括读大批量数据通路、写大批量数据通路、读小批量数据通路、写小批量数据通路,所述至少一任务队列包括读大批量数据任务队列、写大批量数据任务队列、读小批量数据任务队列、写小批量数据任务队列;所述读大批量数据任务队列对应所述读大批量数据通路,所述写大批量数据任务队列对应所述写大批量数据通路,所述读小批量数据任务队列对应所述读小批量数据通路,所述写小批量数据任务队列对应所述写小批量数据通路。
20.根据权利要求19所述的直接内存存取单元,其特征在于,所述直接内存存取单元设置于数字信号处理器中。
21.根据权利要求20所述的直接内存存取单元,其特征在于,所述执行所述至少一当前待执行的直接内存存取任务,包括:
若当前待执行的直接内存存取任务为读大批量数据任务,则从外部的双倍速率同步动态随机存储器中读取所述读大批量数据任务对应的第一数据,将所述第一数据基于读大批量数据通路传输至所述数字信号处理器的内部缓存,并将所述第一数据写入所述内部缓存;
若当前待执行的直接内存存取任务为读小批量数据任务,则从所述双倍速率同步动态随机存储器中读取所述读小批量数据任务对应的第二数据,将所述第二数据基于读小批量数据通路传输至所述数字信号处理器的数据缓冲器,并将所述第二数据写入所述数据缓冲器;
若当前待执行的直接内存存取任务为写大批量数据任务,则从所述内部缓存读取所述写大批量数据任务对应的第三数据,将所述第三数据基于写大批量数据通路传输至所述双倍速率同步动态随机存储器,并将所述第三数据写入所述双倍速率同步动态随机存储器;
若当前待执行的直接内存存取任务为写小批量数据任务,则从所述数据缓冲器读取所述写小批量数据任务对应的第四数据,将所述第四数据基于写小批量数据通路传输至所述双倍速率同步动态随机存储器,并将所述第四数据写入所述双倍速率同步动态随机存储器。
22.一种数字信号处理器,其特征在于,所述数字信号处理器包括精简指令集处理器和如权利要求1至21中任一项所述的直接内存存取单元,所述精简指令集处理器通信连接所述直接内存存取单元。
23.一种直接内存存取任务处理设备,其特征在于,所述直接内存存取任务处理设备包括如权利要求22所述的数字信号处理器。
24.一种多个直接内存存取任务处理方法,应用于如权利要求1至21中任一项所述的直接内存存取单元,其特征在于,包括:
从精简指令集处理器获取与多个直接内存存取任务的数据对应的至少一任务描述参数信息;
根据所述至少一任务描述参数信息,确定至少一当前待执行的直接内存存取任务。
25.根据权利要求24所述的方法,其特征在于,所述任务描述参数信息中包含保序参数值,所述根据所述至少一任务描述参数信息,确定至少一当前待执行的直接内存存取任务,包括:
根据所述多个直接内存存取任务对应的保序参数值,确定所述多个直接内存存取任务中的保序执行直接内存存取任务;
将所述保序执行直接内存存取任务按照任务加载顺序进行排序,并将排序最前的保序执行直接内存存取任务确定为当前待执行的直接内存存取任务。
26.根据权利要求25所述的方法,其特征在于,所述根据所述多个直接内存存取任务对应的保序参数值,确定所述多个直接内存存取任务中的保序执行直接内存存取任务,包括:
若所述多个直接内存存取任务中的第一直接内存存取任务对应的保序参数值为0,则确定所述第一直接内存存取任务为非保序执行直接内存存取任务;以及若所述多个直接内存存取任务中的第一直接内存存取任务对应的保序参数值为1,则确定所述第一直接内存存取任务为保序执行直接内存存取任务;
或者
若所述多个直接内存存取任务中的第一直接内存存取任务对应的保序参数值为1,则确定所述第一直接内存存取任务为非保序执行直接内存存取任务;以及若所述多个直接内存存取任务中的第一直接内存存取任务对应的保序参数值为0,则确定所述第一直接内存存取任务为保序执行直接内存存取任务。
27.根据权利要求25所述的方法,其特征在于,所述根据所述多个直接内存存取任务对应的保序参数值,确定所述多个直接内存存取任务中的保序执行直接内存存取任务之后,还包括:
若确定所述多个直接内存存取任务中的第一直接内存存取任务为保序执行直接内存存取任务,则将所述第一直接内存存取任务按照任务加载顺序压入虚拟队列中。
28.根据权利要求27所述的方法,其特征在于,所述方法还包括:
当所述当前待执行的直接内存存取任务执行完成时,将所述虚拟队列的头部指针加1;
当所述虚拟队列中压入新的保序执行直接内存存取任务时,将所述虚拟队列的尾部指针加1。
29.根据权利要求24所述的方法,其特征在于,所述任务描述参数信息对应配置有状态标记信息,所述根据所述至少一任务描述参数信息,确定至少一当前待执行的直接内存存取任务,包括:
根据所述多个直接内存存取任务的任务描述参数信息对应的状态标记信息,确定执行等级最高的直接内存存取任务;
将执行等级最高的直接内存存取任务确定为当前待执行的直接内存存取任务。
30.根据权利要求29所述的方法,其特征在于,所述状态标记信息包括任务有效参数值、任务激活参数值和优先级参数值,所述根据所述多个直接内存存取任务的任务描述参数信息对应的状态标记信息,确定执行等级最高的直接内存存取任务,包括:
根据所述多个直接内存存取任务对应的任务有效参数值的取值,确定所述多个直接内存存取任务中的有效直接内存存取任务;
根据所述有效直接内存存取任务对应的任务激活参数值的取值,确定所述有效直接内存存取任务中的激活直接内存存取任务;
根据所述激活直接内存存取任务对应的优先级参数值的取值,确定优先级最高的激活直接内存存取任务;
将优先级最高的激活直接内存存取任务确定为所述执行等级最高的直接内存存取任务。
31.根据权利要求29所述的方法,其特征在于,所述状态标记信息包括时间戳,所述根据所述多个直接内存存取任务的任务描述参数信息对应的状态标记信息,确定执行等级最高的直接内存存取任务,包括:
根据所述多个直接内存存取任务对应的状态标记信息,确定优先级最高的激活直接内存存取任务;
若优先级最高的激活直接内存存取任务包括多个,则根据多个所述优先级最高的激活直接内存存取任务对应的时间戳,将时间戳数值最大的优先级最高的激活直接内存存取任务,确定为所述执行等级最高的直接内存存取任务。
32.根据权利要求30所述的方法,其特征在于,所述根据所述多个直接内存存取任务对应的任务有效参数值的取值,确定所述多个直接内存存取任务中的有效直接内存存取任务,包括:
若直接内存存取任务对应的任务有效参数值为0,则确定直接内存存取任务为无效直接内存存取任务;若直接内存存取任务对应的任务有效参数值为1,则确定直接内存存取任务为有效直接内存存取任务;
或者
若直接内存存取任务对应的任务有效参数值为1,则确定直接内存存取任务为无效直接内存存取任务;若直接内存存取任务对应的任务有效参数值为0,则确定直接内存存取任务为有效直接内存存取任务。
33.根据权利要求30所述的方法,其特征在于,所述根据所述有效直接内存存取任务对应的任务激活参数值的取值,确定所述有效直接内存存取任务中的激活直接内存存取任务,包括:
若直接内存存取任务对应的任务激活参数值为0,则确定直接内存存取任务为非激活直接内存存取任务;若直接内存存取任务对应的任务激活参数值为1,则确定直接内存存取任务为激活直接内存存取任务;
或者
若直接内存存取任务对应的任务激活参数值为1,则确定直接内存存取任务为非激活直接内存存取任务;若直接内存存取任务对应的任务激活参数值为0,则确定直接内存存取任务为激活直接内存存取任务。
34.根据权利要求29至33任一项所述的方法,其特征在于,所述方法还包括:
将每个直接内存存取任务的任务描述参数信息对应的状态标记信息存储于状态寄存器中。
35.根据权利要求34所述的方法,其特征在于,所述状态寄存器包括4个区域,所述4个区域分别存储任务有效参数值、任务激活参数值、优先级参数值以及时间戳。
36.根据权利要求29至35任一项所述的方法,其特征在于,所述方法还包括:
将每个直接内存存取任务对应的任务描述参数信息存储于预设优先队列中。
37.根据权利要求24所述的方法,其特征在于,所述任务描述参数信息中包含中断参数值,所述方法还包括:
在执行完成直接内存存取任务后,根据所述直接内存存取任务对应的中断参数值的取值,判断是否上报中断通知至所述精简指令集处理器。
38.根据权利要求37所述的方法,其特征在于,所述根据所述直接内存存取任务对应的中断参数值的取值,判断是否上报中断通知至所述精简指令集处理器,包括:
若所述直接内存存取任务对应的中断参数值为1,则判定不上报所述中断通知至所述精简指令集处理器;若所述直接内存存取任务对应的中断参数值为0,则判定上报所述中断通知至所述精简指令集处理器;
或者
若所述直接内存存取任务对应的中断参数值为0,则判定不上报所述中断通知至所述精简指令集处理器;若所述直接内存存取任务对应的中断参数值为1,则判定上报所述中断通知至所述精简指令集处理器。
39.根据权利要求24至38任一项所述的方法,其特征在于,所述直接内存存取单元还包括至少一任务队列,预设有任务队列与数据通路的对应关系,所述根据所述至少一任务描述参数信息,确定至少一当前待执行的直接内存存取任务之后,还包括:
根据所述至少一当前待执行的直接内存存取任务对应的至少一任务描述参数信息,确定所述至少一当前待执行的直接内存存取任务对应的任务队列;
根据任务队列与数据通路的对应关系,执行所述至少一当前待执行的直接内存存取任务。
40.根据权利要求39所述的方法,其特征在于,所述任务队列与数据通路的对应关系包括:一个任务队列对应一个数据通路。
41.根据权利要求39或40所述的方法,其特征在于,所述根据任务队列与数据通路的对应关系,执行所述至少一当前待执行的直接内存存取任务,包括:
将所述至少一当前待执行的直接内存存取任务调度至对应的任务队列中,以及根据任务队列与数据通路的对应关系,将调度至每一任务队列的直接内存存取任务分配至对应的数据通路中,以执行所述至少一当前待执行的直接内存存取任务。
42.根据权利要求39至41任一项所述的方法,其特征在于,所述至少一数据通路包括读大批量数据通路、写大批量数据通路、读小批量数据通路、写小批量数据通路,所述至少一任务队列包括读大批量数据任务队列、写大批量数据任务队列、读小批量数据任务队列、写小批量数据任务队列;所述读大批量数据任务队列对应所述读大批量数据通路,所述写大批量数据任务队列对应所述写大批量数据通路,所述读小批量数据任务队列对应所述读小批量数据通路,所述写小批量数据任务队列对应所述写小批量数据通路。
43.根据权利要求42所述的方法,其特征在于,所述直接内存存取单元设置于数字信号处理器中。
44.根据权利要求43所述的方法,其特征在于,所述执行所述至少一当前待执行的直接内存存取任务,包括:
若当前待执行的直接内存存取任务为读大批量数据任务,则从外部的双倍速率同步动态随机存储器中读取所述读大批量数据任务对应的第一数据,将所述第一数据基于读大批量数据通路传输至所述数字信号处理器的内部缓存,并将所述第一数据写入所述内部缓存;
若当前待执行的直接内存存取任务为读小批量数据任务,则从所述双倍速率同步动态随机存储器中读取所述读小批量数据任务对应的第二数据,将所述第二数据基于读小批量数据通路传输至所述数字信号处理器的数据缓冲器,并将所述第二数据写入所述数据缓冲器;
若当前待执行的直接内存存取任务为写大批量数据任务,则从所述内部缓存读取所述写大批量数据任务对应的第三数据,将所述第三数据基于写大批量数据通路传输至所述双倍速率同步动态随机存储器,并将所述第三数据写入所述双倍速率同步动态随机存储器;
若当前待执行的直接内存存取任务为写小批量数据任务,则从所述数据缓冲器读取所述写小批量数据任务对应的第四数据,将所述第四数据基于写小批量数据通路传输至所述双倍速率同步动态随机存储器,并将所述第四数据写入所述双倍速率同步动态随机存储器。
45.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时使所述处理器实现如权利要求24至44中任一项所述的多个直接内存存取任务处理方法。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/CN2020/078852 WO2021179218A1 (zh) | 2020-03-11 | 2020-03-11 | 直接内存存取单元、处理器、设备、处理方法及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112823343A true CN112823343A (zh) | 2021-05-18 |
Family
ID=75858153
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202080005135.0A Pending CN112823343A (zh) | 2020-03-11 | 2020-03-11 | 直接内存存取单元、处理器、设备、处理方法及存储介质 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN112823343A (zh) |
WO (1) | WO2021179218A1 (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2007249635A (ja) * | 2006-03-16 | 2007-09-27 | Nec Corp | データ転送装置及びデータ転送方法 |
CN103353851A (zh) * | 2013-07-01 | 2013-10-16 | 华为技术有限公司 | 一种管理任务的方法和设备 |
WO2017070900A1 (zh) * | 2015-10-29 | 2017-05-04 | 华为技术有限公司 | 多核数字信号处理系统中处理任务的方法和装置 |
CN108701102A (zh) * | 2017-10-31 | 2018-10-23 | 深圳市大疆创新科技有限公司 | 直接存储器访问控制器、数据读取方法和数据写入方法 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7865631B2 (en) * | 2007-12-06 | 2011-01-04 | International Business Machines Corporation | Dynamic logical data channel assignment using time-grouped allocations |
CN102567256B (zh) * | 2011-12-16 | 2015-01-07 | 龙芯中科技术有限公司 | 处理器系统及其多通道内存拷贝dma加速器和方法 |
CN110083461B (zh) * | 2019-03-29 | 2021-09-24 | 郑州信大捷安信息技术股份有限公司 | 一种基于fpga的多任务处理系统及方法 |
-
2020
- 2020-03-11 WO PCT/CN2020/078852 patent/WO2021179218A1/zh active Application Filing
- 2020-03-11 CN CN202080005135.0A patent/CN112823343A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2007249635A (ja) * | 2006-03-16 | 2007-09-27 | Nec Corp | データ転送装置及びデータ転送方法 |
CN103353851A (zh) * | 2013-07-01 | 2013-10-16 | 华为技术有限公司 | 一种管理任务的方法和设备 |
WO2017070900A1 (zh) * | 2015-10-29 | 2017-05-04 | 华为技术有限公司 | 多核数字信号处理系统中处理任务的方法和装置 |
CN108701102A (zh) * | 2017-10-31 | 2018-10-23 | 深圳市大疆创新科技有限公司 | 直接存储器访问控制器、数据读取方法和数据写入方法 |
Also Published As
Publication number | Publication date |
---|---|
WO2021179218A1 (zh) | 2021-09-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
RU2425412C2 (ru) | Мультимедиа-процессор, многопоточный по требованию | |
US9274845B2 (en) | Job scheduling apparatus and job scheduling method thereof to assign jobs to a core | |
US20090160867A1 (en) | Autonomous Context Scheduler For Graphics Processing Units | |
WO2019183861A1 (zh) | 任务处理方法、设备及机器可读存储介质 | |
JP5309703B2 (ja) | 共有メモリの制御回路、制御方法及び制御プログラム | |
CN108351783A (zh) | 多核数字信号处理系统中处理任务的方法和装置 | |
US9703603B1 (en) | System and method for executing accelerator call | |
US9507633B2 (en) | Scheduling method and system | |
US10379906B2 (en) | Method and apparatus for system call command batch processing | |
CN113051057A (zh) | 多线程数据无锁处理方法、装置及电子设备 | |
CN109284192B (zh) | 参数配置方法及电子设备 | |
CN115237556A (zh) | 调度方法及装置、芯片、电子设备及存储介质 | |
CN115269196A (zh) | 线程池动态创建方法、装置、设备及存储介质 | |
CN111181874B (zh) | 一种报文处理方法、装置及存储介质 | |
CN112860387A (zh) | 分布式任务调度方法、装置、计算机设备及存储介质 | |
CN112925616A (zh) | 任务分配方法、装置、存储介质及电子设备 | |
US8972693B2 (en) | Hardware managed allocation and deallocation evaluation circuit | |
CN114356598A (zh) | Linux内核态与用户态的数据交互方法及装置 | |
CN115904671B (zh) | 一种边缘计算环境下的任务调度方法、装置、设备及介质 | |
CN114816777A (zh) | 命令处理装置、方法、电子设备以及计算机可读存储介质 | |
CN112823343A (zh) | 直接内存存取单元、处理器、设备、处理方法及存储介质 | |
CN113268356B (zh) | 基于LINUX系统的多GPU板卡bounding的系统、方法及介质 | |
CN116361031A (zh) | 消息的传输方法、系统、装置、处理器以及电子设备 | |
CN114637594A (zh) | 多核处理设备、任务分配方法、装置及存储介质 | |
CN111984391A (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 |