CN111324427B - 一种基于dsp的任务调度方法及装置 - Google Patents

一种基于dsp的任务调度方法及装置 Download PDF

Info

Publication number
CN111324427B
CN111324427B CN201811545714.5A CN201811545714A CN111324427B CN 111324427 B CN111324427 B CN 111324427B CN 201811545714 A CN201811545714 A CN 201811545714A CN 111324427 B CN111324427 B CN 111324427B
Authority
CN
China
Prior art keywords
task
queue
target
idle
memory
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
CN201811545714.5A
Other languages
English (en)
Other versions
CN111324427A (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.)
Shenzhen Intellifusion Technologies Co Ltd
Original Assignee
Shenzhen Intellifusion Technologies 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 Shenzhen Intellifusion Technologies Co Ltd filed Critical Shenzhen Intellifusion Technologies Co Ltd
Priority to CN201811545714.5A priority Critical patent/CN111324427B/zh
Priority to PCT/CN2019/114326 priority patent/WO2020119307A1/zh
Publication of CN111324427A publication Critical patent/CN111324427A/zh
Application granted granted Critical
Publication of CN111324427B publication Critical patent/CN111324427B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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
    • 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
    • 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)
  • Multi Processors (AREA)
  • Telephonic Communication Services (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本申请提供了一种基于DSP的任务调度方法及装置,所述方法包括:获取目标任务队列中的目标任务节点的目标任务信息;从空闲节点队里中选取目标空闲节点,将所述目标任务信息存入所述目标空闲节点对应的目标空闲内存块中;将所述目标空闲节点从所述空闲节点队列中移除;执行所述目标任务队列;在所述目标任务完成的情况下,将所述目标空闲节点重新插入所述空闲节点队列中。根据DSP任务的业务类型特点区分了多个任务队列,使用不同的调度策略高效进行任务调度,从而解决了无操作系统的DSP的任务调度问题,提高DSP的处理效率。

Description

一种基于DSP的任务调度方法及装置
技术领域
本发明涉及计算机领域,尤其涉及一种基于DSP的任务调度方法及装置。
背景技术
数字信号处理器(digital signal processor,DSP)由大规模或超大规模集成电路芯片组成的用来完成某种信号处理任务的处理器。DSP处理器由于高效的指令、数据处理能力以及极低的能耗比,广泛应用于机器视觉的各个领域。
由于DSP性能优先的设计专用特性,绝大部分DSP不提供操作系统,需要用户根据芯片特点自行设计芯片内部的软件架构来控制资源和管理各种任务。随着人工智能在机器视觉领域的快速发展,DSP的控制复杂度以及算法复杂度也在不断增加,从而大大限制了无操作系统的DSP的处理效率。
发明内容
本申请提供了一种基于DSP的任务调度方法及装置,能够解决无操作系统的DSP的任务调度问题,从而提高处理效率。
第一方面,本申请提供了一种基于DSP的任务调度方法,所述方法包括以下步骤:
获取目标任务队列中的目标任务节点的目标任务信息,其中,所述目标任务信息包括目标任务类型、目标任务长度以及目标位置指针,所述目标位置指针用于指示所述目标任务的具体任务内容在第一存储器中的存储位置;
从空闲节点队里中选取目标空闲节点,将所述目标任务信息存入所述目标空闲节点对应的目标空闲内存块中,其中,所述空闲节点队列中包含多个空闲节点,所述多个空闲节点与第二存储器中的多个空闲内存块存在一一对应关系;
将所述目标空闲节点从所述空闲节点队列中移除;
执行所述目标任务队列;
在所述目标任务完成的情况下,将所述目标空闲节点重新插入所述空闲节点队列中。
可选地,所述获取目标任务队列中的目标任务信息之前,所述方法还包括:
获取目标任务;
根据所述目标任务获得目标任务信息以及具体任务内容;
将所述具体任务内容存入第一存储器中,并将所述目标任务信息放入与所述目标任务的任务类型对应的目标任务队列的目标任务节点中,其中,所述任务队列根据任务类型分为一种或者多种,所述任务队列包括多个任务节点。
可选地,所述任务队列包括第一任务队列、第二任务队列、第三任务队列、第四任务队列以及第五任务队列,其中,
所述第一任务队列是当任务由于资源限制而临时挂起的任务队列;
所述第二任务队列是系统内部产生的调度控制类任务的任务队列;
所述第三任务队列是系统外部请求处理的高优先级任务的任务队列;
所述第四任务队列是系统外部请求处理的低优先级任务的任务队列;
所述第五任务队列是计算类任务的任务队列。
可选地,所述任务调度策略包括:
依次遍历所述第一任务队列以及所述第二任务队列,执行所有任务节点;
依次执行所述第三任务队列、所述第四任务队列以及所述第五任务队列中的第一个任务节点。
可选地,所述目标任务队列是使用任务调度策略执行的,任务调度策略还包括:
将所述第三任务队列以及所述第四任务队列执行失败的任务放入第一任务队列中。
第二方面,提供了一种基于DSP的任务调度装置,包括获取单元、存储单元、移除单元、执行单元以及插入单元,其中,
所述获取单元用于获取目标任务队列中的目标任务信息,其中,所述目标任务信息包括目标任务类型、目标任务长度以及目标位置指针,所述目标位置指针用于指示所述目标任务的具体任务内容在第一存储器中的存储位置;
所述存储单元用于从空闲节点队里中选取目标空闲节点,将所述目标任务信息存入所述目标空闲节点对应的目标空闲内存块中,其中,所述空闲节点队列中包含多个空闲节点,所述多个空闲节点与第二存储器中的多个空闲内存块存在一一对应关系;
所述移除单元用于将所述目标空闲节点从所述空闲节点队列中移除;
所述执行单元用于执行所述目标任务队列;
所述插入单元用于在所述目标任务完成的情况下,将所述目标空闲节点重新插入所述空闲节点队列中。
可选地,所述装置还包括分类单元,
所述分类单元用于在所述获取单元获取目标任务队列中的目标任务信息之前,获取目标任务;
所述分类单元用于根据所述目标任务获得目标任务信息以及具体任务内容;
所述分类单元用于将所述具体任务内容存入第一存储器中,并将所述目标任务信息放入与所述目标任务的任务类型对应的目标任务队列的目标任务节点中,其中,所述任务队列根据任务类型分为一种或者多种,所述任务队列包括多个任务节点。
可选地,所述任务队列包括第一任务队列、第二任务队列、第三任务队列、第四任务队列以及第五任务队列,其中,
所述第一任务队列是当任务由于资源限制而临时挂起的任务队列;
所述第二任务队列是系统内部产生的调度控制类任务的任务队列;
所述第三任务队列是系统外部请求处理的高优先级任务的任务队列;
所述第四任务队列是系统外部请求处理的低优先级任务的任务队列;
所述第五任务队列是计算类任务的任务队列。
可选地,所述目标任务队列是使用任务调度策略执行的,所述任务调度策略包括:
依次遍历并执行所述第一任务队列以及所述第二任务队列中的任务;
依次执行所述第三任务队列、所述第四任务队列以及所述第五任务队列中的第一个任务。
可选地,所述任务调度策略还包括:
将所述第三任务队列以及所述第四任务队列执行失败的任务放入第一任务队列中。
基于本申请提供的基于DSP的任务调度方法及装置,通过获取目标任务队列中的目标任务节点的目标任务信息,其次从空闲节点队里中选取目标空闲节点,最后将所述目标任务信息存入所述目标空闲节点对应的目标空闲内存块中,将所述目标空闲节点从所述空闲节点队列中移除,执行所述目标任务队列,从而在所述目标任务完成的情况下,将所述目标空闲节点重新插入所述空闲节点队列中。并且,本申请根据DSP任务的业务类型特点区分了多个任务队列,并根据每个任务队列的业务类型特点使用不同的调度策略高效进行任务调度,使得无操作系统的DSP能够有序的分配存储空间并进行任务调度管理,使得任务能够有条理地执行,从而提高了DSP的计算速度以及处理效率。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请提供的一种基于DSP的任务调度方法的流程示意图;
图2是本申请提供的一种基于DSP的任务调度方法中任务节点队列的结构示意图;
图3是本申请提供的一种基于DSP的任务调度方法中空闲节点队列的结构示意图;
图4是本申请提供的一种基于DSP的任务调度方法中存储空间的结构示意图;
图5a是本申请提供的一种基于DSP的任务调度方法中空闲节点队列移除空闲节点前的结构示意图;
图5b是本申请提供的一种基于DSP的任务调度方法中空闲节点队列移除空闲节点后的结构示意图;
图6是本申请提供的一种基于DSP的任务调度方法中调度任务的流程示意图;
图7是本申请提供的一种基于DSP的任务调度装置的结构示意图;
图8是本申请提供的一种电子设备的示意框图。
具体实施方式
下面通过具体实施方式结合附图对本申请作进一步详细说明。在以下的实施方式中,很多细节描述是为了使得本申请能被更好的理解。然而,本领域技术人员可以毫不费力的认识到,其中部分特征在不同情况下是可以省略的,或者可以由其他方法所替代。在某些情况下,本申请相关的一些操作并没有在说明书中显示或描述,这是为了避免本申请的核心部分被过多的描述所淹没。对于本领域技术人员而言,详细描述这些相关操作并不是必要的,他们根据说明书中的描述以及本领域的一般技术知识即可完整了解相关操作。
应当理解,当在本说明书和所附权利要求书中使用术语时,术语“包括”和“包含”指示所描述特征、整体、步骤、操作、元素和组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。
需要说明的是,在本申请实施例中使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本申请。在本申请实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。
参见图1,图1是本申请提供的一种基于DSP的任务调度方法的流程示意图,如图1所示,本申请实施例的任务调度方法包括如下步骤:
S101:获取目标任务队列中的目标任务节点的目标任务信息。
在本申请具体的实施方式中,所述目标任务信息包括目标任务类型、目标任务长度以及目标位置指针,所述目标位置指针用于指示所述目标任务的具体任务内容在第一存储器中的存储位置。其中,所述第一存储器是外部存储器。可以理解的是,由于DSP芯片的片上随机存储器(random access memory,RAM)的存储空间较小,因此,将所述目标任务信息存储在片上RAM,将具体任务内容存储在外部存储器也就是第一存储器中,可以大大降低片上RAM的内存占用,提高内存利用率。其中,由于双速倍率同步动态随机存储器(DoubleData Rate SDRAM,DDR)具有高存取速度,大容量,价格低廉的优点,当前多数DSP芯片都包含DDR3接口,因此优选地,所述第一存储器可以是DDR,当然,所述第一存储器还可以是其他具有大容量特点、支持连接DSP的外部存储器,例如具有非易失特性的快闪存储器(FlashMemory)等等,本申请不作具体限定。
在本申请具体的实施方式中,所述获取目标任务队列中的目标任务信息之前,所述方法还包括:获取目标任务;根据所述目标任务获得目标任务信息以及具体任务内容;将所述具体任务内容存入第一存储器中,并将所述目标任务信息放入与所述目标任务的任务类型对应的目标任务队列的目标任务节点中,其中,所述任务队列根据任务类型分为一种或者多种,所述任务队列包括多个任务节点。可以理解的是,所述目标任务队列可以是采用双向链表数据结构的队列。图2是本申请提供的一种任务节点队列的结构示意图,由图2可知,任务队列的连接方向是双向的,链表中的每个数据节点中都有两个指针,分别指向直接后继和直接前驱。因此,从任务队列中的任意一个任务节点开始,都可以很方便地访问它的前驱任务节点和后继任务节点。应理解,采用双向链表数据结构的原因是对于任务队列来说,当某一任务由于资源受限等情况无法执行时,需要跳过该任务执行它的后继任务节点或者前驱任务节点,双向链表可以双向查找任务节点,恰好满足本申请任务队列的上述需求,从而提高任务队列的处理效率。
在本申请具体的实施方式中,所述任务队列包括第一任务队列、第二任务队列、第三任务队列、第四任务队列以及第五任务队列,其中,所述第一任务队列是当任务由于资源限制而临时挂起的任务队列;所述第二任务队列是系统内部产生的调度控制类任务的任务队列;所述第三任务队列是系统外部请求处理的高优先级任务的任务队列;所述第四任务队列是系统外部请求处理的低优先级任务的任务队列;所述第五任务队列是计算类任务的任务队列。其中,目标任务队列中的资源限制可以是硬件算子资源不足,还可以是内存资源不足,此处不作具体限定。应理解,本申请提供的基于DSP的任务调度方法,通过根据DSP任务的业务类型特点将任务区分为多个任务队列,并根据每个任务队列的业务类型特点,使用不同的调度策略高效进行任务调度,从而极大地提高了DSP的处理效率。
在本申请具体的实施方式中,所述目标任务可以是DSP系统中的控制任务或者计算任务,其中,控制任务可以是DSP需要及时调度其他硬件算子立即执行的任务,计算任务可以是DSP需要在不影响控制任务的情况下,执行计算加速的任务。也就是说,控制任务的优先级高于计算任务,如果控制任务和计算任务同时需要处理,计算任务需要等待控制任务执行完毕才能执行,导致DSP处理效率不高。因此,无操作系统的DSP需要用户根据芯片特点自行设计芯片内部的软件架构来控制资源和管理各种任务,而使用本申请的任务调度方法恰好可以解决上述问题。
S102:从空闲节点队里中选取目标空闲节点,将所述目标任务信息存入所述目标空闲节点对应的目标空闲内存块中。
在本申请具体的实施方式中,所述空闲节点队列中包含多个空闲节点,所述多个空闲节点与第二存储器中的多个空闲内存块存在一一对应关系。可以理解的是,空闲节点队列的功能主要有两类,一类是按顺序从链表头部依次分配空闲内存块给目标任务,并删除该空闲内存块对应的空闲节点,一类是在目标任务完成后将空闲节点重新插入空闲节点队列中。也就是说,空闲节点队列仅仅需要空闲节点的增加功能和删除功能,由于单向链表中单个节点的创建与删除相比双向链表来说更为简便,因此所述空闲节点队列可以采用单向链表数据结构,从而大大提高空闲节点队列的处理效率。图3是本申请提供的一种空闲节点队列的结构示意图,其中,所述空闲节点队列中的每个空闲节点对应一个空闲的内存块,应理解,图3仅仅用于举例说明,并不能构成具体限定。
在本申请具体的实施方式中,目标任务信息存储于第二存储器的空闲内存块中,目标任务的具体任务内容存储于第一存储器中,并且,所述具体任务内容可以根据目标任务信息中的位置指针获得。因此,当准备执行所述目标任务节点时,首先根据第二存储器中目标任务信息,获取目标任务的位置指针,再根据所述位置指针获取DDR中的目标具体任务内容,从而根据所述具体任务内容最后执行所述任务。可以理解的是,所述第二存储器是DSP内部的片上RAM,第二存储器(片上RAM)同第一存储器(片外存储器相比),有着更高的处理速度,可以保证DSP无等待运行,指令可以更加高效,运行也更加稳定,不受外部的干扰影响,也不会干扰外部。因此,如果任务的完整数据存储于第一存储器中,可以加速运行内核上的所有软件代码,提高关键代码(如计算任务处理、调度任务处理)的性能,同时也能使得存储访问延时能够保持一致,提高DSP的实时性处理性能。但是,片上RAM的可使用内存非常小,因此,本申请提供的任务调度方法,选择将任务的具体任务内容存储于第二存储器中,可以在提高处理性能的同时,降低了处理任务时第二存储器的内存消耗,从而提高了整体的运算性能。可以理解的是,由于数据紧耦合存储器(Data Tightly Coupeld Memory,DTCM)是具有高速存取读写的特点,通常作为本地内存使用的快速缓存,因此,优选地,所述第二存储器具体可以是DTCM,当然,所述第二存储器还可以是其他的DPS片上存储器,此处不作具体限定。
举例来说,图4是本申请提供的任务调度方法中使用的任务存储空间的示意图,由图4可知,内存块B1中存储了任务C1的任务类型、目标任务长度以及目标位置指针等控制信息,并且内存块B1与空闲节点A1存在映射关系,任务C1的具体任务内容存储在第一存储器中,在执行任务节点C1时,根据任务节点C1存储在内存块B1中的任务C1的位置指针,获得任务C1在第一存储器中存储的具体任务内容,根据所述具体任务内容执行所述任务C1,同理,内存块B2中存储了任务C2的控制信息,内存块B2与空闲节点A2存在映射关系,任务C2的具体任务内容存储在第一存储器中。可以理解的是,使用上述方法可以使得第一存储器在处理任务时的内存消耗得到降低,从而大大提高任务的处理速度。
S103:将所述目标空闲节点从所述空闲节点队列中移除。
在本申请具体的实施方式中,所述空闲节点队列中包含多个空闲节点,每个空闲节点与空闲内存块存在对应关系,当某一空闲内存块被分配给新任务后,该内存块不再是空闲内存块,因此与该内存块对应的空闲节点也不应存在于空闲节点队列中。可以理解的是,由于所述空闲节点队列是单向链表数据结构,因此将所述目标空闲节点从所述空闲节点队里中移除后,空闲节点队列的链表头部指针将指向所述目标空闲节点之后的第一个空闲节点,当下一个新任务产生时,可以按顺序从链表头部依次分配空闲内存块给目标任务。例如,图5a、图5b是本申请提供的一种空闲节点队列移除空闲节点前后的对比示意图,其中,图5a是移除前的空闲节点队列,图5b是移除后的空闲节点队列,由图5a、图5b可知,空闲节点队列包括空闲节点A1、A2以及A3,当空闲节点队列中的空闲节点A1对应的空闲内存块B1被分配后,将A1从空闲节点队列中移除,空闲节点队列的链表指针指向空闲节点A2,当有新任务产生时,A2对应的空闲内存块B2将会被分配给新任务。应理解,图5a、图5b仅仅用于举例说明,空闲节点队列还可以包括更多的空闲节点,并不能构成具体限定。
S104:执行所述目标任务队列。
在本申请具体的实施方式中,所述目标任务队列是使用任务调度策略执行的,所述任务调度策略包括:依次遍历所述第一任务队列以及所述第二任务队列,执行所有任务节点;依次执行所述第三任务队列、所述第四任务队列以及所述第五任务队列中的第一个任务节点。也就是说,首先遍历第一任务队列,搜索并执行当前所有能够执行的挂起任务节点;其次遍历第二任务队列,搜索当前所有能够执行的调度任务节点;第三,执行第三任务队列的第一个高优先级任务节点;第四,执行第四任务队列中的第一个低优先级任务节点;最后,执行第五任务队列中的第一个计算任务节点。可以理解的是,所述任务调度策略是重复执行的,也就是说,依次执行所述第三任务队列、所述第四任务队列以及所述第五任务队列中的第一个任务节点之后,再依次遍历所述第一任务队列以及所述第二任务队列,执行所有任务节点,从而达到实时处理所有新增任务的目的,提高DSP处理性能的实时性。
在本申请具体的实施方式中,所述任务调度策略还包括:将所述第三任务队列以及所述第四任务队列执行失败的任务放入第一任务队列中。应理解,执行所述任务队列中的任务节点失败的原因可以是资源限制,而第一任务队列中的任务节点为由于资源限制而临时挂起的任务节点,因此,高优先级任务队列以及低优先级任务队列执行失败的任务节点均可放入挂起任务队列中,等待下一次的遍历挂起任务队列时被执行,从而确保了每个外部请求优先处理的任务都可以被执行。并且,在所述第三任务队列也就是高优先级任务队列为空的情况下,可以从第四任务队列也就是低优先级任务队列中取出第一个低优先级任务节点,放入高优先级队列中,并执行所述低优先级任务节点,然后再执行新的低优先级任务队列中的第一个低优先级任务节点。可以理解的是,第一任务队列和第二任务队列属于控制任务队列,第三任务队列、第四任务队列和第五任务队列属于计算任务队列,因此,本申请提供的任务调度策略可以满足计算任务在不影响控制任务的情况下被执行,并且,可以使得无操作系统的DSP能够有条理的执行各种任务,提高了DSP的处理性能和计算效率。
例如,图6是本申请提供的一种基于DSP的任务调度方法中调度任务的流程示意图,由图6可知,本申请提供的任务调度策略是在DSP内部使用主函数死循环进行任务调度的。首先遍历并执行挂起任务队列,其次遍历并执行调度任务队列,将执行失败的调度任务节点放入挂起任务队列中,第三执行高优先级任务队列中的第一个高优先级任务,在所述第一个高优先级任务节点执行失败的情况下,将所述高优先级任务节点放入挂起任务队列中,第四,执行低优先级任务队列中的第一个低优先级任务节点,在所述第一个低优先级任务节点执行失败的情况下,将所述第一个低优先级任务节点放入挂起任务队列中,最后执行计算任务队列中的第一个计算任务节点。执行完毕后,再一次遍历挂起任务队列,遍历并执行调度任务队列,以此类推,形成死循环。应理解,上述举例仅用于说明,并不能构成具体限定。
S105:在所述目标任务完成的情况下,将所述目标空闲节点重新插入所述空闲节点队列中。
在本申请具体的实施方式中,空闲节点队列是由多个空闲节点构成的,由步骤S103可知,当某一内存块被分配给新任务后,该内存块对应的空闲节点将从空闲节点队列中被移除。因此,当该任务节点被执行完毕,该内存重新变为空闲内存块,因此该内存块对应的空闲节点可以重新插入所述空闲节点队列中。换句话说,如果将DSP比喻为一个餐馆,空闲节点队列比喻为一个整齐排列好盘子的碗柜,任务比喻为菜品,那么空闲节点可以是碗柜中的一个盘子,当有新菜品(新任务)制作成功时,从碗柜(空闲节点队列)中拿出一个空盘子(空闲节点),将新菜品(新任务)放入空盘子(空闲节点)并送入相应的客人(任务队列)手中,客人将菜品吃完后(任务执行完毕),空盘子(空闲节点)被放回碗柜(空闲节点队列)中,等待其他新菜品(新任务)生成时被使用。应理解,上述比喻用于举例说明,并不能构成具体限定。
上述方法中,通过获取目标任务队列中的目标任务节点的目标任务信息,其次从空闲节点队里中选取目标空闲节点,最后将所述目标任务信息存入所述目标空闲节点对应的目标空闲内存块中,将所述目标空闲节点从所述空闲节点队列中移除,执行所述目标任务队列,从而在所述目标任务完成的情况下,将所述目标空闲节点重新插入所述空闲节点队列中,并且,本申请根据DSP任务的业务类型特点区分了多个任务队列,根据每个任务队列的业务类型特点使用不同的调度策略高效进行任务调度。通过上述方案,使得无操作系统的DSP能够有序的分配存储空间并进行任务调度管理,使得任务能够有条理地执行,从而提高了DSP的计算速度以及处理效率。
图7是本申请提供的一种基于DSP的任务调度装置的结构示意图,如图7所示,所述装置包括获取单元710、存储单元720、移除单元730、执行单元740以及插入单元750,其中,
所述获取单元710用于获取目标任务队列中的目标任务信息,其中,所述目标任务信息包括目标任务类型、目标任务长度以及目标位置指针,所述目标位置指针用于指示所述目标任务的具体任务内容在第一存储器中的存储位置;
所述存储单元720用于从空闲节点队里中选取目标空闲节点,将所述目标任务信息存入所述目标空闲节点对应的目标空闲内存块中,其中,所述空闲节点队列中包含多个空闲节点,所述多个空闲节点与第二存储器中的多个空闲内存块存在一一对应关系;
所述移除单元730用于将所述目标空闲节点从所述空闲节点队列中移除;
所述执行单元740用于执行所述目标任务队列;
所述插入单元750用于在所述目标任务完成的情况下,将所述目标空闲节点重新插入所述空闲节点队列中。
在本申请具体的实施方式中,所述获取单元710获取的目标任务信息包括目标任务类型、目标任务长度以及目标位置指针,所述目标位置指针用于指示所述目标任务的具体任务内容在第一存储器中的存储位置。其中,所述第一存储器是外部存储器。可以理解的是,由于DSP芯片的片上RAM的存储空间较小,因此,将所述目标任务信息存储在片上RAM,将具体任务内容存储在外部存储器也就是第一存储器中,可以大大降低片上RAM的内存占用,提高内存利用率。其中,由于DDR具有高存取速度,大容量,价格低廉的优点,当前多数DSP芯片都包含DDR3接口,因此优选地,所述第一存储器可以是DDR,当然,所述第一存储器还可以是其他具有大容量特点、支持连接DSP的外部存储器,例如具有非易失特性的快闪存储器等等,本申请不作具体限定。
在本申请具体的实施方式中,所述装置还包括分类单元760,所述分类单元760用于在所述获取单元710获取目标任务队列中的目标任务信息之前,获取目标任务;所述分类单元760用于根据所述目标任务获得目标任务信息以及具体任务内容;所述分类单元760用于将所述具体任务内容存入第一存储器中,并将所述目标任务信息放入与所述目标任务的任务类型对应的目标任务队列的目标任务节点中,其中,所述任务队列根据任务类型分为一种或者多种,所述任务队列包括多个任务节点。可以理解的是,所述目标任务队列可以是采用双向链表数据结构的队列。图2是本申请提供的一种任务节点队列的结构示意图,由图2可知,任务队列的连接方向是双向的,链表中的每个数据节点中都有两个指针,分别指向直接后继和直接前驱。因此,从任务队列中的任意一个任务节点开始,都可以很方便地访问它的前驱任务节点和后继任务节点。应理解,采用双向链表数据结构的原因是对于任务队列来说,当某一任务由于资源受限等情况无法执行时,需要跳过该任务执行它的后继任务节点或者前驱任务节点,双向链表可以双向查找任务节点,恰好满足本申请任务队列的上述需求,从而提高任务队列的处理效率。
在本申请具体的实施方式中,所述任务队列包括第一任务队列、第二任务队列、第三任务队列、第四任务队列以及第五任务队列,其中,所述第一任务队列是当任务由于资源限制而临时挂起的任务队列;所述第二任务队列是系统内部产生的调度控制类任务的任务队列;所述第三任务队列是系统外部请求处理的高优先级任务的任务队列;所述第四任务队列是系统外部请求处理的低优先级任务的任务队列;所述第五任务队列是计算类任务的任务队列。其中,目标任务队列中的资源限制可以是硬件算子资源不足,还可以是内存资源不足,此处不作具体限定。应理解,本申请提供的基于DSP的任务调度方法,通过根据DSP任务的业务类型特点将任务区分为多个任务队列,并根据每个任务队列的业务类型特点,使用不同的调度策略高效进行任务调度,从而极大地提高了DSP的处理效率。
在本申请具体的实施方式中,所述目标任务可以是DSP系统中的控制任务或者计算任务,其中,控制任务可以是DSP需要及时调度其他硬件算子立即执行的任务,计算任务可以是DSP需要在不影响控制任务的情况下,执行计算加速的任务。也就是说,控制任务的优先级高于计算任务,如果控制任务和计算任务同时需要处理,计算任务需要等待控制任务执行完毕才能执行,导致DSP处理效率不高。因此,无操作系统的DSP需要用户根据芯片特点自行设计芯片内部的软件架构来控制资源和管理各种任务,而使用本申请的任务调度方法恰好可以解决上述问题。
在本申请具体的实施方式中,所述空闲节点队列中包含多个空闲节点,所述多个空闲节点与第二存储器中的多个空闲内存块存在一一对应关系。可以理解的是,空闲节点队列的功能主要有两类,一类是按顺序从链表头部依次分配空闲内存块给目标任务,并删除该空闲内存块对应的空闲节点,一类是在目标任务完成后将空闲节点重新插入空闲节点队列中。也就是说,空闲节点队列仅仅需要空闲节点的增加功能和删除功能,由于单向链表中单个节点的创建与删除相比双向链表来说更为简便,因此所述空闲节点队列可以采用单向链表数据结构,从而大大提高空闲节点队列的处理效率。图3是本申请提供的一种空闲节点队列的结构示意图,其中,所述空闲节点队列中的每个空闲节点对应一个空闲的内存块,应理解,图3仅仅用于举例说明,并不能构成具体限定。
在本申请具体的实施方式中,目标任务信息存储于第二存储器的空闲内存块中,目标任务的具体任务内容存储于第一存储器中,并且,所述具体任务内容可以根据目标任务信息中的位置指针获得。因此,当准备执行所述目标任务节点时,首先根据第二存储器中目标任务信息,获取目标任务的位置指针,再根据所述位置指针获取DDR中的目标具体任务内容,从而根据所述具体任务内容最后执行所述任务。可以理解的是,所述第二存储器是DSP内部的片上RAM,第二存储器(片上RAM)同第一存储器(片外存储器相比),有着更高的处理速度,可以保证DSP无等待运行,指令可以更加高效,运行也更加稳定,不受外部的干扰影响,也不会干扰外部。因此,如果任务的完整数据存储于第一存储器中,可以加速运行内核上的所有软件代码,提高关键代码(如计算任务处理、调度任务处理)的性能,同时也能使得存储访问延时能够保持一致,提高DSP的实时性处理性能。但是,片上RAM的可使用内存非常小,因此,本申请提供的任务调度方法,选择将任务的具体任务内容存储于第二存储器中,可以在提高处理性能的同时,降低了处理任务时第二存储器的内存消耗,从而提高了整体的运算性能。可以理解的是,由于DTCM是具有高速存取读写的特点,通常作为本地内存使用的快速缓存,因此,优选地,所述第二存储器具体可以是DTCM,当然,所述第二存储器还可以是其他的DPS片上存储器,此处不作具体限定。
举例来说,图4是本申请提供的任务调度方法中使用的任务存储空间的示意图,由图4可知,内存块B1中存储了任务C1的任务类型、目标任务长度以及目标位置指针等控制信息,并且内存块B1与空闲节点A1存在映射关系,任务C1的具体任务内容存储在第一存储器中,在执行任务节点C1时,根据任务节点C1存储在内存块B1中的任务C1的位置指针,获得任务C1在第一存储器中存储的具体任务内容,根据所述具体任务内容执行所述任务C1,同理,内存块B2中存储了任务C2的控制信息,内存块B2与空闲节点A2存在映射关系,任务C2的具体任务内容存储在第一存储器中。可以理解的是,使用上述方法可以使得第一存储器在处理任务时的内存消耗得到降低,从而大大提高任务的处理速度。
在本申请具体的实施方式中,所述空闲节点队列中包含多个空闲节点,每个空闲节点与空闲内存块存在对应关系,当某一空闲内存块被分配给新任务后,该内存块不再是空闲内存块,因此与该内存块对应的空闲节点也不应存在于空闲节点队列中。可以理解的是,由于所述空闲节点队列是单向链表数据结构,因此将所述目标空闲节点从所述空闲节点队里中移除后,空闲节点队列的链表头部指针将指向所述目标空闲节点之后的第一个空闲节点,当下一个新任务产生时,可以按顺序从链表头部依次分配空闲内存块给目标任务。例如,图5a、图5b是本申请提供的一种空闲节点队列移除空闲节点前后的对比示意图,其中,图5a是移除前的空闲节点队列,图5b是移除后的空闲节点队列,由图5a、图5b可知,空闲节点队列包括空闲节点A1、A2以及A3,当空闲节点队列中的空闲节点A1对应的空闲内存块B1被分配后,将A1从空闲节点队列中移除,空闲节点队列的链表指针指向空闲节点A2,当有新任务产生时,A2对应的空闲内存块B2将会被分配给新任务。应理解,图5a、图5b仅仅用于举例说明,空闲节点队列还可以包括更多的空闲节点,并不能构成具体限定。
在本申请具体的实施方式中,所述目标任务队列是使用任务调度策略执行的,所述任务调度策略包括:依次遍历所述第一任务队列以及所述第二任务队列,执行所有任务节点;依次执行所述第三任务队列、所述第四任务队列以及所述第五任务队列中的第一个任务节点。也就是说,首先遍历第一任务队列,搜索并执行当前所有能够执行的挂起任务节点;其次遍历第二任务队列,搜索当前所有能够执行的调度任务节点;第三,执行第三任务队列的第一个高优先级任务节点;第四,执行第四任务队列中的第一个低优先级任务节点;最后,执行第五任务队列中的第一个计算任务节点。可以理解的是,所述任务调度策略是重复执行的,也就是说,依次执行所述第三任务队列、所述第四任务队列以及所述第五任务队列中的第一个任务节点之后,再依次遍历所述第一任务队列以及所述第二任务队列,执行所有任务节点,从而达到实时处理所有新增任务的目的,提高DSP处理性能的实时性。
在本申请具体的实施方式中,所述任务调度策略还包括:将所述第三任务队列以及所述第四任务队列执行失败的任务放入第一任务队列中。应理解,执行所述任务队列中的任务节点失败的原因可以是资源限制,而第一任务队列中的任务节点为由于资源限制而临时挂起的任务节点,因此,高优先级任务队列以及低优先级任务队列执行失败的任务节点均可放入挂起任务队列中,等待下一次的遍历挂起任务队列时被执行,从而确保了每个外部请求优先处理的任务都可以被执行。并且,在所述第三任务队列也就是高优先级任务队列为空的情况下,可以从第四任务队列也就是低优先级任务队列中取出第一个低优先级任务节点,放入高优先级队列中,并执行所述低优先级任务节点,然后再执行新的低优先级任务队列中的第一个低优先级任务节点。可以理解的是,第一任务队列和第二任务队列属于控制任务队列,第三任务队列、第四任务队列和第五任务队列属于计算任务队列,因此,本申请提供的任务调度策略可以满足计算任务在不影响控制任务的情况下被执行,并且,可以使得无操作系统的DSP能够有条理的执行各种任务,提高了DSP的处理性能和计算效率。
例如,图6是本申请提供的一种基于DSP的任务调度方法中调度任务的流程示意图,由图6可知,本申请提供的任务调度策略是在DSP内部使用主函数死循环进行任务调度的。首先遍历并执行挂起任务队列,其次遍历并执行调度任务队列,将执行失败的调度任务节点放入挂起任务队列中,第三执行高优先级任务队列中的第一个高优先级任务,在所述第一个高优先级任务节点执行失败的情况下,将所述高优先级任务节点放入挂起任务队列中,第四,执行低优先级任务队列中的第一个低优先级任务节点,在所述第一个低优先级任务节点执行失败的情况下,将所述第一个低优先级任务节点放入挂起任务队列中,最后执行计算任务队列中的第一个计算任务节点。执行完毕后,再一次遍历挂起任务队列,遍历并执行调度任务队列,以此类推,形成死循环。应理解,上述举例仅用于说明,并不能构成具体限定。
在本申请具体的实施方式中,空闲节点队列是由多个空闲节点构成的,当某一内存块被分配给新任务后,该内存块对应的空闲节点将从空闲节点队列中被移除。因此,当该任务节点被执行完毕,该内存重新变为空闲内存块,因此该内存块对应的空闲节点可以重新插入所述空闲节点队列中。换句话说,如果将DSP比喻为一个餐馆,空闲节点队列比喻为一个整齐排列好盘子的碗柜,任务比喻为菜品,那么空闲节点可以是碗柜中的一个盘子,当有新菜品(新任务)制作成功时,从碗柜(空闲节点队列)中拿出一个空盘子(空闲节点),将新菜品(新任务)放入空盘子(空闲节点)并送入相应的客人(任务队列)手中,客人将菜品吃完后(任务执行完毕),空盘子(空闲节点)被放回碗柜(空闲节点队列)中,等待其他新菜品(新任务)生成时被使用。应理解,上述比喻用于举例说明,并不能构成具体限定。
上述装置中,通过获取目标任务队列中的目标任务节点的目标任务信息,其次从空闲节点队里中选取目标空闲节点,最后将所述目标任务信息存入所述目标空闲节点对应的目标空闲内存块中,将所述目标空闲节点从所述空闲节点队列中移除,执行所述目标任务队列,从而在所述目标任务完成的情况下,将所述目标空闲节点重新插入所述空闲节点队列中,并且,本申请根据DSP任务的业务类型特点区分了多个任务队列,根据每个任务队列的业务类型特点使用不同的调度策略高效进行任务调度。通过上述装置,使得无操作系统的DSP能够有序的分配存储空间并进行任务调度管理,使得任务能够有条理地执行,从而提高了DSP的计算速度以及处理效率。
图8是本申请实施例提供的一种电子设备结构示意框图。如图8所示,本实施例中的电子设备可以包括:一个或多个处理器801;一个或多个输入设备802,一个或多个输出设备803和存储器804。上述处理器801、输入设备802、输出设备803和存储器804通过总线805连接。存储器804用于存储计算机程序,所述计算机程序包括程序指令,处理器801用于执行存储器804存储的程序指令。
在本申请实施例中,所称处理器801可以是中央处理单元(Central ProcessingUnit,CPU),该处理器还可以是其他通用处理器、DSP、专用集成电路(ApplicationSpecific Integrated Circuit,ASIC)、现成可编程门阵列(Field-Programmable GateArray,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
输入设备802可以包括触控板、指纹采传感器(用于采集用户的指纹信息和指纹的方向信息)、麦克风等,输出设备803可以包括显示器(LCD等)、扬声器等。
存储器804可以包括易失性存储器,例如RAM;存储器也可以包括非易失性存储器,例如只读存储器(Read-Only Memory,ROM)、快闪存储器、硬盘(Hard Disk Drive,HDD)或固态硬盘(Solid-State Drive,SSD),存储器还可以包括上述种类的存储器的组合。存储器804可以采用集中式存储,也可以采用分布式存储,此处不作具体限定。可以理解的是,存储器804用于存储计算机程序,例如:计算机程序指令等。在本申请实施例中,存储器804可以向处理器801提供指令和数据。
具体实现中,本申请实施例中所描述的处理器801、输入设备802、输出设备803、存储器804、总线805可执行本申请提供的任务调度方法的任一实施例中所描述的实现方式,在此不再赘述。
在本申请的另一实施例中提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序包括程序指令,所述程序指令被处理器执行时实现本申请提供的任务调度方法的任一实施例中所描述的实现方式,在此不再赘述。
所述计算机可读存储介质可以是前述任一实施例所述的终端的内部存储单元,例如终端的硬盘或内存。所述计算机可读存储介质也可以是所述终端的外部存储设备,例如所述终端上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(SecureDigital,SD)卡,闪存卡(Flash Card)等。进一步地,所述计算机可读存储介质还可以既包括所述终端的内部存储单元也包括外部存储设备。所述计算机可读存储介质用于存储所述计算机程序以及所述终端所需的其他程序和数据。所述计算机可读存储介质还可以用于暂时地存储已经输出或者将要输出的数据。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,上述描述的设备和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的电子设备、装置和方法,可以通过其它的方式实现。例如,以上所描述的电子设备实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口、装置或单元的间接耦合或通信连接,也可以是电的,机械的或其它的形式连接。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本申请实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以是两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分,或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器、随机存取存储器、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以权利要求的保护范围为准。

Claims (6)

1.一种基于DSP的任务调度方法,其特征在于,包括:
获取目标任务队列中的目标任务节点的目标任务信息,其中,所述目标任务信息包括目标任务类型、目标任务长度以及目标位置指针,所述目标位置指针用于指示目标任务的具体任务内容在第一存储器中的存储位置,所述第一存储器用于存储所述具体任务内容,第二存储器用于存储所述目标任务信息,所述第二存储器的处理速度高于所述第一存储器;
从空闲节点队列中按顺序从链表头部分配目标空闲节点给所述目标任务,将所述目标任务信息存入所述目标空闲节点对应的目标空闲内存块中,其中,所述空闲节点队列中包含多个空闲节点,所述多个空闲节点与所述第二存储器中的多个空闲内存块存在一一对应关系,所述第二存储器包括所述目标任务队列和所述空闲节点队列;
将所述目标空闲节点从所述空闲节点队列中移除;
根据所述目标位置指针从所述第一存储器获取所述具体任务内容,执行所述目标任务;
在所述目标任务完成的情况下,将所述目标空闲节点重新插入所述空闲节点队列中,其中,所述目标任务队列是多个任务队列中的任一个,所述多个任务队列包括第一任务队列、第二任务队列、第三任务队列、第四任务队列以及第五任务队列,所述目标任务队列是使用任务调度策略执行的,所述任务调度策略包括依次遍历所述第一任务队列以及所述第二任务队列执行任务节点之后,依次执行所述第三任务队列、所述第四任务队列以及所述第五任务队列中的第一个任务节点,将所述第三任务队列以及所述第四任务队列执行失败的任务放入所述第一任务队列中。
2.根据权利要求1所述的方法,其特征在于,所述获取目标任务队列中的目标任务节点的目标任务信息之前,所述方法还包括:
获取所述目标任务;
根据所述目标任务获得所述目标任务信息以及所述具体任务内容;
将所述具体任务内容存入所述第一存储器中,并将所述目标任务信息放入与所述目标任务的任务类型对应的所述目标任务队列的所述目标任务节点中,其中,所述任务队列根据任务类型分为多种。
3.根据权利要求2所述的方法,其特征在于,
所述第一任务队列是当任务由于资源限制而临时挂起的任务队列;
所述第二任务队列是系统内部产生的调度控制类任务的任务队列;
所述第三任务队列是系统外部请求处理的高优先级任务的任务队列;
所述第四任务队列是系统外部请求处理的低优先级任务的任务队列;
所述第五任务队列是计算类任务的任务队列。
4.一种基于DSP的任务调度装置,其特征在于,包括获取单元、存储单元、移除单元、执行单元以及插入单元,其中,
所述获取单元用于获取目标任务队列中的目标任务节点的目标任务信息,其中,所述目标任务信息包括目标任务类型、目标任务长度以及目标位置指针,所述目标位置指针用于指示目标任务的具体任务内容在第一存储器中的存储位置,所述第一存储器用于存储所述具体任务内容,第二存储器用于存储所述目标任务信息,所述第二存储器的处理速度高于所述第一存储器;
所述存储单元用于从空闲节点队列中按顺序从链表头部分配目标空闲节点给所述目标任务,将所述目标任务信息存入所述目标空闲节点对应的目标空闲内存块中,其中,所述空闲节点队列中包含多个空闲节点,所述多个空闲节点与所述第二存储器中的多个空闲内存块存在一一对应关系,所述第二存储器包括所述目标任务队列和所述空闲节点队列;
所述移除单元用于将所述目标空闲节点从所述空闲节点队列中移除;
所述执行单元用于根据所述目标位置指针从所述第一存储器获取所述具体任务内容,执行所述目标任务;
所述插入单元用于在所述目标任务完成的情况下,将所述目标空闲节点重新插入所述空闲节点队列中,其中,所述目标任务队列是多个任务队列中的任一个,所述多个任务队列包括第一任务队列、第二任务队列、第三任务队列、第四任务队列以及第五任务队列,所述目标任务队列是使用任务调度策略执行的,所述任务调度策略包括依次遍历所述第一任务队列以及所述第二任务队列执行任务节点之后,依次执行所述第三任务队列、所述第四任务队列以及所述第五任务队列中的第一个任务节点,将所述第三任务队列以及所述第四任务队列执行失败的任务放入所述第一任务队列中。
5.根据权利要求4所述的装置,其特征在于,所述装置还包括分类单元,
所述分类单元用于在所述获取单元获取所述目标任务队列中的目标任务节点的目标任务信息之前,获取所述目标任务;
所述分类单元用于根据所述目标任务获得目标任务信息以及具体任务内容;
所述分类单元用于将所述具体任务内容存入第一存储器中,并将所述目标任务信息放入与所述目标任务的任务类型对应的所述目标任务队列的所述目标任务节点中,其中,所述任务队列根据任务类型分为多种。
6.根据权利要求5所述的装置,其特征在于,
所述第一任务队列是当任务由于资源限制而临时挂起的任务队列;
所述第二任务队列是系统内部产生的调度控制类任务的任务队列;
所述第三任务队列是系统外部请求处理的高优先级任务的任务队列;
所述第四任务队列是系统外部请求处理的低优先级任务的任务队列;
所述第五任务队列是计算类任务的任务队列。
CN201811545714.5A 2018-12-14 2018-12-14 一种基于dsp的任务调度方法及装置 Active CN111324427B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN201811545714.5A CN111324427B (zh) 2018-12-14 2018-12-14 一种基于dsp的任务调度方法及装置
PCT/CN2019/114326 WO2020119307A1 (zh) 2018-12-14 2019-10-30 一种基于dsp的任务调度方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201811545714.5A CN111324427B (zh) 2018-12-14 2018-12-14 一种基于dsp的任务调度方法及装置

Publications (2)

Publication Number Publication Date
CN111324427A CN111324427A (zh) 2020-06-23
CN111324427B true CN111324427B (zh) 2023-07-28

Family

ID=71075375

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811545714.5A Active CN111324427B (zh) 2018-12-14 2018-12-14 一种基于dsp的任务调度方法及装置

Country Status (2)

Country Link
CN (1) CN111324427B (zh)
WO (1) WO2020119307A1 (zh)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113254364B (zh) * 2021-05-24 2022-07-19 山东创恒科技发展有限公司 一种嵌入式系统用信息存储装置
CN113485800B (zh) * 2021-06-23 2024-01-23 华泰证券股份有限公司 基于中心节点的自动派单方法、系统、设备及存储介质
CN113204317A (zh) * 2021-07-06 2021-08-03 深圳华云信息系统有限公司 数据存储方法、装置、电子设备和计算机可读存储介质
CN116302381B (zh) * 2022-09-08 2024-02-06 上海数禾信息科技有限公司 并行拓扑调度组件及方法、任务调度方法和任务处理方法
CN116483544B (zh) * 2023-06-15 2023-09-19 阿里健康科技(杭州)有限公司 任务处理方法、装置、计算机设备和存储介质
CN116501266B (zh) * 2023-06-27 2023-09-12 苏州浪潮智能科技有限公司 消息上下文处理方法、装置、计算机设备和存储介质

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103019838A (zh) * 2012-11-14 2013-04-03 清华大学 一种基于多dsp处理器平台的分布式实时多任务操作系统
CN104714785A (zh) * 2015-03-31 2015-06-17 中芯睿智(北京)微电子科技有限公司 任务调度装置、方法及并行处理数据的设备
CN104765641A (zh) * 2014-01-02 2015-07-08 中国移动通信集团安徽有限公司 一种作业调度方法及系统
JP2016085576A (ja) * 2014-10-24 2016-05-19 株式会社東芝 ディジタルシグナルプロセッサシステム及びdspカード
CN106502782A (zh) * 2015-09-04 2017-03-15 联发科技股份有限公司 异构计算系统及其方法
CN106547612A (zh) * 2016-10-18 2017-03-29 深圳怡化电脑股份有限公司 一种多任务处理方法及装置
CN108351783A (zh) * 2015-10-29 2018-07-31 华为技术有限公司 多核数字信号处理系统中处理任务的方法和装置

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7155716B2 (en) * 2002-03-08 2006-12-26 Intel Corporation Weighted and prioritized task scheduler
AU2012271352B2 (en) * 2011-06-16 2015-05-07 Argyle Data, Inc. Software virtual machine for acceleration of transactional data processing

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103019838A (zh) * 2012-11-14 2013-04-03 清华大学 一种基于多dsp处理器平台的分布式实时多任务操作系统
CN104765641A (zh) * 2014-01-02 2015-07-08 中国移动通信集团安徽有限公司 一种作业调度方法及系统
JP2016085576A (ja) * 2014-10-24 2016-05-19 株式会社東芝 ディジタルシグナルプロセッサシステム及びdspカード
CN104714785A (zh) * 2015-03-31 2015-06-17 中芯睿智(北京)微电子科技有限公司 任务调度装置、方法及并行处理数据的设备
CN106502782A (zh) * 2015-09-04 2017-03-15 联发科技股份有限公司 异构计算系统及其方法
CN108351783A (zh) * 2015-10-29 2018-07-31 华为技术有限公司 多核数字信号处理系统中处理任务的方法和装置
CN106547612A (zh) * 2016-10-18 2017-03-29 深圳怡化电脑股份有限公司 一种多任务处理方法及装置

Also Published As

Publication number Publication date
CN111324427A (zh) 2020-06-23
WO2020119307A1 (zh) 2020-06-18

Similar Documents

Publication Publication Date Title
CN111324427B (zh) 一种基于dsp的任务调度方法及装置
US8381230B2 (en) Message passing with queues and channels
US20170177415A1 (en) Thread and/or virtual machine scheduling for cores with diverse capabilities
US11151155B2 (en) Memory use in a distributed index and query system
US20160306665A1 (en) Managing resources based on an application's historic information
CN109799956B (zh) 一种存储控制器及io请求处理方法
KR20200135718A (ko) 액세스 요청을 관리하기 위한 방법, 장치, 기기 및 저장 매체
US9817754B2 (en) Flash memory management
US10846245B2 (en) Minimizing usage of hardware counters in triggered operations for collective communication
US20190286582A1 (en) Method for processing client requests in a cluster system, a method and an apparatus for processing i/o according to the client requests
CN109842621A (zh) 一种减少token存储数量的方法及终端
US9946461B2 (en) In-flash immutable object processing
CN113010265A (zh) Pod的调度方法、调度器、存储插件及系统
US11237761B2 (en) Management of multiple physical function nonvolatile memory devices
US8543722B2 (en) Message passing with queues and channels
US9380126B2 (en) Data collection and distribution management
CN108829345B (zh) 日志文件的数据处理方法和终端设备
CN106537321B (zh) 存取文件的方法、装置和存储系统
US9405470B2 (en) Data processing system and data processing method
US20100299672A1 (en) Memory management device, computer system, and memory management method
US10824640B1 (en) Framework for scheduling concurrent replication cycles
US20190129843A1 (en) Method and system for parallel mark processing
US20230244390A1 (en) Collecting quality of service statistics for in-use child physical functions of multiple physical function non-volatile memory devices
US20240086225A1 (en) Container group scheduling methods and apparatuses
WO2012050416A1 (en) A method of caching application

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