CN114880102B - 安全芯片及其多任务调度方法和装置、存储介质 - Google Patents

安全芯片及其多任务调度方法和装置、存储介质 Download PDF

Info

Publication number
CN114880102B
CN114880102B CN202210777766.5A CN202210777766A CN114880102B CN 114880102 B CN114880102 B CN 114880102B CN 202210777766 A CN202210777766 A CN 202210777766A CN 114880102 B CN114880102 B CN 114880102B
Authority
CN
China
Prior art keywords
task
thread
coprocessor
time
switched
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
CN202210777766.5A
Other languages
English (en)
Other versions
CN114880102A (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.)
Beijing Smartchip Microelectronics Technology Co Ltd
Beijing Smartchip Semiconductor Technology Co Ltd
Original Assignee
Beijing Smartchip Microelectronics Technology Co Ltd
Beijing Smartchip Semiconductor Technology 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 Beijing Smartchip Microelectronics Technology Co Ltd, Beijing Smartchip Semiconductor Technology Co Ltd filed Critical Beijing Smartchip Microelectronics Technology Co Ltd
Priority to CN202210777766.5A priority Critical patent/CN114880102B/zh
Publication of CN114880102A publication Critical patent/CN114880102A/zh
Application granted granted Critical
Publication of CN114880102B publication Critical patent/CN114880102B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

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/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
    • G06F9/5038Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the execution order of a plurality of tasks, e.g. taking priority or time dependency constraints into consideration
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/5018Thread allocation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/5021Priority
    • 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)
  • Debugging And Monitoring (AREA)

Abstract

本发明公开了一种安全芯片及其多任务调度方法和装置、存储介质,所述方法包括:获取当前线程在执行任务时的时间阶段,其中,时间阶段包括协处理器计算时间阶段;在当前线程处于协处理器计算时间阶段时,获取系统当前时间,并根据多个线程的优先级顺序或时间片轮转顺序确定下一个待切换线程;在系统当前时间与下一个待切换线程的上次退出时间之差大于或等于下一个待切换线程的协处理器计算时间时,切换至下一个待切换线程。本发明的调度方法,能够实现安全芯片各协处理器和CPU并行运算,提高芯片利用率和处理速度,避免出现因多任务调度而引起的资源浪费,效率低下和CPU闲置等待的问题。

Description

