CN111158875B - 基于多模块的多任务处理方法、装置及系统 - Google Patents

基于多模块的多任务处理方法、装置及系统 Download PDF

Info

Publication number
CN111158875B
CN111158875B CN201911361100.6A CN201911361100A CN111158875B CN 111158875 B CN111158875 B CN 111158875B CN 201911361100 A CN201911361100 A CN 201911361100A CN 111158875 B CN111158875 B CN 111158875B
Authority
CN
China
Prior art keywords
task
hardware module
module
command
tasks
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
Application number
CN201911361100.6A
Other languages
English (en)
Other versions
CN111158875A (zh
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.)
Mouxin Technology Shanghai Co ltd
Original Assignee
Mouxin Technology Shanghai Co 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 Mouxin Technology Shanghai Co ltd filed Critical Mouxin Technology Shanghai Co ltd
Priority to CN201911361100.6A priority Critical patent/CN111158875B/zh
Publication of CN111158875A publication Critical patent/CN111158875A/zh
Application granted granted Critical
Publication of CN111158875B publication Critical patent/CN111158875B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本发明公开了基于多模块的多任务处理方法、装置及系统,涉及计算机多任务处理技术领域。所述方法包括步骤:将每个任务中的命令按照所请求的硬件模块构建硬件模块任务表,所述任务之间互不依赖;根据任务表为各硬件模块分配待处理的任务;硬件模块执行各自的任务,当执行的任务中包括多个命令时,切换到双寄存器模式;在所述双寄存器模式下,每个硬件模块包括两组寄存器,一组寄存器执行当前命令时另一组寄存器获取下一个命令的配置参数进行寄存器配置,第一个命令执行完成时硬件模块切换到另一种组寄存器执行下一个命令。本发明使得硬件模块能够在最大性能下进行工作,节省了处理流程调度和配置寄存器参数的耗时。

Description

