CN114780215A - 一种任务调度方法、装置、设备及存储介质 - Google Patents

一种任务调度方法、装置、设备及存储介质 Download PDF

Info

Publication number
CN114780215A
CN114780215A CN202210388036.6A CN202210388036A CN114780215A CN 114780215 A CN114780215 A CN 114780215A CN 202210388036 A CN202210388036 A CN 202210388036A CN 114780215 A CN114780215 A CN 114780215A
Authority
CN
China
Prior art keywords
task
target
tasks
subtasks
data
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
Application number
CN202210388036.6A
Other languages
English (en)
Inventor
吴盼望
尹磊祖
费悦牧
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Guangdong Oppo Mobile Telecommunications Corp Ltd
Original Assignee
Guangdong Oppo Mobile Telecommunications Corp Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Guangdong Oppo Mobile Telecommunications Corp Ltd filed Critical Guangdong Oppo Mobile Telecommunications Corp Ltd
Priority to CN202210388036.6A priority Critical patent/CN114780215A/zh
Publication of CN114780215A publication Critical patent/CN114780215A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/28Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2213/00Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F2213/28DMA

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Bus Control (AREA)

Abstract

本申请公开一种任务调度方法、装置、设备及存储介质,应用于直接存储器访问DMA设备,该方法包括:确定待调度的多个任务中存在相同优先级的至少两个目标任务;将至少两个目标任务中每个目标任务切分成多个子任务;将至少两个目标任务的多个子任务进行交织排序;通过目标数据通道对排序好的子任务进行交织调度。如此,当遇到相同优先级的至少两个目标任务时,将至少两个目标任务切分成多个子任务,并行执行多个子任务,即实现了至少两个目标任务的并行执行,提高至少两个目标任务的整体处理效率。同时,相对于现有中等待一个任务执行结束后才启动下一个任务,本申请可以提前启动下一个任务,缩短至少两个目标任务的整体处理时延。

Description