安全芯片及其多任务调度方法和装置、存储介质
技术领域
本发明涉及任务调度技术领域,尤其涉及一种安全芯片的多任务调度方法、一种安全芯片的多任务调度装置、一种计算机可读存储介质和一种安全芯片。
背景技术
安全芯片是一种能够提供数据的加解密、签名、验签、存储等安全操作的芯片,成为现代信息安全技术不可或缺的部分,广泛应用于电力行业、智能交通、物联网、银行、水利、燃气等行业中。
安全芯片操作系统是调用安全芯片硬件实现各种安全计算功能的嵌入式操作系统。随着芯片技术的快速发展,安全芯片硬件性能逐渐提高,可以支持多个算法协处理器,协处理器可以独立CPU(central processing unit,中央处理器)并行运算,实现多种安全计算功能。充分利用安全芯片硬件资源,实现快速计算,成为安全芯片操作系统面临的新问题。
目前广泛应用的嵌入式多任务操作系统,对于安全芯片而言,存在复杂度高,灵活度低,系统运行开销大等问题。现行多任务操作系统,将各个任务按优先级分时执行,将协处理器等硬件资源作为共享资源,当多个任务同时访问共享资源时,后访问的任务被挂起,并同时执行线程切换。这样直接应用于安全芯片,可以实现同时处理多个任务,当多个任务使用不同协处理器时,可以并行运行,但当有多个任务同时使用同一协处理器时,需要对任务进行挂起,系统需要进行多次任务挂起和切换,损失多次切换时间,影响执行速度。另外任务切换时间相对固定,不能根据协处理器处理任务时间动态调整任务切换时间,当协处理器处理时间较长时,往往会出现任务切换回来,协处理器未处理完成,CPU需要等待协处理器计算结果,造成不必要的线程切换和CPU空等损失。
发明内容
本发明旨在至少在一定程度上解决相关技术中的技术问题之一。为此,本发明的第一个目的在于提出一种安全芯片的多任务调度方法,通过在当前线程处于协处理器计算时间阶段时,获取系统当前时间,并在系统当前时间与下一个待切换线程的上次退出时间之差大于或等于下一个待切换线程的协处理器计算时间时才切换至下一个待切换线程,从而能够在当前线程不需要CPU处理的情况下,对其他线程进行处理,实现安全芯片各协处理器和CPU并行运算,提高芯片利用率和处理速度,避免出现因多任务调度而引起的资源浪费,效率低下和CPU闲置等待的问题。
本发明的第二个目的在于提出一种安全芯片的多任务调度装置。
本发明的第三个目的在于提出一种计算机可读存储介质。
本发明的第四个目的在于提出一种安全芯片。
为达到上述目的,本发明第一方面实施例提出了一种安全芯片的多任务调度方法,包括:获取当前线程在执行任务时的时间阶段,其中,时间阶段包括协处理器计算时间阶段;在当前线程处于协处理器计算时间阶段时,获取系统当前时间,并根据多个线程的优先级顺序或时间片轮转顺序确定下一个待切换线程;在系统当前时间与下一个待切换线程的上次退出时间之差大于或等于下一个待切换线程的协处理器计算时间时,切换至下一个待切换线程。
根据本发明实施例的安全芯片的多任务调度方法,首先获取当前线程在执行任务时的时间阶段,其中,时间阶段包括协处理器计算时间阶段,在当前线程处于协处理器计算时间阶段时,获取系统当前时间,并根据多个线程的优先级顺序或时间片轮转顺序确定下一个待切换线程,然后在系统当前时间与下一个待切换线程的上次退出时间之差大于或等于下一个待切换线程的协处理器计算时间时,切换至下一个待切换线程。由此,该方法能够实现安全芯片各协处理器和CPU并行运算,提高芯片利用率和处理速度,避免出现因多任务调度而引起的资源浪费,效率低下和CPU闲置等待的问题。
另外,根据本发明上述实施例的安全芯片的多任务调度方法还可以具有如下的附加技术特征:
根据本发明的一个实施例,在系统当前时间与下一个待切换线程的上次退出时间之差小于下一个待切换线程的协处理器计算时间时,按照多个线程的优先级顺序或时间片轮转顺序继续寻找待切换线程。
根据本发明的一个实施例,安全芯片的多任务调度方法还包括:在接收到新任务时,对新任务进行任务分类;根据任务分类结果将新任务添加到对应线程的任务队列中。
根据本发明的一个实施例,对新任务进行任务分类,包括:根据新任务的指令编码确定对应的协处理器;根据任务使用协处理器类型确定任务分类结果,其中,每个协处理器对应一个线程,用于处理使用该协处理器进行计算的任务。
根据本发明的一个实施例,根据任务分类结果将新任务添加到对应线程的任务队列中,包括:根据任务分类结果确定新任务为紧急任务时,将紧急任务加入到对应线程的任务队列的首位,并将紧急任务对应线程的优先级调整至多个线程的首位。
根据本发明的一个实施例,在紧急任务执行完成后,将紧急任务对应线程的优先级复原。
根据本发明的一个实施例,根据任务分类结果确定新任务为普通任务时,将普通任务按顺序加入到对应线程的任务队列,并保持多个线程的优先级顺序不变。
根据本发明的一个实施例,分类结果包括新任务的协处理器计算时间,上述方法还包括:将新任务的协处理器计算时间添加到对应线程的任务队列中。
根据本发明的一个实施例,安全芯片的多任务调度方法还包括:当多个线程的优先级不同时,按照多个线程的优先级从高到低的顺序,依次循环确定是否切换线程;当多个线程的优先级相同时,按照多个线程的时间片轮转顺序,依次循环确定是否切换线程。
为达到上述目的,本发明第二方面实施例提出了一种安全芯片的多任务调度装置,包括:获取模块,用于获取当前线程在执行任务时的时间阶段,其中,时间阶段包括协处理器计算时间阶段;确定模块,用于在当前线程处于协处理器计算时间阶段时,获取系统当前时间,并根据多个线程的优先级顺序或时间片轮转顺序确定下一个待切换线程;切换模块,用于在系统当前时间与下一个待切换线程的上次退出时间之差大于或等于下一个待切换线程的协处理器计算时间时,切换至下一个待切换线程。
根据本发明实施例的安全芯片的多任务调度装置,获取模块获取当前线程在执行任务时的时间阶段,确定模块在当前线程处于协处理器计算时间阶段时,获取系统当前时间,并根据多个线程的优先级顺序或时间片轮转顺序确定下一个待切换线程,切换模块在系统当前时间与下一个待切换线程的上次退出时间之差大于或等于下一个待切换线程的协处理器计算时间时,切换至下一个待切换线程。由此,该装置能够实现安全芯片各协处理器和CPU并行运算,提高芯片利用率和处理速度,避免出现因多任务调度而引起的资源浪费,效率低下和CPU闲置等待的问题。
另外,根据本发明上述实施例的安全芯片的多任务调度装置还可以具有如下的附加技术特征:
根据本发明的一个实施例,切换模块还用于,在系统当前时间与下一个待切换线程的上次退出时间之差小于下一个待切换线程的协处理器计算时间时,按照多个线程的优先级顺序或时间片轮转顺序继续寻找待切换线程。
根据本发明的一个实施例,上述的安全芯片的多任务调度装置还包括:任务分类模块,用于在接收到新任务时,对新任务进行任务分类;任务添加模块,用于根据任务分类结果将新任务添加到对应线程的任务队列中。
根据本发明的一个实施例,任务分类模块对新任务进行任务分类,具体用于:根据新任务的指令编码确定对应的协处理器;根据任务使用协处理器类型确定任务分类结果,其中,每个协处理器对应一个线程,用于处理使用该协处理器进行计算的任务。
根据本发明的一个实施例,任务添加模块根据任务分类结果将新任务添加到对应线程的任务队列中,具体用于:在根据任务分类结果确定新任务为紧急任务时,将紧急任务加入到对应线程的任务队列的首位,并将紧急任务对应线程的优先级调整至多个线程的首位。
根据本发明的一个实施例,任务添加模块还用于,在紧急任务执行完成后,将紧急任务对应线程的优先级复原。
根据本发明的一个实施例,任务添加模块还用于,在根据任务分类结果确定新任务为普通任务时,将普通任务按顺序加入到对应线程的任务队列,并保持多个线程的优先级顺序不变。
根据本发明的一个实施例,分类结果包括新任务的协处理器计算时间,任务添加模块还用于:将新任务的协处理器计算时间添加到对应线程的任务队列中。
根据本发明的一个实施例,切换模块还用于:当多个线程的优先级不同时,按照多个线程的优先级从高到低的顺序,依次循环确定是否切换线程;当多个线程的优先级相同时,按照多个线程的时间片轮转顺序,依次循环确定是否切换线程。
为达到上述目的,本发明第三方面实施例提出了一种计算机可读存储介质,其上存储有安全芯片的多任务调度程序,该安全芯片的多任务调度程序被处理器执行时实现上述的安全芯片的多任务调度方法。
本发明实施例的计算机可读存储介质,通过执行上述的安全芯片的多任务调度方法,能够实现安全芯片各协处理器和CPU并行运算,提高芯片利用率和处理速度,避免出现因多任务调度而引起的资源浪费,效率低下和CPU闲置等待的问题。
为达到上述目的,本发明第四方面实施例提出了一种安全芯片,包括:存储器、处理器及存储在存储器上并可在处理器上运行的安全芯片的多任务调度程序,处理器执行安全芯片的多任务调度程序时,实现上述的安全芯片的多任务调度方法。
根据本发明实施例的安全芯片,通过执行上述的安全芯片的多任务调度方法,能够实现安全芯片各协处理器和CPU并行运算,提高芯片利用率和处理速度,避免出现因多任务调度而引起的资源浪费,效率低下和CPU闲置等待的问题。
本发明附加的方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明的实践了解到。
附图说明
图1为根据本发明实施例的安全芯片的多任务调度方法的流程图;
图2为根据本发明实施例的安全芯片执行任务的时间分配示意图;
图3为根据本发明一个实施例的安全芯片的多任务调度方法的流程图;
图4为根据本发明实施例的安全芯片的多任务调度装置的方框示意图;
图5为根据本发明实施例的安全芯片的方框示意图。
具体实施方式
下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,旨在用于解释本发明,而不能理解为对本发明的限制。
下面参考附图描述本发明实施例提出的安全芯片的多任务调度方法、安全芯片的多任务调度装置、计算机可读存储介质和安全芯片。
图1为根据本发明实施例的安全芯片的多任务调度方法的流程图。
如图1所示,本发明实施例的安全芯片的多任务调度方法可包括以下步骤:
S1,获取当前线程在执行任务时的时间阶段,其中,时间阶段包括协处理器计算时间阶段。
S2,在当前线程处于协处理器计算时间阶段时,获取系统当前时间,并根据多个线程的优先级顺序或时间片轮转顺序确定下一个待切换线程。
S3,在系统当前时间与下一个待切换线程的上次退出时间之差大于或等于下一个待切换线程的协处理器计算时间时,切换至下一个待切换线程。
根据本发明的一个实施例,在系统当前时间与下一个待切换线程的上次退出时间之差小于下一个待切换线程的协处理器计算时间时,按照多个线程的优先级顺序或时间片轮转顺序继续寻找待切换线程。
具体而言,如图2所示,安全芯片执行线程中的每个任务需要t3时间,其中,0-t1时间段为任务准备时间Tready,主要是协处理器运算准备,t2-t3时间段为任务结束时间Tend,主要是获取协处理器的运算结果,并运算结果进行传输和存储,这两个阶段均需要CPU参与。而t1-t2时间段为协处理计算时间阶段Trun,该时间阶段占用线程执行该任务的大部分时间,且不需要CPU参与,在此时间阶段为各协处理器独立运行阶段,在此时间阶段,CPU可以执行其他任务。
其中,针对安全芯片,各个协处理器在执行任务时的计算时间与协处理器种类和运算数据长度相关,可以通过事先测量和统计,得出各个协处理器计算时间的估算公式,可以使用公式T=a+b*(l-c)表示,其中T为协处理器计算时间,a、b、c为统计常量,与不同安全芯片各个协处理特性相关,可以进行预先测量获得,l为运算数据长度,由此可以获得当前线程在执行任务时的协处理器计算时间阶段。
在将当前线程切换至下一个待切换线程之前,首先要保证当前线程处于协处理器计算时间阶段,然后获取系统当前时间Tcur,并根据多个线程的优先级顺序或时间片轮转顺序确定下一个待切换的线程To,以及获取线程To上次退出时间Tprey与线程To的协处理器计算时间Trun。然后,计算系统当前时间Tcur与线程To上次退出时间Tprey的差值,并比较差值与To线程的协处理器计算时间Trun的大小关系。其中,当系统当前时间Tcur与线程To上次退出时间Tprey的差值大于或等于线程To的协处理器计算时间Trun时,说明线程To的协处理器已经计算完成,可切换至线程To,并通过CPU对协处理器运算后结果进行获取、传输、存储等,由此避免了CPU空闲等待协处理器运算结果,充分实现协处理器并行计算,执行任务。另外,在切换至下一个线程时,将系统当前时间Tcur作为当前线程的退出时间Tprey,以便下次对当前线程是否处理完成进行判断。
当系统当前时间Tcur与线程To上次退出时间Tprey的差值小于待切换线程To的协处理器计算时间Trun时,说明当前线程To的协处理器还没有完成任务,如果此时进行线程切换,CPU需要等待协处理器处理任务,造成CPU等待协处理器运算结果,因此为减少线程间不必要切换,可按照多个线程的优先级顺序或时间片轮转顺序继续寻找待切换线程。
需要说明的是,系统按照多个线程的优先级,先执行优先级高的线程,优先级高线程挂起或高优先级线程优先级降低后,才执行优先级较低的线程,如果多个线程优先级相同,则可按照时间片轮转顺序执行,即每个线程设定一个时间片,线程启动后运行这个时间片设定的时间,到达设定的时间则寻找下一个同优先级线程判断是否切换。若只有当前一个线程则,没有高优先级的线程或者同优先级的线程时,则无需切换线程,继续运行当前线程直至计算完成。
举例而言,在有多个线程执行中均具有任务列表时,如多个线程包括线程1、线程2和线程3,任务列表按照任务的紧急性和接收顺序进行排序,而线程1、线程2和线程3的优先级均相等。在多个线程执行的初始阶段,按照时间片轮转顺序先执行线程1中最先接收的最紧急任务,当线程1中的任务在Tready时间段时,该线程对应的协处理器和CPU同时工作,在完成该时间段时,进入协处理器计算时间阶段Trun。此时,如果线程2中有待执行任务,则将线程1切换至线程2,执行线程2中最先接收的最紧急任务,CPU和线程2对应的协处理器先执行线程2中任务的Tready时间段,在该时间段完成后,进入协处理器计算时间阶段Trun。此时,如果线程3中有待执行任务,则线程2切换至线程3。同样地方式,在线程3中的任务完成任务的Tready时间段之后,开始判断线程1中的任务是否完成协处理器计算时间阶段Trun,如果完成,则将线程3切换至线程1,在任务结束时间Tend结束时,CPU获取协处理器的运算结果,并运算结果进行传输和存储;如果没有完成,则判断线程2中的任务是否完成协处理器计算时间阶段Trun。另外,当线程优先级不相等时,如线程3的优先级最高,线程1和线程2的优先级相同且低于线程3,则可按照线程的优先级顺序执行任务,即先处理优先级较高的线程3,再根据时间片轮转顺序处理优先级低的线程1和线程2。如此采用动态调整线程切换时间方法,可以避免线程频繁切换,CPU也无需等待,充分利用了资源。
由此,该方法为了充分利用安全芯片资源,即提高芯片利用率和处理速度,同时,尽可能减少因线程切换而引起的资源浪费、效率降低和CPU闲置等待等问题,可以在线程执行任务的协处理器计算时间阶段,切换至其他线程,使得CPU可以在其他线程中执行需要CPU参与的时间阶段,直到协处理器计算时间阶段Trun结束后,线程再切换回来以获取任务结果。若在Trun时间段结束之前将线程切换回来,此时协处理器进行的工作未处理完成,CPU就需要等待协处理器计算的结果,造成不必要的线程切换和CPU空等损失,没有达到充分利用安全芯片资源的目的。
下面详细描述本发明的安全芯片的多任务调度方法的具体工作流程。
根据本发明的一个实施例,安全芯片的多任务调度方法还包括:在接收到新任务时,对新任务进行任务分类;根据任务分类结果将新任务添加到对应线程的任务队列中。
进一步地,根据本发明的一个实施例,对新任务进行任务分类,包括:根据新任务的指令编码确定对应的协处理器;根据任务使用协处理器类型确定任务分类结果,其中,每个协处理器对应一个线程,用于处理使用该协处理器进行计算的任务。
具体而言,在接收到新任务时,对新任务进行任务分类,不同任务的指令编码不同,所使用的协处理器也不同,因此可根据新任务的指令编码确定对应的协处理器,并针对每个协处理器类型创建一个线程,用于处理使用该协处理器进行计算的任务,再根据协处理器与线程的一一对应的关系,将新任务添加至对应线程的任务队列里。由此,避免多个任务同时使用同一协处理资源,造成任务阻断,线程挂起等问题。当线程的任务队列为空时,该线程对应的协处理器不工作,无需切换至该线程,即CPU在该线程中不进行工作,此时控制该线程进入休眠状态,等待下次有新任务加入时,再重新启动该线程,从而节省CPU调度资源。
在本发明的一些实施例中,采用单独的线程用于对新任务进行接收,并采用单独的线程对新任务进行分类,其中,用于接收任务的线程不与协处理器对应,且具有最高优先级,受接收任务中断控制,能够及时接收新任务,防止新任务未及时接收造成数据丢失,并且根据实际情况合理设置中断间隔时间,防止中断间隔时间过长或者过短影响任务正确接收。当接收完新任务后,中断释放信号,由新任务分类对应的线程对新任务进行分类。
举例而言,在接收到新任务时,如新任务包括任务A、任务B、任务C和任务D,根据新任务的指令编码确定任务A和任务B是由协处理器1执行,任务C由协处理器2执行,任务D由协处理器3执行,此时将任务A和任务B加入到协处理器1对应的线程1的任务队列中,将任务C加入到协处理器2对应的线程2的任务队列中,将任务D加入到协处理器3对应的线程3的任务队列中。由此在执行任务时,可实现多任务并行处理和多个协处理器并行工作,并减少因共用一个协处理器,引起的不必要的线程挂起和切换。
进一步地,根据本发明的一个实施例,根据任务分类结果将新任务添加到对应线程的任务队列中,包括:根据任务分类结果确定新任务为紧急任务时,将紧急任务加入到对应线程的任务队列的首位,并将紧急任务对应线程的优先级调整至多个线程的首位。
根据本发明的一个实施例,在紧急任务执行完成后,将紧急任务对应线程的优先级复原。
具体而言,在接收到新任务时,对新任务进行任务分类,分类结果不仅包括新任务对应的协处理器,还包括新任务的紧急程度,即新任务还分为普通任务或者为紧急任务。当新任务为紧急任务时,将新任务加入到对应线程的任务队列的首位,并将新任务对应线程的优先级调整至多个线程的首位,即可优先处理紧急任务所在的线程,并且在任务队列中有多个任务时,将紧急任务放在任务队列的首位可以优先执行。另外,当任务队列有多个紧急任务时,则按照先后顺序,将新加入的紧急任务放在多个紧急任务最后一个,由协处理器及CPU依次进行执行,在当紧急任务执行完成后,可将线程的优先级复原,避免其他线程有紧急任务时得不到及时处理。由此,通过将紧急任务插入对应任务队列之首,并提高对应线程优先级为次高优先级,结合高优先级线程先运行的调度机制和线程先处理任务队列之首任务机制,可实现紧急任务优先执行,实现安全芯片对紧急任务的迅速响应。
举例而言,仍以新任务包括任务A、任务B、任务C和任务D为例进行说明,当任务A、任务B和任务D为普通任务,任务C为紧急任务时,将任务C加入到线程2的任务队列的首位,即任务C在线程2的任务队列中首个任务。同时,将线程2的优先级调整至线程1、线程3的最前面,即如果原来的线程执行顺序为线程1→线程2→线程3,那么调整后的线程执行顺序就为线程2→线程1→线程3。当任务C和任务D为紧急任务,任务A和任务B为普通任务时,将任务C加入到线程2的任务队列的首位,并将任务D加入到线程3的任务队列的首位,并将线程2和线程3的优先级调整至首位,线程2和线程3谁位于首位根据其原来的顺序确定。例如,如果原来的线程执行顺序为线程1→线程2→线程3,那么调整后的线程执行顺序为线程2→线程3→线程1。
根据本发明的一个实施例,根据任务分类结果确定新任务为普通任务时,将普通任务按顺序加入到对应线程的任务队列,并保持多个线程的优先级顺序不变。
也就是说,当接收到的新任务均为普通任务时,在将新任务加入至对应线程的任务队列之后,保持多个线程的优先级顺序不变,例如,如果原来的线程执行顺序为线程1→线程2→线程3,那么再加入普通类型的新任务后,线程执行顺序仍为线程1→线程2→线程3。需要说明的是,在将新任务加入到对应线程的任务队列之后,还需要比较新任务与任务队列中的任务的紧急性,并根据紧急性调整任务队列中任务的执行顺序。
根据本发明的一个实施例,分类结果包括新任务的协处理器计算时间,上述方法还包括:将新任务的协处理器计算时间添加到对应线程的任务队列中。
具体而言,在接收到新任务时,对新任务进行任务分类后,新任务对应的协处理会根据新任务的运算数据长度计算出协处理器计算时间,并将新任务的协处理器计算时间添加到对应线程的任务队列中,以便根据协处理器计算时间,动态调整多个线程之间的切换,减少不必要的线程切换,尽可能多的实现协处理器与CPU并行运行。
据本发明的一个实施例,安全芯片的多任务调度方法还包括:当多个线程的优先级不同时,按照多个线程的优先级从高到低的顺序,依次循环确定是否切换线程;当多个线程的优先级相同时,按照多个线程的时间片轮转顺序,依次循环确定是否切换线程。
具体而言,当有多个线程运行时,按照高优先级先运行,同优先级采用时间片轮转方式,确定是否进行线程间的切换。例如有四个线程,线程1、线程2、线程3和线程4,线程1、线程2和线程3的优先级相同,线程4优先级高于线程1、线程2和线程3优先级。每个线程的任务队列中只有一个任务。首先执行优先级最高的线程4。线程4任务执行完毕,再判断低优先级的线程1的协处理器计算时间阶段是否完成,如果未完成,则判断相同低优先级线程2的协处理器计算时间阶段是否完成。当线程2的协处理器计算时间阶段完成时,将线程4切换至线程2,并通过CPU获取计算结果。继续判断相同低优先级线程3的协处理器计算时间阶段是否完成,若线程3的协处理器计算时间阶段未完成,则循环至线程1继续判断线程1的协处理器计算时间阶段是否完成,若完成,则切换至线程1,并通过CPU获取计算结果;若未完成则切换至线程3继续判断,直至每个线程的协处理器计算完成使得CPU获取计算结果。由此,对于不同优先级的线程,先执行优先级高线程,以对紧急任务及时处理。同优先级线程,按照时间片轮转执行线程并确定是否切换线程,可以动态循环调整多个线程之间的切换,实现安全芯片各协处理器和CPU并行运算,避免出现因多任务调度而引起的资源浪费,效率低下和CPU闲置等待的问题。
当每个线程的任务队列中包含多个任务时,那么控制逻辑为:首先判断优先级最高的线程4任务队列任务是否处理完成,如果未完成,则优先处理优先级最高线程4任务队列任务。线程4任务全部处理完或任务4紧急任务处理完毕,线程4优先级降低到与线程1、线程2、线程3优先级相同时,则判断低优先级线程1的协处理器计算时间阶段是否完成,如果未完成,则判断低优先级线程2的协处理器计算时间阶段是否完成。当线程2的协处理器计算时间阶段完成时,将线程4切换至线程2,并通过CPU获取计算结果。继续判断线程3的协处理器计算时间阶段是否完成,若线程3的协处理器计算时间阶段未完成,若线程4紧急任务处理完成,优先降低为与线程1、2、3相同的优先级,则判断线程4的协处理器计算时间阶段是否完成,若线程4的协处理器计算时间阶段未完成,则循环至线程1继续判断线程1的协处理器计算时间阶段是否完成,若完成,则切换至线程1,并通过CPU获取计算结果;若未完成则切换至线程2,执行任务准备时间阶段,在该阶段完成后,继续判断线程3的协处理器计算时间阶段是否完成,直至每个线程的协处理器计算完成使得CPU获取计算结果。
作为一个具体示例,如图3所示,首先创建各协处理器对应的线程:在多任务系统中,任务由线程来实现,线程是最基本的调度单位,描述了一个任务执行的上下文关系,也描述了任务所处的优先级。重要的任务可设置高优先级,非重要的任务优先级可以设置低优先级,不同的任务还可以设置相同的优先级,通过线程的切换轮流运行,线程每次运行时间由线程的时间片设置大小决定。线程启动后,会放入就绪队列,通过调度,从就绪队列中选择线程运行,当线程运行时,它会认为自己是以独占CPU的方式在运行,当多个线程同时访问同一资源时,后面访问的线程就会被挂起,进行线程切换。
安全芯片的主要作用是使用各个协处理进行安全计算,同一协处理器同时只能由一个线程使用,其他线程只能被挂起等待。为避免不必要的线程切换,根据安全芯片协处理器资源,为每个协处理器创建协处理器对应线程,每个线程用于执行使用对应协处理进行安全计算的任务,这些任务在同一线程中线性执行,可以避免线程之间资源竞争和不必要的线程切换。
每个协处理器对应的线程包含线程执行栈空间、优先级、时间片、线程处理函数等线程控制结构。初始化时,每个协处理器对应的线程的优先级默认设定为中优先级,后续可根据任务的紧急情况进行调整。每个协处理器对应线程单次执行时间由线程时间片决定,初始化时,每个协处理器对应线程时间片,是通过统计各个使用协处理任务在启动协处理计算之前的准备时间Tready和任务结束处理时间Tend,综合设定的,力求能够使得线程在启动协处理器后和获取协处理器计算结果后即刻切换其他任务,使得各协处理和CPU达到最大的并行运行。初始化时,每个协处理器对应线程并不启动调度,不占用系统资源,只有后续接收任务后,才根据任务要求启动相应协处理器对应线程进行运算。
创建协处理器对应线程的任务队列:初始化时,创建各协处理器对应线程的任务队列,各协处理器对应线程的任务队列初始时为空,系统收到任务后,根据调度策略分析,添加任务到各个协处理对应线程的任务队列的适当位置。各协处理对应线程执行时,协处理器对应线程处理函数依照规则,从对应线程的任务队列中获取待执行任务,进行任务处理;当任务队列为空时,协处理器对应线程让出CPU,休眠,等待下次有新任务收到时,由调度策略分析线程进行启动。
调度策略分析线程:对新接收任务进行分析处理,将任务添加到协处理器对应线程的任务队列表适当位置,同时调整各协处理器线程调度策略的线程。该线程具有高优先级,受接收任务中断控制,每次收到接收任务中断启动线程对新任务进行分析,调整各协处理线程调度策略,处理完成后,该线程挂起,等待下次新任务启动新的分析和处理流程,该线程在初始化创建并启动。
创建并启动空闲线程:初始化时,需要创建空闲线程,设为低优先级,并启动,在系统没有其他线程处理时,执行空闲线程,进行资源回收等工作,等待新任务。当接收到新任务后,启动调度策略分析线程及相应协处理器线程运行。
调度策略分析:(1)任务分类,添加到任务队列表,调度线程;接收到任务后,为优化调度方式,进行不必要的线程挂起和切换,调用调度策略分析线程对收到任务进行分析,根据任务使用协处理器的种类,将任务插入协处理器对应线程的任务队列中,若协处理器对应线程的任务队列在插入任务之前为空,则证明该线程之前未启动或休眠,此时启动该线程。(2)估算任务占用协处理器时间;通过事先测量和统计,得出各个协处理器运行时间的估算公式,可以用式T=a+b*(l-c)表示,根据该公式估算每个任务使用相应协处理时间,将任务占用协处理时间记录在任务队列中,以便后续调用协处理线程执行任务时,获取协处理器计算时间阶段,根据协处理器计算时间阶段,动态调整协处理器对应线程的切换,减少不必要切换,尽可能多的实现协处理器与CPU并行运行。(3)紧急任务响应;在收到的任务有普通任务和紧急任务之分,紧急任务就需要安全芯片快速响应的任务。为实现快速响应紧急任务,当收到任务为紧急任务时,则将该任务插入对应协处理器对应线程的任务队列首位,有多个紧急任务则插到多个紧急任务最后一个,同时,修改该协处理器对应线程的优先级为次高优先级。如果任务为普通任务,插入协处理器对应线程的任务队列队尾。在配合协处理器对应线程调度时,先执行高优先级协处理器对应线程的任务队列首位的任务,这种处理方式可以实现紧急任务及时响应,普通任务顺序执行。
执行调度策略分析线程:通过任务分类插入任务队列表、协处理器计算时间阶段以及协处理器线程的启动和优先级控制等方式,形成根据任务变化的动态调度策略,通过配合调度流程和协处理器线程执行流程,执行调度策略,实现安全芯片CPU和各个协处理的充分并行处理,提供安全芯片执行效率。
综上所述,根据本发明实施例的安全芯片的多任务调度方法,首先获取当前线程在执行任务时的时间阶段,其中,时间阶段包括协处理器计算时间阶段,在当前线程处于协处理器计算时间阶段时,获取系统当前时间,并根据多个线程的优先级顺序确定下一个待切换线程,然后在系统当前时间与下一个待切换线程的上次退出时间之差大于或等于下一个待切换线程的协处理器计算时间时,切换至下一个待切换线程。由此,该方法能够实现安全芯片各协处理器和CPU并行运算,提高芯片利用率和处理速度,避免出现因多任务调度而引起的资源浪费,效率低下和CPU闲置等待的问题。
对应上述实施例,本发明还提出了一种安全芯片的多任务调度装置。
如图4所示,本发明实施例的安全芯片的多任务调度装置100包括:获取模块110、确定模块120和切换模块130。
其中,获取模块110用于获取当前线程在执行任务时的时间阶段,其中,时间阶段包括协处理器计算时间阶段。确定模块120用于在当前线程处于协处理器计算时间阶段时,获取系统当前时间,并根据多个线程的优先级顺序或时间片轮转顺序确定下一个待切换线程。切换模块130用于在系统当前时间与下一个待切换线程的上次退出时间之差大于或等于下一个待切换线程的协处理器计算时间时,切换至下一个待切换线程。
根据本发明的一个实施例,切换模块130还用于,在系统当前时间与下一个待切换线程的上次退出时间之差小于下一个待切换线程的协处理器计算时间时,按照多个线程的优先级顺序或时间片轮转顺序继续寻找待切换线程。
根据本发明的一个实施例,安全芯片的多任务调度装置100还包括:任务分类模块,用于在接收到新任务时,对新任务进行任务分类;任务添加模块,用于根据任务分类结果将新任务添加到对应线程的任务队列中。
根据本发明的一个实施例,任务分类模块对新任务进行任务分类,具体用于:根据新任务的指令编码确定对应的协处理器;根据任务使用协处理器类型确定任务分类结果,其中,每个协处理器对应一个线程,用于处理使用该协处理器进行计算的任务。
根据本发明的一个实施例,任务添加模块根据任务分类结果将新任务添加到对应线程的任务队列中,具体用于:在根据任务分类结果确定新任务为紧急任务时,将紧急任务加入到对应线程的任务队列的首位,并将紧急任务对应线程的优先级调整至多个线程的首位。
根据本发明的一个实施例,任务添加模块还用于,在紧急任务执行完成后,将紧急任务对应线程的优先级复原。
根据本发明的一个实施例,任务添加模块还用于,在根据任务分类结果确定新任务为普通任务时,将普通任务按顺序加入到对应线程的任务队列,并保持多个线程的优先级顺序不变。
根据本发明的一个实施例,分类结果包括新任务的协处理器计算时间,任务添加模块还用于:将新任务的协处理器计算时间添加到对应线程的任务队列中。
根据本发明的一个实施例,切换模块130还用于:当多个线程的优先级不同时,按照多个线程的优先级从高到低的顺序,依次循环确定是否切换线程;当多个线程的优先级相同时,按照多个线程的时间片轮转顺序,依次循环确定是否切换线程。
需要说明的是,本发明实施例的安全芯片的多任务调度装置中未披露的细节,请参照本发明实施例的安全芯片的多任务调度方法中所披露的细节,具体这里不再赘述。
根据本发明实施例的安全芯片的多任务调度装置,获取模块获取当前线程在执行任务时的时间阶段,确定模块在当前线程处于协处理器计算时间阶段时,获取系统当前时间,并根据多个线程的优先级顺序确定下一个待切换线程,切换模块在系统当前时间与下一个待切换线程的上次退出时间之差大于或等于下一个待切换线程的协处理器计算时间时,切换至下一个待切换线程。由此,该装置能够实现安全芯片各协处理器和CPU并行运算,提高芯片利用率和处理速度,避免出现因多任务调度而引起的资源浪费,效率低下和CPU闲置等待的问题。
对应上述实施例,本发明还提出了一种计算机可读存储介质。
本发明实施例的计算机可读存储介质,其上存储有安全芯片的多任务调度程序,该安全芯片的多任务调度程序被处理器执行时实现上述的安全芯片的多任务调度方法。
本发明实施例的计算机可读存储介质,通过执行上述的安全芯片的多任务调度方法,能够实现安全芯片各协处理器和CPU并行运算,提高芯片利用率和处理速度,避免出现因多任务调度而引起的资源浪费,效率低下和CPU闲置等待的问题。
对应上述实施例,本发明还提出了一种安全芯片。
如图5所示,本发明实施例的安全芯片200可包括:存储器210、处理器220以及存储在存储器210上并可在处理器220上运行的安全芯片的多任务调度程序,处理器220执行安全芯片的多任务调度程序时,实现上述的安全芯片的多任务调度方法。
本发明实施例的安全芯片,通过执行上述的安全芯片的多任务调度方法,能够实现安全芯片各协处理器和CPU并行运算,提高芯片利用率和处理速度,避免出现因多任务调度而引起的资源浪费,效率低下和CPU闲置等待的问题。
需要说明的是,在流程图中表示或在此以其他方式描述的逻辑和/或步骤,例如,可以被认为是用于实现逻辑功能的可执行指令的定序列表,可以具体实现在任何计算机可读介质中,以供指令执行系统、装置或设备(如基于计算机的系统、包括处理器的系统或其他可以从指令执行系统、装置或设备取指令并执行指令的系统)使用,或结合这些指令执行系统、装置或设备而使用。就本说明书而言,"计算机可读介质"可以是任何可以包含、存储、通信、传播或传输程序以供指令执行系统、装置或设备或结合这些指令执行系统、装置或设备而使用的装置。计算机可读介质的更具体的示例(非穷尽性列表)包括以下:具有一个或多个布线的电连接部(电子装置),便携式计算机盘盒(磁装置),随机存取存储器(RAM),只读存储器(ROM),可擦除可编辑只读存储器(EPROM或闪速存储器),光纤装置,以及便携式光盘只读存储器(CDROM)。另外,计算机可读介质甚至可以是可在其上打印所述程序的纸或其他合适的介质,因为可以例如通过对纸或其他介质进行光学扫描,接着进行编辑、解译或必要时以其他合适方式进行处理来以电子方式获得所述程序,然后将其存储在计算机存储器中。
应当理解,本发明的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。例如,如果用硬件来实现,和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(PGA),现场可编程门阵列(FPGA)等。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。
此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。在本发明的描述中,“多个”的含义是至少两个,例如两个,三个等,除非另有明确具体的限定。
在本发明中,除非另有明确的规定和限定,术语“安装”、“相连”、“连接”、“固定”等术语应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或成一体;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通或两个元件的相互作用关系,除非另有明确的限定。对于本领域的普通技术人员而言,可以根据具体情况理解上述术语在本发明中的具体含义。
尽管上面已经示出和描述了本发明的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本发明的限制,本领域的普通技术人员在本发明的范围内可以对上述实施例进行变化、修改、替换和变型。