基于多模块的多任务处理方法、装置及系统
技术领域
本发明涉及计算机多任务处理技术领域。
背景技术
在芯片开发过程中,设计人员需要从实际应用的角度考虑,设计出满足应用需求的芯片。在实际应用中,通常会遇到多个任务同时请求硬件处理的需求,每个任务一般会包含一个或多个操作(命令),一般会需要一个或多个模块处理完成。
当前,多任务处理通常是按照提交任务的先后顺序处理,并依次处理任务所包含的命令,参见图1所示。处理每个命令前,需先按照命令设置的参数配置处理此命令所依赖的硬件模块寄存器,然后启动相应的硬件模块执行,此命令处理完成后,处理下一个命令。在某一硬件模块执行时,其他模块闲置。上述串行处理方式耗时比较长,因为任务处理流程需要调度和配置寄存器参数,上述消耗的时间不可避免。
现有技术中,也提出了多任务并行处理的技术方案,并行处理方法概括如下:进行时间周期的划分,按照任务执行掩码和时间调度实现多任务序列的并行运行,各任务模块不需要进行抢占、不需进行切换。上述方案的优点在于:时间可预测性好、系统稳点,方便实时修改任务序列,但其存在如下缺陷:需要预先进行时间周期的划分建立时间调度周期表。另一中国专利申请CN201580074343.5也公开了一种用于加速任务控制流的方法,其公开了通过配置计算设备以智能地标识任务链,在任务链中,每个任务依赖于一个前驱任务和/或具有一个依赖性后继任务,以及当执行包括在标识的链中的任务时放弃执行调度或控制流的转移操作。从而加速在链中任务之间的控制流的转移(例如从任务A到任务B),提高执行任务并行程序的性能和能效。但上述方案仅适用于任务之间相互依赖的任务链。
发明内容
本发明的目的在于:克服现有技术的不足,提供了一种基于多模块的多任务处理方法、装置及系统。本发明针对硬件模块设置双寄存器模式(或称pingpang模式),即两组寄存器,一组寄存器执行一组寄存器准备,两组寄存器切换使用,使得硬件模块能够在最大性能下进行工作,节省了处理流程调度和配置寄存器参数的耗时,更好地满足实时性要求。
为实现上述目标,本发明提供了如下技术方案:
一种基于多模块的多任务处理方法,包括步骤:
步骤100,采集任务信息,将每个任务中的命令按照所请求的硬件模块构建硬件模块任务表;所述任务表包括多个硬件模块和多个任务,任务之间互不依赖;
步骤200,根据前述任务表,为各硬件模块分配待处理的任务;
步骤300,硬件模块执行各自的任务,当执行的任务中包括多个命令时,切换到双寄存器模式;在所述双寄存器模式下,每个硬件模块包括两组寄存器,一组寄存器执行当前第一个命令时另一组寄存器获取下一个命令的配置参数进行寄存器配置,前述第一个命令执行完成时硬件模块切换到另一种组寄存器执行前述下一个命令。
进一步,步骤100中,所述任务表中,每个任务包括一个或多个命令;
当一个任务包括多个命令时,对需要同一硬件模块处理的多个连续命令设置为同一task级并构建命令队列,对需要不同硬件模块处理的多个命令设置为不同task级。
进一步,步骤200中,为各硬件模块分配待处理的任务的步骤包括,
根据任务表,为所有硬件模块查找对应的待处理的task;
根据任务优先级和任务提交时间,找到各硬件模块当前需要执行的task,并将其配置参数设置到DDR中;
将配置参数在DDR的地址设置到相关硬件模块的参数地址寄存器中,同时根据task的命令队列获取命令个数值后将该值设到相关寄存器中,启动硬件模块处理;
在硬件模块处理前述task过程中,为硬件模块查找下一个task,并则将该下一个task所需的配置参数设置到DDR中;
硬件模块处理完成前述task时,在中断处理函数中启动硬件模块处理前述下一个task,直至任务中的所有task处理完成。
进一步,硬件模块执行各自的任务的步骤包括,
对于每个硬件模块对应的每个task,判断task对应的命令个数是否大于1,判定为是时,切换到硬件模块双寄存器模式进行任务处理,否则根据对应的任务配置寄存器并启动硬件模块进行处理。
进一步,一个任务中的所有task处理完成时,将该任务标记为完成状态,否则标记为待处理状态。
本发明还提供了一种基于多模块的多任务处理装置,包括:
任务表构建模块,用以采集任务信息,将每个任务中的命令按照所请求的硬件模块构建硬件模块任务表;所述任务表包括多个硬件模块和多个任务,任务之间互不依赖;
任务分配模块,用以根据前述任务表,为各硬件模块分配待处理的任务;
任务执行模块,用以控制硬件模块执行各自的任务,当执行的任务中包括多个命令时,切换到双寄存器模式;在所述双寄存器模式下,每个硬件模块包括两组寄存器,一组寄存器执行当前第一个命令时另一组寄存器获取下一个命令的配置参数进行寄存器配置,前述第一个命令执行完成时硬件模块切换到另一种组寄存器执行前述下一个命令。
进一步,所述任务表包括任务字段和task字段;
当一个任务包括多个命令时,对需要同一硬件模块处理的多个命令设置为同一task级并构建命令队列;
对需要不同硬件模块处理的多个命令设置为不同task级。
进一步,任务分配模块包括,
task查找子模块,用以为所有硬件模块查找对应的待处理的task;
task配置子模块,用以根据任务优先级和任务提交时间,找到各硬件模块当前需要执行的task,并将其配置参数设置到DDR中;
处理子模块,用以将配置参数在DDR的地址设置到相关硬件模块的参数地址寄存器中,同时根据task的命令队列获取命令个数值后将该值设到相关寄存器中,启动硬件模块处理;以及在硬件模块处理前述task过程中,为硬件模块查找下一个task,并则将该下一个task所需的配置参数设置到DDR中;以及在硬件模块处理完成前述task时,在中断处理函数中启动硬件模块处理前述下一个task,直至任务中的所有task处理完成。
本发明还提供了一种基于多模块的多任务处理系统,包括:
硬件控制模块,用以采集任务信息,将每个任务中的命令按照所请求的硬件模块构建硬件模块任务表,所述任务表包括多个硬件模块和多个任务,任务之间互不依赖;以及根据前述任务表,为各硬件模块分配待处理的任务,当执行的任务中包括多个命令时,将硬件模块切换到双寄存器模式;在所述双寄存器模式下,每个硬件模块包括两组寄存器,一组寄存器执行当前第一个命令时另一组寄存器获取下一个命令的配置参数进行寄存器配置,前述第一个命令执行完成时硬件模块切换到另一种组寄存器执行前述下一个命令;
硬件模块,用以响应于硬件控制模块的控制执行任务。
本发明由于采用以上技术方案,与现有技术相比,作为举例,具有以下的优点和积极效果:本发明针对硬件模块设置双寄存器模式(或称pingpang模式),即两组寄存器,一组寄存器执行一组寄存器准备,两组寄存器切换使用;进一步,还支持直接访问DDR读取寄存器配置参数(package模式),支持多个命令的配置参数偏移设置到DDR(command queue模式),在DDR中多个command的配置参数依次按一定偏移进行排列,启动硬件处理后,硬件依次执行。硬件模块最大性能最高效的工作,节省了处理流程调度和配置寄存器参数的耗时,从而可更好地满足实时性要求。
附图说明
图1为现有技术中的任务串行处理方式的时序图。
图2为本发明实施例提供的任务表的字段示例图。
图3为本发明实施例提供的基于多模块的多任务处理的时序图。
图4为本发明实施例提供的pingpang模式下的任务处理流程图。
具体实施方式
以下结合附图和具体实施例对本发明公开的基于多模块的多任务处理方法、装置及系统作进一步详细说明。应当注意的是,下述实施例中描述的技术特征或者技术特征的组合不应当被认为是孤立的,它们可以被相互组合从而达到更好的技术效果。在下述实施例的附图中,各附图所出现的相同标号代表相同的特征或者部件,可应用于不同实施例中。因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步讨论。
需说明的是,本说明书所附图中所绘示的结构、比例、大小等,均仅用以配合说明书所揭示的内容,以供熟悉此技术的人士了解与阅读,并非用以限定发明可实施的限定条件,任何结构的修饰、比例关系的改变或大小的调整,在不影响发明所能产生的功效及所能达成的目的下,均应落在发明所揭示的技术内容所能涵盖的范围内。本发明的优选实施方式的范围包括另外的实现,其中可以不按所述的或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能,这应被本发明的实施例所属技术领域的技术人员所理解。
对于相关领域普通技术人员已知的技术、方法和设备可能不作详细讨论,但在适当情况下,所述技术、方法和设备应当被视为授权说明书的一部分。在这里示出和讨论的所有示例中,任何具体值应被解释为仅仅是示例性的,而不是作为限制。因此,示例性实施例的其它示例可以具有不同的值。
实施例
一种基于多模块的多任务处理方法,包括如下步骤:
步骤100,采集任务信息,将每个任务中的命令按照所请求的硬件模块构建硬件模块任务表。所述任务表包括多个硬件模块和多个任务,任务之间互不依赖。
首先,构建任务表。多个任务请求处理时,将每个任务中的命令(或称操作)按照所依赖的硬件模块的信息,构建基于硬件模块的任务表,任务表中记录有各任务信息。
本实施例中,任务之间互不依赖。所述任务表中,每个任务可以包括一个或多个命令。当一个任务包括多个命令时,对需要同一硬件模块处理的多个连续命令设置为同一task级并构建命令队列,对需要不同硬件模块处理的多个命令设置为不同task级。
不同级的task之间具有依赖关系,即排在后面的task中的命令需要其依赖其前面的task中的命令来完成。作为举例而非限制,比如task2中的命令3执行时,需要依赖其前面的task0中的命令1的处理结果和/或其前面的task1中的命令2的处理结果。
作为举例而非限制,参见图2所示,示例了任务表的字段信息。用户请求的任务包括任务0,任务1和任务2。
所述任务0包括3个命令cmd0,cmd1和cmd2,作为举例而非限制,各命令信息如下:
cmd0,图像格式转换,需要请求硬件模块A进行处理;
cmd1,缩放处理,需要请求硬件模块A进行处理;
cmd2,画线处理,需要请求硬件模块B进行处理。
任务0的提交时间最早,优先级级别为一般。
所述任务1包括3个命令cmd0,cmd1和cmd2,作为举例而非限制,各命令信息如下:
cmd0,图像数据复制到另一地址,需要请求硬件模块B进行处理;
cmd1,缩放处理,需要请求硬件模块A进行处理;
cmd2,画线处理,需要请求硬件模块B进行处理。
任务1的提交时间位于任务0的后面,排第二,优先级级别为一般。
所述任务2包括3个命令cmd0,cmd1和cmd2,作为举例而非限制,各命令信息如下:
cmd0,图像格式转换,需要请求硬件模块A进行处理;
cmd1,缩放处理,需要请求硬件模块A进行处理;
cmd2,融合处理,需要请求硬件模块A进行处理。
任务2的提交时间位于任务1的后面,排第三,优先级级别为最高。
前述任务0,任务1和任务2之间互不依赖。
任务0,任务1和任务2均包括3个命令(操作),本实施例中,对需要同一硬件模块处理的多个连续命令设置为同一task级并构建命令队列,对需要不同硬件模块处理的多个命令设置为不同task级。
具体的,继续参见图2所示。任务0对应的3个命令cmd0,cmd1和cmd2被分为2个task级,请求硬件模块A处理的2个连续命令md0和cmd1设置为task0,请求硬件模块B处理的命令cmd2设置为task1。
任务1对应的3个命令cmd0,cmd1和cmd2被分为3个task级,请求硬件模块B处理的命令cmd0设置为task0,请求硬件模块A处理的命令cmd1设置为task1;请求硬件模块B处理的命令md2设置为task2。
任务2对应的3个命令cmd0,cmd1和cmd2被分为1个task级,均请求硬件模块A处理的3个连续命令md0,cmd1和cmd2设置为task0。
本实施例中,为每个任务中处于同一task级的多个命令构建命令队列。在所述命令队列中,对前述多个命令进行排序。
对应的,设置有command queue模式(或称命令排队模式)。在判定同一任务中包含处于同一task级的多个命令时,触发command queue模式,以对前述多个命令进行排序。
比如,前述任务0中,task0中的cmd0和cmd1都需使用硬件模块A处理,则cmd0和cmd1使用command queue模式,并设置command num=2;task1中cmd2需使用硬件模块B处理,设置command num为1。
所述任务0中,task1中的命令需要依赖task0中的命令。
任务1中,task0中cmd0需使用硬件模块B处理,设置command num为1;task1中cmd1需使用硬件模块A处理,设置command num为1;task2中cmd2需使用硬件模块B处理,设置command num为1。
所述任务1中,cmd2需要依赖cmd1即(task 2需要依赖task1),cmd1需要依赖cmd0(即task 1需要依赖task 0),每个任务中的命令需依次执行,无法使用command queue模式。
任务2中,cmd0、cmd1、cmd2均需使用硬件模块A,使用command queue模式,commandnum为3。
所述任务1中,只有1个task0。
本实施例中,随着新的任务请求的提交,还需要实时对前述任务表进行更新。
步骤200,根据前述任务表,为各硬件模块分配待处理的任务。
优选的,为各硬件模块分配待处理的任务的步骤包括,
根据任务表,为所有硬件模块查找对应的待处理的task;
根据任务优先级和任务提交时间,找到各硬件模块当前需要执行的task,并将其配置参数设置到DDR中;
将配置参数在DDR的地址设置到相关硬件模块的参数地址寄存器中,同时根据task的命令队列获取命令个数值后将该值设到相关寄存器中,启动硬件模块处理;
在硬件模块处理前述task过程中,为硬件模块查找下一个task,并则将该下一个task所需的配置参数设置到DDR中;
硬件模块处理完成前述task时,在中断处理函数中启动硬件模块处理前述下一个task,直至任务中的所有task处理完成。
以前面的任务表为例,参见图3所示,示例了为各硬件模块分配待处理的任务信息。
软件控制流程为所有相关硬件模块——硬件模块A和硬件模块B——查找所有提交任务中的待处理的task,根据任务优先级和任务提交时间,找到各硬件模块最先需要执行的task,并将其配置参数设置到DDR。
本实施例中,硬件支持package模式,只需要将配置参数在DDR的地址设置到相关硬件模块的参数地址寄存器中,将command num设置到相关寄存器中,启动硬件模块处理即可。
所述软件控制流程在硬件模块执行过程中,还可以为每个硬件模块查找下一个待处理的task。如果找到,则将下一个task处理所需的配置参数设置到DDR。待硬件模块处理完成当前task时,在中断处理函数中启动硬件模块处理前述下一个task。
直到任务中的所有task都处理完成。此时,可以将该任务标记为完成状态。即一个任务中的所有task处理完成时,将该任务标记为完成状态,否则标记为待处理状态。
步骤300,硬件模块执行各自的任务,当执行的任务中包括多个命令时,切换到双寄存器模式;在所述双寄存器模式下,每个硬件模块包括两组寄存器,一组寄存器执行当前第一个命令时另一组寄存器获取下一个命令的配置参数进行寄存器配置,前述第一个命令执行完成时硬件模块切换到另一种组寄存器执行前述下一个命令。
本实施例中,硬件模块执行各自的任务的步骤包括:对于每个硬件模块对应的每个task,判断task对应的命令个数是否大于1,判定为是时,切换到硬件模块双寄存器模式进行任务处理,否则根据对应的任务配置寄存器并启动硬件模块进行处理。
仍以前面示例的任务表为例,以任务0为例,对于task0,其包括cmd0和cmd1。command num=2,即command num大于1,触发硬件模块A执行双寄存器模式(即pingpang模式)。再比如,前述任务2中,task0包括cmd0,cmd1和cmd2,command num=3,即command num大于1,触发硬件模块A执行双寄存器模式(即pingpang模式)。
结合图4进行描述,触发双寄存器模式后的步骤如下:
S310,硬件模块A读取DDR中command queue中的第一组配置参数,配置到第一组硬件寄存器,并启动执行,此时可以将前述硬件寄存器状态标记为执行状态。
S320,第一组硬件寄存器执行过程中,硬件模块A继续读取DDR中command queue中的第二组配置参数,配置到第二组硬件寄存器。
S330,硬件模块A执行完第一组硬件寄存器的处理,将其标记为准备状态,并自动切换到第二组硬件寄存器执行,并将其标记为执行状态。
以此类推,通过第一组硬件寄存器和第二组硬件寄存器的轮流切换,直至完成所有命令。
上述实施例,通过设置硬件模块的pingpang模式,节省了硬件执行过程中内部寄存器设置的时间,提供了依赖多硬件模块的多任务处理效率。
本发明的另一实施例,还提供了一种基于多模块的多任务处理装置。
所述装置包括如下结构:
任务表构建模块,用以采集任务信息,将每个任务中的命令按照所请求的硬件模块构建硬件模块任务表;所述任务表包括多个硬件模块和多个任务,任务之间互不依赖。
任务分配模块,用以根据前述任务表,为各硬件模块分配待处理的任务。
任务执行模块,用以控制硬件模块执行各自的任务,当执行的任务中包括多个命令时,切换到双寄存器模式;在所述双寄存器模式下,每个硬件模块包括两组寄存器,一组寄存器执行当前第一个命令时另一组寄存器获取下一个命令的配置参数进行寄存器配置,前述第一个命令执行完成时硬件模块切换到另一种组寄存器执行前述下一个命令。
本实施例中,多个任务请求处理时,将每个任务中的命令按照所依赖的硬件模块的信息,构建基于硬件模块的任务表,任务表中记录有各任务信息。
本实施例中,任务之间互不依赖。所述任务表中,每个任务可以包括一个或多个命令。当一个任务包括多个命令时,对需要同一硬件模块处理的多个连续命令设置为同一task级并构建命令队列,对需要不同硬件模块处理的多个命令设置为不同task级。
不同级的task之间具有依赖关系,即排在后面的task中的命令需要其依赖其前面的task中的命令来完成。作为举例而非限制,比如task2中的命令3执行时,需要依赖其前面的task0中的命令1的处理结果和/或其前面的task1中的命令2的处理结果。
具体设置时,所述任务分配模块可以包括如下结构:
task查找子模块,用以为所有硬件模块查找对应的待处理的task;
task配置子模块,用以根据任务优先级和任务提交时间,找到各硬件模块当前需要执行的task,并将其配置参数设置到DDR中;
处理子模块,用以将配置参数在DDR的地址设置到相关硬件模块的参数地址寄存器中,同时根据task的命令队列获取命令个数值后将该值设到相关寄存器中,启动硬件模块处理;以及在硬件模块处理前述task过程中,为硬件模块查找下一个task,并则将该下一个task所需的配置参数设置到DDR中;以及在硬件模块处理完成前述task时,在中断处理函数中启动硬件模块处理前述下一个task,直至任务中的所有task处理完成。
其它技术特征参见在前实施例的描述,在此不再赘述。
本发明的另一实施例,还提供了一种基于多模块的多任务处理系统,包括硬件控制模块和硬件模块。
所述硬件控制模块被配置为:
采集任务信息,将每个任务中的命令按照所请求的硬件模块构建硬件模块任务表;
以及,根据前述任务表,为各硬件模块分配待处理的任务,当执行的任务中包括多个命令时,将硬件模块切换到双寄存器模式。在所述双寄存器模式下,每个硬件模块包括两组寄存器,一组寄存器执行当前第一个命令时另一组寄存器获取下一个命令的配置参数进行寄存器配置,前述第一个命令执行完成时硬件模块切换到另一种组寄存器执行前述下一个命令。
本实施例中,所述任务之间互不依赖。所述任务表中,每个任务可以包括一个或多个命令。当一个任务包括多个命令时,对需要同一硬件模块处理的多个连续命令设置为同一task级并构建命令队列,对需要不同硬件模块处理的多个命令设置为不同task级。
不同级的task之间具有依赖关系,即排在后面的task中的命令需要其依赖其前面的task中的命令来完成。作为举例而非限制,比如task2中的命令3执行时,需要依赖其前面的task0中的命令1的处理结果和/或其前面的task1中的命令2的处理结果。
所述硬件模块,用以响应于硬件控制模块的控制执行任务。
所述硬件控制模块可以通过软件和/或硬件实现。本实施例中,优选的通过软件实现。具体设置时,所述硬件控制模块可以包括如下结构:
task查找子模块,用以为所有硬件模块查找对应的待处理的task;
task配置子模块,用以根据任务优先级和任务提交时间,找到各硬件模块当前需要执行的task,并将其配置参数设置到DDR中;
处理子模块,用以将配置参数在DDR的地址设置到相关硬件模块的参数地址寄存器中,同时根据task的命令队列获取命令个数值后将该值设到相关寄存器中,启动硬件模块处理;以及,在硬件模块处理前述task过程中,为硬件模块查找下一个task,并则将该下一个task所需的配置参数设置到DDR中;以及,在硬件模块处理完成前述task时,在中断处理函数中启动硬件模块处理前述下一个task,直至任务中的所有task处理完成。
其它技术特征参见在前实施例的描述,在此不再赘述。
需要说明的是,本发明中,设备或装置还可以包括通常在计算系统中找到的其它组件,诸如存储在存储器中并由处理器执行的操作系统、队列管理器、设备驱动程序、数据库驱动程序或一个或多个网络协议等。
在上面的描述中,本发明的公开内容并不旨在将其自身限于这些方面。而是,在本公开内容的目标保护范围内,各组件可以以任意数目选择性地且操作性地进行合并。另外,像“包括”、“囊括”以及“具有”的术语应当默认被解释为包括性的或开放性的,而不是排他性的或封闭性,除非其被明确限定为相反的含义。所有技术、科技或其他方面的术语都符合本领域技术人员所理解的含义,除非其被限定为相反的含义。在词典里找到的公共术语应当在相关技术文档的背景下不被太理想化或太不实际地解释,除非本公开内容明确将其限定成那样。本发明领域的普通技术人员根据上述揭示内容做的任何变更、修饰,均属于权利要求书的保护范围。