一种任务调度方法、装置、设备及存储介质
技术领域
本申请涉及计算机技术,尤其涉及一种任务调度方法、装置、设备及存储介质。
背景技术
直接内存访问(Direct Memory Access,DMA)是一种快速数据交换模式,它在不通过中央处理器(CPU,Central Processing Unit)且不需要CPU干预的情况下,即可完成例如外部设备和存储器之间的数据传输(也可称为任务调度)。
现有中经常会遇到任务优先级相同的情况,此时执行任务时只能选取其中的一个任务执行,确保当前任务搬移完所有的数据后才能执行后续任务。若DMA此次任务搬移的数据量较大,则后续任务需要等待较长的时间才能执行,这样降低任务整体处理效率,增加任务整体处理时延。
发明内容
为解决上述技术问题,本申请期望提供一种任务调度方法、装置、设备及存储介质。
本申请的技术方案是这样实现的:
第一方面,提供了一种任务调度方法,应用于直接存储器访问DMA设备,所述方法包括:
确定待调度的多个任务中存在相同优先级的至少两个目标任务;
将所述至少两个目标任务中的目标任务切分成多个子任务;
将所述至少两个目标任务的多个子任务进行交织排序;
通过目标数据通道对排序好的子任务进行交织调度;其中,所述目标数据通道为所述目标任务的优先级对应的数据通道。
第二方面,提供了一种任务调度装置,应用于直接存储器访问DMA设备,所述装置包括:
优先级仲裁单元,用于确定待调度的多个任务中存在相同优先级的至少两个目标任务;
任务切分单元,用于将所述至少两个目标任务中的目标任务切分成多个子任务;将所述至少两个目标任务的多个子任务进行交织排序;
任务调度单元,用于通过目标数据通道对排序好的子任务进行交织调度;其中,所述目标数据通道为所述目标任务的优先级对应的数据通道。
第三方面,提供了一种DMA设备,包括:处理器和配置为存储能够在处理器上运行的计算机程序的存储器,其中,所述处理器配置为运行所述计算机程序时,执行前述方法的步骤。
第四方面,提供了一种计算机可读存储介质,其上存储有计算机程序,其中,该计算机程序被处理器执行时实现前述方法的步骤。
本申请实施例公开一种任务调度方法、装置、设备及存储介质,当遇到相同优先级的至少两个目标任务时,将至少两个目标任务切分成多个子任务,并行执行多个子任务,即实现了至少两个目标任务的并行执行,提高至少两个目标任务的整体处理效率。同时,相对于现有中等待一个任务执行结束后才启动下一个任务,本申请可以提前启动下一个任务,缩短至少两个目标任务的整体处理时延。
附图说明
图1为本申请实施例中任务调度方法的第一流程示意图;
图2为本申请实施例中任务调度方法的第二流程示意图;
图3为本申请实施例中任务调度方法的第三流程示意图;
图4为本申请实施例中直接存储器访问设备结构图;
图5为本申请实施例中任务切分工作流程示意图;
图6为本申请实施例中任务调度装置组成结构的示意图;
图7为本申请实施例中直接存储器访问设备组成结构的示意图。
具体实施方式
为了能够更加详尽地了解本申请实施例的特点与技术内容,下面结合附图对本申请实施例的实现进行详细阐述,所附附图仅供参考说明之用,并非用来限定本申请实施例。
需要说明的是,DMA是一种快速数据交换模式,它在不通过CPU且不需要CPU干扰的情况下,即可完成外部设备(如硬件加速器(Hardware Accelerator,HWA))和存储器(如共享随机存储器(Share Random Access Memory,SHRAM))之间的直接数据传输,且DMA执行数据传输过程中CPU可以执行其他任务。对于通过CPU执行外部设备与存储器之间的数据传输,是需要从外部设备将获取的数据复制到缓冲器中,再写入至存储器中,即并非直接传输,且数据传输过程中CPU无法执行其他任务。因此,相对于通过CPU执行数据的间接传输,DMA数据直接传输方式能够提高数据传输效率,同时,DMA执行数据传输过程中,可以很大程度上减小CPU资源占有率,节省***资源。
本申请实施例提供的任务调度方法,应用于直接存储器访问DMA设备。下面针对任务调度方法进行具体说明。
图1为本申请实施例中任务调度方法的第一流程示意图,如图1所示,该任务调度方法具体可以包括:
步骤101:确定待调度的多个任务中存在相同优先级的至少两个目标任务。
这里,预先对待调度的多个任务进行优先级配置。执行任务调度方法时,通过查询每个任务的优先级,以确定待调度的多个任务中是否存在相同优先级的至少两个目标任务,若存在,继续执行步骤102,若不存在,直接通过每个任务的优先级对应的数据通道执行任务调度。其中,相同优先级的至少两个目标任务,可理解为至少两个目标任务的任务调度时间相同。
步骤102:将所述至少两个目标任务中的目标任务切分成多个子任务。
现有中DMA设备遇到相同优先级任务的情况时,选择其中一个任务执行,确保当前任务执行结束后,再执行其余任务。若DMA设备此次任务搬移的数据量较大,则其余任务需要等待较长的时间才能执行,降低***处理效率,增加***时延。因此,本申请实施例在DMA设备中增加任务切分模块,通过任务切分模块将至少两个目标任务中每个目标任务切分成多个子任务,目的是使得相同优先级的多个子任务能够并行执行,进一步地,在进行外部设备与存储器之间的数据传输时,外部设备(如HWA)可以提前启动数据处理,达到缩短***时延,提高***处理效率的目的。
示例性的,在一些实施例中,在执行步骤102之前,所述方法还包括:获取每个目标任务的分块使能信息;确定所有目标任务的分块使能信息表征允许进行任务切分时,将所述至少两个目标任务中的目标任务切分成多个子任务。
需要说明的是,若至少两个目标任务中任意一个目标任务不进行任务切分,那势必存在至少一个目标任务需要连续性执行完任务才可执行其余子任务,即无法实现所有目标任务的并行执行。因此,为实现所有目标任务能够并行执行,在执行步骤102之前,需要确保所有目标任务均进行任务切分。本申请这里具体是根据对目标任务预先配置的分块使能信息,去判断该目标任务是否进行任务切分。确定所有目标任务进行任务切分时,将每个目标任务切分成多个子任务。
确定所有目标任务中至少一个目标任务不进行任务切分时,示例性的,在一些实施例中,对所有目标任务进行排序;通过所述目标数据通道对排序好的目标任务依次进行任务调度。
这里,可以根据目标任务的数据量对所有目标任务进行排序。也可以是其他,这里不具体限定。
也就是说,确定所有目标任务中至少一个目标任务不进行任务切分时,根据排序好的目标任务,依次对每个目标任务进行任务调度。
步骤103:将所述至少两个目标任务的多个子任务进行交织排序。
由于不同优先级任务对应不同数据通道,故这里的至少两个目标任务对应同一个数据通道即目标数据通道。因此,本申请实施例通过将所有目标任务的多个子任务进行交织排序,使得通过目标数据通道即可实现所有目标任务并行交织执行的目的。
示例性的,在一些实施例中,所述DMA设备包括任务切分缓冲器,所述任务切分缓冲器中包括多个子缓冲器,不同子缓冲器对应不同数据通道;步骤103具体可以包括:基于预设的交织顺序,将所述多个子任务交织存放至所述目标数据通道对应的子缓冲器中。
也就是说,按照预设的交织顺序,将多个子任务交织存放在子缓冲器中,实现对多个子任务的交织排序。
针对预设的交织顺序,示例性的,若存在三个相同优先级的目标任务,即目标任务1、目标任务2和目标任务3,目标任务1切分为子任务10、子任务11和子任务12,目标任务2切分为子任务20、子任务21和子任务22,目标任务3切分为子任务30、子任务31和子任务32,将目标任务1、目标任务2和目标任务3进行交织排序,例如子任务10、子任务20、子任务30、子任务11、子任务21、子任务31、子任务12、子任务22和子任务32。这里并不局限这一种交织排序结果,其余交织排序结果也可。
示例性的,在一些实施例中,按照预设的交织顺序获取子任务。即可以不进行子任务的存放,直接按照预设的交织顺序依次获取子任务,实现对多个子任务的交织排序。
步骤104:通过目标数据通道对排序好的子任务进行交织调度;其中,所述目标数据通道为所述目标任务的优先级对应的数据通道。
基于上述示例,首先通过目标数据通道对目标任务1的子任务10进行任务调度,其次通过目标数据通道对目标任务2的子任务20进行任务调度,再次通过目标数据通道对目标任务3的子任务30进行任务调度,…,最后通过目标数据通道对目标任务3的子任务32进行任务调度结束。即通过目标数据通道对排序好的子任务进行并行交织调度。
在一些实施例中,步骤104具体可以包括:基于子缓冲器中子任务存放顺序,从子缓冲器中获取子任务;通过目标数据通道对子任务进行任务调度。
也就是说,按照子任务存放顺序,依次从子缓冲器中获取子任务,对当前子任务进行任务调度结束后,再获取下一个子任务并对其进行任务调度,直至最后一个子任务进行任务调度结束。
这里,步骤101至步骤104的执行主体可以为DMA设备的处理器。
采用上述技术方案,当遇到相同优先级的至少两个目标任务时,将至少两个目标任务切分成多个子任务,并行执行多个子任务,即实现了至少两个目标任务的并行执行,提高至少两个目标任务的整体处理效率。同时,相对于现有中等待一个任务执行结束后才启动下一个任务,本申请可以提前启动下一个任务,缩短至少两个目标任务的整体处理时延。
基于上述实施例,本申请提供一种任务调度方法,图2为本申请实施例中任务调度方法的第二流程示意图,应用于DMA设备。
如图2所示,该任务调度方法具体可以包括:
步骤201:确定待调度的多个任务中存在相同优先级的至少两个目标任务。
步骤202:获取每个目标任务的分块使能信息。
分块使能信息用于表征是否对目标任务进行任务切分。
步骤203:基于分块使能信息判断是否对所有目标任务进行任务切分;若确定所有目标任务的分块使能信息表征允许进行任务切分,执行步骤204;若确定至少一个目标任务的分块使能信息表征不允许进行任务切分,执行步骤207。
步骤204:将至少两个目标任务中的目标任务切分成多个子任务。
步骤205:基于预设的交织顺序,将多个子任务交织存放至目标数据通道对应的子缓冲器中。
目标数据通道为目标任务的优先级对应的数据通道。
DMA设备包括任务切分缓冲器,任务切分缓冲器中包括多个子缓冲器,不同子缓冲器对应不同数据通道。
步骤206:按照子缓冲器中子任务存放顺序,通过目标数据通道对子任务进行交织调度。
步骤207:基于预设的排列顺序,将所有目标任务排序存放至目标数据通道对应的子缓冲器中。
步骤208:按照子缓冲器中目标任务存放顺序,通过目标数据通道对目标任务依次进行任务调度。
基于上述实施例,本申请实施例针对目标任务的切分,具体提供一种任务调度方法,图3为本申请实施例中任务调度方法的第三流程示意图,应用于DMA设备。
如图3所示,该任务调度方法具体可以包括:
步骤301:确定待调度的多个任务中存在相同优先级的至少两个目标任务。
这里,预先对待调度的多个任务进行优先级配置。执行任务调度方法时,通过查询每个任务的优先级,以确定待调度的多个任务中是否存在相同优先级的至少两个目标任务,若存在,继续执行步骤302,若不存在,直接通过每个任务的优先级对应的数据通道执行任务调度。其中,相同优先级的至少两个目标任务,可理解为至少两个目标任务的任务调度时间相同。
步骤302:获取目标任务的任务切分长度和第一任务数据长度。
任务切分长度为对目标任务进行切分的长度。第一任务数据长度为目标任务的数据长度。
步骤303:根据目标任务的任务切分长度,将目标任务的第一任务数据长度进行切分,得到目标任务的多段第二任务数据长度。
示例性的,若目标任务的第一任务数据长度为90,任务切分长度为30,则按照任务切分长度对目标任务进行任务切分,即将目标任务的第一任务数据长度切分为3段。
步骤304:基于目标任务的多段第二任务数据长度,生成目标任务切分后的多个子任务。
在一些实施例中,步骤304具体可以包括:获取目标任务进行任务调度的源地址和目的地址;基于目标任务的源地址、目的地址和所述第二任务数据长度,生成所述子任务。
示例性的,将目标任务1的第一任务数据长度切分为3段。目标任务1的源地址1、目的地址1和第一段第二任务数据长度生成子任务10;目标任务1的源地址1、目的地址1和第二段第二任务数据长度生成子任务11;目标任务1的源地址1、目的地址1和第三段第二任务数据长度生成子任务12。
步骤305:基于预设的交织顺序,将多个子任务交织存放至目标数据通道对应的子缓冲器中。
目标数据通道为目标任务的优先级对应的数据通道。
DMA设备包括任务切分缓冲器,任务切分缓冲器中包括多个子缓冲器,不同子缓冲器对应不同数据通道。
步骤306:按照子缓冲器中子任务存放顺序,通过目标数据通道对子任务进行交织调度。
在一些实施例中,所述子任务包括:所述目标任务的源地址、所述目标任务的目的地址和第二任务数据长度;步骤306具体可以包括:按照所述子缓冲器中子任务存放顺序,获取所述子任务;从所述目标任务的源地址对应的第一设备中获取所述第二任务数据长度对应的子任务数据;通过所述目标数据通道将所述子任务数据传输至所述目标任务的目的地址对应的第二设备。
具体的,获取第一设备所传输任务数据的初始位置信息,基于初始位置信息,从第一设备中获取第二任务数据长度对应的子任务数据,并记录子任务数据的结束位置信息,接下来,会再次基于上一次结束位置信息,继续获取下一部分子任务数据,以此类推。这里,第一设备可以是硬件加速器HWA,第二设备可以是共享随机存储器SHRAW。
采用上述技术方案,当遇到相同优先级的至少两个目标任务时,将至少两个目标任务切分成多个子任务,并行执行多个子任务,即实现了至少两个目标任务的并行执行,提高至少两个目标任务的整体处理效率。同时,相对于现有中等待一个任务执行结束后才启动下一个任务,本申请可以提前启动下一个任务,缩短至少两个目标任务的整体处理时延。
基于上述实施例,本申请实施例提供一种对相同优先级任务进行任务调度的直接存储器访问设备,图4为本申请实施例中直接存储器访问设备的结构示意图。
如图4所示,该直接存储器访问DMA设备包括:任务队列缓冲器40、优先级仲裁器41、任务切分模块42和数据通道模块44,其中,任务切分模块42包括任务切分缓冲器43;数据通道模块44中包括通道1、通道2…通道n。
预先对待调度的多个任务中每个任务配置信息,任务的配置信息包括源地址、目的地址、第一任务数据长度、分块使能信息、任务切分长度和优先级(图4中未示意)。
将待调度的多个任务缓存至任务队列缓冲器40中,即是将待调度的多个任务的配置信息缓存至任务队列缓冲器40。
优先级仲裁器41用于从任务队列缓冲器40中获取待调度的多个任务的优先级,并根据每个任务的优先级,以确定待调度的多个任务中是否存在相同优先级的至少两个目标任务,若存在,将相同优先级的至少两个目标任务传输至任务切分模块42;若不存在,将多个任务传输至数据通道模块44,通过每个任务的优先级对应的数据通道执行任务调度。
任务切分模块42用于根据每个目标任务的分块使能信息,确定所有目标任务的分块使能信息表征进行任务切分时,再根据每个目标任务的任务分块长度,将每个目标任务的第一任务数据长度进行切分,得到多段第二任务数据长度,每个目标任务的第二任务数据长度及对应的源地址和目的地址,生成每个目标任务切分后的一个子任务,将所有目标任务的多个子任务交织缓存至任务切分缓冲器43中目标数据通道对应的子缓冲器。
数据通道模块44从子缓冲器中获取子任务,从子任务所属的目标任务的源地址对应的第一设备(如硬件加速器HWA)中,获取第二任务数据长度对应的子任务数据,并通过目标数据通道(如通道2)将子任务数据传输至目的地址对应的第二设备(如共享随机存储器SHRAM)。
需要说明的是,在后续的应用中可以任意添加DMA的通道数,也可以灵活的修改任务切分模块42的仲裁算法及任务切分缓冲器43大小等,有很好的通用性。
基于上述实施例,本申请实施例具体针对任务切分模块42的工作流程进行说明,对待调度的多个任务配置的分块使能信息和任务切分长度,实际应用中,是在任务的配置信息(Config Message,CFM)中增加控制位域信号split_valid指示是否进行分块传输,若进行分块传输,则根据CFM中数据位域信号split_size指明分块数据量(即任务切分长度)。
图5为本申请实施例中任务切分工作流程示意图,如图5所示,具体可以包括:
步骤501:接收到相同优先级的至少两个目标任务,并读取所有目标任务的配置信息。
步骤502:判断所有目标任务的配置信息中split_valid位域是否均生效;若均生效,执行步骤503;若存在至少一个split_valid位域未生效,执行步骤506。
步骤503:根据配置信息中split_size对所有目标任务进行切分,得到多个子任务。
步骤504:基于预设的交织顺序,将多个子任务交织存放至目标数据通道对应的子缓冲器中。
目标数据通道为目标任务的优先级对应的数据通道。
DMA设备包括任务切分缓冲器,任务切分缓冲器中包括多个子缓冲器,不同子缓冲器对应不同数据通道。
步骤505:按照子缓冲器中子任务存放顺序,通过目标数据通道对子任务进行交织调度。
步骤506:基于预设的排列顺序,将所有目标任务排序存放至目标数据通道对应的子缓冲器中。
步骤507:按照子缓冲器中目标任务存放顺序,通过目标数据通道对目标任务依次进行任务调度。
为实现本申请实施例的方法,基于同一发明构思,本申请实施例中还提供了一种任务调度装置,图6为本申请实施例中任务调度装置的组成结构示意图,应用于直接存储器访问DMA设备,如图6所示,该任务调度装置60包括:
优先级仲裁单元601,用于确定待调度的多个任务中存在相同优先级的至少两个目标任务;
任务切分单元602,用于将所述至少两个目标任务中的目标任务切分成多个子任务;将所述至少两个目标任务的多个子任务进行交织排序;
任务调度单元603,用于通过目标数据通道对排序好的子任务进行交织调度;其中,所述目标数据通道为所述目标任务的优先级对应的数据通道。
采用上述技术方案,当遇到相同优先级的至少两个目标任务时,将至少两个目标任务切分成多个子任务,并行执行多个子任务,即实现了至少两个目标任务的并行执行,提高至少两个目标任务的整体处理效率。同时,相对于现有中等待一个任务执行结束后才启动下一个任务,本申请可以提前启动下一个任务,缩短至少两个目标任务的整体处理时延。
在一些实施例中,任务切分单元602,具体用于获取每个目标任务的分块使能信息;确定所有目标任务的分块使能信息表征允许进行任务切分时,将所述至少两个目标任务中的目标任务切分成多个子任务。
在一些实施例中,任务切分单元602,具体用于确定至少一个目标任务的分块使能信息表征不允许进行任务切分时,对所有目标任务进行排序;任务调度单元603,还用于通过所述目标数据通道对排序好的目标任务依次进行任务调度。
在一些实施例中,任务切分单元602,具体还用于获取所述目标任务的任务切分长度和第一任务数据长度;根据所述目标任务的任务切分长度,将所述目标任务的第一任务数据长度进行切分,得到所述目标任务的多段第二任务数据长度;基于所述目标任务的多段第二任务数据长度,生成所述目标任务切分后的多个子任务。
在一些实施例中,任务切分单元602,具体还用于获取所述目标任务进行任务调度的源地址和目的地址;基于所述目标任务的源地址、目的地址和所述第二任务数据长度,生成所述子任务。
在一些实施例中,所述DMA设备包括任务切分缓冲器,所述任务切分缓冲器中包括多个子缓冲器,不同子缓冲器对应不同数据通道;任务切分单元602,具体还用于基于预设的交织顺序,将所述多个子任务交织存放至所述目标数据通道对应的子缓冲器中。
在一些实施例中,所述子任务包括:所述目标任务的源地址、所述目标任务的目的地址和第二任务数据长度;任务调度单元603,具体还用于从所述目标任务的源地址对应的第一设备中,获取所述第二任务数据长度对应的子任务数据;通过所述目标数据通道将所述子任务数据传输至所述目标任务的目的地址对应的第二设备。
本申请实施例还提供了另一种直接存储器访问设备,图7为本申请实施例中直接存储器访问设备组成结构的示意图,如图7所示,该直接存储器访问设备70包括:处理器701和配置为存储能够在处理器上运行的计算机程序的存储器702;
其中,处理器701配置为运行计算机程序时,执行前述实施例中的方法步骤。
当然,实际应用时,如图7所示,该直接存储器访问设备中的各个组件通过总线***703耦合在一起。可理解,总线***703用于实现这些组件之间的连接通信。总线***703除包括数据总线之外,还包括电源总线、控制总线和状态信号总线。但是为了清楚说明起见,在图7中将各种总线都标为总线***703。
在实际应用中,上述处理器可以为特定用途集成电路(ASIC,ApplicationSpecific Integrated Circuit)、数字信号处理装置(DSPD,Digital Signal ProcessingDevice)、可编程逻辑装置(PLD,Programmable Logic Device)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)、控制器、微控制器、微处理器中的至少一种。可以理解地,对于不同的设备,用于实现上述处理器功能的电子器件还可以为其它,本申请实施例不作具体限定。
上述存储器可以是易失性存储器(volatile memory),例如随机存取存储器(RAM,Random-Access Memory);或者非易失性存储器(non-volatile memory),例如只读存储器(ROM,Read-Only Memory),快闪存储器(flash memory),硬盘(HDD,Hard Disk Drive)或固态硬盘(SSD,Solid-State Drive);或者上述种类的存储器的组合,并向处理器提供指令和数据。
在示例性实施例中,本申请实施例还提供了一种计算机可读存储介质,用于存储计算机程序。
可选的,该计算机可读存储介质可应用于本申请实施例中的任意一种方法,并且该计算机程序使得计算机执行本申请实施例的各个方法中由处理器实现的相应流程,为了简洁,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的设备和方法,可以通过其它的方式实现。以上所描述的设备实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,如:多个单元或组件可以结合,或可以集成到另一个***,或一些特征可以忽略,或不执行。另外,所显示或讨论的各组成部分相互之间的耦合、或直接耦合、或通信连接可以是通过一些接口,设备或单元的间接耦合或通信连接,可以是电性的、机械的或其它形式的。
上述作为分离部件说明的单元可以是、或也可以不是物理上分开的,作为单元显示的部件可以是、或也可以不是物理单元,即可以位于一个地方,也可以分布到多个网络单元上;可以根据实际的需要选择其中的部分或全部单元来实现本实施例方案的目的。
另外,在本发明各实施例中的各功能单元可以全部集成在一个处理模块中,也可以是各单元分别单独作为一个单元,也可以两个或两个以上单元集成在一个单元中;上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:移动存储设备、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
本申请所提供的几个方法实施例中所揭露的方法,在不冲突的情况下可以任意组合,得到新的方法实施例。
本申请所提供的几个产品实施例中所揭露的特征,在不冲突的情况下可以任意组合,得到新的产品实施例。
本申请所提供的几个方法或设备实施例中所揭露的特征,在不冲突的情况下可以任意组合,得到新的方法实施例或设备实施例。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。