Claims (20)

1.一种安全芯片的多任务调度方法,其特征在于,包括:
获取当前线程在执行任务时的时间阶段,其中,所述时间阶段包括:任务准备时间阶段、协处理器计算时间阶段和任务结束时间阶段,其中,所述任务准备时间阶段和所述任务结束时间阶段中,CPU和当前线程对应的协处理器同时工作,所述协处理器计算时间阶段中,CPU不工作;
在所述当前线程处于所述协处理器计算时间阶段时,如果其他线程有待执行任务,则获取系统当前时间,并根据多个线程的优先级顺序或时间片轮转顺序确定下一个待切换线程;
在所述系统当前时间与所述下一个待切换线程的上次退出时间之差大于或等于所述下一个待切换线程的协处理器计算时间时,切换至所述下一个待切换线程,以使所述CPU在所述下一个待切换线程的准备任务时间阶段或任务结束时间阶段内工作;
在所述多个线程轮询完成后,若当前线程的所述协处理器计算时间阶段完成,则所述CPU在所述当前线程的任务结束时间阶段内工作,获取所述当前线程对应的协处理器的运算结果,否则,判断所述下一个待切换线程的时间阶段是否完成,以此循环,动态调整多个线程的切换时间,其中,通过一个CPU实现多个线程的切换。
2.根据权利要求1所述的方法,其特征在于,在所述系统当前时间与所述下一个待切换线程的上次退出时间之差小于所述下一个待切换线程的协处理器计算时间时,按照所述多个线程的优先级顺序或时间片轮转顺序继续寻找待切换线程。
3.根据权利要求1所述的方法,其特征在于,还包括:
在接收到新任务时,对所述新任务进行任务分类;
根据任务分类结果将所述新任务添加到对应线程的任务队列中。
4.根据权利要求3所述的方法,其特征在于,对所述新任务进行任务分类,包括:
根据所述新任务的指令编码确定对应的协处理器;
根据任务使用协处理器类型确定所述任务分类结果,其中,每个协处理器对应一个线程,用于处理使用该协处理器进行计算的任务。
5.根据权利要求3所述的方法,其特征在于,根据任务分类结果将所述新任务添加到对应线程的任务队列中,包括:
根据所述任务分类结果确定所述新任务为紧急任务时,将所述紧急任务加入到对应线程的任务队列的首位,并将所述紧急任务对应线程的优先级调整至所述多个线程的首位。
6.根据权利要求5所述的方法,其特征在于,在所述紧急任务执行完成后,将所述紧急任务对应线程的优先级复原。
7.根据权利要求5所述的方法,其特征在于,根据所述任务分类结果确定所述新任务为普通任务时,将所述普通任务按顺序加入到对应线程的任务队列,并保持所述多个线程的优先级顺序不变。
8.根据权利要求4所述的方法,其特征在于,所述分类结果包括所述新任务的协处理器计算时间,所述方法还包括:
将所述新任务的协处理器计算时间添加到对应线程的任务队列中。
9.根据权利要求1所述的方法,其特征在于,还包括:
当所述多个线程的优先级不同时,按照所述多个线程的优先级从高到低的顺序,依次循环确定是否切换线程;
当所述多个线程的优先级相同时,按照所述多个线程的时间片轮转顺序,依次循环确定是否切换线程。
10.一种安全芯片的多任务调度装置,其特征在于,包括:
获取模块,用于获取当前线程在执行任务时的时间阶段,其中,所述时间阶段包括:任务准备时间阶段、协处理器计算时间阶段和任务结束时间阶段,其中,所述任务准备时间阶段和所述任务结束时间阶段中,CPU和当前线程对应的协处理器同时工作,所述协处理器计算时间阶段中,CPU不工作;
确定模块,用于在所述当前线程处于所述协处理器计算时间阶段时,如果其他线程有待执行任务,则获取系统当前时间,并根据多个线程的优先级顺序或时间片轮转顺序确定下一个待切换线程;
切换模块,用于在所述系统当前时间与所述下一个待切换线程的上次退出时间之差大于或等于所述下一个待切换线程的协处理器计算时间时,切换至所述下一个待切换线程,以使所述CPU在所述下一个待切换线程的准备任务时间阶段或任务结束时间阶段内工作;
所述切换模块,还用于在所述多个线程轮询完成后,若当前线程的所述协处理器计算时间阶段完成,则所述CPU在所述当前线程的任务结束时间阶段内工作,获取所述当前线程对应的协处理器的运算结果,否则,判断所述下一个待切换线程的时间阶段是否完成,以此循环,动态调整多个线程的切换时间,其中,通过一个CPU实现多个线程的切换。
11.根据权利要求10所述的装置,其特征在于,所述切换模块还用于,在所述系统当前时间与所述下一个待切换线程的上次退出时间之差小于所述下一个待切换线程的协处理器计算时间时,按照所述多个线程的优先级顺序或时间片轮转顺序继续寻找待切换线程。
12.根据权利要求10所述的装置,其特征在于,还包括:
任务分类模块,用于在接收到新任务时,对所述新任务进行任务分类;
任务添加模块,用于根据任务分类结果将所述新任务添加到对应线程的任务队列中。
13.根据权利要求12所述的装置,其特征在于,所述任务分类模块对所述新任务进行任务分类,具体用于:
根据所述新任务的指令编码确定对应的协处理器;
根据任务使用协处理器类型确定所述任务分类结果,其中,每个协处理器对应一个线程,用于处理使用该协处理器进行计算的任务。
14.根据权利要求12所述的装置,其特征在于,所述任务添加模块根据任务分类结果将所述新任务添加到对应线程的任务队列中,具体用于:
在根据所述任务分类结果确定所述新任务为紧急任务时,将所述紧急任务加入到对应线程的任务队列的首位,并将所述紧急任务对应线程的优先级调整至所述多个线程的首位。
15.根据权利要求14所述的装置,其特征在于,所述任务添加模块还用于,在所述紧急任务执行完成后,将所述紧急任务对应线程的优先级复原。
16.根据权利要求14所述的装置,其特征在于,所述任务添加模块还用于,在根据所述任务分类结果确定所述新任务为普通任务时,将所述普通任务按顺序加入到对应线程的任务队列,并保持所述多个线程的优先级顺序不变。
17.根据权利要求13所述的装置,其特征在于,所述分类结果包括所述新任务的协处理器计算时间,所述任务添加模块还用于:
将所述新任务的协处理器计算时间添加到对应线程的任务队列中。
18.根据权利要求10所述的装置,其特征在于,所述切换模块还用于:
当所述多个线程的优先级不同时,按照所述多个线程的优先级从高到低的顺序,依次循环确定是否切换线程;
当所述多个线程的优先级相同时,按照所述多个线程的时间片轮转顺序,依次循环确定是否切换线程。
19.一种计算机可读存储介质,其特征在于,其上存储有安全芯片的多任务调度程序,该安全芯片的多任务调度程序被处理器执行时实现根据权利要求1-9中任一项所述的安全芯片的多任务调度方法。
20.一种安全芯片,其特征在于,包括存储器、处理器及存储在存储器上并可在处理器上运行的安全芯片的多任务调度程序,所述处理器执行所述安全芯片的多任务调度程序时,实现根据权利要求1-9中任一项所述的安全芯片的多任务调度方法。
CN202210777766.5A 2022-07-04 2022-07-04 安全芯片及其多任务调度方法和装置、存储介质 Active CN114880102B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210777766.5A CN114880102B (zh) 2022-07-04 2022-07-04 安全芯片及其多任务调度方法和装置、存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210777766.5A CN114880102B (zh) 2022-07-04 2022-07-04 安全芯片及其多任务调度方法和装置、存储介质

