本发明涉及risc-v处理器多核程序调度技术领域,具体涉及一种基于risc-v的多核程序调度系统及方法。
背景技术:
risc-v的多核程序调度机制。现有的操作系统采用任务统一调度,多核程序设计采用并行程序设计模型来设计应用程序,将应用程序划分成多个独立的任务。线程启停以及线程上下文切换都会引起额外的开销,这带来了消耗的时间比单线程多。同时对于一些要求响应时间苛刻的程序,在多核处理器上面采用统一调度的模式,难以满足日益苛刻的响应时间要求。
采用传统的任务调度策略,会导致任务的中断,不能保证连续执行,对于实时性要求极高的任务,无法满足要求。不同的任务需要的硬件资源不同,在通用处理器核上运行,效率无法提高,无法做到任务与处理器核的有效适配,导致系统整体性能无法有效提高。
技术实现要素:
针对采用传统的任务调度策略,会导致任务的中断,不能保证连续执行,对于实时性要求极高的任务,无法满足要求的问题,本发明提供一种基于risc-v的多核程序调度系统及方法
本发明的技术方案是:
一方面,本发明技术方案提供一种基于risc-v的多核程序调度系统,包括risc-v芯片和软件系统,所述的软件系统包括运行在risc-v芯片之上的操作系统和运行在操作系统之上的应用程序;
所述的risc-v芯片包括risc-v快速响应处理器;
该系统还包括用于进行系统内核调度的调度程序模块和用于对程序进行快速响应配置的配置程序模块;
所述的调度程序模块,用于检测程序的配置信息并且在检测到快速响应配置信息时,将该程序分配到快速响应处理器进行执行。
risc-v芯片是以risc-v为指令集的芯片,risc-v通用处理器指的是基于risc-v指令的通用处理器运行控制逻辑较多的程序。risc-v快速响应处理器指的是基于risc-v指令的通用处理器,运行被指定的程序。risc-v专用处理器指的是基于risc-v指令,并行添加通用计算单元,修改处理器指令调度、发射模块,兼容通用处理器指令集,运行计算逻辑较多的程序。
进一步的,所述的risc-v芯片还包括risc-v通用处理器;
所述的调度程序模块,还用于检测程序的配置信息并且在没有检测到快速响应配置信息时,将该程序分配到risc-v通用处理器进行执行。
进一步的,所述的risc-v芯片还包括risc-v专用处理器,所述的risc-v专用处理器基于risc-v指令,并行添加算数操作模块,修改处理器指令调度,兼容通用处理器指令集。
进一步的,所述的算数操作模块包括:乘法模块、除法模块以及通用处理器中所有完成算数操作的模块。
进一步的,该系统中所述的risc-v专用处理器的数量为若干个。
进一步的,所述的调度程序模块,还用于分析程序的特征并检测统计程序中逻辑操作与算数操作的比率;
若逻辑操作的比率大于设定的阈值时,所述的调度程序模块,用于将该程序分配到risc-v通用处理器进行执行;
若算数操作的比率大于设定的阈值时,所述的调度程序模块,用于将该程序分配到risc-v专用处理器进行执行。如果没有其他的快速响应程序,则该处理器一直执行此程序;如果有其他快速响应程序需要被执行,则按照时间片原则执行。
另一方面,本发明技术方案提供一种基于risc-v的多核程序调度方法,该方法应用于基于risc-v的多核程序调度系统,包括如下步骤:
根据需求对程序进行快速响应配置;
检测程序的配置信息;
若检测到快速响应配置信息时,将该程序分配到快速响应处理器进行执行;
若没有检测到快速响应配置信息时,将该程序分配到risc-v通用处理器进行执行或者根据程序特性调度到risc-v专用处理器进行执行。
进一步的,所述的若没有检测到快速响应配置信息时,将该程序分配到risc-v通用处理器进行执行或者根据程序特性调度到risc-v专用处理器进行执行的步骤中,根据程序特性调度到risc-v专用处理器进行执行的步骤包括:
分析程序的特征并检测统计程序中逻辑操作与算数操作的比率;
对逻辑操作与算数操作的比率进行判断;
若逻辑操作的比率大于设定的阈值时,所述的调度程序模块将该程序分配到risc-v通用处理器进行执行;
若算数操作的比率大于设定的阈值时,所述的调度程序模块将该程序分配到risc-v专用处理器进行执行。
从以上技术方案可以看出,本发明具有以下优点:本发明的调度系统有效解决以下两个问题:1.任务调度导致的中断,不能保证连续执行,对于实时性要求极高的任务,现有任务调度机制无法满足要求的问题;2.通用处理器核,无法做到任务与处理器核的有效适配,导致系统整体性能无法有效提高的问题。
此外,本发明设计原理可靠,结构简单,具有非常广泛的应用前景。
由此可见,本发明与现有技术相比,具有突出的实质性特点和显著地进步,其实施的有益效果也是显而易见的。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例提供的系统示意性框图。
图2是本发明实施例提供的risc-v芯片示意性框图。
图3是本发明实施例提供的软件系统示意性框图。
具体实施方式
为了使本技术领域的人员更好地理解本发明中的技术方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
首先需要本领域技术人员知道,任务调度的方式包括:非剥夺方式:分派程序一旦把处理机分配给某进程后便让它一直运行下去,直到进程完成或发生某事件件而阻塞时,才把处理机分配给另一个进程。
剥夺方式:当一个进程正在运行时,系统可以基于某种原则,剥夺已分配给它的处理机,将之分配给其它进程。剥夺原则有:优先权原则、短进程优先原则、时间片原则。
实施例一
本发明技术方案提供一种基于risc-v的多核程序调度系统,包括risc-v芯片和软件系统,所述的软件系统包括运行在risc-v芯片之上的操作系统和运行在操作系统之上的应用程序;
所述的risc-v芯片包括risc-v快速响应处理器;
该系统还包括用于进行系统内核调度的调度程序模块和用于对程序进行快速响应配置的配置程序模块;
所述的调度程序模块,用于检测程序的配置信息并且在检测到快速响应配置信息时,将该程序分配到快速响应处理器进行执行。所述的risc-v芯片还包括risc-v通用处理器;所述的调度程序模块,还用于检测程序的配置信息并且在没有检测到快速响应配置信息时,将该程序分配到risc-v通用处理器进行执行。所述的risc-v芯片还包括risc-v专用处理器,所述的risc-v专用处理器基于risc-v指令,并行添加算数操作模块,修改处理器指令调度,兼容通用处理器指令集。所述的算数操作模块包括:乘法模块、除法模块以及通用处理器中所有完成算数操作的模块。
实时性要求极高的任务处理:在程序正式执行之前,本实施例中,配置程序模块为快速响应程序,调度程序模块本实施例中是指操作系统的调度补丁,调度程序模块对配置的相关信息进行判断,若该程序配置为快速响应程序,则将此程序分配到快速响应处理器进行执行,如果没有被配置为快速响应程序,则分配到通用处理器其执行或者根据程序特性调度到专用处理器执行。如果没有其他的快速响应程序,则该处理器一直执行此程序;如果有其他快速响应程序需要被执行,则按照时间片原则执行。
实施例二
如图1-3所示,本发明技术方案提供一种基于risc-v的多核程序调度系统,本实施例以linux操作系统为例,与实施例一的不同之处包括:
该系统中所述的risc-v专用处理器的数量为若干个。
所述的调度程序模块,还用于分析程序的特征并检测统计程序中逻辑操作与算数操作的比率;
若逻辑操作的比率大于设定的阈值时,所述的调度程序模块,用于将该程序分配到risc-v通用处理器进行执行;
若算数操作的比率大于设定的阈值时,所述的调度程序模块,用于将该程序分配到risc-v专用处理器进行执行。如果没有其他的快速响应程序,则该处理器一直执行此程序;如果有其他快速响应程序需要被执行,则按照时间片原则执行。在程序正式执行之前,调度程序模块分析程序的特征,本实施例中包括程序1-程序n,检测统计程序中逻辑操作与算数操作的比率,同时统计算数操作中各种操作的比例。本发明risc-v专用处理器添加的算数操作模块包括:乘法(整数、浮点)、除法(整数、浮点)以及通用处理器中所有完成算数操作的模块部件。
实施例三
本发明技术方案提供一种基于risc-v的多核程序调度方法,该方法应用于基于risc-v的多核程序调度系统,包括如下步骤:
ss1:根据需求对程序进行快速响应配置;
ss2:检测程序的配置信息;若检测到快速响应配置信息时,执行步骤ss3;若没有检测到快速响应配置信息时,执行步骤ss4;
ss3:将该程序分配到快速响应处理器进行执行;
ss4:将该程序分配到risc-v通用处理器进行执行或者根据程序特性调度到risc-v专用处理器进行执行。
步骤ss4中,根据程序特性调度到risc-v专用处理器进行执行的步骤包括:
ss41:分析程序的特征并检测统计程序中逻辑操作与算数操作的比率;
ss42:对逻辑操作与算数操作的比率进行判断;若逻辑操作的比率大于设定的阈值时,执行步骤ss43;若算数操作的比率大于设定的阈值时,执行步骤ss44;
ss43:所述的调度程序模块将该程序分配到risc-v通用处理器进行执行;
ss44:所述的调度程序模块将该程序分配到risc-v专用处理器进行执行。
尽管通过参考附图并结合优选实施例的方式对本发明进行了详细描述,但本发明并不限于此。在不脱离本发明的精神和实质的前提下,本领域普通技术人员可以对本发明的实施例进行各种等效的修改或替换,而这些修改或替换都应在本发明的涵盖范围内/任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。
1.一种基于risc-v的多核程序调度系统,其特征在于,包括risc-v芯片和软件系统,所述的软件系统包括运行在risc-v芯片之上的操作系统和运行在操作系统之上的应用程序;
所述的risc-v芯片包括risc-v快速响应处理器;
该系统还包括用于进行系统内核调度的调度程序模块和用于对程序进行快速响应配置的配置程序模块;
所述的调度程序模块,用于检测程序的配置信息并且在检测到快速响应配置信息时,将该程序分配到快速响应处理器进行执行。
2.根据权利要求1所述的一种基于risc-v的多核程序调度系统,其特征在于,所述的risc-v芯片还包括risc-v通用处理器;
所述的调度程序模块,还用于检测程序的配置信息并且在没有检测到快速响应配置信息时,将该程序分配到risc-v通用处理器进行执行。
3.根据权利要求2所述的一种基于risc-v的多核程序调度系统,其特征在于,所述的risc-v芯片还包括risc-v专用处理器,所述的risc-v专用处理器基于risc-v指令,并行添加算数操作模块,修改处理器指令调度,兼容通用处理器指令集。
4.根据权利要求3所述的一种基于risc-v的多核程序调度系统,其特征在于,所述的算数操作模块包括:乘法模块、除法模块以及通用处理器中所有完成算数操作的模块。
5.根据权利要求4所述的一种基于risc-v的多核程序调度系统,其特征在于,该系统中所述的risc-v专用处理器的数量为若干个。
6.根据权利要求4所述的一种基于risc-v的多核程序调度系统,其特征在于,所述的调度程序模块,还用于分析程序的特征并检测统计程序中逻辑操作与算数操作的比率;
若逻辑操作的比率大于设定的阈值时,所述的调度程序模块,用于将该程序分配到risc-v通用处理器进行执行;
若算数操作的比率大于设定的阈值时,所述的调度程序模块,用于将该程序分配到risc-v专用处理器进行执行。
7.一种基于risc-v的多核程序调度方法,该方法应用于基于risc-v的多核程序调度系统,其特征在于,包括如下步骤:
根据需求对程序进行快速响应配置;
检测程序的配置信息;
若检测到快速响应配置信息时,将该程序分配到快速响应处理器进行执行;
若没有检测到快速响应配置信息时,将该程序分配到risc-v通用处理器进行执行或者根据程序特性调度到risc-v专用处理器进行执行。
8.根据权利要求7所述的一种基于risc-v的多核程序调度方法,其特征在于,所述的若没有检测到快速响应配置信息时,将该程序分配到risc-v通用处理器进行执行或者根据程序特性调度到risc-v专用处理器进行执行的步骤中,根据程序特性调度到risc-v专用处理器进行执行的步骤包括:
分析程序的特征并检测统计程序中逻辑操作与算数操作的比率;
对逻辑操作与算数操作的比率进行判断;
若逻辑操作的比率大于设定的阈值时,所述的调度程序模块将该程序分配到risc-v通用处理器进行执行;
若算数操作的比率大于设定的阈值时,所述的调度程序模块将该程序分配到risc-v专用处理器进行执行。
技术总结