Claims (10)

1.一种任务调度方法,应用于直接存储器访问DMA设备,其特征在于,所述方法包括:
确定待调度的多个任务中存在相同优先级的至少两个目标任务;
将所述至少两个目标任务中的目标任务切分成多个子任务;
将所述至少两个目标任务的多个子任务进行交织排序;
通过目标数据通道对排序好的子任务进行交织调度;其中,所述目标数据通道为所述目标任务的优先级对应的数据通道。
2.根据权利要求1所述的方法,其特征在于,所述将所述至少两个目标任务中的目标任务切分成多个子任务之前,所述方法还包括:
获取每个目标任务的分块使能信息;
确定所有目标任务的分块使能信息表征允许进行任务切分时,将所述至少两个目标任务中的目标任务切分成多个子任务。
3.根据权利要求2所述的方法,其特征在于,所述方法还包括:
确定至少一个目标任务的分块使能信息表征不允许进行任务切分时,对所有目标任务进行排序;
通过所述目标数据通道对排序好的目标任务依次进行任务调度。
4.根据权利要求1所述的方法,其特征在于,所述将所述至少两个目标任务中的目标任务切分成多个子任务,包括:
获取所述目标任务的任务切分长度和第一任务数据长度;
根据所述目标任务的任务切分长度,将所述目标任务的第一任务数据长度进行切分,得到所述目标任务的多段第二任务数据长度;
基于所述目标任务的多段第二任务数据长度,生成所述目标任务切分后的多个子任务。
5.根据权利要求4所述的方法,其特征在于,所述基于所述目标任务的多段第二任务数据长度,生成所述目标任务切分后的多个子任务,包括:
获取所述目标任务进行任务调度的源地址和目的地址;
基于所述目标任务的源地址、目的地址和所述第二任务数据长度,生成所述子任务。
6.根据权利要求1所述的方法,其特征在于,所述DMA设备包括任务切分缓冲器,所述任务切分缓冲器中包括多个子缓冲器,不同子缓冲器对应不同数据通道;
所述将所述至少两个目标任务的多个子任务进行交织排序,包括:
基于预设的交织顺序,将所述多个子任务交织存放至所述目标数据通道对应的子缓冲器中。
7.根据权利要求6所述的方法,其特征在于,所述子任务包括:所述目标任务的源地址、所述目标任务的目的地址和第二任务数据长度;所述通过目标数据通道对排序好的子任务进行交织调度,包括:
按照所述子缓冲器中子任务存放顺序,获取所述子任务;
从所述目标任务的源地址对应的第一设备中,获取所述第二任务数据长度对应的子任务数据;
通过所述目标数据通道将所述子任务数据传输至所述目标任务的目的地址对应的第二设备。
8.一种任务调度装置,应用于直接存储器访问DMA设备,其特征在于,所述装置包括:
优先级仲裁单元,用于确定待调度的多个任务中存在相同优先级的至少两个目标任务;
任务切分单元,用于将所述至少两个目标任务中的目标任务切分成多个子任务;将所述至少两个目标任务的多个子任务进行交织排序;
任务调度单元,用于通过目标数据通道对排序好的子任务进行交织调度;其中,所述目标数据通道为所述目标任务的优先级对应的数据通道。
9.一种DMA设备,其特征在于,所述DMA设备包括:处理器和配置为存储能够在处理器上运行的计算机程序的存储器,
其中,所述处理器配置为运行所述计算机程序时,执行权利要求1至7任一项所述方法的步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该计算机程序被处理器执行时实现权利要求1至7任一项所述的方法的步骤。
CN202210388036.6A 2022-04-13 2022-04-13 一种任务调度方法、装置、设备及存储介质 Pending CN114780215A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210388036.6A CN114780215A (zh) 2022-04-13 2022-04-13 一种任务调度方法、装置、设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210388036.6A CN114780215A (zh) 2022-04-13 2022-04-13 一种任务调度方法、装置、设备及存储介质

