CPU及任务调度方法与流程

文档序号:32941148发布日期:2023-01-14 09:06阅读:52来源:国知局
CPU及任务调度方法与流程
cpu及任务调度方法
技术领域
1.本发明实施例涉及计算机领域,尤其涉及一种cpu及任务调度方法。


背景技术:

2.任务(task)在计算机中表示计算机要完成的工作元素,它是由控制程序处理的一个或多个指令序列组成。任务可以使用一个进程来承载,也可以使用一个线程来承载。而多任务处理(computer multitasking)是指计算机同时运行多个程序的能力。多任务的一般方法是运行第一个程序的一段代码,保存工作环境;再运行第二个程序的一段代码,保存环境;
……
恢复第一个程序的工作环境,执行第一个程序的下一段代码;
……
如此反复。
3.运行一段代码所耗费的中央处理单元(central processing unit,cpu)时间称为时间片(timeslice)。保存和恢复工作环境的过程称为上下文切换。上下文切换的时间(开销),受cpu的性能和上下文内容的大小等因素影响。cpu的性能越强,所需的开销越小;上下文切换的内容越多,所需的开销越大。
4.现有技术中,由cpu中的cpu核来完成上下文切换工作,因此,需要一定的上下文切换开销,导致时间资源利用率低下。因此,亟需对上述技术问题进行改进。


技术实现要素:

5.本技术提供一种cpu及任务调度方法,能够缩短cpu核的上下文切换时间,提升cpu的时间资源利用率。
6.第一方面,提供一种cpu,包括至少一个cpu核,及为每个cpu核配置的m个协处理器、用于缓存任务的上下文资源的n个第一上下文资源模块和用于存储任务调度器的上下文资源的第二上下文资源模块,m等于一,n大于或等于二,其中:cpu核,用于通过任务调度器根据任务调度策略执行任务调度,在任务n-1执行完成后调度任务n时,向协处理器发送指示信号,指示信号用于指示协处理器保存任务n-1的上下文资源和预取任务n+1的上下文资源;而协处理器,用于响应指示信号,将任务n-1的上下文资源从上下文资源模块a保存至内存中;获取任务n+1的上下文资源,并将任务n+1的上下文资源缓存至上下文资源模块a中;上下文资源模块a为n个第一上下文资源模块中执行任务n-1时缓存任务n-1的上下文资源的第一上下文资源模块。
7.本技术实施例中的cpu,cpu核设置有协处理器以及用于存储任务的上下文资源的第一上下文资源模块和存储任务调度器的上下文资源的第二上下文资源模块,这样,由协处理器进行任务的上下资源保存和预取,使得cpu核不需要执行保存和预取任务的上下文资源的操作;而且,执行任务调度器时,cpu核无需进行任务调度器的上下文资源切换,减少任务调度器所需的执行时间;进而可以有效减少cpu核的上下文切换开销,这样,cpu核几乎所有的时间可以用于执行任务,可以有效提升cpu的时间资源利用率。
8.在一些实施例中,任务的上下文资源包括寄存器资源和转译后备缓冲器tlb资源,第一上下文资源模块包括用于缓存任务的寄存器资源的寄存器和用于缓存任务的tlb资源
的tlb。本技术实施例通过预取任务的寄存器资源和tlb资源等上下文资源,使得cpu核在执行任务时,无需执行获取任务的寄存器资源和tlb资源等耗时较长的操作,可以帮助提升任务的执行效率。
9.在一些实施例中,任务调度器的上下文资源包括寄存器资源和/或转译后备缓冲器tlb资源,第二上下文资源模块包括用于缓存任务调度器的寄存器资源的寄存器和/或用于缓存任务调度器的tlb资源的tlb。本技术实施例中,利用第二上下文资源模块存储任务调度器的寄存器资源和/或tlb资源等上下文资源,这样,cpu核在执行任务调度器时,无需获取任务调度器的上下文资源,可以有效缩短任务调度器所需的执行时间。
10.在一些实施例中,任务调度策略包括轮询调度策略、严格时间和空间分区调度策略、优先级抢占调度策略或让渡调度策略。
11.在一些实施例中,n个第一上下文资源模块包括上下文资源模块a和上下文资源模块b;cpu核在通过任务调度器根据任务调度策略执行任务调度,在任务n-1执行完成后调度任务n时,向协处理器发送指示信号方面,具体用于:
12.通过任务调度器确定第一指针指向上下文资源模块a,且第二指针指向上下文资源模块b时,将第一指针指向上下文资源模块b,将第二指针指向上下文资源模块a或者指示协处理器将第二指针指向上下文资源模块a;第一指针用于指示当前任务调度周期内,cpu核获取任务的上下文资源的第一上下文资源模块;第二指针用于指示当前任务调度周期到期后,cpu核获取任务的上下文资源的第一上下文资源模块;以及,当任务n+1和任务n为不同任务时,向协处理器发送第一指示信号,并调度执行任务n,第一指示信号中携带有任务n+1的任务标识,第一指示信号用于指示协处理器保存任务n-1的上下文资源和预取任务n+1的上下文资源;当任务n+1和任务n为同一个任务时,向协处理器发送第二指示信号,并调度执行任务n,第二指示信号用于指示协处理器保存任务n-1的上下文资源。
13.对应地,在一些实施例中,协处理器,具体用于:响应第一指示信号,将上下文资源模块a中的上下文资源保存至内存中;以及,根据第一指示信号中携带的任务n+1的任务标识,将任务n+1的上下文资源缓存至上下文资源模块a中。
14.对应地,在一些实施例中,协处理器,具体用于:响应第二指示信号,将上下文资源模块a中的上下文资源保存至内存中;以及,将第二指针指向上下文资源模块b。
15.在本技术实施例中,在第一指针和第二指针指向不同的第一上下文资源模块(第一指针指向上下文资源模块a,第二指针指向上下文资源模块b)时,表明下一个任务调度周期cpu核执行的是与当前任务不同的任务,此时cpu核需要改变第一指针的指向,将第一指针指向上下文资源模块b的地址,将第二指针指向上下文资源模块a或者指示协处理器将第二指针指向上下文资源模块a。而且,当任务n和任务n+1为不同的任务时,cpu核指示协处理器保存任务n-1的上下文资源和预取任务n+1的上下文资源,并调度执行任务n。而当任务n和任务n+1为相同的任务时,cpu核此时只需要指示协处理器保存任务n-1的上下文资源,并调度执行任务n即可。
16.在一些实施例中,n个第一上下文资源模块包括上下文资源模块a和上下文资源模块b;cpu核在通过任务调度器根据任务调度策略执行任务调度,在任务n-1执行完成后调度任务n时,向协处理器发送指示信号方面,具体用于:通过任务调度器确定第一指针与第二指针均指向上下文资源模块a时,第一指针用于指示当前任务调度周期内,cpu核获取任务
的上下文资源的第一上下文资源模块;第二指针用于指示当前任务调度周期到期后,cpu核获取任务的上下文资源的第一上下文资源模块;当任务n+1和任务n为不同任务时,将第二指针指向上下文资源模块b或指示协处理器将第二指针指向上下文资源模块b,向协处理器发送第三指示信号,并调度执行任务n,第三指示信号中携带有任务n+1的任务标识,第三指示信号用于指示协处理器预取任务n+1的上下文资源;以及,当任务n+1和任务n为同一个任务时,调度执行任务n。
17.对应地,在一些实施例中,协处理器,具体用于:响应第三指示信号,根据第三指示信号中携带的任务n+1的任务标识,将任务n+1的上下文资源缓存至上下文资源模块b中。
18.在本技术实施例中,在第一指针和第二指针均指向同一个第一上下文资源模块(如指向上下文资源模块a)时,表明下一个任务调度周期cpu核执行的是与当前任务相同的任务,此时cpu核不需要改变第一指针的指向。而且,cpu核在任务n和任务n+1为不同的任务时,将第二指针指向上下文资源模块b或指示协处理器将第二指针指向上下文资源模块b,并指示协处理器预取任务n+1的上下文资源即可。而当任务n和任务n+1为相同的任务时,cpu核不需要指示协处理器进行任务上下文资源预取,只需调度执行任务n即可。
19.在一些实施例中,cpu核,还用于:执行任务n时,通过任务调度器根据任务调度策略确定要执行的任务为任务n+1’时,通过任务调度器获取任务n+1’的上下文资源替换上下文资源模块a中缓存的任务n+1的上下文资源;或者,向协处理器发送指示信号以指示协处理器保存任务n的上下文资源和预取任务n+1’的上下文资源,并调度执行任务n+1;任务n+1’与任务n+1为不同的任务。
20.本实施例中,在执行任务n时,若任务调度策略确定需要执行的任务为任务n+1’(任务n+1’与任务n+1为不同的任务),此时,可以通过任务调度器来完成获取任务n+1’的上下文资源并替换原先已缓存的任务n+1的上下文资源,以在上下文资源替换完成后,调度cpu核执行任务n+1’。也可以由cpu核指示协处理器保存任务n的上下文资源和预取任务n+1’的上下文资源,同时调度执行任务n+1,以在协处理器完成保存和预取操作后,cpu核可以执行任务n+1’,即cpu核先执行任务n+1,推迟一个任务调度周期再执行任务n+1’。
21.在一些实施例中,cpu核,还用于:通过任务调度器,在执行完任务n-1后调度执行任务n时,如果协处理器未完成保存任务n-2的上下文资源和预取任务n的上下文资源,任务调度器等待协处理器完成保存任务n-2的上下文资源和预取任务n的上下文资源后再调度执行任务n,或者,通过任务调度器保存任务n-2的上下文资源和预取任务n的上下文资源后再调度执行任务n。
22.本实施例中,提供一种在调度执行任务n时,协处理器未完成保存任务n-2的上下文资源和预取任务n的上下文资源时,任务调度器与协处理器之间的同步协商机制,cpu核可以等待协处理器完成保存任务n-2的上下文资源和预取任务n的上下文资源后再调度执行任务n;也可以是通过任务调度器保存任务n-2的上下文资源和预取任务n的上下文资源后再调度执行任务n。
23.在一些实施例中,任务调度策略所采用的任务调度周期满足以下表达式:t1≥t/m,其中,t1为任务调度周期,t为协处理器保存任务的上下文资源和预取任务的上下文资源所需的时间,m为协处理器的个数m,m大于或等于1。
24.本实施例的cpu中,对于一个cpu核来说,协处理器的数目m、任务调度周期t1和协
处理器保存任务的上下文资源和预取任务的上下文资源所需的时间t之间只需满足上述约束关系即可。可以根据实际需要对t、m和t1的具体数值进行设置,只要满足上述表达式即可。特别地,当t1小于t时,只要合理设置m的大小,通过增加协处理器的个数,仍可以顺利完成任务调度。
25.在一些实施例中,任务调度策略为轮询调度策略时,任务的最坏情况执行时间的计算公式为:wcet=n*fn(t1,t2),其中,wcet为最坏情况执行时间,n为cpu核的最大并行任务数,t1为任务调度策略所采用的任务调度周期;t2为任务的处理时长;fn为大于或等于t2的t1的最小倍数值。
26.本实施例中,当任务调度策略为轮询调度策略时,可以利用上述计算出一个任务的最坏情况执行时间,通过数学公式确保和简化了任务的最坏情况执行时间的计算,以满足可信需进行形式化证明的要求。
27.第二方面,还提供一种任务调度方法,应用于第一方面的cpu,方法包括:cpu核通过任务调度器根据任务调度策略执行任务调度,在任务n-1执行完成后调度任务n时,向协处理器发送指示信号,指示信号用于指示协处理器保存任务n-1的上下文资源和预取任务n+1的上下文资源;协处理器响应指示信号,将任务n-1的上下文资源从上下文资源模块a保存至内存中;获取任务n+1的上下文资源,并将任务n+1的上下文资源缓存至上下文资源模块a中;上下文资源模块a为n个第一上下文资源模块中执行任务n-1时缓存任务n-1的上下文资源的第一上下文资源模块。
28.本技术实施例中的任务调度方法,通过协处理器进行任务的上下资源保存和预取,使得cpu核不需要执行保存和预取任务的上下文资源的操作;进而可以有效减少cpu核的上下文切换开销,这样,cpu核几乎所有的时间可以用于执行任务,可以有效提升cpu的时间资源利用率。
附图说明
29.下面对本技术实施例用到的附图进行介绍。
30.图1a、图1b是现有技术中的任务调度过程示意图;
31.图2是本技术实施例提供的一种cpu的结构示意图;
32.图3是本技术实施例提供的一种cpu的具体结构示意图;
33.图4a是本技术实施例提供的一种tsp调度策略示意图;
34.图4b是本技术实施例提供的一种优先级抢占调度策略示意图;
35.图5a是本技术实施例提供的一种cpu核的任务调度过程示意图;
36.图5b是本技术实施例提供的一种协处理器的任务调度过程示意图;
37.图5c是本技术实施例提供的一种协处理器的任务调度过程示意图;
38.图5d是本技术实施例提供的另一种cpu核的任务调度过程示意图;
39.图5e是本技术实施例提供的另一种协处理器的任务调度过程示意图;
40.图6a是本技术实施例提供的一种任务调度过程中第一上下文资源模块的使用情况示意图;
41.图6b是本技术实施例提供的一种任务调度过程时序示意图;
42.图7是本技术实施例提供的一种任务调度方法流程图。
具体实施方式
43.下面将结合附图,对本技术中的技术方案进行描述。
44.参考图1a、图1b,图1a、图1b是现有技术中的任务调度过程示意图;其中,参考图1a,系统的层次结构包括cpu、位于cpu上层的操作系统(operatingsystem,os)内核和系统所需要运行的任务(如任务1、任务2、
……
任务n),而os内核包括任务调度器,该任务调度器用于根据任务调度策略对cpu核需要执行的任务进行调度。参考图1b,101为系统的任务的执行时序,102为任务调度器的执行时序。其中,在任务调度过程中,cpu核在执行完任务1后,将会保存任务1的上下文资源,读取任务调度器的上下文资源并执行任务调度器以确定下一个要执行的任务;若根据任务调度策略确定了下一个要执行的任务是任务2,则cpu核保存任务调度器的上下文资源,并读取任务2的上下文资源,并执行任务2,如此反复。
45.可见,现有技术中是由cpu中的cpu核来完成上下文切换工作,因此,需要一定的上下文切换开销,导致时间资源利用率低下。因此,本技术提出一种新的cpu架构,设置了协处理器以及存储任务的上下文资源的第一上下文资源模块和专门用于存放任务调度器的上下文资源的第二上下文资源模块,这样,由协处理器进行任务的上下资源保存和预取,使得cpu核不需要执行保存和预取任务的上下文资源的操作;而且,执行任务调度器时,cpu核无需进行任务调度器的上下文资源切换,减少任务调度器所需的执行时间可以减少cpu核的上下文切换开销,提升时间资源利用率。
46.实施例一
47.下面对本技术实施例的cpu架构及任务调度过程进行说明:
48.参考图2,图2是本技术实施例提供的一种cpu的结构示意图。
49.本技术实施例中,cpu 200包括至少一个cpu核201,及为每个cpu核201配置的m个协处理器(例如协处理器1、协处理器2、
……
协处理器m)、用于缓存任务的上下文资源的n个第一上下文资源模块(例如第一上下文资源模块1、第一上下文资源模块2、
……
第一上下文资源模块n)和用于存储任务调度器的上下文资源的第二上下文资源模块,其中,m等于一,n大于或等于二。
50.具体地,在cpu核201第一次执行任务调度器的时候,将获取任务调度器的上下文资源,并将其保存至第二上下文资源模块中。
51.另外,可选地,cpu 200还包括至少一个存储器管理单元(memory management unit,mmu)202,其用于在cpu 200和内存203之间进行地址转换,将虚拟地址映射到物理地址。
52.其中,cpu核201,用于通过任务调度器根据任务调度策略执行任务调度,在任务n-1执行完成后调度任务n时,向协处理器发送指示信号,指示信号用于指示协处理器保存任务n-1的上下文资源和预取任务n+1的上下文资源;
53.协处理器,用于响应指示信号,将任务n-1的上下文资源从上下文资源模块a保存至内存中;获取任务n+1的上下文资源,并将任务n+1的上下文资源缓存至上下文资源模块a中;上下文资源模块a为n个第一上下文资源模块中执行任务n-1时缓存任务n-1的上下文资源的第一上下文资源模块。
54.本技术实施例中的cpu中,由于cpu核设置有协处理器以及用于存储任务的上下文资源的第一上下文资源模块和专门用于存储任务调度器的上下文资源的第二上下文资源
模块,这样,调度任务n时,由协处理器进行保存任务n-1的上下资源和预取任务n+1的上下文资源,使得cpu核不需要执行保存任务n-1的上下文资源和预取任务n+1的上下文资源的操作;而且,在执行任务调度器时,cpu核无需进行任务调度器的上下文资源切换,可以有效减少任务调度器所需的执行时间;进而可以有效减少cpu核的上下文切换开销,这样,cpu核几乎所有的时间可以用于执行任务,可以有效提升cpu的时间资源利用率。
55.在一些实施例中,任务的上下文资源包括寄存器资源和转译后备缓冲器(translation lookaside buffer,tlb)资源,对应地,第一上下文资源模块包括用于存储任务的寄存器资源的寄存器和用于存储任务的tlb资源的tlb。本技术实施例通过协处理器预取任务的寄存器资源和tlb资源等上下文资源,使得cpu核在执行任务时,无需执行获取任务的寄存器资源和tlb资源等耗时较长的操作,可以帮助提升任务的执行效率。
56.特别地,协处理器在预取任务n+1的上下文资源时是指获取任务n+1的完整的tlb资源和完整的寄存器资源。
57.进一步地,tlb俗称快表,tlb是mmu的一部分,实质是高速缓冲存储器,它所缓存的是任务的页表项(虚拟地址到物理地址的映射)。换句话说,任务的tlb资源是指任务的页表项数据。而进一步地,本技术实施例中,由于任务可以使用一个进程来承载,也可以使用一个线程来承载,也即任务可以理解为一个进程或一个线程。以进程为例,一个进程在执行时,cpu的所有寄存器中的值、进程的状态以及堆栈中的内容被称为该进程的上下文。因此,进程的寄存器资源是指该进程相关的寄存器中所存放的值。同样地,线程的寄存器资源是指该线程相关的寄存器中所存放的数据。
58.参考图3,图3是本技术实施例提供的一种cpu的具体结构示意图;图3中,cpu包括一个cpu核302,一个协处理器301,第一上下文资源模块1和第一上下文资源模块2两个第一上下文资源模块,以及mmu 303;以第一上下文资源模块2为例,第一上下文资源模块2其中的tlb存放用于某一任务的地址转换的页表项,即tlb资源;而第一上下文资源模块2其中的寄存器用于存放某一任务的寄存器资源。
59.在一些实施例中,任务调度器的上下文资源包括寄存器资源和/或转译后备缓冲器tlb资源,相应地,第二上下文资源模块包括用于缓存任务调度器的寄存器资源的寄存器和/或用于缓存任务调度器的tlb资源的tlb。任务调度器的寄存器资源和tlb资源的定义可以参考上述任务的寄存器资源和tlb资源的定义,不再赘述。
60.特别地,当第二上下文资源模块包括寄存器和tlb时,第二上下文资源模块和第一上下文资源模块的结构可以是相同的;也可以是有些许差别,例如,第二上下文资源模块的寄存器的数目小于第一上下文资源模块的寄存器的数目。
61.另外,值得指出的是,实时系统指系统的计算正确性不仅取决于计算的逻辑正确性,还取决于产生结果的时间。如果未满足系统的时间约束,则认为系统失效。实时系统又分为硬实时系统和软实时系统。而任务的最坏情况执行时间(worst-case execution time,wcet)是该任务在特定硬件平台上执行所需的最大时间长度。
62.硬实时系统的定义为必须使任务在确定的时间内完成,即便在最坏的处理负载下也能如此。如航天、航空、汽车自动驾驶等领域,对任务的完成时间都有严格的要求,需满足硬实时系统的要求,才能通过这些领域的资格认证。
63.而软实时系统的定义为能让绝大多数任务在确定时间内完成。如视频播放,对视
频信息的处理绝大多数情况下满足时间的要求即可,少数情况下处理超时并不会引发严重的后果。
64.在一些实施例中,上述任务调度策略包括硬实时调度策略、优先级抢占调度策略或让渡调度策略。其中,硬实时调度策略包括轮询(round-robin,rr)调度策略、严格时间和空间分区(strict time and space partitioning,tsp)调度策略,而优先级抢占调度策略包括优先级抢占调度策略和优先级延迟抢占调度策略。cpu核通过任务调度器根据任务调度策略进行任务调度的具体过程可参考下面实施例二和实施例三的描述,在此不做赘述。
65.特别地,当任务调度策略采用硬实时调度策略时,此时的系统为硬实时系统。即在新的cpu架构支持下,任务切换时,cpu核接近了零等待。
66.其中,轮询调度策略是一种基于时间片的调度算法,系统根据任务提交的先后顺序进行排列,使用一个队列的数据结构进行存储(这个队列称为就绪队列),并为其设置每隔一定时间间隔(即时间片,此时时间片可以理解为任务调度策略的任务调度周期)产生一次中断,激活操作系统的任务调度器进行任务调度,完成调度之后,系统将cpu核分配给队首任务,令其执行。而当队首任务的时间片耗尽或运行完毕时,操作系统再次将cpu分配给新的队首任务。由此,可以保证就绪队列中的所有任务在一个确定的时间段内,都能够获得一次cpu核执行。
67.本技术实施例中,由于已经实现大大减少上下文切换开销,此时,可以缩小时间片的大小(也即可以将时间片设置成比现有技术中更小量级的数值),以满足实时性要求,又不会造成上下文切换开销的占比陡然增加。
68.而时间触发型调度策略,是指每个任务在各自设定好的时间间隔内重复、轮流调度的调度方法。时间触发型调度策略包括tsp调度策略,该策略为每个任务分配一个分区,每个分区具有自己的专用存储空间和专用时隙,各分区在各自的存储空间中存储各自的数据,在各自的专用时隙中进行任务处理。
69.参考图4a,图4a是本技术实施例提供的一种tsp调度策略示意图;a、b、c为3个任务,分别为它们划定了3个分区。系统分配“主要时间框架”,该主要时间框架的长度是固定的,满足3个分区专用时隙的之和的要求,是每个任务调度的固定时间间隔。在主要时间框架下,为每个任务划分固定的时隙,每个任务在该时隙中执行各自的任务。这种方式,由于每个任务都根据预先确定好的时间表执行,不受其他任务的影响,因此其执行时间是确定的,满足硬实时系统的要求。然而,tsp调度策略在进行上下文切换是存在开销的,且该开销随着分区数的增加而增加。因此,在本技术的cpu架构下,任务调度器采用tsp调度策略进行任务调度时,无需进行任务调度器的上下文资源切换,而且由协处理器进行任务的上下文资源的保存和预取,可以有效减小cpu核的上下文切换开销,进而带来实时性的提升或分区数的增加。
70.另外,优先级抢占调度策略是当一个高优先级的任务需要执行时,系统会自动切换到这个任务。这种根据优先级调度任务的方式称为抢占式任务处理。参考图4b,图4b是本技术实施例提供的一种优先级抢占调度策略示意图;假设有三个任务分别为任务1、任务2、任务3,这些任务的优先级为:任务1《任务2《任务3。在任务1的执行过程中,比任务1具有更高优先级的任务2就绪时,将会对任务1进行抢占。任务2执行的过程中,比任务2具有更高优先级的任务3就绪时,将会对任务2进行抢占。当任务3执行完成时,会从任务队列中重新执
行优先级相对较高的任务2;当任务2执行完成时,才会再次执行优先级相对较低的任务1。
71.优先级抢占调度策略如固定优先级(fixed priority scheduling,fps)调度策略、最早截止时间优先(earliest deadlinefirst,edf)调度策略等。
72.其中,fps调度策略可确保处理器在任何给定时间执行当前准备执行的所有任务中的最高优先级任务。该调度策略的优点是确保最高优先级的任务调度最优先处理;但是,由于优先级较高的任务被赋予了优先权,因此优先级较低的任务可能会等待不确定的时间,因此优先级较低的任务很难计算出其wcet。
73.edf调度策略,是一种动态优先级调度策略,每当发生调度事件(任务完成,新任务释放等)时,都将在队列中搜索最接近其截止日期的任务。该任务为下一个计划执行的任务。如果总cpu利用率不超过100%,edf可以保证满足所有任务的截止日期。
74.同样地,利用优先级抢占调度策略进行任务调度时,cpu核进行上下文切换是存在开销的,且该开销随着任务抢占的增加而增加。在本技术的cpu架构下,采用优先级抢占调度策略进行任务调度时,无需进行任务调度器的上下文资源切换,而且由协处理器进行任务的上下文资源的保存和预取,可以有效减小cpu核的上下文切换开销。
75.另外,让渡调度策略是指调度某一任务执行时,当该任务需要等待资源时,主动让出该任务执行的优先权,调度执行其他任务。同样地,利用让渡调度策略进行任务调度时,cpu核进行上下文切换是存在开销的,在本技术的cpu架构下,采用让渡调度策略进行任务调度时,无需进行任务调度器的上下文资源切换,而且由协处理器进行任务的上下文资源的保存和预取,可以有效减小cpu核的上下文切换开销。
76.在一些实施例中,上述任务调度策略所采用的任务调度周期满足以下表达式:
77.t1≥t/m,
78.其中,t1为任务调度周期,t为协处理器保存任务的上下文资源和预取任务的上下文资源所需的时间,m为协处理器的个数m,m大于或等于1。其中,t包括协处理器将任务n-1的上下文资源转移至内存中的时间,以及获取并将任务n+1的上下文资源缓存到上下文资源模块a中的时间。
79.本实施例的cpu中,对于一个cpu核来说,协处理器的数目m、任务调度周期t1和协处理器保存任务的上下文资源和预取任务的上下文资源所需的时间t之间只需满足上述约束关系即可。可以根据实际需要对t、m和t1的具体数值进行设置,只要满足上述表达式即可,只需在任务切换时为新任务准备好上下文资源即可,这样才能进行任务切换。特别地,当t1小于t时,只要合理设置m的大小,通过增加协处理器的个数,仍可以顺利完成任务调度,以实现硬实时系统,满足大部分应用的实时性要求。例如,t为3微秒,t1设置为2微秒,则至少需要2个协处理器,对应地,此时至少需要3个第一上下文资源模块才可以进行任务调度,其中,任务调度时,1个第一上下文资源模块为cpu核执行当前任务所使用,另外两个第一上下文资源模块由协处理器进行任务上下文资源保存和预取所使用。
80.在一个实施例中,假设某一cpu已经设计完成,此时cpu的相关硬件已经确定,则cpu中协处理器对应的时间t和数目m已经固定且已知,则在设置t1时,以满足上述表达式为条件进行设置即可。
81.而在另一实施例中,假设在设计cpu时,如果t1和t已经设定好,例如t1为2微秒,t为3微秒,则m的具体取值范围可以根据上述表达式确定下来,如果此时m至少为2个。
82.在一些实施例中,本技术实施例通过将上下文资源预取的工作由cpu核迁移到协处理器完成,在进行上下文切换时,cpu核仅需完成非常少量的工作,绝大部分耗时的工作都由协处理器来完成。在此基础上,任务调度策略为轮询调度策略时,任务的最坏情况执行时间的计算公式为:
83.wcet=n*fn(t1,t2),
84.其中,wcet为最坏情况执行时间,n为cpu核的最大并行任务数,也可以理解为操作系统的最大并行任务数;t1为任务调度策略所采用的任务调度周期;t2为任务的处理时长;fn为大于或等于t2的t1的最小倍数值。
85.t2为任务的处理时长,例如,可以是任务在当前硬件环境下,单任务冷启动场景下的处理时长,相当于该任务的本身最大的计算量;fn为大于或等于t2的t1的最小倍数值。
86.本技术实施例通过数学公式确保和简化了任务的最坏情况执行时间的计算,以满足可信需进行形式化证明的要求。值得注意的是,上述计算公式确定的wcet为未考虑任务调度器的执行时间所得到的wcet,当考虑任务调度器的执行时间时,需要在原有wcet(利用上述计算公式获得)的基础上再加上任务调度器的执行时间。
87.参考表1,其示例了t1、t2和fn之间的可能的对应关系,下面举例说明wcet的计算过程:
88.举例1:某系统最大并行任务数n=10,任务调度周期的大小t1=10微秒,任务1的处理时长t2=3微秒;则任务1的最坏情况处理时间wcet=10*fn(10微秒,3微秒)=10*10微秒=100微秒,即0.1毫秒。原因是由于最坏情况下并行10个任务,除任务1之外有9个任务,每个任务处理10微秒,那么最坏情况下是90微秒后该任务将得到调度;得到调度后由于仅需3微秒即可完成处理,在该10微秒的时间片内即可完成处理,因此任务1的wcet为100微秒(实际情况为93微秒,向上取整为100微秒)。
89.举例2:某系统最大并行任务数n=10,任务调度周期的大小t1=10微秒,任务2的处理时长t2=13微秒;则任务2的最坏情况处理时间wcet=10*fn(10微秒,13微秒)=10*20微秒=200微秒,即0.2毫秒。原因是由于最坏情况下并行10个任务,除本任务外有9个任务;10个任务轮询一轮时,此时任务2并没有执行完,因此需要第二轮轮询。第一轮中该10个任务分别执行10微秒,用时100微秒(10*10微秒);第二轮,假设最坏的情况是任务2排在队列最后,则除任务2外的其他9个任务每个任务处理10微秒,90微秒后任务2会再次得到处理,还需处理3微秒,第二轮一共处理93微秒。因此任务2总共在193微秒内必定可以处理完成,wcet向上取整为200微秒。
[0090][0091]
[0092]
表1
[0093]
表2示例了n、t1、t2、wcet可能的对应关系:
[0094][0095]
表2
[0096]
由表2可见,任务调度周期t1、并行任务数n相同时,任务优先级(也即最坏情况执行时间wcet),与计算量(即任务处理时长t2)正相关。换句话说,任务的计算量约等于任务的优先级,任务的计算量越小,越快完成处理。因此,本技术实施例中,在本技术的cpu架构下,应用轮询调度策略进行任务调度的方法,十分适用于如下任务混合的系统:高优先级任务计算量小的系统,或者是低优先级任务计算量大的系统。
[0097]
实施例二
[0098]
下面以每个cpu核包括一个协处理器和n个第一上下文资源模块,其中,n个第一上下文资源模块包括上下文资源模块a和上下文资源模块b,以cpu核使用上下文资源模块a和
上下文资源模块b来完成任务调度为例,对具体的调度过程进行说明。特别地,n大于二时,上下文资源模块a和上下文资源模块b可以为n个第一上下文资源模块中的任意两个。
[0099]
在一些实施例中,上述cpu中,设置了第一指针用于指示当前任务调度周期内,cpu核获取任务的上下文资源的第一上下文资源模块,第一指针可以用current来标识,即第一指针为current指针;还设置了第二指针用于指示当前任务调度周期到期后,cpu核获取任务的上下文资源的第一上下文资源模块;而第二指针可以用next来标识,即第二指针为next指针。
[0100]
进一步地,在一个可能的实施例中,cpu核在通过任务调度器根据任务调度策略执行任务调度,在任务n-1执行完成后调度任务n时,向协处理器发送指示信号方面,具体用于:
[0101]
通过任务调度器确定第一指针指向上下文资源模块a,且第二指针指向上下文资源模块b时,表明下一个任务调度周期cpu核执行的是与当前任务不同的任务,此时cpu核需要改变第一指针的指向,将第一指针指向上下文资源模块b,将第二指针指向上下文资源模块a或者指示协处理器将第二指针指向上下文资源模块a;以及,当任务n+1和任务n为不同任务时,向协处理器发送第一指示信号,并调度执行任务n,第一指示信号中携带有任务n+1的任务标识,第一指示信号用于指示协处理器保存任务n-1的上下文资源和预取任务n+1的上下文资源;当任务n+1和任务n为同一个任务时,向协处理器发送第二指示信号,并调度执行任务n,第二指示信号用于指示协处理器保存任务n-1的上下文资源。
[0102]
对应地,在一些实施例中,协处理器,具体用于:响应第一指示信号,将上下文资源模块a中的上下文资源保存至内存中;以及,根据第一指示信号中携带的任务n+1的任务标识,将任务n+1的上下文资源缓存至上下文资源模块a中。
[0103]
对应地,在一些实施例中,协处理器,具体用于:响应第二指示信号,将上下文资源模块a中的上下文资源保存至内存中;以及,将第二指针指向上下文资源模块b。
[0104]
其中,在将第二指针指向上下文资源模块a方面,可以是cpu核通过任务调度器实现将第二指针指向上下文资源模块a,或者,由于在第一指针指向上下文资源模块a,且第二指针指向上下文资源模块b时,后续协处理器需要进行与上下文资源模块a相关的操作,因此,cpu核也可以通过任务调度器指示协处理器将第二指针指向上下文资源模块a,此时,第一指示信号、第二指示信号还具有指示协处理器将第二指针指向上下文资源模块a的功能。协处理器在响应第一指示信号时,先将第二指针指向上下文资源模块a,再将上下文资源模块a中的上下文资源保存至内存中;以及,根据第一指示信号中携带的任务n+1的任务标识,将任务n+1的上下文资源缓存至上下文资源模块a中。而协处理器在响应第二指示信号时,先将第二指针指向上下文资源模块a,再将上下文资源模块a中的上下文资源保存至内存中;以及,将第二指针指向上下文资源模块b。
[0105]
具体地,以cpu核通过任务调度器实现将第二指针指向上下文资源模块a为例,参考图5a,图5a是本技术实施例提供的一种cpu核的任务调度过程示意图;cpu核的执行过程如下:
[0106]
(1)、当cpu核502通过执行任务调度器判断current指针所指向的上下文资源模块是否与next指针所指向的上下文资源模块相同。
[0107]
如果不相同,假设current指针指向上下文资源模块a,next指针指向上下文资源
模块b;此时,上下文资源模块a缓存的是任务n-1的上下文资源,而上下文资源模块b缓存的是任务n的上下文资源。
[0108]
(2)、将current指针指向上下文资源模块b,将next指针指向上下文资源模块a。
[0109]
(3)、当根据任务调度策略确定的任务n+1和任务n为不同任务时,向协处理器501发送第一指示信号。
[0110]
而当任务n+1和任务n为同一个任务时,向协处理器501发送第二指示信号。
[0111]
(4)、根据current指针获取任务n的上下文资源信息,执行任务n。
[0112]
在该场景下,前3个步骤为本技术实施例中cpu核进行上下文切换时所需的开销,将上下文切换中最耗时的保存和预取上下文资源的操作迁移到了协处理器上进行处理,cpu核的上下文切换时间将大大减少;第4个步骤为任务执行时间。
[0113]
相应地,参考图5b,图5b是本技术实施例提供的一种协处理器的任务调度过程示意图;协处理器501需要响应第一指示信号,具体执行以下步骤:
[0114]
(1)、将上下文资源模块a中存储的任务n-1的上下文资源转移至内存中。
[0115]
(2)、根据第一指示信号中携带的任务n+1的任务标识,获取任务n+1的上下文资源,并将其缓存至上下文资源模块a中。
[0116]
相应地,参考图5c,图5c是本技术实施例提供的一种协处理器的任务调度过程示意图;协处理器501需要响应第二指示信号,具体执行以下步骤:
[0117]
(1)、将上下文资源模块a中存储的任务n-1的上下文资源转移至内存中。
[0118]
(2)、将next指针指向上下文资源模块b。
[0119]
更进一步地,在另一个可能的实施例中,cpu核在通过任务调度器根据任务调度策略执行任务调度,在任务n-1执行完成后调度任务n时,向协处理器发送指示信号方面,具体用于:
[0120]
通过任务调度器确定第一指针与第二指针均指向上下文资源模块a时,当任务n+1和任务n为不同任务时,将第二指针指向上下文资源模块b或指示协处理器将第二指针指向上下文资源模块b,向协处理器发送第三指示信号,并调度执行任务n,第三指示信号中携带有任务n+1的任务标识,第三指示信号用于指示协处理器预取任务n+1的上下文资源;以及,当任务n+1和任务n为同一个任务时,调度执行任务n。
[0121]
对应地,在一些实施例中,协处理器,具体用于:响应第三指示信号,根据第三指示信号中携带的任务n+1的任务标识,将任务n+1的上下文资源缓存至上下文资源模块b中。
[0122]
其中,在将第二指针指向上下文资源模块b方面,可以是cpu核通过任务调度器实现将第二指针指向上下文资源模块b,或者,由于在第一指针与第二指针均指向上下文资源模块a时,后续协处理器需要进行与上下文资源模块b相关的操作,因此,cpu核也可以通过任务调度器指示协处理器将第二指针指向上下文资源模块b,此时,第三指示信号还具有指示协处理器将第二指针指向上下文资源模块b的功能。协处理器在响应第三指示信号时,先将第二指针指向上下文资源模块b,再根据第三指示信号中携带的任务n+1的任务标识,将任务n+1的上下文资源缓存至上下文资源模块b中。
[0123]
具体地,以cpu核通过任务调度器实现将第二指针指向上下文资源模块b为例,参考图5d,图5d是本技术实施例提供的另一种cpu核的任务调度过程示意图,cpu核的执行过程如下:
[0124]
(1)、当cpu核502通过任务调度器确定current指针和next指针同时指向上下文资源模块a,此时,上下文资源模块a缓存的是任务n-1的上下文资源,也即任务n的上下文资源,说明下一个任务调度周期执行的是与当前任务相同的任务,则不需要修改current指针的指向,只需执行步骤(2)和步骤(3)即可。
[0125]
(2)、当根据任务调度策略确定的任务n+1和任务n为不同任务时,将next指针指向上下文资源模块b,向协处理器501发送第三指示信号,并执行步骤(3)。而当任务n+1和任务n为同一个任务时,执行步骤(3)。
[0126]
(3)、根据current指针获取任务n的上下文资源信息,并执行任务n。
[0127]
在该场景下,前2个步骤为本技术实施例中的cpu核进行上下文切换所需的开销,将上下文切换中最耗时的预取任务的上下文资源的操作迁移到了协处理器上进行处理,cpu核的上下文切换时间将大大减少;而第3个步骤为任务执行时间。
[0128]
相应地,协处理器501收到cpu核502发送的第三指示信号之后,此时,协处理器501无需进行上一任务的上下文资源保存操作,只需进行下一任务的上下文资源预取工作。参考图5e,图5e是本技术实施例提供的另一种协处理器的任务调度过程示意图;协处理器501需要响应第三指示信号,具体执行以下步骤:
[0129]
(1)、根据第三指示信号中携带的任务n+1的任务标识,将任务n+1的上下文资源缓存至上下文资源模块b中。
[0130]
实施例三
[0131]
实施例二以每个cpu核设置一个协处理器和n个第一上下文资源模块,其中,n个第一上下文资源模块包括上下文资源模块a和上下文资源模块b,以cpu核使用上下文资源模块a和上下文资源模块b来完成任务调度为例对任务调度过程进行说明。进一步地,本技术实施例将以每个cpu核设置有2个协处理器和n个第一上下文资源模块,其中,2个协处理器分别为协处理器a和协处理器b;而n个第一上下文资源模块包括上下文资源模块1、上下文资源模块2和上下文资源模块3为例,对任务调度过程进行具体说明。其中,n大于三时,上下文资源模块1、上下文资源模块2和上下文资源模块3可以为n个第一上下文资源模块中的任意三个。
[0132]
假设任务调度周期为1微秒,协处理器保存和预取任务的上下文资源所需的时间为2微秒。参考图6a和图6b,图6a是本技术实施例提供的一种任务调度过程中第一上下文资源模块的使用情况示意图;图6b是本技术实施例提供的一种任务调度过程时序示意图;假设根据任务调度策略确定的任务执行顺序依次为r1、r2、r3、r4、r5、r6、r7、r8,
……
,其中,时序601示意的是cpu核的执行时序,而时序602为协处理器a预取任务的上下文资源时序,而时序603为协处理器b预取任务的上下文资源时序。cpu核的执行过程如下:
[0133]
(1)、假设协处理器b已完成任务r1的上下文资源(缓存在上下文资源模块1)的预取操作,而且协处理器a正在预取任务r2的上下文资源(此时已预取任务r2一半的上下文资源,缓存在上下文资源模块2),cpu核通过任务调度器确定此时调度执行r1,且指示协处理器b预取任务r3的上下文资源(缓存至上下文资源模块3)。
[0134]
此时,cpu核先利用上下文资源模块1存储的上下文资源来执行任务r1。
[0135]
(2)、任务r1执行完成之后,则执行任务调度器(任务调度器的执行时间可参见时序601中任务r1和任务r2之间的一小段时间),以确定下一个要执行的任务,假设任务调度
策略确定下一个要执行的任务为任务r2,则调度执行任务r2,cpu核利用上下文资源模块2中存储的上下文资源来执行任务r2。同时,cpu核指示协处理器a预取任务r4的上下文资源,具体地,协处理器a先将上下文资源模块1中存储的任务r1的上下文资源转移至内存中,并将任务r4的上下文资源缓存至上下文资源模块1中。
[0136]
(3)、任务r2执行完成之后,执行任务调度器,以确定下一个要执行的任务,假设任务调度策略确定下一个要执行的任务为任务r3,则调度执行任务r3,由于此时的任务调度周期小于上下文资源的保存和预取时间,此时,协处理器a并未完成任务r4的上下文资源预取操作,因此,cpu核此时指示协处理器b保存任务2的上下文资源和预取任务r5的上下文资源,预取过程与上述协处理器a的预取过程类似,不做赘述。不同的是,协处理器b将任务r5的上下文资源缓存至上下文资源模块2中。
[0137]
(4)、任务r3执行完成后,执行任务调度器,以确定下一个要执行的任务,假设任务调度策略确定下一个要执行的任务为任务r4,则调度执行任务r4,同样地,此时协处理器b并未完成上下文资源预取,而协处理器a此时已完成任务r4的上下文资源预取,因此,cpu核指示协处理器a保存任务r3的上下文资源和预取任务r6的上下文资源。不同的是,协处理器a将任务r5的上下文资源缓存至上下文资源模块3中。
[0138]
后续可以继续按照上述步骤(2)-步骤(4)的类似逻辑继续运行。
[0139]
值得指出的是,对于两个以上的协处理器和三个以上的第一上下文资源模块的cpu核而言,在任务调度时需要确定第一上下文资源模块的使用顺序,具体的确定过程可参考实施例二,不做特别赘述。例如,可以采用指针的方式来确定第一上下文资源模块的使用顺序,其中,指针的个数与第一上下文资源模块的数目相同,例如,假设有三个第一上下文资源模块,则需要设置三个指针,分别为第一指针,第二指针和第三指针,其中,第一指针用于指示当前任务调度周期内,cpu核获取任务的上下文资源的第一上下文资源模块,第二指针用于指示当前任务调度周期到期后,cpu核获取任务的上下文资源的第一上下文资源模块;而第三指针用于指示在第二指针所对应的任务调度周期到期后,cpu核获取任务的上下文资源的第一上下文资源模块,即第一上下文资源模块的使用顺序为第一指针、第二指针、第三指针所指向的第一上下文资源模块的顺序。
[0140]
另外,对于使用的协处理器的个数多于两个,且使用的第一上下文资源模块的个数多于三个的情景,任务调度的过程与实施例二、实施例三类似,不做特别赘述。
[0141]
实施例四
[0142]
基于上述实施例,本技术还提供一种任务调度方法,应用于上述任意实施例中的cpu,参考图7,图7是本技术实施例提供的一种任务调度方法流程图,任务调度方法包括:
[0143]
701、cpu核通过任务调度器根据任务调度策略执行任务调度,在任务n-1执行完成后调度任务n时,向协处理器发送指示信号,指示信号用于指示协处理器保存任务n-1的上下文资源和预取任务n+1的上下文资源;
[0144]
702、协处理器响应指示信号,将任务n-1的上下文资源从上下文资源模块a保存至内存中;获取任务n+1的上下文资源,并将任务n+1的上下文资源缓存至上下文资源模块a中;上下文资源模块a为n个第一上下文资源模块中执行任务n-1时缓存任务n-1的上下文资源的第一上下文资源模块。
[0145]
本技术实施例中的任务调度方法,通过协处理器进行任务的上下资源保存和预
取,使得cpu核不需要执行保存和预取任务的上下文资源的操作;进而可以有效减少cpu核的上下文切换开销,这样,cpu核几乎所有的时间可以用于执行任务,可以有效提升cpu的时间资源利用率。
[0146]
在一些实施例中,任务的上下文资源包括寄存器资源和转译后备缓冲器tlb资源,第一上下文资源模块包括用于缓存任务的寄存器资源的寄存器和用于缓存任务的tlb资源的tlb。
[0147]
在一些实施例中,任务调度器的上下文资源包括寄存器资源和/或转译后备缓冲器tlb资源,第二上下文资源模块包括用于缓存任务调度器的寄存器资源的寄存器和/或用于缓存任务调度器的tlb资源的tlb。
[0148]
在一些实施例中,任务调度策略包括轮询调度策略、严格时间和空间分区调度策略、优先级抢占调度策略或让渡调度策略。
[0149]
在一些实施例中,n个第一上下文资源模块包括上下文资源模块a和上下文资源模块b;cpu核通过任务调度器根据任务调度策略执行任务调度,在任务n-1执行完成后调度任务n时,向协处理器发送指示信号,具体包括:
[0150]
cpu核通过任务调度器确定第一指针指向上下文资源模块a,且第二指针指向上下文资源模块b时,将第一指针指向上下文资源模块b,将第二指针指向上下文资源模块a或者指示协处理器将第二指针指向上下文资源模块a;第一指针用于指示当前任务调度周期内,cpu核获取任务的上下文资源的第一上下文资源模块;第二指针用于指示当前任务调度周期到期后,cpu核获取任务的上下文资源的第一上下文资源模块;以及,
[0151]
当任务n+1和任务n为不同任务时,向协处理器发送第一指示信号,并调度执行任务n,第一指示信号中携带有任务n+1的任务标识,第一指示信号用于指示协处理器保存任务n-1的上下文资源和预取任务n+1的上下文资源;当任务n+1和任务n为同一个任务时,向协处理器发送第二指示信号,并调度执行任务n,第二指示信号用于指示协处理器保存任务n-1的上下文资源。
[0152]
对应地,在一些实施例中,协处理器,具体用于:响应第一指示信号,将上下文资源模块a中的上下文资源保存至内存中;以及,根据第一指示信号中携带的任务n+1的任务标识,将任务n+1的上下文资源缓存至上下文资源模块a中。
[0153]
对应地,在一些实施例中,协处理器,具体用于:响应第二指示信号,将上下文资源模块a中的上下文资源保存至内存中;以及,将第二指针指向上下文资源模块b。
[0154]
在一些实施例中,n个第一上下文资源模块包括上下文资源模块a和上下文资源模块b;cpu核通过任务调度器根据任务调度策略执行任务调度,在任务n-1执行完成后调度任务n时,向协处理器发送指示信号,具体包括:
[0155]
通过任务调度器确定第一指针与第二指针均指向上下文资源模块a时,第一指针用于指示当前任务调度周期内,cpu核获取任务的上下文资源的第一上下文资源模块;第二指针用于指示当前任务调度周期到期后,cpu核获取任务的上下文资源的第一上下文资源模块;当任务n+1和任务n为不同任务时,将第二指针指向上下文资源模块b或指示协处理器将第二指针指向上下文资源模块b,向协处理器发送第三指示信号,并调度执行任务n,第三指示信号中携带有任务n+1的任务标识,第三指示信号用于指示协处理器预取任务n+1的上下文资源;以及,当任务n+1和任务n为同一个任务时,调度执行任务n。
[0156]
对应地,在一些实施例中,方法还包括:
[0157]
协处理器响应第三指示信号,根据第三指示信号中携带的任务n+1的任务标识,将任务n+1的上下文资源缓存至上下文资源模块b中。
[0158]
在一些实施例中,方法还包括:
[0159]
cpu核执行任务n时,通过任务调度器根据任务调度策略确定要执行的任务为任务n+1’时,通过任务调度器获取任务n+1’的上下文资源替换上下文资源模块a中缓存的任务n+1的上下文资源;或者,向协处理器发送指示信号以指示协处理器保存任务n的上下文资源和预取任务n+1’的上下文资源,并调度执行任务n+1;任务n+1’与任务n+1为不同的任务。
[0160]
在一些实施例中,方法还包括:
[0161]
cpu核通过任务调度器,在执行完任务n-1后调度执行任务n时,如果协处理器未完成保存任务n-2的上下文资源和预取任务n的上下文资源,任务调度器等待协处理器完成保存任务n-2的上下文资源和预取任务n的上下文资源后再调度执行任务n,或者,通过任务调度器保存任务n-2的上下文资源和预取任务n的上下文资源后再调度执行任务n。
[0162]
在一些实施例中,任务调度策略所采用的任务调度周期满足以下表达式:t1≥t/m,其中,t1为任务调度周期,t为协处理器预取任务的上下文资源所需的时间,m为协处理器的个数m,m大于或等于1。
[0163]
在一些实施例中,任务调度策略为轮询调度策略时,任务的最坏情况执行时间的计算公式为:wcet=n*fn(t1,t2),其中,wcet为最坏情况执行时间,n为cpu核的最大并行任务数,t1为任务调度策略所采用的任务调度周期;t2为任务的处理时长;fn为大于或等于t2的t1的最小倍数值。
[0164]
关于cpu核和协处理器的具体执行过程和所能达到的效果,可以参考上述各种实施例的描述,不做特别赘述。
[0165]
本技术中各种实施例如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本技术的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本技术各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(read-only memory,rom)、随机存取存储器(random access memory,ram)、磁碟或者光盘等各种可以存储程序代码的介质。
[0166]
以上所述,仅为本技术的具体实施方式,但本技术的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本技术揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本技术的保护范围之内。因此,本技术的保护范围应以所述权利要求的保护范围为准。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1