CN112559176A - 一种指令处理方法和装置 - Google Patents

一种指令处理方法和装置 Download PDF

Info

Publication number
CN112559176A
CN112559176A CN202011447788.2A CN202011447788A CN112559176A CN 112559176 A CN112559176 A CN 112559176A CN 202011447788 A CN202011447788 A CN 202011447788A CN 112559176 A CN112559176 A CN 112559176A
Authority
CN
China
Prior art keywords
target
cpu
migration
migrated
instruction
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
CN202011447788.2A
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.)
Guangzhou Xiaopeng Motors Technology Co Ltd
Guangzhou Chengxingzhidong Automotive Technology Co., Ltd
Original Assignee
Guangzhou Xiaopeng Motors Technology Co Ltd
Guangzhou Chengxingzhidong Automotive 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 Guangzhou Xiaopeng Motors Technology Co Ltd, Guangzhou Chengxingzhidong Automotive Technology Co., Ltd filed Critical Guangzhou Xiaopeng Motors Technology Co Ltd
Priority to CN202011447788.2A priority Critical patent/CN112559176A/zh
Publication of CN112559176A publication Critical patent/CN112559176A/zh
Pending legal-status Critical Current

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/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5083Techniques for rebalancing the load in a distributed system
    • G06F9/5088Techniques for rebalancing the load in a distributed system involving task migration
    • 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
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Executing Machine-Instructions (AREA)

Abstract

本发明实施例提供了一种指令处理方法和装置,所述方法包括:获取所述指令的目标进程和目标CPU,并建立所述目标进程与所述目标CPU的绑定关系;根据所述绑定关系确定需要迁移的目标迁移进程,并将所述目标迁移进程从所述目标CPU中进行迁移;采用迁移之后的目标CPU执行所述指令的目标进程。通过绑定目标进程与目标CPU,以及进行针对目标进程内其他进程的迁移操作,使得目标进程在CPU资源竞争中可以面临较小的竞争处于优势,并可以获得最佳性能,提高对指令目标进程的响应速度,实现对目标进程的响应加速。

Description