Publications (2)

Publication Number Publication Date
CN114880102A CN114880102A (zh) 2022-08-09
CN114880102B true CN114880102B (zh) 2022-10-25

Family

ID=82682971

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210777766.5A Active CN114880102B (zh) 2022-07-04 2022-07-04 安全芯片及其多任务调度方法和装置、存储介质

Country Status (1)

Country Link
CN (1) CN114880102B (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116521606B (zh) * 2023-06-27 2023-09-05 太初(无锡)电子科技有限公司 一种任务处理方法、装置、计算设备及存储介质
CN116521351B (zh) * 2023-07-03 2023-09-05 建信金融科技有限责任公司 多线程任务调度方法、装置、存储介质及处理器
CN117931456B (zh) * 2024-03-20 2024-06-14 石家庄科林电气股份有限公司 多任务调度方法、装置及处理芯片

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5506963A (en) * 1991-10-03 1996-04-09 Sextant Avionique Real-time management system having coprocessors allocated time slices of different durations to functions and processors executed functions simultaneously in accordance with the time allocation
CN102541630A (zh) * 2010-12-02 2012-07-04 国际商业机器公司 计算机处理器中线程间数据通信的方法和系统
CN102955555A (zh) * 2011-08-19 2013-03-06 苏州简约纳电子有限公司 一种多线程处理方法和装置
CN106569886A (zh) * 2016-10-26 2017-04-19 曙光信息产业(北京)有限公司 策略调度方法和策略调度系统
CN111367652A (zh) * 2020-01-07 2020-07-03 苏州大学 一种嵌入式实时操作系统的任务调度处理系统和方法
CN111488290A (zh) * 2020-04-28 2020-08-04 南方电网数字电网研究院有限公司 基于智能电表操作系统的线程测试方法和装置
CN111597044A (zh) * 2020-05-14 2020-08-28 Oppo广东移动通信有限公司 任务调度方法、装置、存储介质及电子设备
CN111813522A (zh) * 2020-07-09 2020-10-23 西北工业大学 一种虚拟arinc 653仿真验证平台
CN112416546A (zh) * 2020-11-10 2021-02-26 光华临港工程应用技术研发(上海)有限公司 多任务调度方法、电子装置和计算机存储介质

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5506963A (en) * 1991-10-03 1996-04-09 Sextant Avionique Real-time management system having coprocessors allocated time slices of different durations to functions and processors executed functions simultaneously in accordance with the time allocation
CN102541630A (zh) * 2010-12-02 2012-07-04 国际商业机器公司 计算机处理器中线程间数据通信的方法和系统
CN102955555A (zh) * 2011-08-19 2013-03-06 苏州简约纳电子有限公司 一种多线程处理方法和装置
CN106569886A (zh) * 2016-10-26 2017-04-19 曙光信息产业(北京)有限公司 策略调度方法和策略调度系统
CN111367652A (zh) * 2020-01-07 2020-07-03 苏州大学 一种嵌入式实时操作系统的任务调度处理系统和方法
CN111488290A (zh) * 2020-04-28 2020-08-04 南方电网数字电网研究院有限公司 基于智能电表操作系统的线程测试方法和装置
CN111597044A (zh) * 2020-05-14 2020-08-28 Oppo广东移动通信有限公司 任务调度方法、装置、存储介质及电子设备
CN111813522A (zh) * 2020-07-09 2020-10-23 西北工业大学 一种虚拟arinc 653仿真验证平台
CN112416546A (zh) * 2020-11-10 2021-02-26 光华临港工程应用技术研发(上海)有限公司 多任务调度方法、电子装置和计算机存储介质

Also Published As

Publication number Publication date
CN114880102A (zh) 2022-08-09

Similar Documents

Publication Publication Date Title
CN114880102B (zh) 安全芯片及其多任务调度方法和装置、存储介质
US8713573B2 (en) Synchronization scheduling apparatus and method in real-time multi-core system
US7721035B2 (en) Multiprocessor system, processor and interrupt control method
US8205204B2 (en) Apparatus and method for scheduling threads in multi-threading processors
JP4094550B2 (ja) スケジューリングの順序付けられたステージの基準を使用してリクエストをスケジューリングする方法及び装置
US9632822B2 (en) Multi-core device and multi-thread scheduling method thereof
US9870228B2 (en) Prioritising of instruction fetching in microprocessor systems
US8683474B2 (en) Accounting apparatus and method for SMT processor
EP2425329B1 (en) Method and apparatus for scheduling the issue of instructions in a multithreaded microprocessor
US7590990B2 (en) Computer system
CN107077390B (zh) 一种任务处理方法以及网卡
KR101519891B1 (ko) 멀티스레드 프로세서를 위한 스레드 디엠퍼시스 명령
JP2011141782A (ja) 情報処理装置、電子制御ユニット、タスク割り当て方法
US20030177163A1 (en) Microprocessor comprising load monitoring function
Zheng et al. Memory access scheduling schemes for systems with multi-core processors
US6901507B2 (en) Context scheduling
CN110837415A (zh) 一种基于risc-v多核处理器的线程调度方法和装置
CN112579271A (zh) 用于非实时操作系统的实时任务调度方法、模块、终端和存储介质
CN116795503A (zh) 任务调度方法、任务调度装置、图形处理器及电子设备
CN113051059B (zh) 一种多gpu的任务实时调度方法及装置
CN112114967B (zh) 一种基于服务优先级的gpu资源预留方法
JPH07302246A (ja) スケジューリング方式
US20040103414A1 (en) Method and apparatus for interprocess communications
JPH08137703A (ja) タスク切替装置
JP2021012601A (ja) 並列化方法、半導体制御装置、車載制御装置

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