CN116521329A - 一种任务调度方法、装置、设备及存储介质 - Google Patents

一种任务调度方法、装置、设备及存储介质 Download PDF

Info

Publication number
CN116521329A
CN116521329A CN202210064442.7A CN202210064442A CN116521329A CN 116521329 A CN116521329 A CN 116521329A CN 202210064442 A CN202210064442 A CN 202210064442A CN 116521329 A CN116521329 A CN 116521329A
Authority
CN
China
Prior art keywords
task
register
task data
data
reading
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.)
Pending
Application number
CN202210064442.7A
Other languages
English (en)
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.)
Zeku Technology Beijing Corp Ltd
Original Assignee
Zeku Technology Beijing Corp 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 Zeku Technology Beijing Corp Ltd filed Critical Zeku Technology Beijing Corp Ltd
Priority to CN202210064442.7A priority Critical patent/CN116521329A/zh
Publication of CN116521329A publication Critical patent/CN116521329A/zh
Pending legal-status Critical Current

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
    • 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/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • 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

Abstract

本申请实施例公开了一种任务调度方法、装置、设备及存储介质,该方法包括:从第一寄存器中读取第一任务数据,执行第一任务;确定所述第一寄存器中所述第一任务数据读取异常,停止执行所述第一任务;从第二寄存器中读取第二任务数据,执行第二任务;确定所述第一寄存器中所述第一任务数据读取正常,从所述第一寄存器中继续读取所述第一任务数据,执行所述第一任务。这样,当第一寄存器数据读取异常(比如数据丢失),处理器快速执行任务切换,停止执行第一任务,从第二寄存器中读取第二任务数据以执行第二任务,减少处理器停止运行现象,提高处理器资源利用率,从而提高处理器性能。

Description

一种任务调度方法、装置、设备及存储介质
技术领域
本申请涉及计算机技术,尤其涉及一种任务调度方法、装置、设备及存储介质。
背景技术
目前中央处理器(central processing unit,CPU)CPU都是典型的冯·诺依曼结构,采用流水线的形式提高CPU的资源利用率,如图1所示,理想情况下CPU采用流水线形式执行五个任务,CPU被完全利用起来,没有任何CPU空闲的时间。
随着CPU的处理能力越来越强,而缓存(cache)读写速度的能力提升却无法赶上CPU处理能力的提升。由于缓存丢失(cache miss),使CPU想要的数据无法及时取到CPU中处理,CPU必须停下来等待cache中的数据,这样就会导致CPU的停顿,使得CPU的利用率下降,继而导致CPU性能下降。
发明内容
为解决上述技术问题,本申请实施例期望提供一种任务调度方法、装置、设备及存储介质。
本申请的技术方案是这样实现的:
第一方面,提供了一种任务调度方法,包括:
从第一寄存器中读取第一任务数据,执行第一任务;
确定所述第一寄存器中所述第一任务数据读取异常,停止执行所述第一任务;
从第二寄存器中读取第二任务数据,执行第二任务;
确定所述第一寄存器中所述第一任务数据读取正常,从所述第一寄存器中继续读取所述第一任务数据,执行所述第一任务。
第二方面,提供了一种任务调度装置,该任务调度装置应用于电子设备的处理器中,用于实现任务调度,任务调度装置可以通过或软件、或硬件、或软件与硬件相结合的方式,实现多个单元的功能,使该装置可以执行如上述第一方面中任一项所提供的任务调度方法。第二方面中各技术方案的效果可以参考第一方面中相应的技术方案,本申请对此不再一一赘述。
所述装置包括:
处理单元,用于从第一寄存器中读取第一任务数据,执行第一任务;
确定单元,用于确定所述第一寄存器中所述第一任务数据读取异常,指示所述处理单元停止执行所述第一任务,从第二寄存器中读取第二任务数据,执行第二任务;
所述确定单元,还用于确定所述第一寄存器中所述第一任务数据读取正常,指示所述处理单元从所述第一寄存器中继续读取所述第一任务数据,执行所述第一任务。
第三方面,提供了一种电子设备,包括:处理器和配置为存储能够在处理器上运行的计算机程序的存储器,
其中,所述处理器配置为运行所述计算机程序时,执行前述方法的步骤。
第四方面,提供了一种计算机可读存储介质,其上存储有计算机程序,其中,该计算机程序被处理器执行时实现前述方法的步骤。
本申请实施例中提供了一种任务调度方法、装置、设备及存储介质,该方法包括:从第一寄存器中读取第一任务数据,执行第一任务;确定所述第一寄存器中所述第一任务数据读取异常,停止执行所述第一任务;从第二寄存器中读取第二任务数据,执行第二任务;确定所述第一寄存器中所述第一任务数据读取正常,从所述第一寄存器中继续读取所述第一任务数据,执行所述第一任务。这样,当第一寄存器数据读取异常(比如数据丢失),处理器快速执行任务切换,停止执行第一任务,从第二寄存器中读取第二任务数据以执行第二任务,减少处理器停止运行现象,提高处理器资源利用率,从而提高处理器性能。
附图说明
图1为典型CPU五级流水线的工作流程示意图;
图2为本申请实施例中任务调度方法的第一流程示意图;
图3为本申请实施例中任务调度方法的第二流程示意图;
图4为本申请实施例中任务调度方法的第三流程示意图;
图5为本申请实施例中任务调度方法的第四流程示意图;
图6为本申请实施例中数据分层存储结构示意图;
图7为现有技术中CPU资源利用情况示意图;
图8为本申请实施例中CPU资源利用情况示意图;
图9为本申请实施例中任务调度方法的第五流程示意图;
图10为本申请实施例中任务调度装置的组成结构示意图;
图11为本申请实施例中电子设备的组成结构示意图。
具体实施方式
为了能够更加详尽地了解本申请实施例的特点与技术内容,下面结合附图对本申请实施例的实现进行详细阐述,所附附图仅供参考说明之用,并非用来限定本申请实施例。
本申请实施例提供了一种任务调度方法,该方法应用于任务调度装置,任务调度装置包括第一寄存器、第二寄存器和处理器,处理器从寄存器中读取任务数据执行任务,该任务调度装置可以为电子设备中的中央处理器。
图2为本申请实施例中任务调度方法的第一流程示意图,如图2所示,该方法具体可以包括:
步骤201:从第一寄存器中读取第一任务数据,执行第一任务;
示例性的,一个任务(task)可以为一个线程,线程(thread)是操作系统任务调度和执行的基本单位,线程是进程中执行运算的最小单位,是进程中的一个实体,是被系统独立调度和分派的基本单位,线程自己不拥有系统资源,只拥有一点在运行中必不可少的资源,但它可与同属一个进程的其它线程共享进程所拥有的全部资源。一个线程可以创建和撤消另一个线程,同一进程中的多个线程之间可以并发执行。
在一些实施例中,一个任务还可以为包含一个线程的进程。
步骤202:确定所述第一寄存器中所述第一任务数据读取异常,停止执行所述第一任务;
这里,第一寄存器中第一任务数据读取异常可以为数据丢失,或者第一寄存器本身异常无法访问。
步骤203:从第二寄存器中读取第二任务数据,执行第二任务;
这里,第二寄存器可以理解为备份寄存器,当第一寄存器数据读取异常,则读取备份寄存器中任务数据,能够解决因第一寄存器数据读取异常导致任务处理中断的问题。
示例性的,该方法还包括:确定所述第一寄存器中所述第一任务数据读取异常,将寄存器地址从第一寄存器地址修改为第二寄存器地址。
这里,寄存器地址为数据读取地址,通过修改寄存器地址使得CPU寄存器从指向第一寄存器切换到指向第二寄存器。寄存器地址为第一寄存器地址时从第一寄存器读取任务数据,寄存器地址为第二寄存器地址时从第二寄存器读取任务数据。
示例性的,该方法还包括:确定所述第一寄存器中所述第一任务数据读取异常,将第二寄存器中的数据存储到所述第一寄存器。实际应用中,当第一寄存器作为处理器的主寄存器,第二寄存器作为备用寄存器时,若第一寄存器中数据丢失可以将第二寄存器中的数据存入第一寄存器中,供处理器读取数据执行任务。
相应的,所述从第二寄存器中读取第二任务数据,执行第二任务,包括:将所述第二寄存器中的第二任务数据存储到所述第一寄存器中,从所述第一寄存器中读取所述第二任务数据,执行第二任务。在执行第二任务时,若获取到第一任务数据,将第一任务数据存储到第二寄存器中,等待继续执行。
步骤204:确定所述第一寄存器中所述第一任务数据读取正常,从所述第一寄存器中继续读取所述第一任务数据,执行所述第一任务。
这里,第一寄存器中第一任务数据读取正常可以为数据命中,或者第一寄存器本身异常恢复可以正常访问。
示例性的,该方法还包括:确定所述第一寄存器中所述第一任务数据读取正常,将所述寄存器地址从所述第二寄存器地址修改为所述第一寄存器地址。也就是说,当第一寄存器中数据读取正常后,通过修改寄存器地址使得CPU寄存器从指向第二寄存器切换到指向第一寄存器,从第一存储器中读取第一任务数据,继续执行第一任务。
示例性的,在一些实施例中,该方法包括:所述第二任务执行未结束,确定所述第一寄存器中所述第一任务数据读取正常,停止执行所述第二任务,从所述第一寄存器中继续读取所述第一任务数据,执行所述第一任务。
图3为本申请实施例中任务调度方法的第二流程示意图,如图3所示,该方法具体可以包括:
步骤301:执行第一任务;
步骤302:第一任务数据读取异常,停止执行第一任务;
步骤303:执行第二任务;
步骤304:第一任务数据读取正常,停止执行第二任务;
步骤305:继续执行第一任务。
也就是说,当从第一任务切换到第二任务时,在第二任务执行过程中,确定第一寄存器中第一任务数据读取正常,则停止执行第二任务,从第二任务切换到第一任务。这样,当多个任务存在执行先后顺序的要求时,能够保证第一任务的及时执行。
示例性的,在一些实施例中,该方法包括:所述第二任务执行结束,确定所述第一寄存器中所述第一任务数据读取正常,从所述第一寄存器中读取所述第一任务数据,继续执行所述第一任务。
图4为本申请实施例中任务调度方法的第三流程示意图,如图4所示,该方法具体可以包括:
步骤401:执行第一任务;
步骤402:第一任务数据读取异常,停止执行第一任务;
步骤403:执行第二任务;
步骤404:第二任务执行结束;
步骤405:第一任务数据读取正常,继续执行第一任务。
也就是说,当从第一任务切换到第二任务时,若第二任务能顺利执行,则在第二任务执行结束后,若确定第一寄存器中第一任务数据读取正常,继续执行第一任务。这样,可以减少任务切换次数。
示例性的,在一些实施例中,该方法包括:所述第二任务执行结束,确定所述第一寄存器中所述第一任务数据读取异常,从所述第二寄存器中读取第三任务数据,执行第三任务。
图5为本申请实施例中任务调度方法的第四流程示意图,如图5所示,该方法具体可以包括:
步骤501:执行第一任务;
步骤502:第一任务数据读取异常,停止执行第一任务;
步骤503:执行第二任务;
步骤504:第二任务执行结束,执行第三任务;
步骤505:第一任务数据读取正常,切换到第一任务执行。
也就是说,当从第一任务切换到第二任务时,若第二任务能顺利执行,则在第二任务执行结束后,若确定第一寄存器中第一任务数据仍然读取异常,则继续执行第二任务之后的第三任务,直到确定第一寄存器中第一任务数据读取正常,再切换到第一任务继续执行。这样,当第一任务数据持续丢失时,处理器继续执行其他任务,处理器资源利用率完全不会受到第一任务数据丢失的影响。
示例性的,在一些实施例中,该方法还包括:从第一存储单元中读取所述第一任务数据存储到所述第一寄存器中;所述第一存储单元中所述第一任务数据丢失时,确定所述第一寄存器中所述第一任务数据读取异常;所述第一存储单元中所述第一任务数据命中时,确定所述第一寄存器中所述第一任务数据读取正常。
示例性的,在一些实施例中,该方法还包括:从所述第一存储单元中读取所述第二任务数据存储到所述第二寄存器中;所述第一存储单元中所述第二任务数据丢失时,确定所述第二寄存器中所述第二任务数据读取正常;所述第一存储单元中所述第二任务数据命中时,确定所述第二寄存器中所述第二任务数据读取正常。
也就是说,第一任务数据和第二任务数据预先存储到第一存储单元,再从第一存储单元中获取并存储到第一寄存器和第二寄存器中,以供处理器读取并执行。
示例性的,第一存储单元为缓存(Cache),该方法还包括:将多个任务数据预先存储到第二存储单元中;其中,所述多个任务数据包括第一任务数据和第二任务数据;从所述第二存储单元中读取所述第一任务数据和所述第二任务数据到所述第一存储单元中。
第二存储单元的存储容量大于第一存储单元的存储容量,第一存储单元作为处理器和第二存储单元之间临时的数据交换器,用于缓存数据。
这里,第二存储单元为可以是易失性存储器(volatile memory),例如随机存取存储器(RAM,Random-Access Memory);或者非易失性存储器(non-volatile memory),例如只读存储器(ROM,Read-Only Memory),快闪存储器(flash memory),硬盘(HDD,Hard DiskDrive)或固态硬盘(SSD,Solid-State Drive);或者上述种类的存储器的组合,并向处理器提供指令和数据。
示例性的,图6为本申请实施例中数据分层存储结构示意图,如图6所示,CPU缓存位于CPU寄存器与第二存储单元之间的临时数据交换器,这里,第二存储单元可以为内存、硬盘等存储容量较大的存储单元。第一存储单元的容量比第二存储单元小的多但是交换速度却比内存单元要快得多。
CPU缓存通常分成了三个级别:L1,L2,L3。级别越小越接近CPU,所以速度也更快,同时也代表着容量越小。L1是最接近CPU的,它容量最小(例如:32K),速度最快,CPU每个核上都有一个一级Cache(L1缓存),L1缓存每个核上其实有两个L1缓存,一个用于存数据的L1d Cache(Data Cache),一个用于存指令的L1i Cache(Instruction Cache)。二级Cache(L2缓存)更大一些(例如:256K),速度要慢一些,一般情况下每个核上都有一个独立的L2缓存;二级Cache(L3缓存)是三级缓存中最大的一级(例如3MB),同时也是最慢的一级,在同一个CPU插槽之间的核共享一个L3缓存。
从图6可以看到,在第一存储单元发生缓存丢失(cache miss)的时候,其对CPU停顿(CPU stall)影响大概在5ns-15ms之间,即CPU会有5ns-15ms的停顿时间,导致CPU无法执行任何指令,因此浪费掉了CPU的执行环境,严重影响到了CPU的利用率。
图7为现有技术中CPU资源利用情况示意图,如图7所示,当线程T1发生cachemiss,CPU stall,直到线程T1 cache hit,CPU才会继续执行线程T1,CPU stall的发生会使CPU利用率降低。CPU stall是停止运转的意思,发生在当cpu执行时,所需要的数据却不在寄存器中,需要去装载内存的数据,这期间有一个等待,这里叫做CPU stall。
图8为本申请实施例中CPU资源利用情况示意图,如图8所示,当线程T1发生cachemiss,CPU切换到线程T2执行,线程T1 cache hit,CPU继续执行线程T1,相比于图7可以看出CPU在原本CPUstall时间去执行线程T2,使CPU被充分利用起来,提高CPU利用率。
下面以CPU执行线程T1和线程T2为例,对本申请实施例提供的任务调度方法进行进一步地举例说明,图9为本申请实施例中任务调度方法的第五流程示意图,如图9所示,
1)当线程T1发生cache miss的时候,线程T1结构体中的变量cpu_context内容会被保持在第一寄存器中;
2)由于软件调度器事先知道下一个需要调度的线程是那一个,在这里假设是线程T2,则在线程T1发生cache miss之前,就已经把线程T2的内容从线程T2的内存空间中保存到第二寄存器中;
需要说明的是,这里的寄存器可以指寄存器组,每个线程都有一个程序计数器(Program Counter,PC),连接寄存器(Link Register,LR)一组寄存器X0-X28。线程上下文存储在寄存器组中,使用struct thread_struct结构体中cpu_contex来描述。
寄存器是CPU内部的数量较少但是速度很快的内存(与之对应的是CPU外部相对较慢的RAM主内存)。寄存器通过对常用值(通常是运算的中间值)的快速访问来提高计算机程序运行的速度。
在ARM的三级流水线架构中,程序流水线包括取址、译码和执行三个阶段,PC指向的是当前取址的程序地址,所以32位ARM中,译码地址(正在解析还未执行的程序)为PC-4,执行地址(当前正在执行的程序地址)为PC-8。当突然发生中断的时候,保存的是PC的地址。如果返回的时候返回PC,那么中间就有一个指令没有执行。在ARM体系结构中LR的特殊用途有两种:一是用来保存子程序返回地址;二是当异常发生时,LR中保存的值等于异常发生时PC的值减4(或者减2),因此在各种异常模式下可以根据LR的值返回到异常发生前的相应位置继续执行。
3)CPU的寄存器会从指向线程T1的寄存器空间切换到线程T2的寄存器空间,这样线程T2就可以立刻执行,充分利用了CPU的资源。
采用本申请任务调度方法,在cache miss发生的时候,快速进行cpu上下文切换,使CPU可以立即执行新的线程,这样CPU就不会由于原来线程cache miss导致的利用率低的问题。其对性能的提升在5ns-15ms之间,提升幅度主要取决于cache miss发生在哪一级的cache miss。
为实现本申请实施例的方法,基于同一发明构思本申请实施例还提供了一种任务调度装置,如图10所示,该装置100包括:第一寄存器1001、第二寄存器1002和处理器1003;
所述处理器1003配置成:
从第一寄存器1001中读取第一任务数据,执行第一任务;
确定所述第一寄存器1001中所述第一任务数据读取异常,停止执行所述第一任务;
从第二寄存器1002中读取第二任务数据,执行第二任务;
确定所述第一寄存器1001中所述第一任务数据读取正常,从所述第一寄存器1001中继续读取所述第一任务数据,执行所述第一任务。
示例性的,在一些实施例中,所述处理器1003配置成:所述第二任务执行未结束,确定所述第一寄存器中所述第一任务数据读取正常,停止执行所述第二任务,从所述第一寄存器中继续读取所述第一任务数据,执行所述第一任务。
示例性的,在一些实施例中,所述处理器1003配置成:所述第二任务执行结束,确定所述第一寄存器中所述第一任务数据读取正常,从所述第一寄存器中读取所述第一任务数据,继续执行所述第一任务。
示例性的,在一些实施例中,所述处理器1003配置成:所述第二任务执行结束,确定所述第一寄存器中所述第一任务数据读取异常,从所述第二寄存器中读取第三任务数据,执行第三任务。
示例性的,在一些实施例中,所述处理器1003配置成:确定所述第一寄存器中所述第一任务数据读取异常,将寄存器地址从第一寄存器地址修改为第二寄存器地址;确定所述第一寄存器中所述第一任务数据读取正常,将所述寄存器地址从所述第二寄存器地址修改为所述第一寄存器地址。
示例性的,在一些实施例中,该装置还包括第一存储单元,所述处理器1003配置成:从第一存储单元中读取所述第一任务数据存储到所述第一寄存器中;所述第一存储单元中所述第一任务数据丢失时,确定所述第一寄存器中所述第一任务数据读取异常;所述第一存储单元中所述第一任务数据命中时,确定所述第一寄存器中所述第一任务数据读取正常。
示例性的,第一存储单元包括:一级Cache(L1缓存),L1缓存每个核上其实有两个L1缓存,一个用于存数据的L1d Cache(Data Cache),一个用于存指令的L1i Cache(Instruction Cache)。二级Cache(L2缓存)更大一些(例如:256K),速度要慢一些,一般情况下每个核上都有一个独立的L2缓存;二级Cache(L3缓存)是三级缓存中最大的一级(例如3MB),同时也是最慢的一级,在同一个CPU插槽之间的核共享一个L3缓存。
示例性的,在一些实施例中,所述处理器1003配置成:从所述第一存储单元中读取所述第二任务数据存储到所述第二寄存器中;所述第一存储单元中所述第二任务数据丢失时,确定所述第二寄存器中所述第二任务数据读取正常;所述第一存储单元中所述第二任务数据命中时,确定所述第二寄存器中所述第二任务数据读取正常。
示例性的,在一些实施例中,所述第一存储单元为缓存时,该装置还包括第二存储单元,所述处理器1003配置成:将多个任务数据预先存储到第二存储单元中;其中,所述多个任务数据包括第一任务数据和第二任务数据;从所述第二存储单元中读取所述第一任务数据和所述第二任务数据到所述第一存储单元中。
基于上述任务调度装置中各单元的硬件实现,本申请实施例还提供了一种电子设备,如图11所示,该电子设备110包括:处理器1101和配置为存储能够在处理器上运行的计算机程序的存储器1102;
其中,处理器1101配置为运行计算机程序时,执行前述实施例中的方法步骤。
当然,实际应用时,如图11所示,该电子设备中的各个组件通过总线系统1103耦合在一起。可理解,总线系统1103用于实现这些组件之间的连接通信。总线系统1103除包括数据总线之外,还包括电源总线、控制总线和状态信号总线。但是为了清楚说明起见,在图中将各种总线都标为总线系统1103。
在实际应用中,上述处理器可以为特定用途集成电路(ASIC,ApplicationSpecific Integrated Circuit)、数字信号处理装置(DSPD,Digital Signal ProcessingDevice)、可编程逻辑装置(PLD,Programmable Logic Device)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)、控制器、微控制器、微处理器中的至少一种。可以理解地,对于不同的设备,用于实现上述处理器功能的电子器件还可以为其它,本申请实施例不作具体限定。
上述存储器可以是易失性存储器(volatile memory),例如随机存取存储器(RAM,Random-Access Memory);或者非易失性存储器(non-volatile memory),例如只读存储器(ROM,Read-Only Memory),快闪存储器(flash memory),硬盘(HDD,Hard Disk Drive)或固态硬盘(SSD,Solid-State Drive);或者上述种类的存储器的组合,并向处理器提供指令和数据。
实际应用中,上述装置可以是电子设备,也可以是应用于电子设备的芯片。在本申请中,该装置可以通过或软件、或硬件、或软件与硬件相结合的方式,实现多个单元的功能,使该装置可以执行如上述任一实施例所提供的任务调度方法。且该装置的各技术方案的技术效果可以参考任务调度方法中相应的技术方案的技术效果,本申请对此不再一一赘述。
在示例性实施例中,本申请实施例还提供了一种计算机可读存储介质,例如包括计算机程序的存储器,计算机程序可由电子设备的处理器执行,以完成前述方法的步骤。
本申请实施例还提供了一种计算机程序产品,包括计算机程序指令。
可选的,该计算机程序产品可应用于本申请实施例中的电子设备,并且该计算机程序指令使得计算机执行本申请实施例的各个方法中由电子设备实现的相应流程,为了简洁,在此不再赘述。
本申请实施例还提供了一种计算机程序。
可选的,该计算机程序可应用于本申请实施例中的电子设备,当该计算机程序在计算机上运行时,使得计算机执行本申请实施例的各个方法中由电子设备实现的相应流程,为了简洁,在此不再赘述。
应当理解,在本申请使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本申请。在本申请和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。本申请中表述“具有”、“可以具有”、“包括”和“包含”、或者“可以包括”和“可以包含”在本文中可以用于指示存在对应的特征(例如,诸如数值、功能、操作或组件等元素),但不排除附加特征的存在。
应当理解,尽管在本申请可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开,不必用于描述特定的顺序或先后次序。例如,在不脱离本发明范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。
本申请实施例所记载的技术方案之间,在不冲突的情况下,可以任意组合。
在本申请所提供的几个实施例中,应该理解到,所揭露的方法、装置和设备,可以通过其它的方式实现。以上所描述的实施例仅仅是示意性的,例如,单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,如:多个单元或组件可以结合,或可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的各组成部分相互之间的耦合、或直接耦合、或通信连接可以是通过一些接口,设备或单元的间接耦合或通信连接,可以是电性的、机械的或其它形式的。
上述作为分离部件说明的单元可以是、或也可以不是物理上分开的,作为单元显示的部件可以是、或也可以不是物理单元,即可以位于一个地方,也可以分布到多个网络单元上;可以根据实际的需要选择其中的部分或全部单元来实现本实施例方案的目的。
另外,在本申请各实施例中的各功能单元可以全部集成在一个处理单元中,也可以是各单元分别单独作为一个单元,也可以两个或两个以上单元集成在一个单元中;上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。