Claims (5)

1.一种基于多模块的多任务处理方法,其特征在于包括步骤:
步骤100,采集任务信息,将每个任务中的命令按照所请求的硬件模块构建硬件模块任务表;所述任务表包括多个硬件模块和多个任务,任务之间互不依赖;其中,所述任务表中,每个任务包括一个或多个命令;当一个任务包括多个命令时,对需要同一硬件模块处理的多个连续命令设置为同一task级并构建命令队列,对需要不同硬件模块处理的多个命令设置为不同task级,不同级的task之间具有依赖关系;
步骤200,根据前述任务表,为各硬件模块分配待处理的任务;其中,包括步骤:根据任务表,为所有硬件模块查找对应的待处理的task;根据任务优先级和任务提交时间,找到各硬件模块当前需要执行的task,并将其配置参数设置到DDR中;将配置参数在DDR的地址设置到相关硬件模块的参数地址寄存器中,同时根据task的命令队列获取命令个数值后将该值设到相关寄存器中,启动硬件模块处理;在硬件模块处理前述task过程中,为硬件模块查找下一个task,并则将该下一个task所需的配置参数设置到DDR中;硬件模块处理完成前述task时,在中断处理函数中启动硬件模块处理前述下一个task,直至任务中的所有task处理完成;
步骤300,硬件模块执行各自的任务,当执行的任务中包括多个命令时,切换到双寄存器模式;在所述双寄存器模式下,每个硬件模块包括两组寄存器,一组寄存器执行当前第一个命令时另一组寄存器获取下一个命令的配置参数进行寄存器配置,前述第一个命令执行完成时硬件模块切换到另一种组寄存器执行前述下一个命令。
2.根据权利要求1所述的方法,其特征在于:硬件模块执行各自的任务的步骤包括,
对于每个硬件模块对应的每个task,判断task对应的命令个数是否大于1,判定为是时,切换到硬件模块双寄存器模式进行任务处理,否则根据对应的任务配置寄存器并启动硬件模块进行处理。
3.根据权利要求1所述的方法,其特征在于:一个任务中的所有task处理完成时,将该任务标记为完成状态,否则标记为待处理状态。
4.一种基于多模块的多任务处理装置,其特征在于包括:
任务表构建模块,用以采集任务信息,将每个任务中的命令按照所请求的硬件模块构建硬件模块任务表;所述任务表包括多个硬件模块和多个任务,任务之间互不依赖;其中,所述任务表中,每个任务包括一个或多个命令;当一个任务包括多个命令时,对需要同一硬件模块处理的多个命令设置为同一task级并构建命令队列;对需要不同硬件模块处理的多个命令设置为不同task级,不同级的task之间具有依赖关系;
任务分配模块,用以根据前述任务表,为各硬件模块分配待处理的任务;
任务执行模块,用以控制硬件模块执行各自的任务,当执行的任务中包括多个命令时,切换到双寄存器模式;在所述双寄存器模式下,每个硬件模块包括两组寄存器,一组寄存器执行当前第一个命令时另一组寄存器获取下一个命令的配置参数进行寄存器配置,前述第一个命令执行完成时硬件模块切换到另一种组寄存器执行前述下一个命令;
其中,任务分配模块包括:
task查找子模块,用以为所有硬件模块查找对应的待处理的task;
task配置子模块,用以根据任务优先级和任务提交时间,找到各硬件模块当前需要执行的task,并将其配置参数设置到DDR中;
处理子模块,用以将配置参数在DDR的地址设置到相关硬件模块的参数地址寄存器中,同时根据task的命令队列获取命令个数值后将该值设到相关寄存器中,启动硬件模块处理;以及在硬件模块处理前述task过程中,为硬件模块查找下一个task,并则将该下一个task所需的配置参数设置到DDR中;以及在硬件模块处理完成前述task时,在中断处理函数中启动硬件模块处理前述下一个task,直至任务中的所有task处理完成。
5.一种基于多模块的多任务处理系统,其特征在于包括:
硬件控制模块,用以采集任务信息,将每个任务中的命令按照所请求的硬件模块构建硬件模块任务表,所述任务表包括多个硬件模块和多个任务,任务之间互不依赖;以及根据前述任务表,为各硬件模块分配待处理的任务,当执行的任务中包括多个命令时,将硬件模块切换到双寄存器模式;在所述双寄存器模式下,每个硬件模块包括两组寄存器,一组寄存器执行当前第一个命令时另一组寄存器获取下一个命令的配置参数进行寄存器配置,前述第一个命令执行完成时硬件模块切换到另一种组寄存器执行前述下一个命令;
硬件模块,用以响应于硬件控制模块的控制执行任务;
其中,所述任务表中,每个任务包括一个或多个命令;当一个任务包括多个命令时,对需要同一硬件模块处理的多个连续命令设置为同一task级并构建命令队列,对需要不同硬件模块处理的多个命令设置为不同task级,不同级的task之间具有依赖关系;
其中,为各硬件模块分配待处理的任务的步骤包括:根据任务表,为所有硬件模块查找对应的待处理的task;根据任务优先级和任务提交时间,找到各硬件模块当前需要执行的task,并将其配置参数设置到DDR中;将配置参数在DDR的地址设置到相关硬件模块的参数地址寄存器中,同时根据task的命令队列获取命令个数值后将该值设到相关寄存器中,启动硬件模块处理;在硬件模块处理前述task过程中,为硬件模块查找下一个task,并则将该下一个task所需的配置参数设置到DDR中;硬件模块处理完成前述task时,在中断处理函数中启动硬件模块处理前述下一个task,直至任务中的所有task处理完成。
CN201911361100.6A 2019-12-25 2019-12-25 基于多模块的多任务处理方法、装置及系统 Active CN111158875B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201911361100.6A CN111158875B (zh) 2019-12-25 2019-12-25 基于多模块的多任务处理方法、装置及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201911361100.6A CN111158875B (zh) 2019-12-25 2019-12-25 基于多模块的多任务处理方法、装置及系统

