一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

任务处理方法、装置、电子设备及存储介质与流程

2022-03-31 08:40:53 来源:中国专利 TAG:


1.本公开涉及人工智能技术领域,特别涉及智能语音以及人工智能芯片等领域的任务处理方法、装置、电子设备及存储介质。


背景技术:

2.传统的数字信号处理(dsp,digital signal processing)语音芯片中,通常采用免费嵌入式实时操作系统(freertos,free embedded real-time operation system)作为操作系统,即作为语音系统。
3.但是,由于freertos的机制实现了多任务调度,要求系统至少有一个定时器,并在任务切换时需要对任务的上下文进行转储保护,由于任务切换时需要频繁的对任务上下文唤入唤出,因此增大了系统开销等。


技术实现要素:

4.本公开提供了任务处理方法、装置、电子设备及存储介质。
5.一种任务处理方法,包括:
6.针对待执行任务,在至少一轮的处理过程中,分别执行以下操作:
7.若确定所述待执行任务中存在高优先级任务,则调用高优先级任务对缓存在内存中的音频数据进行处理;
8.当高优先级任务执行完成后,若确定所述待执行任务中存在低优先级任务,则调用低优先级任务对所述音频数据进行处理。
9.一种任务处理装置,包括:第一处理模块以及第二处理模块;
10.所述第一处理模块,用于针对待执行任务,在至少一轮的处理过程中,若确定所述待执行任务中存在高优先级任务,则调用高优先级任务对缓存在内存中的音频数据进行处理;
11.所述第二处理模块,用于当高优先级任务执行完成后,若确定所述待执行任务中存在低优先级任务,则调用低优先级任务对所述音频数据进行处理。
12.一种电子设备,包括:
13.至少一个处理器;以及
14.与所述至少一个处理器通信连接的存储器;其中,
15.所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行如以上所述的方法。
16.一种存储有计算机指令的非瞬时计算机可读存储介质,所述计算机指令用于使计算机执行如以上所述的方法。
17.一种计算机程序产品,包括计算机程序/指令,所述计算机程序/指令被处理器执行时实现如以上所述的方法。
18.上述公开中的一个实施例具有如下优点或有益效果:可分别对待执行任务中的高
优先级任务以及低优先级任务进行调用,当每个任务被调用时,可分别对缓存在内存中的音频数据进行处理,相比于传统方式,无需执行任务上下文的唤入唤出等,从而减少了系统开销,而且,可确保高优先级任务的及时处理等。
19.应当理解,本部分所描述的内容并非旨在标识本公开的实施例的关键或重要特征,也不用于限制本公开的范围。本公开的其它特征将通过以下的说明书而变得容易理解。
附图说明
20.附图用于更好地理解本方案,不构成对本公开的限定。其中:
21.图1为本公开所述任务处理方法实施例的流程图;
22.图2为本公开所述环形缓存方式的示意图;
23.图3为本公开所述各待执行任务的cpu使用占比示意图;
24.图4为本公开所述任务处理装置第一实施例400的组成结构示意图;
25.图5为本公开所述任务处理装置第二实施例500的组成结构示意图;
26.图6示出了可以用来实施本公开的实施例的电子设备600的示意性框图。
具体实施方式
27.以下结合附图对本公开的示范性实施例做出说明,其中包括本公开实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本公开的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
28.另外,应理解,本文中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,a和/或b,可以表示:单独存在a,同时存在a和b,单独存在b这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。
29.图1为本公开所述任务处理方法实施例的流程图。如图1所示,包括以下具体实现方式。
30.在步骤101中,针对待执行任务,在至少一轮的处理过程中,分别按照步骤102-步骤103所示方式进行处理。
31.在步骤102中,若确定待执行任务中存在高优先级任务,则调用高优先级任务对缓存在内存中的音频数据进行处理。
32.在步骤103中,当高优先级任务执行完成后,若确定待执行任务中存在低优先级任务,则调用低优先级任务对所述音频数据进行处理。
33.可以看出,上述方法实施例所述方案中,可分别对待执行任务中的高优先级任务以及低优先级任务进行调用,当每个任务被调用时,可分别对缓存在内存中的音频数据进行处理,相比于传统方式,无需执行任务上下文的唤入唤出等,从而减少了系统开销,而且,可确保高优先级任务的及时处理等。
34.优选地,图1所示实施例的执行主体可为语音系统。
35.本公开的一个实施例中,所述内存可为预先分配的内存,如人工预先分配的内存。考虑到硬件设计的简单化,以及软件管理代码的微型化等,本公开所述方案中,可采用静态内存分配方式,即预先分配好语音系统所需的内存,在初始化阶段即预留好,程序运行过程
中不需要申请(malloc)和释放(free),语音系统提供自带的内存申请(bd_os_malloc)和内存释放(bd_os_free)函数,实际操作预先分配好的内存,只需标记是否占用等。
36.另外,本公开的一个实施例中,可按照到达时间由先到后的顺序、采用环形缓存方式在内存中缓存各帧音频数据。
37.图2为本公开所述环形缓存方式的示意图。语音系统的内存主要用于音频数据缓存等,可采用环形缓存方式来存取内存。如图2所示,假设最多缓存8帧音频数据,通过配置,dsp语音芯片中的直接存储器访问(dma,direct memory access)可自动搬移音频数据到内存,由语音系统统一调度和管理。如图2所示,按照到达时间由先到后的顺序,首先将第0帧的音频数据存放在第0段内存位置上,之后依次将第1帧的音频数据存放在第1段内存位置上、将第2帧的音频数据存放在第2段内存位置上、将第3帧的音频数据存放在第3段内存位置上、将第4帧的音频数据存放在第4段内存位置上、将第5帧的音频数据存放在第5段内存位置上、将第6帧的音频数据存放在第6段内存位置上以及将第7帧的音频数据存放在第7段内存位置上,当第8帧音频数据到来时,会将该帧音频数据自动回卷放在第0段内存位置上,依次类推,循环往复。
38.本公开中所述的任务可理解为算法模块,如唤醒识别算法模块等,相应地,调用不同的任务即指调用不同的算法模块,利用调用的算法模块对缓存在内存中的音频数据进行处理,如进行对应的算法运算等。另外,所述任务可分为高优先级任务和低优先级任务,高优先级任务通常是指需要实时处理的任务,如音频滤波函数,而低优先级任务对实时性的要求则相对较低。
39.针对待执行任务,在任一轮的处理过程中,若确定待执行任务中存在高优先级任务,则可依次调用各高优先级任务,当各高优先级任务均执行完成后,若确定待执行任务中存在低优先级任务,则可依次调用各低优先级任务,其中,被调用的待执行任务对缓存在内存中的音频数据进行处理。通常来说,待执行任务中既会包括高优先级任务,也会包括低优先级任务。
40.本公开的一个实施例中,可采用轮询调度(round robin)算法依次调用各高优先级任务,并可采用轮询调度算法依次调用各低优先级任务。该算法的实现非常简单,从而可高效地完成各任务的轮询。
41.本公开的一个实施例中,在任一待执行任务的执行过程中,还可实时记录该待执行任务的耗时,并在当确定所述耗时达到该待执行任务对应的超时门限时,退出该待执行任务,之后可调用下一个待执行任务等。
42.本公开的一个实施例中,所述耗时及超时门限均采用系统的时基(tick)计数形式。
43.本公开所述方案中,无需采用普通的操作系统所需的定时器,而是采用音频数据的帧号来记录时间。比如,假设缓存1秒钟的音频数据,每帧音频数据的时长为10毫秒(ms),那么每秒钟的tick计数即增加100。由于无需使用定时器,从而进一步减少了系统开销等。
44.通常来说,tick计数采用32比特(bit),仍以每帧音频数据的时长为10ms为例,计数时间最长可达2^31*10ms=4,294,967,296ms=大约497天,也就是说程序可以运行497天不关机,计数不会溢出,由于语音类产品一年不关机的情况是非常少见的,因此本公开所述计数方案可行。
45.本公开的一个实施例中,预先可分别确定出各待执行任务的中央处理单元(cpu,central processing unit)使用占比,各待执行任务的cpu使用占比之和可为100%,相应地,针对任一待执行任务,可分别根据该待执行任务的cpu使用占比以及缓存门限,确定出该待执行任务对应的超时门限,缓存门限为最大缓存的音频数据时长。
46.比如,可根据各待执行任务完成的算法复杂度,评估出每个待执行任务完成一轮所需的平均时间,即cpu的周期(cycles)数,进而可根据系统的主频来分配好每个待执行任务的cpu使用占比,即cpu占用率。
47.图3为本公开所述各待执行任务的cpu使用占比示意图。如图3所示,假设共有5个待执行任务,分别为高优先级任务1、高优先级任务2、低优先级任务1、低优先级任务2和低优先级任务3,其中,高优先级任务1的cpu使用占比为10%,高优先级任务2的cpu使用占比为10%,低优先级任务1的cpu使用占比为20%,低优先级任务2的cpu使用占比为10%,低优先级任务3的cpu使用占比为50%。
48.假设缓存1秒钟的音频数据,每帧音频数据的时长为10ms,那么每秒钟的tick计数增加100,以图3所示高优先级任务1为例,cpu使用占比10%换算成tick计数即为100*10%=10,相应地,高优先级任务1对应的超时门限即可为10,类似地,高优先级任务2对应的超时门限可为10,低优先级任务1对应的超时门限可为20,低优先级任务2对应的超时门限可为10,低优先级任务3对应的超时门限可为50。
49.通过上述处理,可准确高效地确定出不同的待执行任务对应的超时门限,从而为后续处理奠定了良好的基础。
50.以图3所示各待执行任务为例,在高优先级任务1的执行过程中,可实时记录高优先级任务1的耗时,当确定所述耗时达到对应的超时门限10时,可退出高优先级任务1,即高优先级任务1退出,让出cpu的使用权,并可调用下一个待执行任务,如高优先级任务2,同理,在高优先级任务2的执行过程中,可实时记录高优先级任务2的耗时,当确定所述耗时达到对应的超时门限10时,可退出高优先级任务2,并可调用下一个待执行任务,如低优先级任务1,在低优先级任务1的执行过程中,可实时记录低优先级任务1的耗时,当确定所述耗时达到对应的超时门限20时,可退出低优先级任务1,并可调用下一个待执行任务,如低优先级任务2,以此类推。
51.通过上述处理,可实现cpu资源的合理利用,进而可提升cpu资源的利用率等。
52.本公开所述方案中,除了可针对当前执行的待执行任务实时记录耗时外,还可实时记录一轮中的各待执行任务对应的总耗时,这样,在执行任一待执行任务之前,可首先确定当前的总耗时是否高于系统门限,如100,若是,则可认为出现了问题,如出现了丢帧等问题,从而可进行报错处理等,否则,可正常执行该待执行任务,并可实时记录该待执行任务的耗时,当确定所述耗时达到该待执行任务对应的超时门限时,可退出该待执行任务。
53.本公开的一个实施例中,当符合预定的触发条件时,还可增大缓存门限。所述预定的触发条件具体为何种条件不作限制,可根据实际需要而定。
54.上述确定各待执行任务的cpu使用占比以及设置超时门限的方式均为理想状态下的实现方式,在实际应用中,由于各待执行任务的算力不均匀性等,导致对cpu的使用占比不会按照理想状态分配,每个待执行任务都可能会留有一些余量,从而可能导致丢帧等问题,如某帧音频数据还未被某一/某些待执行任务处理即被覆盖掉,相应地,则可认为符合
预定的触发条件,从而可增大缓存门限。
55.比如,原来缓存1秒钟的音频数据,增大后改为缓存1.28秒的音频数据,假设每帧音频数据的时长为10ms,那么则可缓存128帧音频数据,从而尽可能地确保了音频数据不会因为得不到及时处理而丢帧。
56.本公开的一个实施例中,还可按照预定策略,对至少一个待执行任务的cpu使用占比进行调整,并可根据调整后的cpu使用占比调整对应的超时门限。所述预定策略具体为何种策略不作限制,可根据实际需要而定。
57.比如,为避免出现丢帧的问题,可调整某一/某些待执行任务对应的超时门限,如将高优先级任务1对应的超时门限由10调整为8,从而可使得高优先级任务1提前退出,进而使得其它待执行任务不会饥饿得不到执行,维持系统的正常运转等。
58.再比如,可整体调整高优先级任务和低优先级任务的cpu使用占比,并可相应地调整同优先级的各待执行任务的cpu使用占比,cpu使用占比发生改变,对应的超时门限也会发生改变,另外,针对每个待执行任务,可动态地确定出每轮对应的超时门限,通过调整,可最大化的利用cpu资源,提升cpu资源的利用率。
59.需要说明的是,对于前述的方法实施例,为了简单描述,将其表述为一系列的动作组合,但是本领域技术人员应该知悉,本公开并不受所描述的动作顺序的限制,因为依据本公开,某些步骤可以采用其它顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本公开所必须的。
60.以上是关于方法实施例的介绍,以下通过装置实施例,对本公开所述方案进行进一步说明。
61.图4为本公开所述任务处理装置第一实施例400的组成结构示意图。如图4所示,包括:第一处理模块401以及第二处理模块402。
62.第一处理模块401,用于针对待执行任务,在至少一轮的处理过程中,若确定待执行任务中存在高优先级任务,则调用高优先级任务对缓存在内存中的音频数据进行处理。
63.第二处理模块402,用于当高优先级任务执行完成后,若确定待执行任务中存在低优先级任务,则调用低优先级任务对所述音频数据进行处理。
64.上述装置实施例所述方案中,可分别对待执行任务中的高优先级任务以及低优先级任务进行调用,当每个任务被调用时,可分别对缓存在内存中的音频数据进行处理,相比于传统方式,无需执行任务上下文的唤入唤出等,从而减少了系统开销,而且,可确保高优先级任务的及时处理等。
65.本公开的一个实施例中,所述内存可为预先分配的内存,如人工预先分配的内存,另外,可按照到达时间由先到后的顺序、采用环形缓存方式在内存中缓存各帧音频数据。
66.本公开中所述的任务可理解为算法模块,如唤醒识别算法模块等。另外,所述任务可分为高优先级任务和低优先级任务,高优先级任务通常是指需要实时处理的任务,而低优先级任务对实时性的要求则相对较低。
67.针对待执行任务,在任一轮的处理过程中,第一处理模块401若确定待执行任务中存在高优先级任务,则可依次调用各高优先级任务,第二处理模块402在确定各高优先级任务均执行完成后,若确定待执行任务中存在低优先级任务,则可依次调用各低优先级任务,
其中,被调用的待执行任务对缓存在内存中的音频数据进行处理。通常来说,待执行任务中既会包括高优先级任务,也会包括低优先级任务。
68.本公开的一个实施例中,第一处理模块401可采用轮询调度算法依次调用各高优先级任务,第二处理模块402可采用轮询调度算法依次调用各低优先级任务。
69.本公开的一个实施例中,第一处理模块401和第二处理模块402还可在任一待执行任务的执行过程中,实时记录该待执行任务的耗时,并在当所述耗时达到该待执行任务对应的超时门限时,退出该待执行任务。
70.本公开的一个实施例中,所述耗时及超时门限均可采用tick计数形式。
71.图5为本公开所述任务处理装置第二实施例500的组成结构示意图。如图5所示,包括:第一处理模块401、第二处理模块402以及第三处理模块403。
72.其中,第一处理模块401以及第二处理模块402与图4所示实施例中相同,不再赘述。
73.第三处理模块403,用于分别确定出各待执行任务的cpu使用占比,各待执行任务的cpu使用占比之和为100%,相应地,针对任一待执行任务,可分别根据该待执行任务的cpu使用占比以及缓存门限,确定出该待执行任务对应的超时门限,缓存门限为最大缓存的音频数据时长。
74.本公开的一个实施例中,第三处理模块403还可在符合预定的触发条件时,增大所述缓存门限。
75.另外,本公开的一个实施例中,第三处理模块403还可按照预定策略,对至少一个待执行任务的cpu使用占比进行调整,并可根据调整后的cpu使用占比调整对应的超时门限。
76.图4和图5所示装置实施例的具体工作流程可参照前述方法实施例中的相关说明。
77.总之,采用本公开所述方案,可减少系统开销,提升cpu和内存资源的利用率等,相应地,使用本公开所述语音系统的dsp语音芯片只需采用较小内存和较低主频的cpu即可满足语音算法的需求。
78.本公开所述方案可应用于人工智能领域,特别涉及智能语音以及人工智能芯片等领域。人工智能是研究使计算机来模拟人的某些思维过程和智能行为(如学习、推理、思考、规划等)的学科,既有硬件层面的技术也有软件层面的技术,人工智能硬件技术一般包括如传感器、专用人工智能芯片、云计算、分布式存储、大数据处理等技术,人工智能软件技术主要包括计算机视觉技术、语音识别技术、自然语言处理技术以及机器学习/深度学习、大数据处理技术、知识图谱技术等几大方向。
79.另外,本公开的技术方案中,所涉及的用户个人信息的收集、存储、使用、加工、传输、提供和公开等处理,均符合相关法律法规的规定,且不违背公序良俗。
80.根据本公开的实施例,本公开还提供了一种电子设备、一种可读存储介质和一种计算机程序产品。
81.图6示出了可以用来实施本公开的实施例的电子设备600的示意性框图。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字助理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算装置。本文所示的
部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本公开的实现。
82.如图6所示,设备600包括计算单元601,其可以根据存储在只读存储器(rom)602中的计算机程序或者从存储单元608加载到随机访问存储器(ram)603中的计算机程序,来执行各种适当的动作和处理。在ram 603中,还可存储设备600操作所需的各种程序和数据。计算单元601、rom 602以及ram 603通过总线604彼此相连。输入/输出(i/o)接口605也连接至总线604。
83.设备600中的多个部件连接至i/o接口605,包括:输入单元606,例如键盘、鼠标等;输出单元607,例如各种类型的显示器、扬声器等;存储单元608,例如磁盘、光盘等;以及通信单元609,例如网卡、调制解调器、无线通信收发机等。通信单元609允许设备600通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
84.计算单元601可以是各种具有处理和计算能力的通用和/或专用处理组件。计算单元601的一些示例包括但不限于中央处理单元(cpu)、图形处理单元(gpu)、各种专用的人工智能(ai)计算芯片、各种运行机器学习模型算法的计算单元、数字信号处理器(dsp)、以及任何适当的处理器、控制器、微控制器等。计算单元601执行上文所描述的各个方法和处理,例如本公开所述的方法。例如,在一些实施例中,本公开所述的方法可被实现为计算机软件程序,其被有形地包含于机器可读介质,例如存储单元608。在一些实施例中,计算机程序的部分或者全部可以经由rom 602和/或通信单元609而被载入和/或安装到设备600上。当计算机程序加载到ram 603并由计算单元601执行时,可以执行本公开所述的方法的一个或多个步骤。备选地,在其他实施例中,计算单元601可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行本公开所述的方法。
85.本文中以上描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、场可编程门阵列(fpga)、专用集成电路(asic)、专用标准产品(assp)、芯片上系统的系统(soc)、复杂可编程逻辑设备(cpld)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。
86.用于实施本公开的方法的程序代码可以采用一个或多个编程语言的任何组合来编写。这些程序代码可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器或控制器,使得程序代码当由处理器或控制器执行时使流程图和/或框图中所规定的功能/操作被实施。程序代码可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。
87.在本公开的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计
算机盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦除可编程只读存储器(eprom或快闪存储器)、光纤、便捷式紧凑盘只读存储器(cd-rom)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
88.为了提供与用户的交互,可以在计算机上实施此处描述的系统和技术,该计算机具有:用于向用户显示信息的显示装置(例如,crt(阴极射线管)或者lcd(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给计算机。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。
89.可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(lan)、广域网(wan)和互联网。
90.计算机系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。服务器可以是云服务器,也可以为分布式系统的服务器,或者是结合了区块链的服务器。
91.应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本发公开中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本公开公开的技术方案所期望的结果,本文在此不进行限制。
92.上述具体实施方式,并不构成对本公开保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本公开的精神和原则之内所作的修改、等同替换和改进等,均应包含在本公开保护范围之内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献