Claims (11)

1.一种任务调度方法,其特征在于,所述方法包括:
从第一寄存器中读取第一任务数据,执行第一任务;
确定所述第一寄存器中所述第一任务数据读取异常,停止执行所述第一任务;
从第二寄存器中读取第二任务数据,执行第二任务;
确定所述第一寄存器中所述第一任务数据读取正常,从所述第一寄存器中继续读取所述第一任务数据,执行所述第一任务。
2.根据权利要求1所述的方法,其特征在于,所述确定所述第一寄存器中所述第一任务数据读取正常,从所述第一寄存器中继续读取所述第一任务数据,执行所述第一任务,包括:
所述第二任务执行未结束,确定所述第一寄存器中所述第一任务数据读取正常,停止执行所述第二任务,从所述第一寄存器中继续读取所述第一任务数据,执行所述第一任务。
3.根据权利要求1所述的方法,其特征在于,所述确定所述第一寄存器中所述第一任务数据读取正常,从所述第一寄存器中继续读取所述第一任务数据,执行所述第一任务,包括:
所述第二任务执行结束,确定所述第一寄存器中所述第一任务数据读取正常,从所述第一寄存器中读取所述第一任务数据,继续执行所述第一任务。
4.根据权利要求1所述的方法,其特征在于,所述方法还包括:
所述第二任务执行结束,确定所述第一寄存器中所述第一任务数据读取异常,从所述第二寄存器中读取第三任务数据,执行第三任务。
5.根据权利要求1所述的方法,其特征在于,所述方法还包括:
确定所述第一寄存器中所述第一任务数据读取异常,将寄存器地址从第一寄存器地址修改为第二寄存器地址;
确定所述第一寄存器中所述第一任务数据读取正常,将所述寄存器地址从所述第二寄存器地址修改为所述第一寄存器地址。
6.根据权利要求1所述的方法,其特征在于,所述方法还包括:
从第一存储单元中读取所述第一任务数据存储到所述第一寄存器中;
所述第一存储单元中所述第一任务数据丢失时,确定所述第一寄存器中所述第一任务数据读取异常;
所述第一存储单元中所述第一任务数据命中时,确定所述第一寄存器中所述第一任务数据读取正常。
7.根据权利要求6所述的方法,其特征在于,所述方法还包括:
从所述第一存储单元中读取所述第二任务数据存储到所述第二寄存器中;
所述第一存储单元中所述第二任务数据丢失时,确定所述第二寄存器中所述第二任务数据读取正常;
所述第一存储单元中所述第二任务数据命中时,确定所述第二寄存器中所述第二任务数据读取正常。
8.根据权利要求7所述的方法,其特征在于,所述第一存储单元为缓存时,所述方法还包括:
将多个任务数据预先存储到第二存储单元中;其中,所述多个任务数据包括第一任务数据和第二任务数据;
从所述第二存储单元中读取所述第一任务数据和所述第二任务数据到所述第一存储单元中。
9.一种任务调度装置,其特征在于,所述装置包括:第一寄存器、第二寄存器和处理器;
所述处理器配置成:
从所述第一寄存器中读取第一任务数据,执行第一任务;
确定所述第一寄存器中所述第一任务数据读取异常,停止执行所述第一任务;
从第二寄存器中读取第二任务数据,执行第二任务;
确定所述第一寄存器中所述第一任务数据读取正常,从所述第一寄存器中继续读取所述第一任务数据,执行所述第一任务。
10.一种电子设备,其特征在于,所述电子设备包括:处理器和配置为存储能够在处理器上运行的计算机程序的存储器,
其中,所述处理器配置为运行所述计算机程序时,执行权利要求1至8任一项所述方法的步骤。
11.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至8任一项所述方法的步骤。
CN202210064442.7A 2022-01-20 2022-01-20 一种任务调度方法、装置、设备及存储介质 Pending CN116521329A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210064442.7A CN116521329A (zh) 2022-01-20 2022-01-20 一种任务调度方法、装置、设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210064442.7A CN116521329A (zh) 2022-01-20 2022-01-20 一种任务调度方法、装置、设备及存储介质