Publications (1)

Publication Number Publication Date
CN114780215A true CN114780215A (zh) 2022-07-22

Family

ID=82429602

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210388036.6A Pending CN114780215A (zh) 2022-04-13 2022-04-13 一种任务调度方法、装置、设备及存储介质

Country Status (1)

Country Link
CN (1) CN114780215A (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115964155A (zh) * 2023-03-16 2023-04-14 燧原智能科技(成都)有限公司 芯片内数据处理硬件、芯片内数据处理方法及ai平台
CN118199810A (zh) * 2024-05-13 2024-06-14 中移(苏州)软件技术有限公司 一种数据处理方法及装置、电子设备和存储介质

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115964155A (zh) * 2023-03-16 2023-04-14 燧原智能科技(成都)有限公司 芯片内数据处理硬件、芯片内数据处理方法及ai平台
CN115964155B (zh) * 2023-03-16 2023-05-30 燧原智能科技(成都)有限公司 芯片内数据处理硬件、芯片内数据处理方法及ai平台
CN118199810A (zh) * 2024-05-13 2024-06-14 中移(苏州)软件技术有限公司 一种数据处理方法及装置、电子设备和存储介质

Similar Documents

Publication Publication Date Title
US11144323B2 (en) Independent mapping of threads
CN105511954B (zh) 一种报文处理方法及装置
TWI229806B (en) Method and system for data flow control of execution nodes of an adaptive computing engine (ACE)
CN114780215A (zh) 一种任务调度方法、装置、设备及存储介质
CN109684099B (zh) 消息处理方法及装置
US10033527B2 (en) Dual-mode processing of cryptographic operations
CN113918101B (zh) 一种写数据高速缓存的方法、***、设备和存储介质
US20200210815A1 (en) Output method and apparatus for multiple neural network, server and computer readable storage medium
KR102594657B1 (ko) 비순차적 리소스 할당을 구현하는 방법 및 장치
US10534563B2 (en) Method and system for handling an asynchronous event request command in a solid-state drive
US11210127B2 (en) Method and apparatus for processing request
CN110413210B (zh) 用于处理数据的方法、设备和计算机程序产品
US20200409878A1 (en) Method, apparatus and computer program product for processing i/o request
CN114546606A (zh) 非易失性存储器存储模块及其操作方法
CN111625180A (zh) 数据写入方法及装置、存储介质
WO2024103927A1 (zh) 混合部署场景下的作业调度方法、装置及电子设备
US9703614B2 (en) Managing a free list of resources to decrease control complexity and reduce power consumption
US20080147906A1 (en) DMA Transferring System, DMA Controller, and DMA Transferring Method
US20210141535A1 (en) Accelerating memory compression of a physically scattered buffer
CN113821157B (zh) 一种本地磁盘挂载方法、装置、设备及存储介质
JP4212508B2 (ja) パケット生成装置
CN110764710B (zh) 低延迟高iops的数据访问方法与存储***
CN113535338A (zh) 用于数据接入的交互方法、***、存储介质及电子设备
JP2005258509A (ja) ストレージ装置
CN115599287A (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