Publications (2)

Publication Number Publication Date
CN111158875A CN111158875A (zh) 2020-05-15
CN111158875B true CN111158875B (zh) 2023-05-02

Family

ID=70558001

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911361100.6A Active CN111158875B (zh) 2019-12-25 2019-12-25 基于多模块的多任务处理方法、装置及系统

Country Status (1)

Country Link
CN (1) CN111158875B (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111880916B (zh) * 2020-07-27 2024-08-16 长沙景嘉微电子股份有限公司 Gpu中多绘制任务处理方法、装置、终端、介质及主机
CN113473082A (zh) * 2021-06-28 2021-10-01 青岛信芯微电子科技股份有限公司 一种基准监视器及切换视频模式的方法
CN113485819A (zh) * 2021-08-03 2021-10-08 北京八分量信息科技有限公司 异构任务的预处理方法、装置及相关产品

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6356737A (ja) * 1986-08-28 1988-03-11 Nec Corp マルチタスク処理装置
US5465335A (en) * 1991-10-15 1995-11-07 Hewlett-Packard Company Hardware-configured operating system kernel having a parallel-searchable event queue for a multitasking processor
US6360243B1 (en) * 1998-03-10 2002-03-19 Motorola, Inc. Method, device and article of manufacture for implementing a real-time task scheduling accelerator
CN102436393A (zh) * 2006-08-24 2012-05-02 科尼龙硅公司 任务处理装置
CN103440171A (zh) * 2013-08-25 2013-12-11 浙江大学 一种构件化硬件实时操作系统的实现方法
CN107209688A (zh) * 2015-01-26 2017-09-26 高通股份有限公司 用于加速任务控制流的方法和系统
CN107729050A (zh) * 2017-09-22 2018-02-23 中国科学技术大学苏州研究院 基于let编程模型的实时系统及任务构建方法
CN110609706A (zh) * 2019-06-13 2019-12-24 眸芯科技(上海)有限公司 配置寄存器的方法及应用

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1182550A3 (en) * 2000-08-21 2006-08-30 Texas Instruments France Task based priority arbitration
US6842821B2 (en) * 2002-12-02 2005-01-11 Lsi Logic Corporation DDR SDRAM memory controller with multiple dependency request architecture and intelligent requestor interface
US9965222B1 (en) * 2016-10-21 2018-05-08 Advanced Micro Devices, Inc. Software mode register access for platform margining and debug

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6356737A (ja) * 1986-08-28 1988-03-11 Nec Corp マルチタスク処理装置
US5465335A (en) * 1991-10-15 1995-11-07 Hewlett-Packard Company Hardware-configured operating system kernel having a parallel-searchable event queue for a multitasking processor
US6360243B1 (en) * 1998-03-10 2002-03-19 Motorola, Inc. Method, device and article of manufacture for implementing a real-time task scheduling accelerator
CN102436393A (zh) * 2006-08-24 2012-05-02 科尼龙硅公司 任务处理装置
CN103440171A (zh) * 2013-08-25 2013-12-11 浙江大学 一种构件化硬件实时操作系统的实现方法
CN107209688A (zh) * 2015-01-26 2017-09-26 高通股份有限公司 用于加速任务控制流的方法和系统
CN107729050A (zh) * 2017-09-22 2018-02-23 中国科学技术大学苏州研究院 基于let编程模型的实时系统及任务构建方法
CN110609706A (zh) * 2019-06-13 2019-12-24 眸芯科技(上海)有限公司 配置寄存器的方法及应用

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
张旭 ; 顾乃杰 ; 苏俊杰 ; .一种Linux用户态实时多任务调度框架.中国科学技术大学学报.2017,(第08期),全文. *
李岩 ; 崔晓英 ; 李贤尧 ; 赵宏杰 ; 程平 ; 张礼勇 ; .基于FPGA的μC/OS-Ⅱ任务管理硬件设计.电子技术应用.2010,(第02期),全文. *

Also Published As

Publication number Publication date
CN111158875A (zh) 2020-05-15

Similar Documents

Publication Publication Date Title
US10223165B2 (en) Scheduling homogeneous and heterogeneous workloads with runtime elasticity in a parallel processing environment
CN111158875B (zh) 基于多模块的多任务处理方法、装置及系统
US9772879B2 (en) System and method for isolating I/O execution via compiler and OS support
US7822885B2 (en) Channel-less multithreaded DMA controller
US10242420B2 (en) Preemptive context switching of processes on an accelerated processing device (APD) based on time quanta
US8963933B2 (en) Method for urgency-based preemption of a process
US8850439B2 (en) Storage subsystem device driver scheduling I/O servicing according to priority of identified process
JP2008506187A (ja) 複数のカーネルの並列実行のための方法およびシステム
JP2007034414A5 (zh)
US7590990B2 (en) Computer system
US9529625B2 (en) Method and system for providing stack memory management in real-time operating systems
CN114579285B (zh) 一种任务运行系统、方法及计算设备
CN106776395A (zh) 一种共享集群的任务调度方法及装置
CN113590347A (zh) 远程任务调控方法、装置、设备及存储介质
CN109189581B (zh) 一种作业调度方法和装置
US8225320B2 (en) Processing data using continuous processing task and binary routine
US9170839B2 (en) Method for job scheduling with prediction of upcoming job combinations
CN115362434A (zh) 分布式数据处理的任务调度
KR100590764B1 (ko) 멀티프로세서 시스템에서 스케줄러를 이용한 대규모데이터 처리 방법
US20060277547A1 (en) Task management system
CN109710390B (zh) 单线程处理器的多任务处理方法及处理系统
CN110968418A (zh) 基于信号-槽的大规模有约束并发任务的调度方法与装置
TWI823655B (zh) 適用於智慧處理器的任務處理系統與任務處理方法
CN116431335B (zh) 一种基于控制组的容器消息队列资源配额控制方法
Patil et al. Review on a comparative study of various task scheduling algorithm in cloud computing environment

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
CB02 Change of applicant information

Address after: 201210 floor 8, building 1, No. 298, Xiangke Road, Pudong New Area, Shanghai

Applicant after: MOUXIN TECHNOLOGY (SHANGHAI) Co.,Ltd.

Address before: 201210 room 507, building 1, No. 800, Naxian Road, pilot Free Trade Zone, Pudong New Area, Shanghai

Applicant before: MOUXIN TECHNOLOGY (SHANGHAI) Co.,Ltd.

CB02 Change of applicant information
GR01 Patent grant
GR01 Patent grant