Publications (1)

Publication Number Publication Date
CN116521329A true CN116521329A (zh) 2023-08-01

Family

ID=87396297

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210064442.7A Pending CN116521329A (zh) 2022-01-20 2022-01-20 一种任务调度方法、装置、设备及存储介质

Country Status (1)

Country Link
CN (1) CN116521329A (zh)

Similar Documents

Publication Publication Date Title
EP1849061B1 (en) Unaligned memory access prediction
KR100934533B1 (ko) 연산 처리 시스템, 컴퓨터 시스템 상에서의 태스크 제어 방법, 및 컴퓨터 프로그램을 기록한 컴퓨터 판독 가능한 기록 매체
US8424021B2 (en) Event-based bandwidth allocation mode switching method and apparatus
US7447923B2 (en) Systems and methods for mutually exclusive activation of microprocessor resources to control maximum power
US6209085B1 (en) Method and apparatus for performing process switching in multiprocessor computer systems
US20040215720A1 (en) Split branch history tables and count cache for simultaneous multithreading
CN104978284B (zh) 处理器子程序高速缓冲存储器
US20140129784A1 (en) Methods and systems for polling memory outside a processor thread
JP2007242003A (ja) メモリ属性を用いるための技術
US20110208916A1 (en) Shared cache controller, shared cache control method and integrated circuit
JP5142868B2 (ja) キャッシュメモリ制御回路及びプロセッサ
WO2022062580A1 (zh) 一种信号处理器的控制方法、装置、设备以及存储介质
EP1760580B1 (en) Processing operation information transfer control system and method
JP2024511751A (ja) プロセッシングインメモリ同時処理システム及び方法
JP4965638B2 (ja) タスクの切り換えを制御するシステムおよび方法
US20120072632A1 (en) Deterministic and non-Deterministic Execution in One Processor
US8332596B2 (en) Multiple error management in a multiprocessor computer system
CN116521329A (zh) 一种任务调度方法、装置、设备及存储介质
JP2015035007A (ja) コンピュータ、制御プログラム、及びダンプ制御方法
US20220019433A1 (en) Method and system for executing context switching between multiple threads
US7093260B1 (en) Method, system, and program for saving a state of a task and executing the task by a processor in a multiprocessor system
US7290153B2 (en) System, method, and apparatus for reducing power consumption in a microprocessor
CN115794750B (zh) 异步i/o系统文件打开/关闭的控制方法、装置及设备
US7124277B2 (en) Method and apparatus for a trace cache trace-end predictor
US20230418509A1 (en) Switching memory consistency models in accordance with execution privilege level

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