一种指令处理方法和装置
技术领域
本发明涉及互联网技术领域,特别是涉及一种指令处理方法和一种指令处理装置。
背景技术
计算机系统由计算机硬件和软件两部分组成。其中,硬件包括处理器、寄存器、高速缓冲存储器、内存储器和外部存储器等;软件是计算机的运行程序和相应的文档。在运行程序时,计算机操作系统将运行程序时程序中的指令涉及到的数据从内存储器通过内存总线传输到高速缓冲存储器或寄存器内,再由处理器获取到数据进行指令的运行,进而完成程序的运行。所以,运行程序时,程序中的指令涉及到的数据的传输是制约程序运行速度的关键因素。
所涉及到的程序可以包括与语音交互相关的程序,语音交互已经成为智能设备(例如手机、车载、智能家居等)的主要交互方式之一,语音指令的响应速度对于用户体验有非常直接的影响。
其中,语音指令的响应可以分为两个阶段,一是语音获取和解析,二是指令的执行。在指令的执行阶段(比如“你好XX”、“打开音乐”),对应业务启动的时候往往是最需要CPU(Central Processing Unit,中央处理器)资源的时候,而系统的DVFS(Dynamicvoltage and frequency scaling,动态电压频率调整,用于根据与系统负载有关的信号计算当前的系统负载,并预测系统在下一时间段需要的性能)和进程调度策略并不能确保业务能获得足够的CPU资源,特别是在一些复杂场景下(如任务多和重载的情况下),容易出现响应不及时等性能问题。
发明内容
鉴于上述问题,提出了本发明实施例以便提供一种克服上述问题或者至少部分地解决上述问题的一种指令处理方法和相应的一种指令处理装置。
为了解决上述问题,本发明实施例公开了一种指令处理方法,所述方法包括:
获取所述指令的目标进程和目标CPU,并建立所述目标进程与所述目标CPU的绑定关系;
根据所述绑定关系确定需要迁移的目标迁移进程,并将所述目标迁移进程从所述目标CPU中进行迁移;
采用迁移之后的目标CPU执行所述指令的目标进程。
可选地,在所述建立所述目标进程与所述目标CPU的绑定关系之前,还包括:
设定与所述指令的目标进程对应的目标CPU;
所述设定与所述指令的目标进程对应的目标CPU,包括:
获取所述目标进程所需的CPU容量最大值和针对所述目标进程的性能系数;所述性能系数用于表示所述目标进程倾向独占CPU的程度;
根据所述CPU容量最大值和所述性能系数,从预设CPU中确定用于运行所述目标进程的目标CPU。
可选地,所述目标进程包括当前执行指令的当前目标进程;所述根据所述绑定关系确定需要迁移的目标迁移进程,并将所述目标迁移进程迁出所述目标CPU,包括:
计算所述目标CPU中除去所述当前目标进程以外的CPU负载,得到CPU剩余容量值;所述目标CPU包括至少一个CPU;
当所述CPU容量剩余值小于所述CPU容量最大值时,获取各个CPU任务队列中的进程排列和绑定关系;
根据所述绑定关系从所述进程排列中确定需要迁移的目标迁移进程,并将所述目标迁移进程迁出所述目标CPU。
可选地,所述进程排列按照执行时间先后顺序排列;所述根据所述绑定关系从所述进程排列中确定需要迁移的目标迁移进程,包括:
根据所述CPU容量剩余值和所述CPU容量最大值,计算得到针对所述需要迁移的目标迁移进程的最低负载量;
按照所述执行时间先后顺序从所述进程排列中选取需要迁移的目标迁移进程;其中,所述需要迁移的目标迁移进程不包括具有绑定关系的进程;
获取所选取的需要迁移的目标迁移进程的负载和值,并判断所选取的需要迁移的目标迁移进程的负载和值是否达到所述最低负载量;
若所述负载和值未达到所述最低负载量,则返回所述按照所述执行时间先后顺序从所述进程排列中选取需要迁移的目标迁移进程的步骤,直至所述所选取的需要迁移的目标迁移进程的负载和值达到所述最低负载量。
可选地,所述进程队列中具有按照优先级顺序排列的多个进程;所述根据所述绑定关系从所述进程排列中确定需要迁移的目标迁移进程,包括:
按照所述优先级顺序从所述进程排列中选取需要迁移的目标迁移进程;其中,所述需要迁移的目标迁移进程不包括具有绑定关系的进程。
可选地,所述将所述目标迁移进程从所述目标CPU中进行迁移,还包括:
阻止除所述目标进程以外的进程迁入所述目标CPU。
可选地,所述目标进程包括与语音指令对应的语音目标进程;所述根据所述绑定关系确定需要迁移的目标迁移进程,并将所述目标迁移进程从所述目标CPU中进行迁移,包括:
在所述语音指令执行的过程中,获取所述语音目标进程和所述目标CPU的绑定关系;
根据所述语音目标进程和所述目标CPU的绑定关系确定需要迁移的目标迁移进程,以及将所述目标迁移进程从所述目标CPU中进行迁移。
本发明实施例还公开了一种指令处理装置,所述装置包括:
绑定关系建立模块,用于获取所述指令的目标进程和目标CPU,并建立所述目标进程与所述目标CPU的绑定关系;
目标迁移进程迁移模块,用于根据所述绑定关系确定需要迁移的目标迁移进程,并将所述目标迁移进程从所述目标CPU中进行迁移;
目标进程执行模块,用于采用迁移之后的目标CPU执行所述指令的目标进程。
可选地,在所述建立所述目标进程与所述目标CPU的绑定关系之前,还包括:
目标CPU设定模块,用于设定与所述指令的目标进程对应的目标CPU;
可选地,所述目标CPU设定模块包括:
CPU容量最大值获取子模块,用于获取所述目标进程所需的CPU容量最大值和针对所述目标进程的性能系数;所述性能系数用于表示所述目标进程倾向独占CPU的程度;
目标CPU确定子模块,用于根据所述CPU容量最大值和所述性能系数,从预设CPU中确定用于运行所述目标进程的目标CPU。
可选地,所述目标进程包括当前执行指令的当前目标进程;所述目标迁移进程迁移模块包括:
CPU剩余容量值计算子模块,用于计算所述目标CPU中除去所述当前目标进程以外的CPU负载,得到CPU剩余容量值;所述目标CPU包括至少一个CPU;
进程排列获取子模块,用于当所述CPU容量剩余值小于所述CPU容量最大值时,获取各个CPU任务队列中的进程排列和绑定关系;
目标迁移进程迁移子模块,用于根据所述绑定关系从所述进程排列中确定需要迁移的目标迁移进程,并将所述目标迁移进程迁出所述目标CPU。
可选地,所述进程排列按照执行时间先后顺序排列;所述目标迁移进程迁移子模块包括:
最低负载量计算单元,用于根据所述CPU容量剩余值和所述CPU容量最大值,计算得到针对所述需要迁移的目标迁移进程的最低负载量;
目标迁移进程选取第一单元,用于按照所述执行时间先后顺序从所述进程排列中选取需要迁移的目标迁移进程;其中,所述需要迁移的目标迁移进程不包括具有绑定关系的进程;
最低负载量判断单元,用于获取所选取的需要迁移的目标迁移进程的负载和值,并判断所选取的需要迁移的目标迁移进程的负载和值是否达到所述最低负载量;
目标迁移进程选取第二单元,用于若所述负载和值未达到所述最低负载量,则返回所述按照所述执行时间先后顺序从所述进程排列中选取需要迁移的目标迁移进程的步骤,直至所述所选取的需要迁移的目标迁移进程的负载和值达到所述最低负载量。
可选地,所述进程队列中具有按照优先级顺序排列的多个进程;所述目标迁移进程迁移子模块包括:
目标迁移进程选取第三单元,用于按照所述优先级顺序从所述进程排列中选取需要迁移的目标迁移进程;其中,所述需要迁移的目标迁移进程不包括具有绑定关系的进程。
可选地,所述装置还包括:
进程迁入阻止模块,用于阻止除所述目标进程以外的进程迁入所述目标CPU。
可选地,所述目标进程包括与语音指令对应的语音目标进程;所述目标迁移进程迁移模块包括:
语音目标进程绑定关系子模块,用于在所述语音指令执行的过程中,获取所述语音目标进程和所述目标CPU的绑定关系;
目标迁移进程迁移子模块,用于根据所述语音目标进程和所述目标CPU的绑定关系确定需要迁移的目标迁移进程,以及将所述目标迁移进程从所述目标CPU中进行迁移。
本发明实施例还公开了一种车辆,包括:所述指令处理装置、处理器、存储器及存储在所述存储器上并能够在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现任一项所述指令处理方法的步骤。
本发明实施例还公开了一种计算机可读存储介质,所述计算机可读存储介质上存储计算机程序,所述计算机程序被处理器执行时实现任一项所述指令处理方法的步骤。
本发明实施例包括以下优点:
在本发明实施例中,建立目标进程与目标CPU的绑定关系,并将需要迁移的目标迁移进程从目标CPU中进行迁移,然后再采用经过迁移之后的目标CPU执行指令相关的目标进程。通过绑定目标进程与目标CPU,以及进行针对目标进程内其他进程的迁移操作,即通过特定算法把目标CPU上的部分任务迁移到其他CPU上,并把目标进程绑定在相对纯净的目标CPU上,使得目标进程在CPU资源竞争中可以面临较小的竞争处于优势,并可以获得最佳性能,提高对指令目标进程的响应速度,实现对目标进程的响应加速。
附图说明
图1是本发明的一种指令处理方法实施例的步骤流程图;
图2是本发明的另一种指令处理方法实施例的步骤流程图;
图3是本发明实施例中目标CPU的示意图;
图4是本发明的一种指令处理装置实施例的结构框图。
具体实施方式
为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。
目前智能终端(如车载多媒体大屏等)通常都集成了大量的APP和服务,并在前台和后台运行,同时存在的进程可以多达500个以上,这些同时存在进程的相关业务存在着同时占用系统的CPU等资源,存在着竞争关系。在现有技术中,可以实现把目标进程运行在指定的CPU上,然而,如果指定的CPU核心上已经有大量的任务在执行,此时强行把目标进程加入该指定的CPU核心,反而会导致CPU过载,进而使得运行该目标进程的CPU性能下降。
本发明实施例的核心思想之一是分配特定的CPU核心,供指令的目标进程和核心关联进程进行绑定使用;以及,调整目标进程的调度策略,过滤掉目标CPU核心上的低优先级的进程,使得目标CPU相对“纯净”,目标进程和核心关联进程将会面临较小的竞争,进而使得目标进程可以更快地被调度,得到更多的CPU使用时间,进而使得目标进程所运行的目标CPU具备更好的性能。
参照图1,示出了本发明的一种指令处理方法实施例的步骤流程图,具体可以包括如下步骤:
步骤101,获取所述指令的目标进程和目标CPU,并建立所述目标进程与所述目标CPU的绑定关系;
在本发明的一种实施例中,可以同时存在占用系统CPU资源的多个进程,该多个进程可以来自于集成在智能终端大量的APP或服务运行所提供的,此时可以针对某个APP或某个服务获取其相关指令的目标进程,为该目标进程分配特定的CPU核心,以便供指令的目标进程和核心关联进程进行绑定使用。
其中,与指令对应的目标进程可以根据指令的对象以及对象的关联性确定,即目标进程不仅可以包括响应执行某个指令的进程,还可以包括在执行该指令的过程中所需核心的关联进程。
在实际应用中,为了供指令的目标进程和核心关联进程进行绑定使用,可以在设定目标CPU之后,建立目标进程与目标CPU的绑定关系。
需要说明的是,本发明实施例的指令处理方法可以应用于任何场景,例如语音应用场景、泊车应用场景等;且并不限制所处理的指令类型,其可以为在运行程序时所涉及到的任何指令,例如在语音应用场景涉及到的语音指令、在泊车应用场景涉及到的泊车界面启动指令等;以及,本发明实施例的执行主体可以为任意可运行程序的终端,其可以为智能终端(例如车载多媒体大屏、移动智能终端等),对于上述内容,本发明实施例不加以限制。
在一种优选的实施例中,由于所应用的场景可以不同,那么在特定的应用场景下,可以进入建立目标进程与所设定的目标CPU的绑定关系,以及根据绑定关系将目标迁移进程从目标CPU中进行迁移步骤的设定,那么在退出上述设定时,也可以设定为在退出相应场景下退出,例如退出某个游戏或某个特定APP。
步骤102,根据所述绑定关系确定需要迁移的目标迁移进程,并将所述目标迁移进程从所述目标CPU中进行迁移;
在建立目标进程与目标CPU之间的绑定关系之后,可以根据所建立的绑定关系将目标进程加入到目标CPU,为了避免由于目标进程的强行加入而导致原本已运行有大量任务的目标CPU过载,此时可以将需要迁移的目标迁移进程从目标CPU中迁出,以便保证目标CPU的性能。
其中,所需要迁移的目标迁移进程可以是目标CPU上除了目标进程以外的其他进程,且可以将目标迁移进程迁移到其他空闲的核心CPU上。
步骤103,采用迁移之后的目标CPU执行所述指令的目标进程。
在本发明的一种实施例中,在对需要迁移的目标迁移进程进行迁出之后,可以保证此时目标CPU的负载处于非饱和状态,非饱和状态可以指的是当前目标CPU的性能较高,此时可以采用当前目标CPU执行所要运行程序相关指令的目标进程,使得目标进程可以更快地被调度,得到更多的CPU使用时间,实现对目标进程的响应加速。
在具体实现中,可以从CPU处理器中设定目标进程的目标CPU。
在一种情况下,CPU处理器可以是多核同构(即多核心性能一致)的处理器,采用本发明实施例的指令处理方法,可以使得指令的目标进程在CPU资源竞争中处于优势,甚至独占CPU,达到CPU层面的最佳性能;在另一种情况下,CPU处理器可以是多核异构(如大小核架构)的处理器,采用本发明实施例的指令处理方法,不仅可以使得指令的目标进程在CPU资源竞争中处于优势,还可以将目标进程绑定在CPU大核,使其获得最佳性能。对于CPU处理器,本发明实施例不加以限制。
在本发明实施例中,建立目标进程与目标CPU的绑定关系,并将需要迁移的目标迁移进程从目标CPU中进行迁移,然后再采用经过迁移之后的目标CPU执行指令相关的目标进程。通过绑定目标进程与目标CPU,以及进行针对目标进程内其他进程的迁移操作,即通过特定算法把目标CPU上的部分任务迁移到其他CPU上,并把目标进程绑定在相对纯净的目标CPU上,使得目标进程在CPU资源竞争中可以面临较小的竞争处于优势,并可以获得最佳性能,提高对指令目标进程的响应速度,实现对目标进程的响应加速。
参照图2,示出了本发明的另一种指令处理方法实施例的步骤流程图,具体可以包括如下步骤:
步骤201,设定与所述指令的目标进程对应的目标CPU;
由于现有的多核心CPU系统在语音指令场景下,系统并不会给予相关的指令特别的处理,往往会出现语音指令执行耗时多或者相同指令耗时不稳定的情况。
在本发明实施例中,所运行程序的相关指令可以包括语音指令,那么此时语音指令的目标进程可以是由语音助手根据指令的对象以及对象的关联性确定,目标进程可以包括用于响应执行语音指令的进程,以及其核心的关联进程。
在建立目标进程和目标CPU的绑定关系之前,还需要对目标进程的目标CPU进行确定。在本发明的一种实施例中,步骤201可以包括如下子步骤:
子步骤S11,获取所述目标进程所需的CPU容量最大值和针对所述目标进程的性能系数;
在实际应用中,首先可以确定语音指令的目标进程所需的CPU性能需求,以便根据CPU性能需求设定目标CPU。
具体地,可以遍历某个服务平台或程序所能提供的所有语音指令,并追踪其目标进程所需要的CPU容量(即CPU capacity),此时可以取最大值(Process_Capacity_Max),以将所需的CPU容量最大值作为语音指令的CPU性能需求。需要说明的是,在取CPU容量的最大值时,还可以设定一定的余量,例如使得CPU容量的最大值为实际CPU容量最大值与预设容量阈值之和,该预设容量阈值可以是根据实际情况需要的浮动值。
在一种优选的实施例中,还可以将所取的CPU容量的最大值乘以性能系数,例如Process_Capacity_Max*120%,作为语音指令的CPU性能需求。该性能系数可以用于表示目标进程倾向独占CPU的程度,其中,性能系数可以为可调节参数,性能系数越高,则可以表示目标进程就越倾向于独占CPU。
子步骤S12,根据所述CPU容量最大值和所述性能系数,从预设CPU中确定用于运行所述目标进程的目标CPU。
在确定语音指令的目标进程所需的CPU性能需求之后,可以根据CPU性能需求设定目标CPU。
在具体实现中,可以从预设CPU处理器中设定目标进程的目标CPU,预设CPU可以是多核同构(即多核心性能一致)的处理器,也可以是多核异构(如大小核架构)的处理器。
作为一种示例,预设CPU可以为一个典型的8核心,且具有大小核架构的CPU,在从该8核心的CPU中设定目标进程的目标CPU时,可以根据目标进程所需的CPU性能需求(即CPU容量最大值和性能系数)进行确定。
具体的,参照图3,示出了本发明实施例中目标CPU的示意图,8核心CPU可以由Cluster0和Cluster1组合而成,其中,Cluster0可以包括CPU0、CPU1、CPU2与CPU3,Cluster0可以包括CPU5、CPU6、CPU7与CPU8。
假设Cluster1为高性能核心,那么在确定目标CPU时,首先可以选择Cluster1中的CPU7-8作为语音指令执行的目标CPU,简称为Target CPU Group。即所确定的目标CPU可以为单个CPU,也可以为由多个CPU所组成的Target CPU Group。
其中,Target CPU Group的性能容量需要大于CPU容量的最大值,即Process_Capacity_Max*120%。
需要说明的是,若Cluster0或Cluster1中所选择的CPU的性能容量小于Process_Capacity_Max*120%,此时可以增加CPU。所增加的CPU并不限制在Cluster0以及Cluster1中增加,且其所增加CPU的性能容量可以参考Cluster0或Cluster1中所包含CPU的性能。
步骤202,建立当前执行指令的当前目标进程和所述目标CPU的绑定关系;
在本发明的一种实施中,某个语音指令准备执行,此时目标进程可以指的是所执行的当前语音指令的当前目标进程以及与当前语音指令核心的关联进程,并不是指的遍历某个服务平台所能提供的所有语音指令。
在本发明实施例中,在当前语音指令准备执行时,可以执行建立当前语音指令的当前目标进程与预先设定的目标CPU的绑定关系,以便通过所建立的绑定关系实现基于多核心针对目标进程的调度响应加速。
在实际应用中,实现基于多核心针对目标进程的调度响应加速,可以同步进行如下两个过程:建立当前语音指令的当前目标进程与预先设定的目标CPU的绑定关系;以及,进行针对目标CPU上的需要迁移的目标迁移进程的迁移操作。
其中,建立当前语音指令的当前目标进程与预先设定的目标CPU的绑定关系,具体可以通过Affinity绑定目标进程到Target CPU Group。Affinity是进程的一个属性,这个属性可以用于指明进程调度器能够把这个进程调度到哪些CPU上,那么此时可以通过该属性将当前目标进程调度到目标CPU,即Target CPU Group。
在本发明的一种实施例中,针对目标CPU上的需要迁移的目标迁移进程的迁移操作可以具体包括如下子步骤:
子步骤S21,计算所述目标CPU中除去所述当前目标进程以外的CPU负载值,得到CPU剩余容量;所述目标CPU包括至少一个CPU;
具体的,可以计算Target CPU Group除去与当前所执行语音指令的当前目标进程(包括用于响应执行语音指令的进程,以及其核心的关联进程)以外的CPU负载,得到CPU剩余容量CPU_Capacity_Margin。
子步骤S22,判断所述CPU剩余容量值是否大于所述CPU容量最大值,根据判断结果对目标迁移进程进行迁移。
在一种情况下,当所述CPU容量剩余值小于所述CPU容量最大值,即CPU_Capacity_Margin<Process_Capacity_Max*120%时,表示目标CPU不足以运行当前目标进程,即若强制将当前目标进程加入到目标CPU,则会导致目标CPU过载。此时,可以关闭Target CPUGroup的目标进程以外的进程迁入,为了阻止除目标进程以外的其他进程迁入目标CPU,在具体实现中,可以在其他进程选择将要执行的CPU时增加判断的步骤,判断当前的进程是否为目标进程,若当前进程不是目标进程,则跳过属于目标CPU(即Target CPU Group)的CPU,以避免后续目标CPU在对其他进程进行迁移时,增加目标CPU迁移的工作量。
在这种情况下,可以获取Target CPU Group中各个CPU任务队列中的进程排列和绑定关系,并根据所述绑定关系从所述进程排列中确定需要迁移的目标迁移进程,以便将所述目标迁移进程迁出所述目标CPU。其中,所确定的需要迁移的目标迁移进程可以是部分没有绑定在Target CPU Group上的进程,此时可以将目标迁移进程从Target CPU Group上迁移到系统其他空闲的核心。
在确定需要迁移的目标迁移进程时,可以采用预先编写的迁移目标选择算法进行确定,其中,各个CPU任务队列中的进程排列可以按照执行时间先后顺序排列。此时可以根据所述CPU容量剩余值和所述CPU容量最大值,计算得到针对所述需要迁移的目标迁移进程的最低负载量;按照所述执行时间先后顺序从所述进程排列中选取需要迁移的目标迁移进程;其中,所述需要迁移的目标迁移进程不包括具有绑定关系的进程。
在不断从进程排列中选取目标迁移进程的过程中,可以不断获取所选取的需要迁移的目标迁移进程的负载和值,并判断所选取的需要迁移的目标迁移进程的负载和值是否达到所述最低负载量;若所述负载和值未达到所述最低负载量,则返回所述按照所述执行时间先后顺序从所述进程排列中选取需要迁移的目标迁移进程的步骤,直至所述所选取的需要迁移的目标迁移进程的负载和值达到所述最低负载量。
在具体实现中,可以确定需要迁移的最低负载量,Capacity_Move=(Process_Capacity_Max*120%-CPU_Capacity_Margin);然后可以从进程的运行队列中对目标迁移进程进行选取,具体可以根据执行排序由远到近,选择进程,直到所选取的需要迁移的目标迁移进程的负载之和超过Capacity_Move为止。其中,在迁移的过程中跳过在同步进行时还未绑定的目标进程以及已绑定在Target CPU Group上的进程。
在一种优选的实施例中,所述进程队列中可以具有按照优先级顺序排列的多个进程。在确定需要迁移的目标迁移进程时,可以按照所述优先级顺序从所述进程排列中选取需要迁移的目标迁移进程;其中,所述需要迁移的目标迁移进程不包括具有绑定关系的进程。
在另一种情况下,当所述CPU容量剩余值未达到所述CPU容量最大值,即CPU_Capacity_Margin>=Process_Capacity_Max*120%时,表示目标CPU足以运行当前目标进程,即若强制将当前目标进程加入到目标CPU,并不会导致目标CPU过载。此时,可以阻止除所述目标进程以外的进程迁入所述目标CPU,即关闭Target CPU Group的目标进程以外的进程迁入。
步骤203,根据所述绑定关系将目标迁移进程迁出目标CPU,并采用目标CPU执行所述指令的目标进程。
在本发明的一种实施例中,在对需要迁移的目标迁移进程进行迁出之后,可以保证此时目标CPU的负载处于非饱和状态,非饱和状态可以指的是当前目标CPU的性能较高,此时可以采用当前目标CPU执行当前语音指令的当前目标进程,使得当前目标进程可以更快地被调度,得到更多的CPU使用时间,实现对目标进程的响应加速。
在本发明实施例中,建立目标进程与目标CPU的绑定关系,并将需要迁移的目标迁移进程从目标CPU中进行迁移,然后再采用经过迁移之后的目标CPU执行指令相关的目标进程。通过绑定目标进程与目标CPU,以及进行针对目标进程内其他进程的迁移操作,即通过特定算法把目标CPU上的部分任务迁移到其他CPU上,并把目标进程绑定在相对纯净的目标CPU上,使得目标进程在CPU资源竞争中可以面临较小的竞争处于优势,并可以获得最佳性能,提高对指令目标进程的响应速度,实现对目标进程的响应加速。
需要说明的是,对于方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明实施例并不受所描述的动作顺序的限制,因为依据本发明实施例,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作并不一定是本发明实施例所必须的。
参照图4,示出了本发明的一种指令处理装置实施例的结构框图,具体可以包括如下模块:
绑定关系建立模块401,用于获取所述指令的目标进程和目标CPU,并建立所述目标进程与所述目标CPU的绑定关系;
目标迁移进程迁移模块402,用于根据所述绑定关系确定需要迁移的目标迁移进程,并将所述目标迁移进程从所述目标CPU中进行迁移;
目标进程执行模块403,用于采用迁移之后的目标CPU执行所述指令的目标进程。
在本发明的一种实施例中,在所述建立所述目标进程与所述目标CPU的绑定关系之前,还可以包括如下模块:
目标CPU设定模块,用于设定与所述指令的目标进程对应的目标CPU;
在本发明的一种实施例中,目标CPU设定模块可以包括如下子模块:
CPU容量最大值获取子模块,用于获取所述目标进程所需的CPU容量最大值和针对所述目标进程的性能系数;所述性能系数用于表示所述目标进程倾向独占CPU的程度;
目标CPU确定子模块,用于根据所述CPU容量最大值和所述性能系数,从预设CPU中确定用于运行所述目标进程的目标CPU。
在本发明的一种实施例中,所述目标进程包括当前执行指令的当前目标进程;目标迁移进程迁移模块402可以包括如下子模块:
CPU剩余容量值计算子模块,用于计算所述目标CPU中除去所述当前目标进程以外的CPU负载,得到CPU剩余容量值;所述目标CPU包括至少一个CPU;
进程排列获取子模块,用于当所述CPU容量剩余值小于所述CPU容量最大值时,获取各个CPU任务队列中的进程排列和绑定关系;
目标迁移进程迁移子模块,用于根据所述绑定关系从所述进程排列中确定需要迁移的目标迁移进程,并将所述目标迁移进程迁出所述目标CPU。
在本发明的一种实施例中,所述进程排列按照执行时间先后顺序排列;目标迁移进程迁移子模块可以包括如下单元:
最低负载量计算单元,用于根据所述CPU容量剩余值和所述CPU容量最大值,计算得到针对所述需要迁移的目标迁移进程的最低负载量;
目标迁移进程选取第一单元,用于按照所述执行时间先后顺序从所述进程排列中选取需要迁移的目标迁移进程;其中,所述需要迁移的目标迁移进程不包括具有绑定关系的进程;
最低负载量判断单元,用于获取所选取的需要迁移的目标迁移进程的负载和值,并判断所选取的需要迁移的目标迁移进程的负载和值是否达到所述最低负载量;
目标迁移进程选取第二单元,用于若所述负载和值未达到所述最低负载量,则返回所述按照所述执行时间先后顺序从所述进程排列中选取需要迁移的目标迁移进程的步骤,直至所述所选取的需要迁移的目标迁移进程的负载和值达到所述最低负载量。
在本发明的一种实施例中,所述进程队列中具有按照优先级顺序排列的多个进程;目标迁移进程迁移子模块可以包括如下单元:
目标迁移进程选取第三单元,用于按照所述优先级顺序从所述进程排列中选取需要迁移的目标迁移进程;其中,所述需要迁移的目标迁移进程不包括具有绑定关系的进程。
在本发明的一种实施例中,所述装置还可以包括如下模块:
进程迁入阻止模块,用于阻止除所述目标进程以外的进程迁入所述目标CPU。
在本发明的一种实施例中,所述目标进程包括与语音指令对应的语音目标进程;目标迁移进程迁移模块402可以包括如下子模块:
语音目标进程绑定关系子模块,用于在所述语音指令执行的过程中,获取所述语音目标进程和所述目标CPU的绑定关系;
目标迁移进程迁移子模块,用于根据所述语音目标进程和所述目标CPU的绑定关系确定需要迁移的目标迁移进程,以及将所述目标迁移进程从所述目标CPU中进行迁移。
对于装置实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
本发明实施例还提供了一种车辆,包括:
包括上述指令处理装置、处理器、存储器及存储在所述存储器上并能够在所述处理器上运行的计算机程序,该计算机程序被处理器执行时实现上述指令处理方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。
本发明实施例还提供了一种计算机可读存储介质,计算机可读存储介质上存储计算机程序,计算机程序被处理器执行时实现上述指令处理方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。
本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
本领域内的技术人员应明白,本发明实施例的实施例可提供为方法、装置、或计算机程序产品。因此,本发明实施例可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明实施例是参照根据本发明实施例的方法、终端设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理终端设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理终端设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理终端设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理终端设备上,使得在计算机或其他可编程终端设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程终端设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本发明实施例的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明实施例范围的所有变更和修改。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者终端设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者终端设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者终端设备中还存在另外的相同要素。
以上对本发明所提供的一种指令处理方法和一种指令处理装置,进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。

Claims (10)

1.一种指令处理方法,其特征在于,所述方法包括:
获取所述指令的目标进程和目标CPU,并建立所述目标进程与所述目标CPU的绑定关系;
根据所述绑定关系确定需要迁移的目标迁移进程,并将所述目标迁移进程从所述目标CPU中进行迁移;
采用迁移之后的目标CPU执行所述指令的目标进程。
2.根据权利要求1所述的方法,其特征在于,在所述建立所述目标进程与所述目标CPU的绑定关系之前,还包括:
设定与所述指令的目标进程对应的目标CPU;
所述设定与所述指令的目标进程对应的目标CPU,包括:
获取所述目标进程所需的CPU容量最大值和针对所述目标进程的性能系数;所述性能系数用于表示所述目标进程倾向独占CPU的程度;
根据所述CPU容量最大值和所述性能系数,从预设CPU中确定用于运行所述目标进程的目标CPU。
3.根据权利要求2所述的方法,其特征在于,所述目标进程包括当前执行指令的当前目标进程;所述根据所述绑定关系确定需要迁移的目标迁移进程,并将所述目标迁移进程迁出所述目标CPU,包括:
计算所述目标CPU中除去所述当前目标进程以外的CPU负载,得到CPU剩余容量值;所述目标CPU包括至少一个CPU;
当所述CPU容量剩余值小于所述CPU容量最大值时,获取各个CPU任务队列中的进程排列和绑定关系;
根据所述绑定关系从所述进程排列中确定需要迁移的目标迁移进程,并将所述目标迁移进程迁出所述目标CPU。
4.根据权利要求3所述的方法,其特征在于,所述进程排列按照执行时间先后顺序排列;所述根据所述绑定关系从所述进程排列中确定需要迁移的目标迁移进程,包括:
根据所述CPU容量剩余值和所述CPU容量最大值,计算得到针对所述需要迁移的目标迁移进程的最低负载量;
按照所述执行时间先后顺序从所述进程排列中选取需要迁移的目标迁移进程;其中,所述需要迁移的目标迁移进程不包括具有绑定关系的进程;
获取所选取的需要迁移的目标迁移进程的负载和值,并判断所选取的需要迁移的目标迁移进程的负载和值是否达到所述最低负载量;
若所述负载和值未达到所述最低负载量,则返回所述按照所述执行时间先后顺序从所述进程排列中选取需要迁移的目标迁移进程的步骤,直至所述所选取的需要迁移的目标迁移进程的负载和值达到所述最低负载量。
5.根据权利要求3所述的方法,其特征在于,所述进程队列中具有按照优先级顺序排列的多个进程;所述根据所述绑定关系从所述进程排列中确定需要迁移的目标迁移进程,包括:
按照所述优先级顺序从所述进程排列中选取需要迁移的目标迁移进程;其中,所述需要迁移的目标迁移进程不包括具有绑定关系的进程。
6.根据权利要求1所述的方法,其特征在于,所述将所述目标迁移进程从所述目标CPU中进行迁移,还包括:
阻止除所述目标进程以外的进程迁入所述目标CPU。
7.根据权利要求1所述的方法,其特征在于,所述目标进程包括与语音指令对应的语音目标进程;所述根据所述绑定关系确定需要迁移的目标迁移进程,并将所述目标迁移进程从所述目标CPU中进行迁移,包括:
在所述语音指令执行的过程中,获取所述语音目标进程和所述目标CPU的绑定关系;
根据所述语音目标进程和所述目标CPU的绑定关系确定需要迁移的目标迁移进程,以及将所述目标迁移进程从所述目标CPU中进行迁移。
8.一种指令处理装置,其特征在于,所述装置包括:
绑定关系建立模块,用于获取所述指令的目标进程和目标CPU,并建立所述目标进程与所述目标CPU的绑定关系;
目标迁移进程迁移模块,用于根据所述绑定关系确定需要迁移的目标迁移进程,并将所述目标迁移进程从所述目标CPU中进行迁移;
目标进程执行模块,用于采用迁移之后的目标CPU执行所述指令的目标进程。
9.一种车辆,其特征在于,包括:如权利要求8所述指令处理装置、处理器、存储器及存储在所述存储器上并能够在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现如权利要求1-7中任一项所述指令处理方法的步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储计算机程序,所述计算机程序被处理器执行时实现如权利要求1-7中任一项所述指令处理方法的步骤。
CN202011447788.2A 2020-12-11 2020-12-11 一种指令处理方法和装置 Pending CN112559176A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011447788.2A CN112559176A (zh) 2020-12-11 2020-12-11 一种指令处理方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011447788.2A CN112559176A (zh) 2020-12-11 2020-12-11 一种指令处理方法和装置

Publications (1)

Publication Number Publication Date
CN112559176A true CN112559176A (zh) 2021-03-26

Family

ID=75062266

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011447788.2A Pending CN112559176A (zh) 2020-12-11 2020-12-11 一种指令处理方法和装置

Country Status (1)

Country Link
CN (1) CN112559176A (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113626196A (zh) * 2021-08-12 2021-11-09 杭州海康威视数字技术股份有限公司 发送任务的方法及装置
CN115129458A (zh) * 2022-09-02 2022-09-30 腾讯科技(深圳)有限公司 基于容器的进程调度方法、装置、设备及存储介质

Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6148324A (en) * 1998-01-05 2000-11-14 Lucent Technologies, Inc. Prioritized load balancing among non-communicating processes in a time-sharing system
CN101256515A (zh) * 2008-03-11 2008-09-03 浙江大学 多核处理器操作系统负载均衡的实现方法
CN101504618A (zh) * 2009-02-26 2009-08-12 浙江大学 面向多核处理器的实时线程迁移方法
CN102707996A (zh) * 2012-05-15 2012-10-03 江苏中科梦兰电子科技有限公司 一种异构多核处理器上的任务调度方法
CN102834807A (zh) * 2011-04-18 2012-12-19 华为技术有限公司 多处理器系统负载均衡的方法和装置
CN102866921A (zh) * 2012-08-29 2013-01-09 惠州Tcl移动通信有限公司 一种多核cpu的调控方法及系统
CN104035823A (zh) * 2014-06-17 2014-09-10 华为技术有限公司 负载均衡方法及装置
CN105528330A (zh) * 2014-09-30 2016-04-27 杭州华为数字技术有限公司 负载均衡的方法、装置、丛集和众核处理器
US20170168872A1 (en) * 2014-01-29 2017-06-15 Samsung Electronics Co., Ltd Task scheduling method and apparatus
CN107066326A (zh) * 2017-03-27 2017-08-18 深圳市金立通信设备有限公司 一种调度任务的方法及终端
CN110825524A (zh) * 2019-10-31 2020-02-21 Oppo广东移动通信有限公司 应用运行优化控制方法及相关产品

Patent Citations (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6148324A (en) * 1998-01-05 2000-11-14 Lucent Technologies, Inc. Prioritized load balancing among non-communicating processes in a time-sharing system
CN101256515A (zh) * 2008-03-11 2008-09-03 浙江大学 多核处理器操作系统负载均衡的实现方法
CN101504618A (zh) * 2009-02-26 2009-08-12 浙江大学 面向多核处理器的实时线程迁移方法
CN102834807A (zh) * 2011-04-18 2012-12-19 华为技术有限公司 多处理器系统负载均衡的方法和装置
CN102707996A (zh) * 2012-05-15 2012-10-03 江苏中科梦兰电子科技有限公司 一种异构多核处理器上的任务调度方法
CN102866921A (zh) * 2012-08-29 2013-01-09 惠州Tcl移动通信有限公司 一种多核cpu的调控方法及系统
WO2014032477A1 (zh) * 2012-08-29 2014-03-06 惠州Tcl移动通信有限公司 一种多核中央处理器的调控方法及系统
US20170168872A1 (en) * 2014-01-29 2017-06-15 Samsung Electronics Co., Ltd Task scheduling method and apparatus
CN104035823A (zh) * 2014-06-17 2014-09-10 华为技术有限公司 负载均衡方法及装置
CN105528330A (zh) * 2014-09-30 2016-04-27 杭州华为数字技术有限公司 负载均衡的方法、装置、丛集和众核处理器
CN107066326A (zh) * 2017-03-27 2017-08-18 深圳市金立通信设备有限公司 一种调度任务的方法及终端
CN110825524A (zh) * 2019-10-31 2020-02-21 Oppo广东移动通信有限公司 应用运行优化控制方法及相关产品

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113626196A (zh) * 2021-08-12 2021-11-09 杭州海康威视数字技术股份有限公司 发送任务的方法及装置
CN115129458A (zh) * 2022-09-02 2022-09-30 腾讯科技(深圳)有限公司 基于容器的进程调度方法、装置、设备及存储介质

Similar Documents

Publication Publication Date Title
US10496446B2 (en) Altruistic dependable memory overcommit for virtual machines
CN106557369B (zh) 一种多线程的管理方法及系统
EP2437168A2 (en) Method and device for balancing load of multiprocessor system
CN105955809B (zh) 线程调度方法和系统
CN112559176A (zh) 一种指令处理方法和装置
CN107577523B (zh) 一种任务执行的方法及装置
CN111104208B (zh) 进程调度管理方法、装置、计算机设备及存储介质
CN106899649B (zh) 一种任务请求处理方法、装置和用户设备
CN111708642B (zh) Vr系统中处理器性能优化方法、装置及vr设备
CN112540841B (zh) 任务调度的方法、装置、处理器与电子设备
CN111488210B (zh) 基于云计算的任务调度方法、装置和计算机设备
CN110781145B (zh) 一种文件系统任务调度方法、装置、设备及可读存储介质
US20150100964A1 (en) Apparatus and method for managing migration of tasks between cores based on scheduling policy
CN111104227A (zh) 一种K8s平台的资源控制方法、装置及相关组件
CN106775975B (zh) 进程调度方法及装置
CN111124674B (zh) 一种硬件资源的管理方法、存储介质及终端
CN109660393B (zh) 一种云主机规格的更新方法及其装置
CN112667380A (zh) 多处理器任务调度方法、装置及存储介质
US9417924B2 (en) Scheduling in job execution
US8555285B2 (en) Executing a general-purpose operating system as a task under the control of a real-time operating system
CN111338803A (zh) 一种线程处理方法和装置
CN111143063A (zh) 任务的资源预约方法及装置
CN109933426B (zh) 服务调用的处理方法、装置、电子设备及可读存储介质
CN110308988B (zh) 一种应用于异构计算平台的动态调度方法及系统
CN115311123B (zh) 一种像素流gpu资源调度方法及装置

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