CN116225632A - 线程调度方法、设备及相关装置 - Google Patents
线程调度方法、设备及相关装置 Download PDFInfo
- Publication number
- CN116225632A CN116225632A CN202111471044.9A CN202111471044A CN116225632A CN 116225632 A CN116225632 A CN 116225632A CN 202111471044 A CN202111471044 A CN 202111471044A CN 116225632 A CN116225632 A CN 116225632A
- Authority
- CN
- China
- Prior art keywords
- thread
- electronic device
- resource
- cpu
- task
- 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
Links
Images
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/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
- 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
-
- 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/54—Interprogram communication
- G06F9/544—Buffers; Shared memory; Pipes
-
- 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)
- Memory System (AREA)
Abstract
本申请公开了线程调度方法、设备及相关装置,该线程调度方法可以线程创建时为该线程分配默认最少的存储资源,在该线程完成一个周期的调度后,根据该线程在该调度周期内的任务执行情况来确定是否调整该线程的存储资源,具体地,当线程执行任务时的效率较低时,可以增大该线程占用的存储资源的大小,和/或,提高该线程占用的存储资源的工作频率。这样,可以在避免多线程访问冲突的前提下,保证部分线程得到优先处理,提高处理器的工作效率。
Description
技术领域
本申请涉及终端及通信技术领域,尤其涉及线程调度方法、设备及相关装置。
背景技术
为了满足现今人们对计算机性能、系统优化等方面的高要求,处理器由单核逐渐发展为多核。多核处理器是指集成有两个或多个完整的计算引擎的处理器,多核处理器可以并行处理多个线程,这使得多核处理器可以在特定的时钟周期内执行更多的任务,加快程序执行的速度。
其中,多核处理器系统大多以线程为调度单位运行应用程序,然而,在线程调度过程中,多核处理器中的多个处理器可能会因为同时访问共享资源,而使系统产生资源竞争或浪费,导致多核处理器系统性能下降的问题。
发明内容
本申请提供了线程调度方法、设备及相关装置,该线程调度方法能够在多线程同时运行时,保证部分线程得到优先处理,提升多线程访问时,CPU的运行效率。
第一方面,本申请实施例提供了一种线程调度方法,该方法应用于包括多核CPU的电子设备,该多核CPU包括存储资源,该方法包括:电子设备为第一线程分配存储资源中的第一资源,该第一线程由多核CPU调度;电子设备获取第一线程利用第一资源执行任务时的第一参数;在第一参数指示第一线程执行任务时的效率低于第一阈值的情况下,电子设备增大第一资源,和/或,提高第一资源的工作频率;电子设备利用调整后的第一资源执行第一线程的任务。
实施本申请实施例提供的方法,电子设备可以在执行业务的过程中,根据线程的运行情况,调整电子设备为该线程分配的存储资源,这样,可以保证多线程同时访问多核CPU时,部分线程能够得到优先处理,保证多线程访问时CPU的运行效率。
结合第一方面,在一种实施方式中,该存储资源为多核CPU共享的缓存空间,和/或,内存空间。
也即是说,电子设备可以在线程运行的过程中,动态调整线程访问的缓存空间,和/或,内存空间。
结合第一方面,在一种实施方式中,第一参数还包括指令数量,指令数量包括第一线程利用第一资源执行任务时,调用的不同指令类型的数量,在参数指示第一线程执行任务时的效率低于第一阈值的情况下,电子设备增大第一资源,和/或,提高第一资源的工作频率,具体包括:在指令数量中预设指令类型的数量大于第二阈值,且,参数指示第一线程执行任务时的效率低于第一阈值的情况下,电子设备增大第一资源,和/或,提高第一资源的工作频率。
也就是说,电子设备可以通过线程运行过程中,CPU执行的不同类型的指令的数量,来确定该线程属于内存约束的线程还是运算约束的线程。具体地,当load,store以及branch类型的指令占所有执行的指令中的比例以及数量大于阈值时,则电子设备可以确定该线程属于内存约束的线程。其中,当线程属于内存约束的线程时,则说明该线程容易受到多线程并发访问时的影响,因此,电子设备可以增大该线程占用的存储资源,和/或,提高该线程占用的存储资源的工作频率。
需要注意的是,当电子设备确定该线程属于内存约束的线程后,还可以进一步结合其他参数,例如命中率、吞吐量、延迟频率等等来确定是否调整该线程占用的存储资源,和/或,提高该线程占用的存储资源的工作频率。
结合第一方面,在一种实施方式中,第一参数包括命中率,命中率为第一线程利用第一资源执行任务时,从第一资源查找到所需数据的次数与总查找次数的比值,在参数指示第一线程执行任务时的效率低于第一阈值的情况下,电子设备增大第一资源,和/或,提高第一资源的工作频率,具体包括:在命中率小于第三阈值的情况下,电子设备增大第一资源。
可以看出,当线程在运行过程中的命中率较低时,则说明该线程占用的存储资源可能不足,因此,电子设备可以增大该线程占用的存储资源,从而达到提高该线程执行任务的效率的目的。
结合第一方面,在一种实施方式中,该多核CPU包括第一CPU和第二CPU,第一CPU的性能低于第二CPU的性能,第一线程由第一CPU进行的调度,方法还包括:电子设备将第一线程更改为由第二CPU进行调度。
进一步地,当线程在运行过程中的命中率较低时,则电子设备可以能够使用性能更好的CPU来执行该线程,例如,第一CPU可以为LCPU,第二CPU可以为BCPU,电子设备可以将该线程锁在BCPU中,从而加快该线程的执行效率。
结合第一方面,在一种实施方式中,第一参数包括延迟频率,延迟频率为第一线程利用第一资源执行任务时,存储资源之间的访问时间超过预设时间的次数占总访问次数的比值,在参数指示第一线程执行任务时的效率低于第一阈值的情况下,电子设备增大第一资源,和/或,提高第一资源的工作频率,具体包括:在延迟频率大于第四阈值的情况下,电子设备提高第一资源的工作频率。
可以看出,当线程在运行过程中的延迟频率较高时,则电子设备可以提高该线程占用的存储资源的工作频率,从而达到缓解访问延迟的问题。
结合第一方面,在一种实施方式中,第一参数还包括吞吐量,吞吐量为第一线程利用第一资源执行任务时,存储资源在单位时间内成功传送数据的数量,在延迟频率大于第四阈值的情况下,电子设备提高第一资源的工作频率,具体包括:在延迟频率大于第四阈值,且,吞吐量小于第五阈值的情况下,电子设备提高第一资源的工作频率。
电子设备可以进一步地结合吞吐量来判断是否提高该线程占用的存储资源的工作频率,这是由于吞吐量可以指示当前存储资源的功耗情况,如果吞吐量较大,则说明该存储资源的功耗较大,吞吐量较小,则说明该存储资源的功耗较小。那么,在功耗较大时,不宜进一步加大该存储资源的工作频率。因此,电子设备可以在延迟频率高于阈值,且,该存储资源的吞吐量小于阈值的情况下,提升该线程占用的存储资源的工作频率。
结合第一方面,在一种实施方式中,电子设备获取第一线程利用第一资源执行任务时的第一参数之前,该方法还包括:电子设备确定第一线程为与外界交互有关的线程。
也即是说,在电子设备根据线程的执行情况判断是否调整该线程占用的存储资源之前,还可以先判断该线程是否为高优先级的线程,在确定该线程属于高优先级的线程后,再进一步确定是否调整该线程分配的存储资源,保证优先级高的线程能够得到优先处理。
结合第一方面,在一种实施方式中,该方法还包括:电子设备为第二线程分配存储资源中的第二资源,第二资源不同于第一资源,第一线程、第二线程由多核CPU中的不同CPU调度。
也即是说,电子设备可以在多线程并发访问的过程中,为不同的线程分配不同的访问资源,保证多个线程能够同时执行,加快线程的执行效率。
结合第一方面,在一种实施方式中,该存储资源包括以下一项或多项:二级缓存、三级缓存、系统缓存或DDR。
第二方面,本申请实施例提供了一种电子设备,包括存储器,多核CPU以及一个或多个程序;当多核CPU在执行一个或多个程序时,使得电子设备执行如第一方面或第一方面的任意一种实施方式所描述的方法。
第三方面,本申请实施例提供了一种电子设备,包括SOC芯片以及一个或多个程序,SOC芯片上集成有一个或多个处理器,存储器,当一个或多个程序在电子设备上运行时,使得电子设备执行如第一方面或第一方面的任意一种实施方式所描述的方法。
第四方面,本申请实施例提供了一种计算机可读存储介质,包括指令,当指令在电子设备上运行时,使得电子设备执行如第一方面或第一方面的任意一种实施方式所描述的方法。
第五方面,本申请实施例提供了一种计算机程序产品,其特征在于,当计算机程序产品在计算机上运行时,使得计算机执行如第一方面或第一方面的任意一种实施方式所描述的方法。
实施本申请实施例提供的技术方法,电子设备可以在多线程并发访问时,为多个线程分配不同的存储资源,并根据各线程的运行情况,调整部分线程占用的访问资源,保证部分线程得到优先处理,避免了多个线程同时发起对存储资源的访问操作时,出现CPU性能下降,访问延迟的问题,保证多线程运行时CPU的运行效率。
附图说明
图1为本申请实施例提供的电子设备的硬件结构示意图;
图2为本申请实施例提供的电子设备的处理器结构示意图;
图3为本申请实施例提供的电子设备的软件结构示意图;
图4为本申请实施例提供的线程调度方法的流程示意图;
图5为本申请实施例提供的线程调度装置的结构示意图。
具体实施方式
下面将结合附图对本申请实施例中的技术方案进行清楚、详尽地描述。其中,在本申请实施例的描述中,除非另有说明,“/”表示或的意思,例如,A/B可以表示A或B;文本中的“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况,另外,在本申请实施例的描述中,“多个”是指两个或多于两个。
以下,术语“第一”、“第二”仅用于描述目的,而不能理解为暗示或暗示相对重要性或者隐含指明所指示的技术参数的数量。由此,限定有“第一”、“第二”的参数可以明示或者隐含地包括一个或者更多个该参数,在本申请实施例的描述中,除非另有说明,“多个”的含义是两个或两个以上。
为了方便理解本方案,首先对涉及到的相关术语进行解释。
1)中央处理器((central processing unit,CPU))
CPU具有控制和信息处理的能力,是电脑和智能设备的控制中枢。CPU芯片中完成控制和信号处理功能的核心电路就是CPU核心,如果将多个CPU核心和相关的辅助电路(例如,引脚的接口电路、电源电路和时钟电路等)封装在一个芯片上,则这个芯片就是多核心CPU芯片,简称多核CPU。如果在多核CPU中再集成一些其他功能部件和接口电路,就形成了完整的系统,这个包含完整系统的芯片就是系统级芯片。
2)系统级芯片(System on Chip,SoC)
系统级芯片,又称片上系统,是一个有专用目标的集成电路,其中包含完整系统并有嵌入软件的全部内容。从狭义角度讲,它是信息系统核心的芯片集成,是将系统关键部件集成在一块芯片上;从广义角度讲,SoC是一个微小型系统,如果说CPU是大脑,那么SoC就是包括大脑、心脏、眼睛和手的系统。
具体关于SoC的硬件结构的相关描述可以参见后续内容,这里先不展开。
3)CPU缓存
在计算机系统中,CPU缓存,简称缓存,是用于减少处理器访问内存所需平均时间的部件。当处理器发出内存访问请求时,会先查看缓存内是否有请求数据。如果存在(命中),则不经访问内存直接返回该数据;如果不存在(失效),则要先把内存中的相应数据载入缓存,再将其返回处理器。缓存大小是CPU的重要指标之一,缓存容量的增大可以大幅度提升CPU内部读取数据的命中率,增强CPU的性能。
随着多核CPU的发展,CPU缓存通常可以分成三个级别:一级缓存(Level 1Cache,L1)、二级缓存(Level 2Cache,L2)、三级缓存(Level 3Cache,L3)。其中,级别越小越接近CPU,运算速度越快,同时也代表其容量越小。一般三级缓存为多核CPU的共享缓存。在读取数据的过程中,首先会在运算速度最快的一级缓存中找数据,如果一级缓存中没有CPU所需的数据(这时称为未命中,CPU在缓存中找到有用的数据被称为命中),则往下一级,即二级缓存中继续查找,直到三级缓存中也没命中时,向内存中查找数据。从理论上讲,在一颗拥有二级缓存的CPU中,读取一级缓存的命中率为80%。也就是说CPU一级缓存中找到的有用数据占数据总量的80%,剩下的20%从二级缓存中读取。在拥有三级缓存的CPU中,只有约5%的数据需要从内存中调用,这进一步提高了CPU的效率。
4)线程
线程是操作系统能够进行运算调度的最小单元,是进程的时机运作单元。线程是进程的一部分,一个线程只能属于一个进程,而一个进程可以有多个进程。线程是CPU调度和分派的基本单元,一个线程可以与同属于一个进程的其他线程共享进程所拥有的全部资源(例如,CPU、内存、网络等等)。
由于线程只有在获得CPU的使用权才能执行指令。线程的执行过程,实质是线程获得处理器的使用权,通过处理器查找相应的数据的过程。对于多核CPU,进程中的多个线程可以并行执行,提高程序的执行吞吐率。
随着集成电路技术的不断发展,SoC逐渐受到大众的青睐。现今,在性能和功耗敏感的终端芯片领域,SoC已经占据了主导地位,它将中央处理器、图形处理器、数字信号处理器、内存、调制解调器、导航定位模块以及多媒体模块等等硬件模块整合在一个芯片上,对于手机这类侧重于轻薄的终端设备而言,多个硬件模块的高集成度有效提高了手机内部空间的利用率,降低了手机的设计难度。
但是,一般的SoC会涉及6-8个不同性能等级的处理器,在实际线程调度的过程中,如果存在多个线程同时执行,多个处理器会同时发起对共享缓存的访问操作,而多个CPU的并发访问会造成共享缓存的访问冲突,增加访问失效率,延长线程的执行时间,造成处理器的运行效率较低的问题。因此,如何提升多核处理器中处理器的运行效率是目前亟待解决的问题。
本申请实施例提供了一种线程调度方法,该方法可以在新的线程创建的时候,为该线程分配默认最少的存储资源,在该线程完成一个周期的调度后,获取该线程在该调度周期内执行任务的参数,根据该参数判断该线程是否属于内存约束的业务,如果是,则进一步根据参数判断是否加大该线程占用的存储资源,和/或,是否提高该线程占用的存储资源的工作频率。
电子设备执行业务的过程,实质是处理器执行该业务相关的进程的过程,而处理器执行进程是指处理器从缓存或内存中查找数据并返回数据的过程。而一个进程可以包括一个或多个线程。在处理器执行进程的过程中,一个或多个线程可以同时访问缓存或内存,并从中查找数据。那么,存储资源即为缓存或内存空间,存储资源越大,处理器查找到数据的可能性就越大,即命中率越大,存储资源越小,处理器查找到数据的可能性就越小,即命中率越小。
在具体实现中,可以将存储资源拆分成多个分组,当同时存在多个线程通过多核CPU查找数据时,可以为每个线程分别分配一个分组中的存储资源,从而避免这多个线程同时访问共享缓存或内存时,出现访问冲突的问题。另外,在最初为线程分配的存储资源可以为默认的最少资源,这样,在之后确定该线程为需要优先执行的线程时,可以为该线程分配更高的资源,使该线程能够得到更快的处理。
线程的一次调度周期是指线程拥有处理器使用权的一个周期,该调度周期的时间长度与CPU芯片的能力有关,一般一个调度周期是10ms左右。一般来说,当电子设备持续执行一个业务时,该业务相关的线程会存在多个调度周期,持续使用处理器执行任务。
参数包括:不同类型的指令的数量、命中率、吞吐量、延迟频率。程序计数器,又称指令计数器,位于处理器内部,是计算机处理器中的寄存器,它包含当前正在执行的指令的地址。该线程调度方法可以通过程序计数器确定CPU正在执行的指令的指令类型,从而确定当前执行的线程中,CPU执行的不同类型的指令的数量,进而根据不同类型的指令的数量判断当前的线程对应的业务是否属于内存约束的业务,从而根据该判断结果进一步确定是否根据命中率、吞吐量、延迟频率来调整该线程占用的存储资源,和/或,线程占用的存储资源的工作频率。命中率是指CPU从存储资源中查找数据时,查找到所需数据的次数占所有查找次数的比例。吞吐量是指存储资源在单位时间内成功传送数据的数量,单位为bytes。延迟频率是指超过预设时间的访问的次数。该线程调度方法可以通过性能计数器确定线程调度时的命中率、吞吐量和延迟频率。
总的来说,该线程调度方法能够根据线程的执行情况进一步加大该线程占用的存储资源,和/或,该线程占用的存储资源的工作频率,从而优先保证部分线程的正常执行,避免了多个线程同时发起对存储资源的访问操作时,出现CPU性能下降,访问延迟的问题,保证多线程运行时CPU的运行效率。
图1示出了电子设备100的硬件结构示意图。
电子设备100可以是手机、平板电脑、桌面型计算机、膝上型计算机、手持计算机、笔记本电脑、超级移动个人计算机(ultra-mobile personal computer,UMPC)、上网本,以及蜂窝电话、个人数字助理(personal digital assistant,PDA)、增强现实(augmentedreality,AR)设备、虚拟现实(virtual reality,VR)设备、人工智能(artificialintelligence,AI)设备、可穿戴式设备、车载设备、智能家居设备和/或智慧城市设备,本申请实施例对该电子设备的具体类型不作特殊限制。
电子设备100可以包括处理器110,外部存储器接口120,内部存储器121,通用串行总线(universal serial bus,USB)接口130,充电管理模块140,电源管理模块141,电池142,天线1,天线2,移动通信模块150,无线通信模块160,音频模块170,扬声器170A,受话器170B,麦克风170C,耳机接口170D,传感器模块180,按键190,马达191,指示器192,摄像头193,显示屏194,以及用户标识模块(subscriber identification module,SIM)卡接口195等。其中传感器模块180可以包括压力传感器180A,陀螺仪传感器180B,气压传感器180C,磁传感器180D,加速度传感器180E,距离传感器180F,接近光传感器180G,指纹传感器180H,温度传感器180J,触摸传感器180K,环境光传感器180L,骨传导传感器180M等。
可以理解的是,本发明实施例示意的结构并不构成对电子设备100的具体限定。在本申请另一些实施例中,电子设备100可以包括比图示更多或更少的部件,或者组合某些部件,或者拆分某些部件,或者不同的部件布置。图示的部件可以以硬件,软件或软件和硬件的组合实现。
处理器110可以包括一个或多个处理单元,例如:处理器110可以包括应用处理器(application processor,AP),调制解调处理器,图形处理器(graphics processingunit,GPU),图像信号处理器(image signal processor,ISP),控制器,视频编解码器,数字信号处理器(digital signal processor,DSP),基带处理器,和/或神经网络处理器(neural-network processing unit,NPU)等。其中,不同的处理单元可以是独立的器件,也可以集成在一个或多个处理器中。具体关于处理器110的硬件结构可以参见下述图2及其相关内容,这里先不赘述。
在一些实施例中,处理器110可用于创建线程,为该线程分配存储资源,并采集该线程在执行的过程中的参数,并判断是否需要调整该线程占用的存储资源,如果需要,则根据该参数来调整该线程占用的存储资源的大小,和/或,该存储资源的工作频率。具体关于线程执行过程中的参数、判断是否需要调整的过程以及根据参数调整的过程可以参见后续内容,这里先不赘述。
控制器可以根据指令操作码和时序信号,产生操作控制信号,完成取指令和执行指令的控制。
处理器110中还可以设置存储器,用于存储指令和数据。在一些实施例中,处理器110中的存储器为高速缓冲存储器。该存储器可以保存处理器110刚用过或循环使用的指令或数据。如果处理器110需要再次使用该指令或数据,可从所述存储器中直接调用。避免了重复存取,减少了处理器110的等待时间,因而提高了系统的效率。
充电管理模块140用于从充电器接收充电输入。电源管理模块141用于连接电池142,充电管理模块140与处理器110。电源管理模块141接收电池142和/或充电管理模块140的输入,为处理器110,内部存储器121,显示屏194,摄像头193,和无线通信模块160等供电。
电子设备100的无线通信功能可以通过天线1,天线2,移动通信模块150,无线通信模块160,调制解调处理器以及基带处理器等实现。
天线1和天线2用于发射和接收电磁波信号。移动通信模块150可以提供应用在电子设备100上的包括2G/3G/4G/5G等无线通信的解决方案。移动通信模块150可以包括至少一个滤波器,开关,功率放大器,低噪声放大器(low noise amplifier,LNA)等。调制解调处理器可以包括调制器和解调器。其中,调制器用于将待发送的低频基带信号调制成中高频信号。解调器用于将接收的电磁波信号解调为低频基带信号。无线通信模块160可以提供应用在电子设备100上的包括无线局域网(wireless local area networks,WLAN)(如无线保真(wireless fidelity,Wi-Fi)网络),蓝牙(bluetooth,BT),全球导航卫星系统(globalnavigation satellite system,GNSS),调频(frequency modulation,FM),近距离无线通信技术(near field communication,NFC),红外技术(infrared,IR)等无线通信的解决方案。无线通信模块160可以是集成至少一个通信处理模块的一个或多个器件。无线通信模块160经由天线2接收电磁波,将电磁波信号解调以及滤波处理,将处理后的信号发送到处理器110。无线通信模块160还可以从处理器110接收待发送的信号,对其进行调频,放大,经天线2转为电磁波辐射出去。
电子设备100通过GPU,显示屏194,以及应用处理器等实现显示功能。GPU为图像处理的微处理器,连接显示屏194和应用处理器。GPU用于执行数学和几何计算,用于图形渲染。处理器110可包括一个或多个GPU,其执行程序指令以生成或改变显示信息。
显示屏194用于显示图像,视频等。
电子设备100可以通过ISP,摄像头193,视频编解码器,GPU,显示屏194以及应用处理器等实现拍摄功能。
ISP用于处理摄像头193反馈的数据。例如,拍照时,打开快门,光线通过镜头被传递到摄像头感光元件上,光信号转换为电信号,摄像头感光元件将所述电信号传递给ISP处理,转化为肉眼可见的图像。ISP还可以对图像的噪点,亮度,肤色进行算法优化。ISP还可以对拍摄场景的曝光,色温等参数优化。在一些实施例中,ISP可以设置在摄像头193中。
摄像头193用于捕获静态图像或视频。
数字信号处理器用于处理数字信号,除了可以处理数字图像信号,还可以处理其他数字信号。例如,当电子设备100在频点选择时,数字信号处理器用于对频点能量进行傅里叶变换等。
视频编解码器用于对数字视频压缩或解压缩。电子设备100可以支持一种或多种视频编解码器。这样,电子设备100可以播放或录制多种编码格式的视频,例如:动态图像专家组(moving picture experts group,MPEG)1,MPEG2,MPEG3,MPEG4等。
NPU为神经网络(neural-network,NN)计算处理器,通过借鉴生物神经网络结构,例如借鉴人脑神经元之间传递模式,对输入信息快速处理,还可以不断的自学习。通过NPU可以实现电子设备100的智能认知等应用,例如:图像识别,人脸识别,语音识别,文本理解等。
内部存储器121可以包括一个或多个随机存取存储器(random access memory,RAM)和一个或多个非易失性存储器(non-volatile memory,NVM)。
随机存取存储器可以包括静态随机存储器(static random-access memory,SRAM)、动态随机存储器(dynamic random access memory,DRAM)、同步动态随机存储器(synchronous dynamic random access memory,SDRAM)、双倍资料率同步动态随机存取存储器(double data rate synchronous dynamic random access memory,DDR SDRAM,例如第五代DDR SDRAM一般称为DDR5 SDRAM)等;非易失性存储器可以包括磁盘存储器件、快闪存储器(flash memory)。
快闪存储器按照运作原理划分可以包括NOR FLASH、NAND FLASH、3D NAND FLASH等,按照存储单元电位阶数划分可以包括单阶存储单元(single-level cell,SLC)、多阶存储单元(multi-level cell,MLC)、三阶储存单元(triple-level cell,TLC)、四阶储存单元(quad-level cell,QLC)等,按照存储规范划分可以包括通用闪存存储(英文:universalflash storage,UFS)、嵌入式多媒体存储卡(embedded multi media Card,eMMC)等。
随机存取存储器可以由处理器110直接进行读写,可以用于存储操作系统或其他正在运行中的程序的可执行程序(例如机器指令),还可以用于存储用户及应用程序的数据等。
非易失性存储器也可以存储可执行程序和存储用户及应用程序的数据等,可以提前加载到随机存取存储器中,用于处理器110直接进行读写。
电子设备100可以通过音频模块170,扬声器170A,受话器170B,麦克风170C,耳机接口170D,以及应用处理器等实现音频功能。例如音乐播放,录音等。音频模块170用于将数字音频信息转换成模拟音频信号输出,也用于将模拟音频输入转换为数字音频信号。扬声器170A,也称“喇叭”,用于将音频电信号转换为声音信号。受话器170B,也称“听筒”,用于将音频电信号转换成声音信号。麦克风170C,也称“话筒”,“传声器”,用于将声音信号转换为电信号。耳机接口170D用于连接有线耳机。
压力传感器180A用于感受压力信号,可以将压力信号转换成电信号。陀螺仪传感器180B可以用于确定电子设备100的运动姿态。气压传感器180C用于测量气压。磁传感器180D包括霍尔传感器。电子设备100可以利用磁传感器180D检测翻盖皮套的开合。加速度传感器180E可检测电子设备100在各个方向上(一般为三轴)加速度的大小。距离传感器180F,用于测量距离。接近光传感器180G可以包括例如发光二极管(LED)和光检测器,例如光电二极管。发光二极管可以是红外发光二极管。电子设备100通过发光二极管向外发射红外光。电子设备100使用光电二极管检测来自附近物体的红外反射光。环境光传感器180L用于感知环境光亮度。指纹传感器180H用于采集指纹。温度传感器180J用于检测温度。触摸传感器180K,也称“触控器件”。触摸传感器180K可以设置于显示屏194,由触摸传感器180K与显示屏194组成触摸屏,也称“触控屏”。骨传导传感器180M可以获取振动信号。
按键190包括开机键,音量键等。马达191可以产生振动提示。指示器192可以是指示灯,可以用于指示充电状态,电量变化,也可以用于指示消息,未接来电,通知等。SIM卡接口195用于连接SIM卡。
图2示例性示出了本申请实施例提供的处理器110的硬件结构示意图。
如图2所示,处理器110可以以SOC的形式置于电子设备100的内部。SOC是系统级的芯片,其上集成了各种功能模块,包括:CPU子系统、其他运算单元、SystemCache、DDR。具体关于SOC的描述可以参见前述内容,这里不再赘述。
其中,CPU子系统包括一个或多个CPU,例如,图2示例性示出了CPU子系统可以包括4个LCPU、4个BCPU,其中,LCPU是指小型CPU,BCPU是指大型CPU,LCPU的性能比BCPU的性能差。
在一些实施例中,CPU子系统还可以包括MCPU,MCPU是指中型CPU,MCPU的性能介于LCPU和BCPU之间。另外,本申请实施例不限制CPU子系统中包含的各种CPU的数量,例如,该CPU子系统可以包含1个LCPU,4个MCPU,4个BCPU。可以理解的是,该CPU子系统中可以包含同指令集的多种不同微架构的CPU,且这多种CPU的数量可以任意组合,本申请实施例对此不作限制。
其他运算单元可包括:GPU、NPU、DSS、ISP、JPG、PCIE、VDEC、VENC等等。其中,GPU是指图形处理器(graphics processing unit,GPU),NPU是指神经网络处理器(neural-network processing unit,NPU)、DSS是指显示子系统(display subsystem,DSS)、ISP是指图像信号处理器(image signal processor,ISP)、JPG是指JPG压缩文件处理器、PCIE是指高速串行计算机扩展总线(peripheral component interconnect express,PCIE)VDEC是指视频解码器(video decoder,VDEC)、VENC是指视频编码器(video encoder,VENC)。
需要注意的是,其他运算单元可以包含更多或更少的运算单元,本申请实施例对该其他运算单元中包含的运算单元不作限制。
在SOC芯片上还包括CPU缓存和系统缓存(即SystemCache),其中CPU缓存用于存放CPU子系统所需的数据,系统缓存用于存放CPU子系统以及其他运算单元所需的数据。CPU缓存可以分为三个级别:L1、L2、L3。其中,L1与CPU结合最为紧密,是所有缓存中容量最小的CPU缓存,位于CPU内核的旁边,是与CPU结合最为紧密,所有缓存中容量最小的CPU缓存,L2位于CPU的外部,L2是CPU性能表现的关键之一,在CPU核心不变化的情况下,增加二级缓存容量能使性能大幅度提高。每一个CPU都可以拥有独立的L1、L2缓存。L3为CPU子系统中的所有CPU共享的缓存。SystemCache为CPU和其他运算单元的最后一级缓存,是CPU子系统中的所有CPU以及其他运算单元里面的所有运算单元共享的缓存。
需要注意的是,图2示例性示出了L3为CPU子系统共享的缓存,在其他实施例中,还可以设计该CPU子系统只包含两个级别的缓存,L2为CPU子系统的共享缓存,本申请实施例对该CPU子系统中包含的缓存的具体设计不作限制。
DDR是指双倍数据率同步动态随机存取存储器(Double Data Rate SynchronousDynamic Random-Access Memory,DDR),是电子设备100中的物理内存,一般地,DDR的大小可以为8MB-16MB。
需要注意的是,SOC中的缓存和内存即为本申请实施例提及的存储资源,这里的缓存即为上述提及的CPU缓存以及系统缓存,内存即为上述提及的DDR。另外,在实际的SOC芯片的硬件结构中,DDR和SystemCache可以同属于一个硬件模块。
另外,存储资源中还包括性能管理单元(performance management unit,PMU),该PMU可以用于获取线程在调度周期内执行任务的参数,该参数可以包括:不同类型的指令的数量、命中率、吞吐量、延迟频率。具体地,PMU可以包括程序计数器,该程序计数器用于获取不同类型的指令的数量,还可以包括性能计数器,该性能计数器用于获取命中率、吞吐量和延迟频率。具体关于参数的描述可以参见前述内容,这里不再赘述。
电子设备可以是搭载iOS、Android、Microsoft或者其它操作系统的便携式终端设备,例如手机、平板电脑、可穿戴设备等,还可以是具有触敏表面或触控面板的膝上型计算机(Laptop)、具有触敏表面或触控面板的台式计算机等非便携式终端设备。电子设备100的软件系统可以采用分层架构,事件驱动架构,微核架构,微服务架构,或云架构。本发明实施例以分层架构的Android系统为例,示例性说明电子设备100的软件结构。
图3是本发明实施例的电子设备100的软件结构框图。
分层架构将软件分成若干个层,每一层都有清晰的角色和分工。层与层之间通过软件接口通信。在一些实施例中,将Android系统分为四层,从上至下分别为应用程序层,应用程序框架层,安卓运行时(Android runtime)和系统库,以及内核层。
应用程序层可以包括一系列应用程序包。
如图3所示,应用程序包可以包括相机,图库,日历,通话,地图,导航,WLAN,蓝牙,音乐,视频,短信息等应用程序。
应用程序框架层为应用程序层的应用程序提供应用编程接口(applicationprogramming interface,API)和编程框架。应用程序框架层包括一些预先定义的函数。
如图3所示,应用程序框架层可以包括窗口管理器,内容提供器,视图系统,电话管理器,资源管理器,通知管理器、AMS等。
窗口管理器用于管理窗口程序。窗口管理器可以获取显示屏大小,判断是否有状态栏,锁定屏幕,截取屏幕等。
内容提供器用来存放和获取数据,并使这些数据可以被应用程序访问。所述数据可以包括视频,图像,音频,拨打和接听的电话,浏览历史和书签,电话簿等。
视图系统包括可视控件,例如显示文字的控件,显示图片的控件等。视图系统可用于构建应用程序。显示界面可以由一个或多个视图组成的。例如,包括短信通知图标的显示界面,可以包括显示文字的视图以及显示图片的视图。
电话管理器用于提供电子设备100的通信功能。例如通话状态的管理(包括接通,挂断等)。
资源管理器为应用程序提供各种资源,比如本地化字符串,图标,图片,布局文件,视频文件等等。
通知管理器使应用程序可以在状态栏中显示通知信息,可以用于传达告知类型的消息,可以短暂停留后自动消失,无需用户交互。比如通知管理器被用于告知下载完成,消息提醒等。通知管理器还可以是以图表或者滚动条文本形式出现在系统顶部状态栏的通知,例如后台运行的应用程序的通知,还可以是以对话窗口形式出现在屏幕上的通知。例如在状态栏提示文本信息,发出提示音,电子设备振动,指示灯闪烁等。
AMS即为活动管理服务,作为操作系统的引导服务,用于管理应用程序中的各应用程序的启动、切换和调度。在本申请实施例中,AMS还用于确定该线程是否属于与外界交互相关的线程,以供调度器模块确定该线程的优先级。其中,与外界交互相关的线程为高优先级的线程,与外界交互无关的线程为低优先级的线程。电子设备100与外界的交互包括但不限于:显示界面元素、播放音频、振动马达、电子设备100接收并响应于用户操作等等。例如,与图片加载有关的线程可以为高优先级的线程,与数据统计有关的线程可以为低优先级的线程。具体关于调度器模块的描述可以参见后续内容。
Android Runtime包括核心库和虚拟机。Android runtime负责安卓系统的调度和管理。
核心库包含两部分:一部分是java语言需要调用的功能函数,另一部分是安卓的核心库。
应用程序层和应用程序框架层运行在虚拟机中。虚拟机将应用程序层和应用程序框架层的java文件执行为二进制文件。虚拟机用于执行对象生命周期的管理,堆栈管理,线程管理,安全和异常的管理,以及垃圾回收等功能。
系统库可以包括多个功能模块。例如:表面管理器(surface manager),媒体库(Media Libraries),三维图形处理库(例如:OpenGL ES),2D图形引擎(例如:SGL)等。
表面管理器用于对显示子系统进行管理,并且为多个应用程序提供了2D和3D图层的融合。
媒体库支持多种常用的音频,视频格式回放和录制,以及静态图像文件等。媒体库可以支持多种音视频编码格式,例如:MPEG4,H.264,MP3,AAC,AMR,JPG,PNG等。
三维图形处理库用于实现三维图形绘图,图像渲染,合成,和图层处理等。
2D图形引擎是2D绘图的绘图引擎。
内核层是硬件和软件之间的层。内核层至少包含显示驱动,摄像头驱动,音频驱动,传感器驱动、调度器模块。其中,调度器模块用于确定线程是否属于高优先级的线程,另外,该调度器模块还用于获取PMU采集的参数,该参数包括:不同类型的指令的数量、命中率、吞吐量、延迟频率,并根据该参数调整为该线程分配的存储资源。
图4示出了本申请实施例提供的线程调度方法的流程示意图。
如图4所述,该方法包括:
S101、电子设备100创建线程。
线程是操作系统能够运算调度的最小单元。线程包含在进程之中,是进程的实际运作单位。一条线程指的是进程中一个单一顺序的控制流。一个进程可以并行多个线程,每条线程并行执行不同的任务。不同进程的线程也可以并行执行。同一个进程中的多个线程可以共享该进程所拥有的资源。
其中,电子设备100可以在启动应用的业务时,触发创建一个或多个线程,例如第一线程、第二线程。
S102、电子设备100为该线程分配默认的存储资源。
存储资源是指多核CPU中各个CPU共享的缓存或内存空间。具体地,该存储资源可以是指图2所示的SOC中的L3、systemcache或DDR。
为了避免多个线程同时访问共享的存储资源,造成访问冲突的问题。电子设备100可以对存储资源进行分组,即将存储资源划分成多个大小相等或不等的分组,使各线程能够各自对应一个分组,并利用该分组中的存储资源执行其相应的任务。也就是说,电子设备100可以将L3、systemcache以及DDR分别分成多个分组,在线程调度处理器查找数据时,可以指定在L3、systemcache以及DDR中划分的分组中查找。以图2中示出了SOC结构为例,当线程调度如图2所示的SOC中的其中一个LCPU执行任务时,该LCPU先从L1中查找数据,在未命中的情况下从L2中查找数据,在仍未命中的情况下到L3中划分出的一个分组中查找数据,在仍未命中的情况下,可以在systemcache中划分出一个分组,指定该LCPU在该systemcache中划分的分组中查找数据。如果各级缓存中都未命中数据,可以在DDR中划分出一个分组,指定该LCPU在该DDR中划分的分组中查找数据。
也就是说,电子设备100可以在线程创建完成后,为该线程分配一个分组中的存储资源。其中,电子设备100划分的分组大小可以为预置的大小。例如,假设L3的大小为8MB,电子设备100可以默认划分4个大小相等的分组,则每一个分组的大小为2MB,则此时可以使得4个线程同时访问L3,而不会出现访问冲突的问题。
S103、电子设备100利用该存储资源完成对该线程的一次调度。
电子设备100完成线程的调度是指线程拥有处理器使用权,查找缓存或内存中的数据的过程。一般来说,当电子设备100持续执行一个业务时,电子设备100会多次调度该业务的线程,该线程会持续使用处理器执行任务。
在本申请实施例中,电子设备100可以在线程首次调度的过程中,为该线程分配默认最低的存储资源,根据该线程在此次调度过程中的执行情况,来判断是否改变之后该线程调度过程中所分配的存储资源,从而避免出现多个线程访问冲突的情况,保证高优先级的线程能够优先高效处理。
具体地,电子设备100可以按照为该线程分配的默认存储资源,完成对该线程的一次调度,并记录该线程在该调度周期内的参数,该参数包括:不同类型的指令的数量、命中率、吞吐量、延迟频率。
其中,电子设备100可以通过程序计数器获取处理器执行的不同类型的指令的数量,这里的处理器是指该线程使用的处理器。具体地,指令的类型可以包括:int,float,neon,load,store,branch等等。电子设备100可以根据该不同类型的指令的数量来判断该线程所属的业务类型,进而根据该业务类型确定是否调整该线程占用的存储资源。具体关于程序计数器的描述可以参见前述内容,具体关于电子设备100根据不同类型的指令的数量确定线程所属的业务的过程可以参见后续内容,这里先不赘述。
电子设备100可以通过性能计数器获取线程执行过程中,存储资源的命中率、吞吐量和延迟频率。
命中率是指线程执行过程中,处理器从存储资源中查找到所需数据的比例。电子设备100可以根据该命中率判断是否加大线程占用的该存储资源的大小。具体关于这部分的描述可以参见S106或S110的相关内容,这里先不赘述。
吞吐量是指线程执行过程中,存储资源在单位时间内成功传送数据的数量。
延迟频率是指线程执行过程中,超过预设时间的访问的次数。例如,该预设时间可以为正常访问所需时间的1.5倍。本申请实施例对该预设时间不作限制。电子设备100可以根据该延迟频率判断是否增加该线程占用的存储资源的工作频率,具体关于这部分的描述可以参见S108或S112的相关内容,这里先不赘述。
S104、电子设备100判断该线程是否属于优先级高的业务的线程。
优先级高的线程是指与外界交互有关的线程,其中,电子设备100与外界的交互包括但不限于:显示界面元素、播放音频、振动马达、电子设备100接收并响应于用户操作等等。
也就是说,电子设备100可以先判断该线程是否是属于优先级高的线程,再进一步确定是否调整该线程分配的存储资源,保证优先级高的线程能够得到优先处理。
当电子设备100判断该线程属于优先级高的业务的线程时,电子设备100执行步骤S105。
S105、电子设备100根据该调度过程中不同指令类型的数量判断该线程对应的业务是否属于内存约束的业务。
由于不同业务执行的线程中,调用的指令类型存在差异。当处理器执行的指令中,int,float以及neon类型的指令较多时,该业务为运算约束的业务的概率较大。当处理器执行的指令中load,store以及branch类型的指令较多时,该业务为内存约束的业务的概率较大。其中,运算约束的业务受到CPU内核以及与CPU内核结合最紧密的缓存(例如L1)的影响较大,内存约束的业务受到CPU外部(例如L2、L3、L3等等存储资源)的影响较大。
也就是说,内存约束的业务相比于运算约束的业务更容易受到多线程并发访问的影响。所以,当电子设备100根据不同指令类型的数量判断出该线程对应的业务属于运算约束的业务时,电子设备100可以按照原本的线程调度过程执行该线程。当电子设备100判断该线程对应的业务属于内存约束的业务时,电子设备100可以调整该线程的存储资源,使该线程能够高优先处理。
具体地,电子设备100可以在load,store以及branch类型的指令占所有执行的指令中的比例以及数量大于阈值时,确定该线程对应的业务为内存约束的业务。也即是说,电子设备100可以在预设指令类型的数量大于第二阈值的情况下,将该线程对应的业务确定为内存约束的业务。
进一步地,电子设备100可以在确定该线程对应的业务属于内存约束的业务后,根据该线程的执行情况来确定是否调整该线程的存储资源。也就是说,电子设备100可以在确定该线程对应的业务是属于内存约束的业务后,执行步骤S106、S108、S110、S112、S114中的任意一个或多个,即根据存储资源的命中率、吞吐量和延迟频率等等参数进一步判断该线程在上一次调度过程中的执行情况。
需要注意的是,步骤S106-S115的过程,具体为电子设备100根据线程执行任务的情况调整该线程占用的存储资源的过程。其中,线程执行任务的情况可以根据该线程执行任务的参数来确定,当该参数指示线程执行任务时的效率低于阈值(例如第一阈值)时,电子设备可以增大该线程占用的存储资源,和/或,提高该线程占用的访问资源的工作频率。
S106、电子设备100判断该调度过程中,该线程在L3中的命中率是否低于阈值。
L3是指三级缓存,该三级缓存为多核CPU中所有CPU共享的缓存,具体地,可以是指图2所示的CPU子系统中的L3。以图2所示的SOC结构为例,在线程的执行过程中,线程使用的处理器会先在该处理器内部的缓存,即一级缓存(L1)中查找数据,如果未命中,则在该处理器对应的二级缓存(L2)中查找数据,如果二级缓存中未命中,则继续到所有CPU的共享缓存,即三级缓存(L3)中查找数据,如果三级缓存中未命中,则继续到所有CPU和其他运算单元的共享缓存,即系统缓存中查找数据,如果系统缓存中未命中,则继续到内存,即DDR中查找数据。
当该线程在L3中的命中率较低,则说明电子设备100为该线程在L3中分配的存储资源过少,该线程通过该默认的存储资源查找数据比较困难。
因此,当电子设备100判断该调度过程中,该线程在L3中的命中率低于阈值(例如第三阈值),电子设备100可以执行步骤S107,增大该线程在L3中占用的存储资源。
S107、电子设备100增大该线程在L3中占用的存储资源,并将该线程锁在BCPU。
电子设备100增大该线程在L3中占用的存储资源,是指电子设备100增大在L3中为该线程分配的分组的大小。例如,假设电子设备100在L3中默认划分的分组大小为2MB,电子设备100可以增大该线程所在的分组大小,将该分组的大小增加到4MB。
电子设备100将线程锁在BCPU是指电子设备100指定BCPU作为该线程使用的处理器。这是由于在CPU子系统中,BCPU的性能要高于LCPU,电子设备100可以限制该线程仅使用BCPU来执行任务,使电子设备100能够使用性能更好的CPU来执行该线程,加快该线程的执行效率。
需要注意的是,电子设备100可以仅增大该线程在L3中占用的存储资源,或者,仅将该线程锁在BCPU中,或者,增大该线程在L3中占用的存储资源的同时将该线程锁在BCPU中。
S108、电子设备100判断该调度过程中,该线程在L3中占用的存储资源的延迟频率是否高于阈值。
在线程执行过程中,当该线程在L3中占用的存储资源的访问延迟比较严重,则电子设备100可以提高该线程在L3中占用的存储资源的工作频率,从而达到缓解访问延迟的问题。
具体地,电子设备100可以统计一段时间内,不同频点下,上一级缓存到本级缓存(即L2到L3)的访问时间超过预设时间的次数,通过该统计获得的次数即可获得该一段时间内,本级缓存的延迟频率。其中,存储资源可以存在多个频点,例如,L3一般在300M-1200M之间包含多个频点。电子设备100可以为不同频点下的访问分配单独的性能计数器,通过该性能计数器统计不同频点下,访问时间超过预设时间的次数。其中,该预设时间可以为预先设置的时间,例如,该预设时间可以为正常访问的时间的1.5倍。本申请实施例对该预设时间不做限制。
也就是说,当电子设备100判断该调度过程中,该线程在L3中占用的存储资源的延迟频率高于阈值(例如第四阈值),则电子设备100执行步骤S109,提高该线程在L3中占用的存储资源的工作频率。
在一些实施例中,电子设备100还可以进一步结合吞吐量来判断是否提高该线程在L3中占用的存储资源的工作频率。这是由于吞吐量可以指示当前存储资源的功耗情况,如果吞吐量较大,则说明该存储资源的功耗较大,吞吐量较小,则说明该存储资源的功耗较小。那么,在功耗较大时,不宜进一步加大该存储资源的工作频率。因此,电子设备100可以在当该线程在L3中占用的存储资源的延迟频率高于阈值,且,该存储资源的吞吐量小于阈值的情况下,提升该线程在L3中占用的存储资源的工作频率,否则,不改变该线程在L3中占用的存储资源的工作频率。
S109、电子设备100提升该线程在L3中占用的存储资源的工作频率。
当线程的访问延迟较大时,电子设备100可以提升该线程占用的存储资源的工作频率,加快该线程的执行效率,从而改善线程的访问延迟问题。也即是说,当电子设备100判断该调度过程中,该线程在L3中占用的存储资源的延迟频率高于阈值,则电子设备100提升该线程在L3中占用的存储资源的工作频率。
S110、电子设备100判断该调度过程中,该线程在系统缓存中的命中率是否低于阈值。
当线程使用CPU子系统中的CPU来执行任务时,当CPU在上一级存储资源中未查找到数据时,CPU可以到下一级存储资源中查找数据。也即是说,当CPU在L3中未查找到数据时,可以进一步到系统缓存中查找数据。
当该线程在系统缓存中的命中率较低,则说明电子设备100为该线程在系统缓存中分配的存储资源过少,该线程通过该默认的存储资源查找数据比较困难。
因此,当电子设备100判断该调度过程中,该线程在系统缓存中的命中率低于阈值(例如第三阈值),电子设备100可以执行步骤S111,增大该线程在该系统缓存中占用的存储资源。
S111、电子设备100增大该线程在系统缓存中占用的存储资源。
电子设备100增大该线程在系统缓存中占用的存储资源,是指电子设备100增大在系统缓存中为该线程分配的分组的大小。例如,假设电子设备100在系统缓存中默认划分的分组大小为2MB,电子设备100可以增大该线程所在的分组大小,将该分组的大小增加到4MB。
S112、电子设备100判断该调度过程中,该线程在系统缓存中占用的存储资源的延迟频率是否高于阈值。
在线程执行过程中,当该线程在系统缓存中占用的存储资源的访问延迟比较严重,则电子设备100可以提高该线程在系统缓存中占用的存储资源的工作频率,加快线程的执行效率,从而达到缓解访问延迟的问题。
具体地,电子设备100可以统计一段时间内,不同频点下,上一级存储资源到本级存储资源(即L3到系统缓存)的访问时间超过预设时间的次数,通过该统计获得的次数即可获得该一段时间内的延迟频率。其中,该预设时间可以为正常访问的最大访问时间的X倍(X≥1),例如,在1200Mhz下,L3到系统缓存的正常访问的最大访问时间为150ns,超过150ns的访问即为存在延迟的访问,那么该系统缓存的延迟频率可以统计L3到系统缓存的访问时间超过150ns*1.5=225ns的访问次数。
也就是说,当电子设备100判断该调度过程中,该线程在系统缓存中占用的存储资源的延迟频率高于阈值(例如第四阈值),则电子设备100执行步骤S113,提升该线程在系统缓存中占用的存储资源的工作频率。
在一些实施例中,电子设备100还可以进一步结合吞吐量来判断是否提高该线程在系统缓存中占用的存储资源的工作频率。具体地,电子设备100可以在当该线程在系统缓存中占用的存储资源的延迟频率高于阈值,且,该存储资源的吞吐量小于阈值(例如第五阈值)的情况下,提升该线程在系统缓存中占用的存储资源的工作频率,否则,不改变该线程在系统缓存中占用的存储资源的工作频率。
S113、电子设备100提升该线程在系统缓存中占用的存储资源的工作频率。
当线程的访问延迟较大时,电子设备100可以提升该线程占用的存储资源的工作频率,从而改善线程的访问延迟问题。也即是说,当电子设备100判断该调度过程中,该线程在系统缓存中占用的存储资源的延迟频率高于阈值,则电子设备100提升该线程在系统缓存中占用的存储资源的工作频率。
S114、电子设备100判断该调度过程中,该线程在DDR中占用的存储资源的延迟频率是否高于阈值。
在线程执行过程中,当该线程在DDR中占用的存储资源的访问延迟比较严重,则电子设备100可以提高该线程在DDR中占用的存储资源的工作频率,加快线程的执行效率,从而达到缓解访问延迟的问题。
具体地,电子设备100可以统计一段时间内,不同频点下,上一级存储资源到本级存储资源(即系统缓存到DDR)的访问时间超过预设时间的次数,通过该统计获得的次数即可获得该一段时间内的延迟频率。具体关于延迟频率的描述可以参见前述内容,这里不再赘述。
也就是说,当电子设备100判断该调度过程中,该线程在DDR中占用的存储资源的延迟频率高于阈值(例如第四阈值),则电子设备100执行步骤S115,提升该线程在DDR中占用的存储资源的工作频率。
在一些实施例中,电子设备100还可以进一步结合吞吐量来判断是否提高该线程在DDR中占用的存储资源的工作频率。具体地,电子设备100可以在当该线程在DDR中占用的存储资源的延迟频率高于阈值,且,该存储资源的吞吐量小于阈值(例如第五阈值)的情况下,提升该线程在DDR中占用的存储资源的工作频率,否则,不改变该线程在DDR中占用的存储资源的工作频率。
S115、电子设备100提升该线程在DDR中占用的存储资源的工作频率。
当线程的访问延迟较大时,电子设备100可以提升该线程占用的存储资源的工作频率,从而改善线程的访问延迟问题。也即是说,当电子设备100判断该调度过程中,该线程在DDR中占用的存储资源的延迟频率高于阈值,则电子设备100提升该线程在DDR中占用的存储资源的工作频率。
需要注意的是,上述步骤S106、S108、S110、S112、S114是在该电子设备100存在L3、系统缓存这两个共享缓存以及DDR共享内存的基础上,存在的电子设备100可以执行的步骤,该电子设备100的CPU结构可以参考图2示出了的SOC芯片的结构。当电子设备100以其他缓存例如L2作为共享缓存,或其他内存作为共享内存时,电子设备100可以根据其他缓存或内存上的参数来进一步判断是否调整线程在该缓存或内存上占用的存储资源。
总的来说,该线程调度方法可以将共享的存储资源划分成多个分组,以供不同线程使用不同分组中的存储资源,避免多个线程同时访问共享的存储资源时,出现访问冲突的问题,另外,该线程调度方法还可以根据线程执行过程中的参数,精准判断是否需要调整该线程占用的存储资源,使该线程高优先处理,提升例如应用启动、场景切换、游戏运行等重载场景的运行速度。
图5示出了本申请实施例提供的线程调度装置的结构示意图。
如图5所示,该线程调度装置可以包括:调度模块201、采集模块202、判断模块203、调整模块204。
调度模块201用于完成线程的调度,执行线程的任务,即获取CPU的使用权,通过CPU查找该线程所需的数据。另外,调度模块201可以在执行线程的任务前,为该线程分配默认的存储资源,以供该线程利用该存储资源执行任务。
采集模块202用于获取线程调度过程中的参数,该参数包括:不同类型的指令的数量、命中率、吞吐量、延迟频率。具体地,采集模块202可以在调度模块201首次调度线程时,获取CPU中的参数。
判断模块203用于判断是否需要调整该线程的存储资源。判断模块203可以先判断该线程是否属于与外界交互相关的线程,如果是,则判断模块203在根据不同类型的指令的数量判断该线程对应的业务是否属于内存约束的业务,如果是,则调整模块204进一步根据命中率、吞吐量和延迟频率在调整该线程分配的存储资源。
调整模块204用于根据线程调度过程中的命中率、吞吐量、延迟频率,调整该线程占用的存储资源的大小,和/或,存储资源的工作频率。
具体关于线程调度装置中未提及的部分可以参见前述内容,这里不再赘述。
本申请的各实施方式可以任意进行组合,以实现不同的技术效果。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本申请所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线)或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘(solidstate disk,SSD))等。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,该流程可以由计算机程序来指令相关的硬件完成,该程序可存储于计算机可读取存储介质中,该程序在执行时,可包括如上述各方法实施例的流程。而前述的存储介质包括:ROM或随机存储记忆体RAM、磁碟或者光盘等各种可存储程序代码的介质。
总之,以上所述仅为本发明技术方案的实施例而已,并非用于限定本发明的保护范围。凡根据本发明的揭露,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (14)
1.一种线程调度方法,其特征在于,所述方法应用于包括多核CPU的电子设备,所述多核CPU包括存储资源,所述方法包括:
所述电子设备为第一线程分配所述存储资源中的第一资源,所述第一线程由所述多核CPU调度;
所述电子设备获取所述第一线程利用所述第一资源执行任务时的第一参数;
在所述第一参数指示所述第一线程执行任务时的效率低于第一阈值的情况下,所述电子设备增大所述第一资源,和/或,提高所述第一资源的工作频率;
所述电子设备利用调整后的所述第一资源执行所述第一线程的任务。
2.根据权利要求1所述的方法,其特征在于,所述存储资源为所述多核CPU共享的缓存空间,和/或,内存空间。
3.根据权利要求1或2所述的方法,其特征在于,所述第一参数还包括指令数量,所述指令数量包括所述第一线程利用所述第一资源执行任务时,调用的不同指令类型的数量,
在所述参数指示所述第一线程执行任务时的效率低于第一阈值的情况下,所述电子设备增大所述第一资源,和/或,提高所述第一资源的工作频率,具体包括:
在所述指令数量中预设指令类型的数量大于第二阈值,且,所述参数指示所述第一线程执行任务时的效率低于第一阈值的情况下,所述电子设备增大所述第一资源,和/或,提高所述第一资源的工作频率。
4.根据权利要求1-3任一项所述的方法,其特征在于,所述第一参数包括命中率,所述命中率为所述第一线程利用所述第一资源执行任务时,从所述第一资源查找到所需数据的次数与总查找次数的比值,
在所述参数指示所述第一线程执行任务时的效率低于第一阈值的情况下,所述电子设备增大所述第一资源,和/或,提高所述第一资源的工作频率,具体包括:
在所述命中率小于第三阈值的情况下,所述电子设备增大所述第一资源。
5.根据权利要求4所述的方法,其特征在于,所述多核CPU包括第一CPU和第二CPU,所述第一CPU的性能低于所述第二CPU的性能,所述第一线程由所述第一CPU进行的调度,所述方法还包括:
所述电子设备将第一线程更改为由所述第二CPU进行调度。
6.根据权利要求1-5任一项所述的方法,其特征在于,所述第一参数包括延迟频率,所述延迟频率为所述第一线程利用所述第一资源执行任务时,所述存储资源之间的访问时间超过预设时间的次数占总访问次数的比值,
在所述参数指示所述第一线程执行任务时的效率低于第一阈值的情况下,所述电子设备增大所述第一资源,和/或,提高所述第一资源的工作频率,具体包括:
在所述延迟频率大于第四阈值的情况下,所述电子设备提高所述第一资源的工作频率。
7.根据权利要求6所述的方法,其特征在于,所述第一参数还包括吞吐量,所述吞吐量为所述第一线程利用所述第一资源执行任务时,所述存储资源在单位时间内成功传送数据的数量,
在所述延迟频率大于第四阈值的情况下,所述电子设备提高所述第一资源的工作频率,具体包括:
在所述延迟频率大于所述第四阈值,且,所述吞吐量小于第五阈值的情况下,所述电子设备提高所述第一资源的工作频率。
8.根据权利要求1-7任一项所述的方法,其特征在于,所述电子设备获取所述第一线程利用所述第一资源执行任务时的第一参数之前,所述方法还包括:
所述电子设备确定所述第一线程为与外界交互有关的线程。
9.根据权利要求1-8任一项所述的方法,其特征在于,所述方法还包括:
所述电子设备为第二线程分配所述存储资源中的第二资源,所述第二资源不同于所述第一资源,所述第一线程、所述第二线程由所述多核CPU中的不同CPU调度。
10.根据权利要求1-6任一项所述的方法,其特征在于,所述存储资源包括以下一项或多项:二级缓存、三级缓存、系统缓存或DDR。
11.一种电子设备,其特征在于,包括存储器,多核CPU以及一个或多个程序;当所述多核CPU在执行所述一个或多个程序时,使得所述电子设备实现如权利要求1至10任一项所述的方法。
12.一种电子设备,其特征在于,包括SOC芯片以及一个或多个程序,所述SOC芯片上集成有一个或多个处理器,存储器,当所述一个或多个程序在所述电子设备上运行时,使得所述电子设备实现如权利要求1至10任一项所述的方法。
13.一种计算机可读存储介质,包括指令,其特征在于,当所述指令在电子设备上运行时,使得所述电子设备执行如权利要求1至10任一项所述的方法。
14.一种计算机程序产品,其特征在于,当所述计算机程序产品在计算机上运行时,使得计算机执行如权利要求1至10任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111471044.9A CN116225632A (zh) | 2021-12-03 | 2021-12-03 | 线程调度方法、设备及相关装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111471044.9A CN116225632A (zh) | 2021-12-03 | 2021-12-03 | 线程调度方法、设备及相关装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116225632A true CN116225632A (zh) | 2023-06-06 |
Family
ID=86581066
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111471044.9A Pending CN116225632A (zh) | 2021-12-03 | 2021-12-03 | 线程调度方法、设备及相关装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116225632A (zh) |
-
2021
- 2021-12-03 CN CN202111471044.9A patent/CN116225632A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20240054079A1 (en) | Memory Management Method and Apparatus, Electronic Device, and Computer-Readable Storage Medium | |
CN113434288B (zh) | 内存管理的方法及电子设备 | |
CN111158910B (zh) | 内存管理方法、装置、存储介质及电子设备 | |
CN113553130B (zh) | 应用执行绘制操作的方法及电子设备 | |
WO2022257748A1 (zh) | 虚拟内存管理方法和电子设备 | |
KR20150132218A (ko) | 게스트 운영 체계 및 가상 프로세서들과 함께 하이퍼바이저를 이용하는 시스템들 및 방법들 | |
WO2022078105A1 (zh) | 内存管理方法、电子设备以及计算机可读存储介质 | |
CN115292199B (zh) | 一种显存泄露的处理方法及相关装置 | |
CN114546511A (zh) | 插件管理方法、系统及装置 | |
WO2023202429A1 (zh) | 垃圾回收的方法及电子设备 | |
CN111381996B (zh) | 内存异常处理方法及装置 | |
CN114968540A (zh) | 一种核间迁移的频率调整方法 | |
CN116700913B (zh) | 嵌入式文件系统的调度方法、设备及存储介质 | |
CN117707716A (zh) | 线程调度方法、电子设备及计算机可读存储介质 | |
CN114253737B (zh) | 电子设备及其内存回收方法、介质 | |
CN114461589B (zh) | 读取压缩文件的方法、文件系统及电子设备 | |
CN116225632A (zh) | 线程调度方法、设备及相关装置 | |
CN117632400A (zh) | 任务调度方法、电子设备及计算机可读存储介质 | |
WO2021238376A1 (zh) | 功能包的加载方法、装置、服务器和电子设备 | |
CN111459462B (zh) | 分散式重锁降级 | |
CN112783418B (zh) | 一种存储应用程序数据的方法及移动终端 | |
WO2023231900A1 (zh) | 一种内存管理方法及相关装置 | |
CN116933245A (zh) | 资源隔离方法及电子设备 | |
CN116933254A (zh) | 一种应用程序的进程查杀方法及电子设备 | |
CN115826999A (zh) | 一种应用安装方法和电子设备 |
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 |