首页 / 任务调度优化方法

任务调度优化方法无效专利 发明

技术内容

任务调度优化方法 【技术领域】 [0001] 本发明涉及工业伺服控制系统领域,尤其涉及一种任务调度优化的方法。 【背景技术】 [0002] 异构计算的实时硬件任务调度目标是在有限约束条件的前提下为实现一定性能指标而尽量减少整个系统的处理时间。基于现场可编程门阵列(Field-Programmable Gate Array,FPGA)的异构加速电机控制系统的实时硬件任务调度分为全局系统调度和目标处理结点的局部调度,当前算法在处理全局系统调度和目标处理器结点的局部调度时,在平均时间负载率和任务拒绝率上存在着一定的缺陷,比如,最佳适应算法应用于全局系统调度时,每次分配后必须重新排序,这在时间上带来了一定的开销,从而影响电机控制系统的效率。 【发明内容】 [0003] 本发明要解决的技术问题是在传统FPGA实现多轴电机控制基础上,加速系统中算法的实现,从而保证电机控制的响应更好。 [0004] 为解决上述技术问题,本发明提供了一种任务调度优化方法,用于基于FPGA的异构加速电机控制系统,其中,所述基于FPGA的异构加速电机控制系统包括任务管理器、全局调度器、结点处理器、局部资源管理器、局部调度器,其特征在于,所述方法包括下述步骤: [0005] S1,所述任务管理器删除到达任务链表和等待任务链表中所有非可调度与非有效调度的任务要求; [0006] S2,在时刻t,对所述结点处理器中是否有任务完成进行判断并找出调度目标任务; [0007] S3,找出所有能够处理所述调度目标任务的处理结点并确定候选处理结点; [0008] S4,从所述候选处理结点中选择一个负载率最小的结点作为目标处理结点,所述目标处理结点对应的调度任务交给所述局部调度器进行调度。 [0009] 在一些实施例中,所述S2包括:当所述结点处理器中没有任务完成时,所述全局调度器仅调度所述到达任务链表中的任务;当所述结点处理器中有任务完成时,所述全局调度器从有序的所述等待任务链表中取出一个S/LST最大的可重调度任务Tb,所述Tb为调度目标任务。 [0010] 在一些实施例中,所述全局调度器仅调度所述到达任务链表中的任务包括:所述全局调度器从有序的到达任务链表中取出一个S/LST最大的有效调度任务Ta,所述Ta为调度目标任务。 [0011] 在一些实施例中,当所述Tb为调度目标任务时,扫描所有所述局部资源管理器所管理的有序全局最大空闲块链表L2,找出所有能够处理所述调度目标任务Tb的最大空闲块所在的处理结点,所述处理结点为候选处理结点。 [0012] 在一些实施例中,当所述Ta为调度目标任务时,扫描所有所述局部资源管理器所管理的有序全局最大空闲块链表L1,找出所有能够处理所述调度目标任务Ta的最大空闲块所在的处理结点,所述处理结点为候选处理结点。 [0013] 在一些实施例中,所述等待任务链表为空或没有可调度的任务时,所述全局调度器调度所述到达任务链表中的任务。 [0014] 在一些实施例中,所述到达任务链表为空或所述到达任务链表中没有到达任务需要调度时,所述全局调度器等待下一个调度时刻。 [0015] 在一些实施例中,所述等待任务链表和所述到达任务链表都没有任务需要调度时,所述全局调度器不调度任何任务直到下一调度时刻有任务到来或系统中有任务完成。 [0016] 本发明的有益效果在于通过提出一种任务调度优化方法,降低了全局系统调度的平均时间负载率和目标处理器结点局部调度的任务拒绝率。 【附图说明】 [0017] 图1示出了本发明实施例提出的一种任务调度优化方法流程图; [0018] 图2示出了本发明实施例提出的另一种任务调度优化方法流程图; [0019] 图3示出了本发明实施例提出的另一种任务调度优化方法流程图。 【具体实施方式】 [0020] 为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。 [0021] 此外,下面所描述的本发明各个实施方式中所涉及到的技术特征只要彼此之间未构成冲突就可以相互组合。 [0022] 实施例 [0023] 当前伺服电机控制系统,其主要由数字信号处理器(digital signal processor,DSP)架构或DSP+FPGA架构来实现电机伺服控制,其中三环控制在DSP内部实现,而当前DSP针对单一电机具有很好的控制响应,但针对多轴而言,DSP的控制响应优势不能体现,而在FPGA内部实现则有很大优势,本发明正是基于这种FPGA的异构硬件加速电机控制系统,从而在传统FPGA实现多轴电机控制上面,加速系统中算法的实现,从而保证电机控制的响应更好。 [0024] 一种任务调度优化方法,用于基于FPGA的异构加速电机控制系统,其中,所述基于FPGA的异构加速电机控制系统包括任务管理器、全局调度器、结点处理器、局部资源管理器、局部调度器。其中,全局调度器用于全局系统调度的实时硬件任务调度,局部调度器用于目标处理节点的局部调度。 [0025] 如图1所示,所述任务调度优化方法包括以下步骤: [0026] S1,所述任务管理器删除到达任务链表和等待任务链表中所有非可调度与非有效调度的任务要求。 [0027] 所述任务管理器是构成所述全局处理器的一部分,任务管理器用来管理达任务链表和等待任务链表,所述的达任务链表和等待任务链表都是硬件任务链表并且所述两个任务链表都是按照任务的S/LST(S是任务T的面积,LST是任务T的最迟开始时间)由大到小的顺序排列的,所述两个任务链表中存在非可调度与非有效调度的任务。 [0028] S2,在时刻t,对所述结点处理器中是否有任务完成进行判断并找出调度目标任务。 [0029] 上述在时刻t对所述结点处理器中是否有任务完成进行判断主要包括两种情况,如图2所示,当所述结点处理器中没有任务完成时,所述全局调度器仅调度所述到达任务链表中的任务,具体的,所述全局调度器从有序的到达任务链表中取出一个S/LST最大的有效调度任务Ta,所述Ta为调度目标任务。当所述结点处理器中有任务完成时,所述全局调度器从有序的所述等待任务链表中取出一个S/LST最大的可重调度任务Tb,所述Tb为调度目标任务。 [0030] 上述结点处理器由局部调度器、局部放置器、局部装载器、局部资源管理器和一个可重构器件FPGA构成。局部调度器调用局部放置器为任务在可重构器件FPGA上寻找放置位置并确定任务的启动时间,接受的任务由装载器在启动时间将其装载到可重构器件中运行。所述全局调度器的作用是在所有局部资源管理器中查找能够处理硬件任务的处理结点,并把其调度到处理结点的局部调度器中。 [0031] S3,找出所有能够处理所述调度目标任务的处理结点并确定候选处理结点。 [0032] 当所确定的调度任务不同时所确定的处理结点也不一样,按照上述S2,所述S3可分为两种情况来讨论,如图3所示: [0033] 当所述Ta为调度目标任务时,扫描所有所述局部资源管理器所管理的有序全局最大空闲块链表L1,找出所有能够处理所述调度目标任Ta的最大空闲块所在的处理结点,所述处理结点为候选处理结点。 [0034] 当所述Tb为调度目标任务时,扫描所有所述局部资源管理器所管理的有序全局最大空闲块链表L2,找出所有能够处理所述调度目标任务Tb的最大空闲块所在的处理结点,所述处理结点为候选处理结点。 [0035] 上述有序全局最大空闲块链表是用来存储调度任务的链表,且按照处理完成任务所组成的有序链表或者按照执行完毕时间的降序来排列。所述每个最大空闲块对应一个处理结点。使用所述最大空闲块形来管理可重构资源是非常有效的,通过对任务的添加和删除动态地更新最大空闲块能够提高任务分配空闲资源的成功率。所述最大空闲块的管理是基于扫描列算法也即是根据FPGA上扫描列与扫描起始点来管理所有最大空闲块。 [0036] S4,从所述候选处理结点中选择一个负载率最小的结点作为目标处理结点,所述目标处理结点对应的调度任务交给所述局部调度器进行调度。 [0037] 需要说明的是,当Ta为调度目标任务时,所述候选处理结点即所有能够处理所述调度目标任务Ta的最大空闲块所在的处理结点;所述目标处理结点对应的调度任务交给所述局部调度器进行调度,即将调度目标任务Ta交给所述局部调度器进行调度。当所述Tb为调度目标任务时,所述候选处理结点即所有能够处理所述调度目标任务Tb的最大空闲块所在的处理结点;所述目标处理结点对应的调度任务交给所述局部调度器进行调度,即将调度目标任务Tb交给所述局部调度器进行调度。 [0038] 本发明实施例提出了一种任务调度优化方法,所述方法将任务合理分配,降低了全局调度系统的平均时间负载率和目标处理器结点局部调度的任务拒绝率,将所述方法应用于FPGA伺服控制系统中,有效的提高了伺服控制系统中控制响应,达到硬件加速的目的,有效的提高了电机控制系统的效率。 [0039] 以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。