CN110837415B - 一种基于risc-v多核处理器的线程调度方法和装置 - Google Patents
一种基于risc-v多核处理器的线程调度方法和装置 Download PDFInfo
- Publication number
- CN110837415B CN110837415B CN201810940728.0A CN201810940728A CN110837415B CN 110837415 B CN110837415 B CN 110837415B CN 201810940728 A CN201810940728 A CN 201810940728A CN 110837415 B CN110837415 B CN 110837415B
- Authority
- CN
- China
- Prior art keywords
- processor
- thread
- core
- kernel
- thread scheduling
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 54
- 239000000725 suspension Substances 0.000 claims description 12
- 230000004044 response Effects 0.000 claims description 6
- 238000011084 recovery Methods 0.000 claims description 3
- 238000005265 energy consumption Methods 0.000 abstract description 4
- 230000008569 process Effects 0.000 description 10
- 238000010586 diagram Methods 0.000 description 7
- 230000008901 benefit Effects 0.000 description 6
- 230000000903 blocking effect Effects 0.000 description 3
- 230000008859 change Effects 0.000 description 3
- 238000001514 detection method Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 238000004891 communication Methods 0.000 description 1
- 238000010924 continuous production Methods 0.000 description 1
- 230000004069 differentiation Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000026676 system process Effects 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation 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/505—Allocation 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 load
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/50—Indexing scheme relating to G06F9/50
- G06F2209/5018—Thread allocation
-
- Y—GENERAL 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
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE 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/00—Energy 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)
- Power Sources (AREA)
- Multi Processors (AREA)
Abstract
本发明提供了一种基于RISC-V多核处理器的线程调度方法和装置。其中,线程调度方法包括:响应于目标线程调度指令,获取当前线程所占用的第一处理器内核的内核标识;判断所述第一处理器内核的内核标识和第二处理器内核的内核标识是否相同,并得到判断结果;根据所述判断结果调度所述目标线程,以使所述目标线程在第二处理器内核中运行。利用该线程调度方法,可以为紧急任务分配处于空闲状态的处理器内核中的目标线程,为运行该程序提供了需要的资源,以快速完成该紧急任务的运行,从而更高效地并发处理信息,实现多核处理器的动态负载平衡,提高了多核处理器的数据处理性能,间接的降低多核处理器的能耗。
Description
技术领域
本发明涉及计算机领域,具体涉及一种基于RISC-V多核处理器的线程调度方法和装置。
背景技术
RISC-V是加州大学伯克利分校(University of California at Berkeley,UCB)设计并发布的一种开源指令集架构,其目标是成为指令集架构领域的Linux,应用覆盖IoT(Internet of Things)设备、桌面计算机、高性能计算机等众多领域。
相比于现有技术中的其他指令集框架,RISC-V框架具有开源性、差异化和自由选择权的关键优势,因此,出现了很多基于RISC-V框架的处理器,这些处理器的实现范围十分广泛,从简单物联网处理器到运行Linux的应用处理器,都是基于一套共同的指令集。同时,为了提高程序运行效率,产生了基于RISC-V框架的多核处理器。
然而,现有技术中在对多核处理器的使用过程中,如果用户将某一线程运行到处理器的指定处理器内核时,如果该指定处理器内核不空闲时,则不能及时响应用户的操作,并产生延时和卡顿现象,用户体验性被严重影响。
发明内容
针对上述提到的若该指定处理器内核不处于空闲状态时,不能及时响应用户的操作,从而产生延时或卡顿的问题,提出了一种基于RISCV多核处理器的线程调度方法,其能根据预先设定的数据处理逻辑,调度用户指定运行的线程,从而使线程调度过程更加流畅,减少卡顿现象,使程序更加流畅的运行,提高了用户体验。
依据本发明的第一方面,提供了一种基于RISCV多核处理器的线程调度方法,其包括:
响应于目标线程调度指令,获取当前线程所占用的第一处理器内核;其中,所述目标线程调度指令用于为目标线程分配第二处理器内核的使用权;
判断所述第一处理器内核的内核标识和第二处理器内核的内核标识是否相同,并得到判断结果;
根据所述判断结果调度所述目标线程,以使所述目标线程在第二处理器内核中运行。
在上述实施例的基础上,所述根据所述判断结果调度所述目标线程,包括:如果所述第一处理器内核的内核标识与所述第二处理器内核的内核标识相同,则将所述目标线程加入到所述第一处理器内核的调度列表。
在上述实施例的基础上,所述根据所述判断结果调度所述目标线程,包括:如果所述第一处理器内核的内核标识与所述第二处理器内核的内核标识不同,则将目标线程设置为第二处理器内核的待入队线程;
将所述待入队线程加入到所述第二处理器内核的调度队列。
在上述实施例的基础上,将所述待入队线程加入到所述第二处理器内核的调度队列之前,还包括:设置所述第二处理器内核的软中断挂起位,以使所述第二处理器根据所述软中断挂起位进入软中断状态。
在上述实施例的基础上,获取当前线程所占用的第一处理器内核的内核标识,同时,还包括:记录当前运行状态下所述RISC-V多核处理器的上下文信息。
在上述实施例的基础上,所述线程调度方法还包括:在第一处理器内核中运行目标线程;当监测到当前时刻为计时器中断触发时刻时,所述第一处理器内核进入计时器中断;
根据所述上下文信息恢复所述RISC-V多核处理器的运行状态。
在上述实施例的基础上,所述基于RISC-V多核处理器包括至少两个逻辑处理器内核、至少两个物理处理器内核、或者至少一个逻辑处理器内核和至少一个物理处理器内核。
依据本发明的第二方面,提供了一种基于RISCV多核处理器的线程调度装置,包括指令响应模块、内核判断模块、线程调度模块;
具体的,指令响应模块,用于响应于目标线程调度指令,获取当前线程所占用的第一处理器内核;其中,所述目标线程调度指令用于为目标线程分配第二处理器内核的使用权;
内核判断模块,用于判断所述第一处理器内核和第二处理器内核是否相同,并得到判断结果;
线程调度模块,用于根据所述判断结果调度所述目标线程,以使所述目标线程在第二处理器内核中运行。
在上述实施例的基础上,所述线程调度模块包括:第一线程调度单元,用于如果所述第一处理器内核与所述第二处理器内核相同,则将所述目标线程加入到所述第一处理器内核的调度列表。
在上述实施例的基础上,所述线程调度模块包括:
第二线程调度单元,用于如果所述第一处理器内核与所述第二处理器内核不同,则将目标线程设置为第二处理器内核的待入队线程;
调度队列调整模块,用于将所述待入队线程加入到所述第二处理器内核的调度队列。
在上述实施例的基础上,所述线程调度装置还包括:
软中断挂起位设置模块,用于设置所述第二处理器内核的软中断挂起位,以使所述第二处理器根据所述软中断挂起位进入软中断状态。
在上述实施例的基础上,所述线程调度装置还包括:
上下文信息记录模块,用于记录当前运行状态下所述RISCV多核处理器的上下文信息。
在上述实施例的基础上,所述线程调度装置还包括:
运行模块,用于将目标线程在第一处理器内核中运行预设时长;
中断模块,用于当监测到当前时刻为计时器中断触发时刻时,所述第一处理器内核进入计时器中断;
恢复模块,用于根据所述上下文信息恢复所述RISC-V多核处理器的运行状态。
在上述实施例的基础上,所述基于RISC-V多核处理器包括至少两个逻辑处理器内核、至少两个物理处理器内核、或者至少一个逻辑处理器内核和至少一个物理处理器内核。
根据本发明的第三方面,还提供了一种计算机可读存储介质,其上存储有计算机指令,所述计算机指令被处理器执行时实现如上所述的线程调度方法。
利用以上方案可以解决如下问题:当多核处理器中的全部线程资源被占用,同时又出现了紧急任务时,可以通过该线程调度方法为该紧急任务分配处于空闲状态的处理器内核的目标线程,为运行该程序提供需要的资源,以快速完成该紧急任务的运行,从而更高效地并发处理信息,实现多核处理器的动态负载平衡,提高了多核处理器的数据处理性能,间接的降低多核处理器的能耗。
应当理解,上述说明仅是本发明技术方案的概述,以便能够更清楚地了解本发明的技术手段,从而可依照说明书的内容予以实施。为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举例说明本发明的具体实施方式。
附图说明
通过阅读下文的示例性实施例的详细描述,本领域普通技术人员将明白本文所述的有点和益处以及其他优点和益处。附图仅用于示出示例性实施例的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的标号表示相同的部件。在附图中:
图1为根据本发明一实施例的线程调度方法流程示意图;
图2为根据本发明又一实施例的线程调度方法流程示意图;
图3为根据本发明一实施例的线程调度装置的示意图;
图4示出了根据本发明实施例的计算机可读存储介质的示意图。
具体实施方式
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
在本发明中,应理解,诸如“包括”或“具有”等术语旨在指示本说明书中所公开的特征、数字、步骤、行为、部件、部分或其组合的存在,并且不旨在排除一个或多个其他特征、数字、步骤、行为、部件、部分或其组合存在的可能性。
另外还需要说明的是,在不冲突的情况下,本发明中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本发明。
在本说明书中的一个或多个实施例中,基于RISCV多核处理器的线程调度方法可以应用于对多核处理器系统中的共享硬件资源的处理器核上运行的线程进行调度,能够有效的缓和共享硬件资源的多个处理器核对共享硬件资源的竞争,从而提高共享资源的利用率,改善了多核处理器系统的性能。在一些实施例中,CPU会将所述多线程应用程序划分成多个独立的任务,并通过多个线程并行运行所述多线程应用程序。因此可以这样理解,多核处理器系统在运行多线程应用程序是不停的执行线程调度指令的过程,即本实施例中所述的线程调度方法可以在同一个应用程序的执行的过程中执行多次。
在另外一些实施例中,所述线程调度方法还可以运用到如下场景下:例如,当某个操作可能会陷入长时间等待,等待的线程会进入睡眠状态,无法继续执行时,可以通过所述线程调度方法来处理;当某个操作(常常是计算)会消耗大量的时间,如果只有一个线程,程序和用户之间的交互发生中断时,可以通过所述线程调度方法来处理。
需要说明的是,在本发明实施例中的多核处理系统中处理器核可以是中央处理器(CPU,Central Processing Unit),或者微处理器(MPU,Micro Processor Unit)、或者数字信号处理器(DSP,Digital Signal Processing)、或者图形处理器(GPU,图形处理器)。
下面将具体介绍本发明实施例中的线程调度方法,请参阅图1,图1示出了根据本发明实施例的基于RISC-V多核处理器的线程调度方法流程示意图。应当理解的是,本发明实施例的方法的执行主体可以是RISCV多核处理器系统中的处理器核,本发明实施例以第一处理器核作为方法的执行主体举例来说明,本发明实施例的方法包括:
S110:响应于目标线程调度指令,获取当前线程所占用的第一处理器内核的内核标识;
其中,所述目标线程调度指令用于为目标线程分配第二处理器内核的使用权;目标线程调度指令可以是在多核处理器系统中运行的任何应用程序发出。
所述目标线程可以是内核级线程或混合式线程,其依赖于内核,即无论是用户进程中的线程,还是系统进程中的线程,它们的创建、撤消、切换都由内核实现。
为了更清楚的描述线程调度方法中的细节,本实施将执行线程调度方法所占用的线程定义为当前线程,将当前线程所占用的处理器内核称为第一处理器核。所述第一处理器内核可以是RISC-V多核处理器中的任何一个内核,所述内核标识(Core Id)用于标识所述第一处理器内核,不同处理器的内核标识不同。
在另外一些实施例中,可以通过能够起到相应功能的指令获取处理器内核的内核标识。
S120:判断所述第一处理器内核的内核标识和第二处理器内核的内核标识是否相同,并得到判断结果。
其中,所述第二处理器内核为所述目标线程运行时所占用的处理器内核,本实施例中指定目标线程在第二处理器内核中运行的原因可以有多种,例如第二处理器内核相比于其余处理器内核的空闲资源更多,处理数据的效率更高;又例如,第二处理器内核的数据处理性能更高等;该细节不属于技术方案的方案,因此不再详细介绍。
本实施例中在获取到第一处理器内核的内核标识后,会通过内核标识来判断所述第一处理器内核与第二处理器内核是否为同一个内核。
S130:根据所述判断结果调度所述目标线程,以使所述目标线程在第二处理器内核中运行。
本实施例中所述的调度目标线程的过程可以是,首先在当前线程下创建目标线程,并将所述目标线程加入到所指定处理器内核的调度列表下。所述调度目标线程的过程可以分为两种情况进行叙述。
一种情况,所述根据所述判断结果调度所述目标线程,包括:如果所述第一处理器内核的内核标识与所述第二处理器内核的内核标识相同,则将所述目标线程加入到所述第一处理器内核的调度列表。
具体的,当所述第一处理器内核的内核标识与所述第二处理器内核的内核标识相同,则说明第一处理器内核与第二处理器内核为同一处理器内核,即将目标线程指定于当前线程所占用的第一处理器内核中。
另外一种情况,所述根据所述判断结果调度所述目标线程,包括:如果所述第一处理器内核的内核标识与所述第二处理器内核的内核标识不同,则将目标线程设置为第二处理器内核的待入队线程;将所述待入队线程加入到所述第二处理器内核的调度队列。
为了更加具象的描述所述线程调度算法,本实施例以智能家居设备为例,以场景化的方式对所述线程调度算法展开叙述。
本实施例中所述的智能家居系统包括控制中心和多个可穿戴设备。其中,所述可穿戴设备包括已与所述移动设备绑定的可穿戴设备和在周围一定距离内通过近场通信方式与所述移动设备进行通信的可穿戴设备;每个所述可穿戴设备对应一个唯一标识信息;所述移动设备与智能家居设备之间通过局域网或互联网通信;所述智能家居设备在所述标识信息为所述唯一标识信息的情况下执行预设控制指令,由原始工作状态切换至智能工作状态。
本实施例中所述的方法可以发生在具有多核处理器的任意控制中心和可穿戴设备。智能家居系统的使用者预先设定了一个使用场景,例如,当该使用者一回到家(以是否打开智能防盗门为检测条件),就立刻打开智能音箱,并播放其歌单中的歌曲。
在该场景下,智能家居系统中的控制中心和可穿戴设备在使用者不在家或使用者进入家门之前都处于运行状态,本实施例将处于运行状态的控制中心中所运行的线程定义为当前线程,并假设所述当前线程运行在控制中心的第一处理器内核中。
当使用者打开智能防盗门时,设置于智能防盗门中的智能检测传感器通过检测智能防盗门的使用状态来判断智能防盗门是否被打开,如果判断结果表示所述智能防盗门被打开,则触发智能防盗门中的处理器向控制中心中发送触发智能防盗门的状态变化信息,当控制中心接收到状态变化信息时,会对状态变化信息进行解析和判断,进而得到解析结果。此时,为了提高该过程的处理效率,控制中心通常会为该过程单独创建线程(即目标线程),并指定目标线程运行到空闲资源较多且运算性能强的处理器内核上(即第二处理器内核),从而为目标线程分配第二处理器内核的使用权。
本实施例中,通过该线程调度方法可以为该紧急任务分配处于空闲状态的处理器内核的目标线程,为运行该程序提供需要的资源,以快速完成该紧急任务的运行,从而更高效地并发处理信息,实现多核处理器的动态负载平衡,提高了多核处理器的数据处理性能,间接的降低多核处理器的能耗。
不同于上述实施例,本实施例中所述的RISC-V多核处理器可以包括至少两个逻辑处理器内核、至少两个物理处理器内核、或者至少一个逻辑处理器内核和至少一个物理处理器内核。下面结合图2进一步描述本发明实施例,图2为根据本发明另一实施例的线程调度方法流程示意图,如图2所示,所述线程调度方法包括:
S210、响应于目标线程调度指令,获取当前线程所占用的第一处理器内核的内核标识;其中,所述目标线程调度指令用于为目标线程分配第二处理器内核的使用权。
S220、记录当前运行状态下所述RISC-V多核处理器的上下文信息。
S230、判断所述第一处理器内核的内核标识和第二处理器内核的内核标识是否相同,并得到判断结果。
S240、如果所述第一处理器内核的内核标识与所述第二处理器内核的内核标识不同,则将目标线程设置为第二处理器内核的待入队线程。
S250、设置所述第二处理器内核的软中断挂起位,以使所述第二处理器内核根据所述软中断挂起位进入软中断状态。
S260、将所述待入队线程加入到所述第二处理器内核的调度队列。
S270、在第一处理器内核中运行目标线程,当监测到当前时刻为计时器中断触发时刻时,所述第一处理器内核进入计时器中断。
S280、根据所述上下文信息恢复所述RISC-V多核处理器的运行状态。
在本实施例中,RISC-V多核处理器可以包括多个处理器内核,处理器内核的类型可以是物理处理器内核,也可以是逻辑处理器内核。所述的第一处理器内核可以是物理处理器内核,也可以是逻辑处理器内核。
在本申请的一些实施例中,所述上下文信息用于为上下文切换提供参考,使处理器内核可以从一个线程切换到另一个线程。所述上下文信息可以通过预设的调度算法随机选取,调度算法可以是轮询调度算法(Round Robin Scheduling),该算法以轮叫的方式依次将请求调度不同的上下文信息,无需记录当前所有连接的状态,操作更为简洁性。
在本申请的一些实施例中,上下文切换可以认为是处理器内核对于线程(或者进程)进行以下的活动:如挂起一个线程,将这个线程在CPU中的状态(即上下文信息)存储于内存中的某处;在内存中检索下一个线程的上下文信息并将其在CPU的寄存器中恢复;跳转到程序计数器所指向的位置(即跳转到进程被中断时的代码行),以恢复该线程。
在上述实施例的基础上,线程调度方法会在软中断状态寄存器中为目标线程设置对应的中断标记位,以触发中断事务(即进入计时器中断),以停止目标线程的运行。
在另外一些实施例中,线程调度方法会利用处理器内核中的计时器来触发中断事务,当监测到当前时刻为计时器中断触发时刻时,所述第一处理器内核进入计时器中断,则目标程序停止运行,而后执行步骤S280的操作,也即上下文切换的操作。
下面结合图3描述用于实现上述基于RISC-V多核处理器的线程调度装置。如图3所示,示出了根据本发明又一实施例的基于RISC-V多核处理器的线程调度装置的示意图。该线程调度装置包括:指令响应模块310、内核判断模块320和线程调度模块330。
其中,指令响应模块310,用于响应于目标线程调度指令,获取当前线程所占用的第一处理器内核的内核标识;其中,所述目标线程调度指令用于为目标线程分配第二处理器内核的使用权;
内核判断模块320,用于判断所述第一处理器内核的内核标识和第二处理器内核的内核标识是否相同,并得到判断结果;
线程调度模块330,用于根据所述判断结果调度所述目标线程,以使所述目标线程在第二处理器内核中运行。
在上述实施例的基础上,所述线程调度模块330包括:
第一线程调度单元,用于如果所述第一处理器内核的内核标识与所述第二处理器内核的内核标识相同,则将所述目标线程加入到所述第一处理器内核的调度列表。
在上述实施例的基础上,所述线程调度模块330还包括:
第二线程调度单元,用于如果所述第一处理器内核的内核标识与所述第二处理器内核的内核标识不同,则将目标线程设置为第二处理器内核的待入队线程;
调度队列调整模块,用于将所述待入队线程加入到所述第二处理器内核的调度队列。
在上述实施例的基础上,所述线程调度装置还包括:
软中断挂起位设置模块,用于设置所述第二处理器内核的软中断挂起位,以使所述第二处理器根据所述软中断挂起位进入软中断状态。
在上述实施例的基础上,所述线程调度装置还包括:
上下文信息记录模块,用于记录当前运行状态下所述RISC-V多核处理器的上下文信息。
在上述实施例的基础上,所述线程调度装置还包括:
运行模块,用于将目标线程在第一处理器内核中运行预设时长;
中断模块,用于当监测到当前时刻为计时器中断触发时刻时,所述第一处理器内核进入计时器中断;
恢复模块,用于根据所述上下文信息恢复所述RISC-V多核处理器的运行状态。
在上述实施例的基础上,所述基于RISC-V多核处理器包括至少两个逻辑处理器内核、至少两个物理处理器内核、或者至少一个逻辑处理器内核和至少一个物理处理器内核。
根据本发明的又一实施例,还提供了一种计算机可读存储介质。如图4所示,示出了根据本发明一实施例的计算机可读存储介质400的示意图,该计算机可读存储介质上存储有计算机指令,该计算机指令被处理器执行时实现如上所述的基于RISC-V多核处理器的线程调度方法。该计算机可读存储介质400可以采用便携式紧凑盘只读存储器(CD-ROM)。然而,本发明的计算机可读存储介质400不限于此,在本文件中,计算机可读存储介质可以是任何包含或存储计算机指令的有形介质。
利用以上方案可以解决如下问题,当多核处理器中的全部线程资源被占用,同时又出现了紧急任务时,通过该线程调度方法可以为该紧急任务分配处于空闲状态的处理器内核的目标线程,为运行该程序提供需要的资源,以快速完成该紧急任务的运行,从而更高效地并发处理信息,实现多核处理器的动态负载平衡,提高了多核处理器的数据处理性能,间接的降低多核处理器的能耗。
附图中的流程图和框图,图示了按照本公开各种实施例的方法、装置和计算机可读存储介质的可能实现的体系架构、功能和操作。应当注意,流程图中的每个方框所表示的步骤未必按照标号所示的顺序进行,有时可以基本并行地执行,有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的硬件来实现,或者可以用硬件与计算机指令的组合来实现。
描述于本公开实施例中所涉及到的单元或模块可以通过软件的方式实现,也可以通过硬件的方式来实现。
通过以上对实施例的描述,本领域的技术人员可以清楚地了解到各实施例可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (11)
1.一种基于RISC-V多核处理器的线程调度方法,所述RISCV多核处理器包括至少两个处理器内核,其特征在于,所述线程调度方法包括:
响应于目标线程调度指令,获取当前线程所占用的第一处理器内核的内核标识;其中,所述目标线程调度指令用于为目标线程分配第二处理器内核的使用权;
判断所述第一处理器内核的内核标识和第二处理器内核的内核标识是否相同,并得到判断结果;
如果判断结果表征不同,则设置所述第二处理器内核的软中断挂起位,使所述第二处理器进入软中断状态;
将目标线程设置为第二处理器内核的待入队线程;将所述待入队线程加入到所述第二处理器内核的调度队列。
2.如权利要求1所述的线程调度方法,其特征在于,还包括:
如果所述第一处理器内核的内核标识与所述第二处理器内核的内核标识相同,则将所述目标线程加入到所述第一处理器内核的调度列表。
3.如权利要求1-2任一项所述的线程调度方法,其特征在于,获取当前线程所占用的第一处理器内核的内核标识,同时,还包括:
记录当前运行状态下所述RISC-V多核处理器的上下文信息。
4.如权利要求3所述的线程调度方法,其特征在于,所述线程调度方法还包括:
在第一处理器内核中运行目标线程;
当监测到当前时刻为计时器中断触发时刻时,所述第一处理器内核进入计时器中断;
根据所述上下文信息恢复所述RISC-V多核处理器的运行状态。
5.如权利要求1所述的线程调度方法,其特征在于,所述基于RISC-V多核处理器包括至少两个逻辑处理器内核、至少两个物理处理器内核、或者至少一个逻辑处理器内核和至少一个物理处理器内核。
6.一种基于RISC-V多核处理器的线程调度装置,所述RISC-V多核处理器包括至少两个处理器内核,其特征在于,包括:
指令响应模块,用于响应于目标线程调度指令,获取当前线程所占用的第一处理器内核的内核标识;其中,所述目标线程调度指令用于为目标线程分配第二处理器内核的使用权;
内核判断模块,用于判断所述第一处理器内核的内核标识和第二处理器内核的内核标识是否相同,并得到判断结果;
线程调度模块,用于如果判断结果表征不同,则设置所述第二处理器内核的软中断挂起位,使所述第二处理器进入软中断状态;将目标线程设置为第二处理器内核的待入队线程;将所述待入队线程加入到所述第二处理器内核的调度队列。
7.如权利要求6所述的线程调度装置,其特征在于,所述线程调度模块,还用于如果所述第一处理器内核的内核标识与所述第二处理器内核的内核标识相同,则将所述目标线程加入到所述第一处理器内核的调度列表。
8.如权利要求6-7任一项所述的线程调度装置,其特征在于,所述线程调度装置还包括:
上下文信息记录模块,用于记录当前运行状态下所述RISC-V多核处理器的上下文信息。
9.如权利要求8所述的线程调度装置,特征在于,所述线程调度装置还包括:
运行模块,用于将目标线程在第一处理器内核中运行预设时长;
中断模块,用于当监测到当前时刻为计时器中断触发时刻时,所述第一处理器内核进入计时器中断;
恢复模块,用于根据所述上下文信息恢复所述RISC-V多核处理器的运行状态。
10.如权利要求6所述的线程调度装置,其特征在于:
所述基于RISC-V多核处理器包括至少两个逻辑处理器内核、至少两个物理处理器内核、或者至少一个逻辑处理器内核和至少一个物理处理器内核。
11.一种计算机可读存储介质,其上存储有计算机指令,其特征在于,所述计算机指令被处理器执行时实现如权利要求1-5中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810940728.0A CN110837415B (zh) | 2018-08-17 | 2018-08-17 | 一种基于risc-v多核处理器的线程调度方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810940728.0A CN110837415B (zh) | 2018-08-17 | 2018-08-17 | 一种基于risc-v多核处理器的线程调度方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110837415A CN110837415A (zh) | 2020-02-25 |
CN110837415B true CN110837415B (zh) | 2024-04-26 |
Family
ID=69573698
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810940728.0A Active CN110837415B (zh) | 2018-08-17 | 2018-08-17 | 一种基于risc-v多核处理器的线程调度方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110837415B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111459562A (zh) * | 2020-04-13 | 2020-07-28 | 芯来智融半导体科技(上海)有限公司 | 基于risc-v架构切换休眠模式的改进系统及方法 |
CN112182770A (zh) * | 2020-10-10 | 2021-01-05 | 中国运载火箭技术研究院 | 在线迭代计算方法、装置及计算机存储介质、电子设备 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101266561A (zh) * | 2008-04-29 | 2008-09-17 | 中兴通讯股份有限公司 | 一种在多核多线程处理器中的核间消息通信方法 |
KR20090119032A (ko) * | 2008-05-15 | 2009-11-19 | 재단법인서울대학교산학협력재단 | 멀티 프로세서 시스템 |
CN102216902A (zh) * | 2008-10-17 | 2011-10-12 | 原子能和辅助替代能源委员会 | 确定性执行和同步包括执行系统任务的多个处理核心的信息处理系统的方法 |
CN102831015A (zh) * | 2012-08-01 | 2012-12-19 | 华为技术有限公司 | 多核处理器的调度方法和设备 |
CN103389913A (zh) * | 2013-07-30 | 2013-11-13 | 武汉邮电科学研究院 | 一种用于Linux系统的实时中断处理方法 |
CN104995603A (zh) * | 2013-11-14 | 2015-10-21 | 联发科技股份有限公司 | 至少部分基于共享相同数据及/或存取相同存储地址的任务分布的任务调度方法以及多核处理器系统中用于分配任务的相关非暂时性计算机可读介质 |
CN107203428A (zh) * | 2017-05-25 | 2017-09-26 | 电子科技大学 | 一种基于Xen的VCPU多核实时调度算法 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8566647B2 (en) * | 2010-12-20 | 2013-10-22 | Microsoft Corporation | Debugger presentation of parallel application threads |
KR102197874B1 (ko) * | 2014-09-01 | 2021-01-05 | 삼성전자주식회사 | 멀티-코어 프로세서를 포함하는 시스템 온 칩 및 그것의 쓰레드 스케줄링 방법 |
-
2018
- 2018-08-17 CN CN201810940728.0A patent/CN110837415B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101266561A (zh) * | 2008-04-29 | 2008-09-17 | 中兴通讯股份有限公司 | 一种在多核多线程处理器中的核间消息通信方法 |
KR20090119032A (ko) * | 2008-05-15 | 2009-11-19 | 재단법인서울대학교산학협력재단 | 멀티 프로세서 시스템 |
CN102216902A (zh) * | 2008-10-17 | 2011-10-12 | 原子能和辅助替代能源委员会 | 确定性执行和同步包括执行系统任务的多个处理核心的信息处理系统的方法 |
CN102831015A (zh) * | 2012-08-01 | 2012-12-19 | 华为技术有限公司 | 多核处理器的调度方法和设备 |
CN103389913A (zh) * | 2013-07-30 | 2013-11-13 | 武汉邮电科学研究院 | 一种用于Linux系统的实时中断处理方法 |
CN104995603A (zh) * | 2013-11-14 | 2015-10-21 | 联发科技股份有限公司 | 至少部分基于共享相同数据及/或存取相同存储地址的任务分布的任务调度方法以及多核处理器系统中用于分配任务的相关非暂时性计算机可读介质 |
CN107203428A (zh) * | 2017-05-25 | 2017-09-26 | 电子科技大学 | 一种基于Xen的VCPU多核实时调度算法 |
Also Published As
Publication number | Publication date |
---|---|
CN110837415A (zh) | 2020-02-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP2701074B1 (en) | Method, device, and system for performing scheduling in multi-processor core system | |
US7296267B2 (en) | System and method for binding virtual machines to hardware contexts | |
CN103294544B (zh) | 嵌入式系统及其中断处理方法与装置 | |
US9563585B2 (en) | System and method for isolating I/O execution via compiler and OS support | |
KR101686010B1 (ko) | 실시간 멀티코어 시스템의 동기화 스케쥴링 장치 및 방법 | |
US20070006228A1 (en) | System and method to optimize OS context switching by instruction group trapping | |
US9582320B2 (en) | Computer systems and methods with resource transfer hint instruction | |
US10318297B2 (en) | Method and apparatus for operating a self-timed parallelized multi-core processor | |
US9164769B2 (en) | Analyzing data flow graph to detect data for copying from central register file to local register file used in different execution modes in reconfigurable processing array | |
WO2012028214A1 (en) | High-throughput computing in a hybrid computing environment | |
CN104598426A (zh) | 用于异构多核处理器系统的任务调度方法 | |
EP3376381A1 (en) | Resource management method and system, and computer storage medium | |
CN106575220B (zh) | 多个经集群极长指令字处理核心 | |
CN110837415B (zh) | 一种基于risc-v多核处理器的线程调度方法和装置 | |
CN102708006A (zh) | 处理优化负载调整 | |
CN111324432A (zh) | 处理器调度方法、装置、服务器及存储介质 | |
CN111897637A (zh) | 作业调度方法、装置、主机及存储介质 | |
CN109491780A (zh) | 多任务调度方法及装置 | |
CN116724294A (zh) | 一种任务分配方法及装置 | |
CN112559403B (zh) | 一种处理器及其中的中断控制器 | |
US9760969B2 (en) | Graphic processing system and method thereof | |
CN101349975B (zh) | 一种在嵌入式操作系统上实现中断底半部机制的方法及装置 | |
CN108109104B (zh) | 一种面向统一染色架构gpu的三级任务调度电路 | |
CN109426556B (zh) | 一种进程调度方法和装置 | |
CN112114967B (zh) | 一种基于服务优先级的gpu资源预留方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
TA01 | Transfer of patent application right | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20201208 Address after: Room 206, 2 / F, building C, phase I, Zhongguancun Software Park, No. 8, Dongbei Wangxi Road, Haidian District, Beijing 100094 Applicant after: Canaan Bright Sight Co.,Ltd. Address before: 100094, No. 3, building 23, building 8, northeast Wang Xi Road, Beijing, Haidian District, 307 Applicant before: Canaan Creative Co.,Ltd. |
|
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |