CN106484527A - 操作cpu的方法以及操作具有cpu的系统的方法 - Google Patents

操作cpu的方法以及操作具有cpu的系统的方法 Download PDF

Info

Publication number
CN106484527A
CN106484527A CN201610797860.1A CN201610797860A CN106484527A CN 106484527 A CN106484527 A CN 106484527A CN 201610797860 A CN201610797860 A CN 201610797860A CN 106484527 A CN106484527 A CN 106484527A
Authority
CN
China
Prior art keywords
idle
core
worker thread
cpu
qos
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.)
Granted
Application number
CN201610797860.1A
Other languages
English (en)
Other versions
CN106484527B (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.)
Samsung Electronics Co Ltd
Original Assignee
Samsung Electronics 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 Samsung Electronics Co Ltd filed Critical Samsung Electronics Co Ltd
Publication of CN106484527A publication Critical patent/CN106484527A/zh
Application granted granted Critical
Publication of CN106484527B publication Critical patent/CN106484527B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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/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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3206Monitoring of events, devices or parameters that trigger a change in power modality
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3206Monitoring of events, devices or parameters that trigger a change in power modality
    • G06F1/3228Monitoring task completion, e.g. by use of idle timers, stop commands or wait commands
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/324Power saving characterised by the action undertaken by lowering clock frequency
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/3243Power saving in microcontroller unit
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/329Power saving characterised by the action undertaken by task scheduling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/3296Power saving characterised by the action undertaken by lowering the supply or operating voltage
    • 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/5044Allocation 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 hardware capabilities
    • 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/5094Allocation of resources, e.g. of the central processing unit [CPU] where the allocation takes into account power or heat criteria
    • 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/509Offload
    • 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
    • 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
    • Y02D30/00Reducing energy consumption in communication networks
    • Y02D30/50Reducing energy consumption in communication networks in wire-line communication networks, e.g. low power modes or reduced link rate

Landscapes

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

Abstract

一种操作CPU的方法,该CPU包括用于存储负载追踪器和增强器的存储器以及用于运行负载追踪器和增强器的核心,该方法包括:通过负载追踪器来确定在核心中是否运行空闲任务;通过负载追踪器来生成与确定结果相对应的事件;通过负载追踪器来向增强器广播所生成的事件;以及通过增强器来基于事件设置核心的服务质量(QoS)最小值。操作CPU的方法可以进一步包括当CPU被初始化时,通过负载追踪器来将空闲起始工作线程回调和空闲终止工作线程回调注册在空闲模块中,以及当CPU被初始化时,通过负载追踪器来生成空闲起始工作线程和空闲终止工作线程。

Description

操作CPU的方法以及操作具有CPU的系统的方法
对相关申请的交叉引用
本申请要求2015年8月31日提交的第10-2015-0122353号韩国专利申请的优先权,该韩国申请的公开内容通过引用整体并入于此。
技术领域
本发明构思实施例涉及一种操作中央处理单元(CPU)的方法,并且更具体地,涉及一种操作能够调整CPU的服务质量(QoS)的CPU的方法以及一种操作包括该CPU的系统的方法。
背景技术
微处理器,具体地,移动应用处理器使用动态地改变操作频率的技术,例如,动态频率调节(DFS)技术或动态电压和频率调节(DVFS)技术,以满足对于性能和低功率两者的需求。微处理器使用用于调整操作时钟信号的频率的各种策略。移动环境可能对要被使用的功率的量施加限制并且可能产生对于热的易损性,以及因此,策略对微处理器的性能进行约束并且微处理器被设计为使得功率消耗和热生成最小化。
在现有技术的微处理器中所使用的DVFS的DVFS调节器(governor)针对限制在微处理器中所消耗的功率而优化,使得即使特定的任务连续地使用微处理器的最大可用性能,微处理器的操作频率也不立即提高到最大操作频率。
发明内容
本发明构思的技术目的是提供一种操作CPU的方法,该CPU能够当迫切地需要高性能时自动感测,并且能够根据感测结果自动地设置QoS最小值,以及一种操作包括该CPU的系统的方法。
本发明构思的示例实施例针对一种操作CPU的方法,该CPU包括用于存储第一负载追踪器和增强器(booster)的第一存储器以及用于运行第一负载追踪器和增强器的第一核心,其中,该方法包括:通过第一负载追踪器来确定在第一核心中是否运行第一空闲任务;通过第一负载追踪器来生成与确定结果相对应的第一事件;通过第一负载追踪器来向增强器广播所生成的第一事件;以及通过增强器来基于第一事件设置第一核心的服务质量(QoS)最小值。
操作CPU的方法可以进一步包括:当CPU被初始化时,通过第一负载追踪器将空闲起始工作线程回调和空闲终止工作线程回调注册到空闲模块中;以及当CPU被初始化时,通过第一负载追踪器生成空闲起始工作线程和空闲终止工作线程。
操作CPU的方法可以进一步包括:当CPU被初始化时,通过增强器来设置空闲起始工作线程的第一过期时间和空闲终止工作线程的第二过期时间。
所述方法可以进一步包括:当第一空闲任务被运行时,通过空闲模块调用空闲起始工作线程回调;以及当第一空闲任务终止时,通过空闲模块调用空闲终止工作线程回调。
所述方法可以进一步包括:当运行第一空闲任务时,通过空闲起始工作线程回调来调度空闲起始工作线程;以及当运行第一空闲任务时,通过空闲终止工作线程回调来调度空闲终止工作线程。
所述方法可以进一步包括:当第一空闲任务被运行时,通过空闲起始工作线程回调取消在工作序列中存在的前一个空闲终止工作线程的调度。
通过第一负载追踪器生成第一事件可以包括:当第一过期时间经过时,通过空闲起始工作线程生成指令QoS最小值降低的第一事件;以及当第二过期时间经过时,通过空闲终止工作线程来取消空闲起始工作线程的调度,并且生成指令QoS最小值提高的第一事件。
操作CPU的方法可以进一步包括:通过所述增强器基于设置的QoS最小值来向QoS控制器输出用于第一核心的动态电压频率调节(DVFS)的控制信号;以及通过所述QoS控制器响应于所述控制信号来生成与第一核心的操作时钟信号的频率控制有关的频率控制信号和与第一核心的操作电压的控制有关的电压控制信号。
所述CPU进一步包括用于存储第二负载追踪器的第二存储器以及用于运行第二负载追踪器的第二核心,并且操作CPU的所述方法可以进一步包括:通过所述第二负载追踪器来确定在所述第二核心中是否运行第二空闲任务;通过所述第二负载追踪器来生成与所述确定结果相对应的第二事件;通过所述第二负载追踪器来向在所述第一核心中所运行的增强器广播所生成的第二事件;以及通过所述增强器来基于所述第一事件和所述第二事件设置所述第一核心的QoS最小值和所述第二核心的QoS最小值。
操作CPU的所述方法可以进一步包括:基于所述第一核心的设置的QoS最小值和所述第二核心的设置的QoS最小值,将被指派给所述第一核心的任务强制地指派给所述第二核心。
本发明构思的示例实施例针对一种操作片上系统的方法,该片上系统包括:CPU,具有用于存储第一负载追踪器、增强器和QoS控制器的第一存储器,并且进一步具有用于运行第一负载追踪器、增强器和QoS控制器的第一核心;时钟管理单元;以及功率管理单元。操作片上系统的方法包括:通过第一负载追踪器来确定在第一核心中是否运行第一空闲任务;通过第一负载追踪器来生成与确定结果相对应的第一事件;通过第一负载追踪器来向增强器广播所生成的第一事件;通过增强器来基于第一事件设置第一核心的服务质量(QoS)最小值;通过QoS控制器来生成频率控制信号和电压控制信号;通过时钟管理单元来响应于频率控制信号控制被供给到第一核心的第一时钟信号的第一频率;以及通过功率管理单元响应于电压控制信号来生成用于控制功率管理IC的控制信号,以用于将第一操作电压供给到第一核心。
操作片上系统的方法可以进一步包括:当CPU被初始化时,通过第一负载追踪器将空闲起始工作线程回调和空闲终止工作线程回调注册到空闲模块中;以及当CPU被初始化时,通过第一负载追踪器生成空闲起始工作线程和空闲终止工作线程。
所述方法可以进一步包括:当第一空闲任务被运行时,通过空闲模块调用空闲起始工作线程回调;以及当第一空闲任务终止时,通过空闲模块调用空闲终止工作线程回调。
所述方法可以进一步包括:当第一空闲任务被运行时,通过空闲起始工作线程回调取消在工作序列中存在的前一个空闲终止工作线程的调度;通过空闲起始工作线程回调确定空闲起始工作线程的调度前提;以及当满足所述调度前提时,通过所述空闲起始工作线程回调来调度所述空闲起始工作线程。所述调度前提可以包括其中所述空闲起始工作线程或所述空闲终止工作线程均没有待决的情况,以及其中所述空闲起始工作线程未待决并且所述第一核心被增强的情况。
所述方法可以进一步包括:当所述第一空闲任务被终止时,通过所述空闲终止工作线程回调来确定所述空闲终止工作线程的调度前提;以及当满足所述调度前提时,通过所述空闲终止工作线程回调来调度所述空闲终止工作线程。所述调度前提包括其中所述空闲终止工作线程未待决并且所述空闲工作起始线程待决的情况,以及其中所述空闲终止工作线程未待决并且所述第一核心未被增强的情况。
所述CPU进一步包括用于存储第二负载追踪器的第二存储器以及用于运行第二负载追踪器的第二核心,并且所述方法进一步包括:通过所述第二负载追踪器来确定在所述第二核心中是否运行第二空闲任务;通过所述第二负载追踪器来生成与所述确定结果相对应的第二事件;通过所述第二负载追踪器来向在所述第一核心中运行的所述增强器广播所生成的第二事件;通过所述增强器来基于所述第一事件和所述第二事件设置所述第一核心的设置的QoS最小值和所述第二核心的设置的QoS最小值;通过所述QoS控制器来基于所述第一核心的设置的QoS最小值和所述第二核心的设置的QoS最小值输出频率控制信号和电压控制信号;通过所述时钟管理单元来响应于所述频率控制信号控制被供给到所述第一核心的第一时钟信号的第一频率和被供给到所述第二核心的第二时钟信号的第二频率;以及通过所述功率管理单元响应于所述电压控制信号来输出用于控制所述功率管理IC的控制信号,以用于将第一操作电压供给到所述第一核心和第二操作电压供给到所述第二核心。
本发明构思的示例实施例针对一种操作计算系统的方法,该计算系统包括:CPU,具有用于存储第一负载追踪器、增强器和QoS控制器的第一存储器,并且进一步具有用于运行第一负载追踪器、增强器和QoS控制器的第一核心;时钟管理单元;功率管理单元;以及功率管理IC,而所述方法包括:通过第一负载追踪器来确定在第一核心中是否运行第一空闲任务;通过第一负载追踪器来生成与确定结果相对应的第一事件;通过第一负载追踪器来向增强器广播所生成的第一事件;通过增强器来基于第一事件设置第一核心的QoS最小值;通过QoS控制器基于所设置的QoS最小值来生成第一频率控制信号和第一电压控制信号;通过时钟管理单元来响应于第一频率控制信号控制被供给到第一核心的第一时钟信号的第一频率;通过功率管理单元来响应于第一电压控制信号将第一控制信号输出到功率管理IC;以及通过功率管理IC来响应于第一控制信号控制被供给到第一核心的第一操作电压。
操作计算系统的方法可以进一步包括:当CPU被初始化时,通过第一负载追踪器将空闲起始工作线程回调和空闲终止工作线程回调注册到空闲模块中;以及当CPU被初始化时,通过第一负载追踪器生成空闲起始工作线程和空闲终止工作线程。
所述CPU进一步包括用于存储第二负载追踪器的第二存储器以及用于运行第二负载追踪器的第二核心,并且操作计算系统的方法进一步包括:通过所述第二负载追踪器来确定在所述第二核心中是否运行第二空闲任务;通过所述第二负载追踪器来生成与所述确定结果相对应的第二事件;通过所述第二负载追踪器来向在所述第一核心中运行的所述增强器广播所生成的第二事件;通过所述增强器来基于所述第一事件和所述第二事件设置所述第一核心的设置的QoS最小值和所述第二核心的设置的QoS最小值;通过所述QoS控制器来基于所述第一核心的设置的QoS最小值和所述第二核心的设置的QoS最小值生成第二频率控制信号和第二电压控制信号;通过所述时钟管理单元来响应于所述第二频率控制信号控制被供给到所述第一核心的第一时钟信号的第一频率和被供给到所述第二核心的第二时钟信号的第二频率;通过所述功率管理单元响应于所述第二电压控制信号来向所述功率管理IC输出第二控制信号;以及通过所述功率管理IC响应于所述第二控制信号控制被供给到所述第一核心的第一操作电压和被供给到所述第二核心的第二操作电压。
本发明构思的示例性实施例涉及如下方法,所述方法包括:中央处理单元(CPU)监视CPU的第一核心的第一空闲任务的状态;至少部分地基于CPU的第一核心的第一空闲任务的监视状态来设置CPU的增强等级;以及通过时钟管理单元响应于所述增强等级来控制第一核心的第一操作信号的第一频率。
所述方法还包括:中央处理单元(CPU)监视CPU的第二核心的第二空闲任务的状态;至少部分地基于CPU的第一核心的第一空闲任务的监视状态和CPU的第二核心的第二空闲任务的监视状态来设置CPU的增强等级;以及通过时钟管理单元响应于所述增强等级来控制第一核心的第一操作时钟信号的第一频率和第二核心的第二操作时钟信号的第二频率。
所述方法还可以包括:基于CPU的第一核心的第一空闲任务的监视状态来设置第一核心的服务质量(QoS)最小值;以及响应于第一核心的QoS最小值来控制被供给到第一核心的第一操作电压。
所述方法还可以包括:中央处理单元(CPU)监视CPU的第二核心的第二空闲任务的状态;基于CPU的第二核心的第二空闲任务的监视状态来设置CPU的第二核心的服务质量(QoS)最小值;以及响应于第二核心的QoS最小值来控制被供给到第二核心的第二操作电压。
计算机可以包括所述CPU、用于与至少一个存储器设备进行通信的至少一个存储器接口、以及输入/输出接口。在该种情况下,所述方法还可以包括响应于增强等级来调整存储器接口的存储器接口时钟的频率以及I/O接口的I/O时钟的频率中的至少一个。
附图说明
结合附图,从实施例的以下描述中,本发明一般构思的这些和/或其他方面和优点将变得显而易见和更加容易理解,在附图中:
图1是根据本发明构思的示例性实施例的计算机系统的框图。
图2示出了图1中所示的CPU的示例性实施例。
图3示出了由图1中所示的CPU所运行的软件组件。
图4是用于描述根据本发明构思的示例性实施例的增强的概念图。
图5是描述通过图3中所示的软件组件所执行的控制QoS最小值的方法的流程图。
图6是描述通过图3中所示的软件组件所执行的控制QoS最小值的方法的示例性实施例的流程图。
图7和图8是描述通过图3中所示的软件组件所执行的控制QoS最小值的方法的示例性实施例的流程图。
图9示出了图2中所示的QoS控制器的示例性实施例。
图10示出了图1中所示的CPU的示例性实施例。
图11是描述使用图10中所示的CPU所执行的控制增强等级的方法的概念图。
图12是描述使用图10中所示的CPU所执行的控制增强等级的方法的概念图。
图13是描述使用图10中所示的CPU所运行的软件组件来控制QoS最小值的方法的概念图。
图14、图15和图16是描述使用图10中所示的CPU所运行的软件组件来控制QoS最小值的方法的示例性实施例的流程图。
图17是用于描述在图3中所示的空闲模块中注册空闲工作线程(worker)回调的处理的程序代码的示例性实施例。以及
图18是用于描述在图3中所示的空闲模块中所注册的空闲工作线程回调中的空闲起始工作线程和空闲终止工作线程的调度处理和取消处理的程序代码的示例性实施例。
具体实施方式
现在将详细参考本发明一般构思的实施例,其示例在所附附图中示出,其中,在整个附图中,相同的参考标号表示相同的元件。以下描述实施例以通过参考附图来解释本发明的一般构思。
根据本发明构思的示例性实施例涉及提高中央处理单元(CPU)的性能的方法。根据示例性实施例,CPU可以包括一个或多个核心。根据示例性实施例,核心中的每个可以共享一个半导体基板(或一个半导体芯片),并且可以被例示为不同的半导体芯片。这里,核心可以指代处理器或处理器核心
在本文中,根据是否运行空闲任务来设置CPU或包括CPU的计算机系统的服务质量(QoS)最小值可以指代提高CPU或计算机系统的性能的操作。在本文中,QoS最小值的设置可以包括设置CPU或包括CPU的计算机系统的增强等级。这里,设置可以包括特定值的程序或特定值的改变。当调用调度器时,如果不存在处于就绪状态中的任务,则可以运行空闲任务。这里,QoS可以指代动态电压和频率调节(DVFS),并且QoS最小值可以指代DVFS的最小操作频率和最小操作电压中的至少一个。
DVFS调节器可以通过操作系统(OS)运行来作为改变CPU(或核心)的操作频率的模块(例如,软件或软件组件)。增强可以指代下述操作:忽略DVFS调节器的管理或DVFS调节器的默认值,并且快速地提高CPU(或核心)的操作频率和/或操作电压。
因此,增强的核心可以以DVFS的最大操作频率(或与最大操作频率相对应的操作频率)和/或最大操作电压(或与最大操作电压相对应的操作电压)来进行操作。例如,当CPU运行基准点(benchmark)程序时,可能需要用于CPU的增强。
在本文中,增强可以包括调度器增强和异构多处理器架构(HMP)增强。调度器增强可以指代通过改变调度器的一个或多个参数来使得CPU的吞吐量最大化的操作。例如,调度器的(一个或多个)参数可以包括nice、均衡区间以及HZ;然而其不限于此。例如,nice可以指代以修改的调度优先级来运行程序,均衡区间可以指代通过在CPU或核心之间进行任务重新指派来进行负载均衡的区间,以及HZ可以指代每秒时钟周期的数目。
HMP增强可以指代将被指派给低功率核心(例如,小核)的任务强制地指派给高性能核心(例如,大核)的操作。
根据本发明构思的示例性实施例的增强器可以接收从至少一个负载追踪器所输出的事件,并且基于所接收的事件来控制增强操作的起始和终止、增强等级的改变和/或与增强有关的依赖于处理器(或由处理器所运行的OS)的操作。
在本文中,调度可以指代在工作序列中写入超时值和起始地址的操作,并且调度的取消可以指代擦除在工作序列中所写入的超时值和起始地址的操作。
图1是根据本发明构思的示例性实施例的计算机系统100的框图。参考图1,计算机系统100可以包括控制电路200、功率管理IC(PMIC)270、第一存储器设备280以及第二存储器设备290。
计算机系统100可以被例示为个人计算机(PC)或移动设备。例如,移动设备可以被例示为膝上型计算机、移动电话、智能电话、平板式PC、个人数字助理(PDA)、企业数字助理(EDA)、数字静态相机、数字视频相机、便携式多媒体播放器(PMP)、个人导航设备或便携式导航设备(PND)、手持式游戏控制台、移动互联网设备(MID)、可穿戴计算机、物联网(IoT)设备、万物网(IoE)设备、无人机或电子书。然而,其不限于此。
控制电路200可以控制功率管理IC 270、第一存储器设备280以及第二存储器设备290的操作。控制电路200可以被例示为集成电路(IC)、母版、片上系统(SoC)、微处理器、应用处理器(AP)、移动AP、芯片集、半导体芯片的集合;然而,其不限于此。
控制电路200可以包括总线201、CPU 210、时钟控制或时钟管理单元(CMU)220、功率管理单元(PMU)230、图形处理单元(GPU)240、第一存储器接口250、第二存储器接口260以及输入/输出(I/O)接口265。
配置元件210、240、250、260以及265可以通过总线201向彼此传送数据或者从彼此接收数据。总线201可以被例示为高级微控制器总线架构(AMBA)、高级高性能总线(AHB)、高级外围总线(APB)、高级可扩展接口(AXI)、高级系统总线(ASB)、AXI一致性扩展(ACE)或这些的组合;然而,其不限于此。
CPU 210可以包括一个或多个核心。CPU 210可以使用第一操作电压PW1和第一时钟信号CLK1来进行操作。CPU 210可以运行要在本文中描述的软件组件,例如,负载追踪器、增强器以及QoS控制器。根据示例性实施例,负载追踪器、增强器以及QoS控制器可以被例示为硬件组件。根据示例性实施例,负载追踪器、增强器以及QoS控制器可以被存储在CPU 210的存储器(例如,指令缓存)中。
CPU 210可以使用软件组件(或硬件组件)来生成时钟控制信号CTR_C和功率控制信号CTR_P,以及向CMU 220输出时钟控制信号CTR_C并且向PMU 230输出功率控制信号CTR_P。功率控制信号CTR_P可以被称为电压控制信号。
CMU 220可以使用时钟控制信号CTR_C来控制相应的时钟信号CLK1至CLK5的频率。相应的时钟信号CLK1至CLK5的频率可以彼此相同或彼此不同。
PMU 230可以使用功率控制信号CTR_P来生成控制信号CTR,并且将控制信号CTR输出到PMIC 270。PMIC 270可以使用控制信号CTR来控制相应的操作电压PW1至PW6的电平。相应的操作电压PW1至PW6的电平可以彼此相同或彼此不同。PMIC 270可以使用控制信号CTR来控制被供给到配置元件200、280以及290中的每个的操作电压的电平。频率控制或电平控制可以包括增加、维持或降低。控制信号CTR_C、CTR_P以及CTR中的每个可以包括一个或多个信号(例如,模拟信号或数字信号)。
根据CMU 220和PMU 230的控制,可以针对计算机系统100来执行(或控制)动态电压调节(DVS)、动态频率调节(DFS)或动态电压和频率调节(DVFS)。
GPU 240可以使用第二操作电压PW2和第二时钟信号CLK2来对图形数据进行处理。图形数据可以包括2D图形数据和/或3D图形数据。
第一存储器接口250可以使用第三操作电压PW3和第三时钟信号CLK3来对在总线201与第一存储器设备280之间所传送的或接收的数据进行处理(或连接(interface))。第一存储器接口250可以用作存储器控制器。第一存储器设备280可以被例示为随机存取存储器(RAM)、动态RAM(DRAM)或静态RAM(SRAM);然而,其不限于此。
第二存储器接口260可以使用第四操作电压PW4和第四时钟信号CLK4来对在总线201与第二存储器设备290之间所传送的或接收的数据进行处理(或连接)。第二存储器接口260可以用作存储器控制器。第二存储器设备290可以被例示为非易失性存储器设备。非易失性存储器设备可以被例示为基于闪存的存储装置;然而,其不限于此。例如,基于闪存的存储装置可以被例示为固态驱动器或固态盘(SSD)、嵌入式SSD(eSSD)、通用闪速存储装置(UFS)、多媒体卡(MMC)、嵌入式MMC(eMMC)或管理型NAND;然而,其不限于此。
输入/输出接口265可以使用第五操作电压PW5和第五时钟信号CLK5来向外部设备传送数据或从外部设备接收数据。输入/输出接口265可以被例示为串行外围接口(SPI)、集成电路间通信(I2C)、串行高级技术附件(SATA)、快速SATA(SATA express,SATAe)、串行附接小型计算机系统接口(SCSI)(SAS)或能够支持外围组件快速互联(PCIe)或移动工业处理器接口的接口;然而,其不限于此。
图2示出了可以为图1中所示的CPU 210的示例性实施例的CPU 210A。根据图1中所示的CPU 210的示例性实施例的CPU 210A可以包括一个核心210以及第一存储器设备213和第二存储器设备215。核心211可以控制第一存储器设备213和第二存储器设备215中的每个的操作。第一存储器设备213可以包括指令缓存213,并且第二存储器设备215可以包括数据缓存215。尽管在图2中示出了等级一的缓存213和215,但是缓存213和215中的每个可以被例示为等级二的缓存。
另外,在图2中示出了根据本发明构思的示例性实施例的QoS控制模块300。QoS控制模块300可以包括负载追踪器310、增强器330和QoS控制器340。QoS控制模块300可以进一步包括图3中所示的配置元件337、350和380。
QoS控制模块300可以调整CPU 210A的QoS,而不校正DFS策略和DVFS策略,在上述DFS策略和DVFS策略中,当迫切地需要高性能时——诸如,当运行基准点程序时——通过自动地感测基准点程序的运行来优化功率,并且提高CPU 210/210A、控制电路200或计算机系统100的性能。该策略可以被称为调节器。
QoS控制模块300可以基于中断来感测负载或任务的发生,而不依赖于周期性的轮询。可以通过对计算机系统100的用户输入、计时器的输出以及从另一核心所输出的信号来生成中断。QoS控制模块300可以基于中断来感测核心211进行操作而未停止(rest)的时间以及核心211停止的时间,而不进行轮询。
图3示出了由图1中所示的CPU 210所运行的软件组件。如上所示,QoS控制模块300可以包括负载追踪器310、增强器330以及QoS控制器340—在图3中示出了上述所有。根据示例性实施例,QoS控制模块300可以进一步包括QoS相关系统文件337、空闲模块350以及工作序列380—其也在图3中示出。负载追踪器310可以确定在核心211中是否执行空闲任务370,生成与确定结果相对应的事件EVENT1或EVENT2以及向增强器330广播事件EVENT1或EVENT2。增强器330可以基于事件EVENT1或EVENT2来设置核心211的QoS最小值。
图4是用于描述根据本发明构思的示例性实施例的增强的概念图。
参考图4,附图标记301指代不需要增强的任务,并且附图标记303指代需要增强的任务。就增强而言,STH代表增强起始阈值时间,并且ETH代表增强终止阈值时间。就空闲任务而言,STH代表空闲终止工作线程超时时间或空闲终止工作线程时间,并且ETH代表空闲起始工作线程超时时间或空闲起始工作线程过期时间。
如图4所示,当核心211运行不需要增强的任务301时,核心211为被增强。然而,当空闲时间短时(例如,当时间短于STH时),即使核心211进入空闲状态,则也可以维持核心211的增强。即,当核心211被增强时,QoS控制模块300可以设置QoS最小值。
图5是描述通过图3中所示的软件组件所执行的控制QoS最小值的方法的示例性实施例的流程图。参考图3至图5,通过核心211所运行的QoS控制模块300,例如,负载追踪器310,可以确定是否运行空闲任务370(S110)。
当运行空闲任务370(图3的370或S110中的是)时,则负载追踪器310可以生成指令增强终止或降低增强等级的降低指令事件EVENT1(S112)。当未运行空闲任务370时(S110中的否),例如,当空闲任务370被完成时(图3的S375),则负载追踪器310可以生成指令增强起始或提高增强等级的提高指令事件EVENT2(S114)。
QoS控制模块300,例如,增强器330可以响应于降低指令事件EVENT1或提高指令事件EVENT2来设置用于控制增强(或增强等级)的增强控制值或QoS最小值(S116)。即,增强器330可以解析降低指令事件EVENT1或提高指令事件EVENT2,并且将与解析结果相对应的(一个或多个)值存储在QoS相关系统文件337中。QoS控制器340可以基于在QoS相关系统文件337中所存储的增强控制值或QoS最小值,来生成用于增强控制或QoS最小值控制的控制信号(S118)。例如,控制信号可以包括频率控制信号CTR_C和功率控制信号CTR_P。QoS相关系统文件337可以指代用于存储与解析结果相对应的性能相关参数或(一个或多个)值的计算机文件。
图6是描述可以通过图3中所示的软件组件所执行的控制QoS最小值的方法的示例性实施例的流程图。参考图3和图6,负载追踪器310可以确定空闲任务370是否起始(S210)。
当空闲任务370起始时(图3的371或S210中的是),则在空闲模块350中所存储的空闲起始工作线程回调351可以取消在工作序列380中所存储的前一个空闲终止工作线程的调度(或计时器的超时时间或过期时间)(S220)。然而,当在工作序列380中不存在前一个空闲终止工作线程时,则处理220可以被省略(或跳过)。
空闲起始工作线程回调351可以调度空闲起始工作线程311(S222)。因此,与空闲起始工作线程311相对应的空闲起始工作线程381可以被调度或列队在工作序列380中。例如,空闲起始工作线程回调351可以设置闲起始工作线程311或381的计时器的超时时间或过期时间。
工作序列380可以确定在空闲起始工作线程381中所设置的过期时间是否过期(或经过)(S224)。当过期时间未过期或经过时(S224中的否),则工作序列380可以重复或连续地运行处理S224。然而,当过期时间过期或经过时(S224中的是),则空闲起始工作线程311或381可以生成指令增强终止或降低增强等级的降低指令事件EVENT1,并且向增强器S330广播降低指令事件EVENT1(S226)。
增强器330可以响应于降低指令事件EVENT1来设置用于控制增强(或增强等级)的增强控制值或QoS最小值(S240)。即,增强器330可以解析降低指令事件EVENT1,并且将与解析结果相对应的(一个或多个)值存储在QoS相关系统文件337中。QoS控制器340可以基于在QoS相关系统文件337中所存储的增强控制值或QoS最小值,来生成用于增强控制或QoS最小值控制的控制信号(S242)。例如,控制信号可以包括频率控制信号CTR_C和功率控制信号CTR_P。
当终止空闲状态373中的空闲任务370时(图3的375或S210中的否),则在空闲模块350中所存储的空闲终止工作线程回调353可以调度空闲终止工作线程313(S230)。因此,与空闲终止工作线程313相对应的空闲终止工作线程383可以被调度或列队在工作序列380中。例如,空闲终止工作线程回调353可以设置闲终止工作线程381的计时器的超时时间或过期时间。
工作序列380可以确定在空闲终止工作线程381中所设置的过期时间是否过期(或经过)(S232)。当过期时间未过期或经过时(S232中的否),则工作序列380可以重复或连续地运行处理S232。
然而,当过期时间过期或经过时(S232中的是),则空闲终止工作线程313或383可以取消空闲起始工作线程311或381的调度(或定时器的超时值或过期时间)(S234)。空闲起始工作线程313或383可以生成指令增强起始或提高增强等级的提高指令事件EVENT2,并且向增强器S330广播提高指令事件EVENT2(S236)。
增强器330可以响应于提高指令事件EVENT2来设置用于控制增强(或增强等级)的增强控制值或QoS最小值(S240)。即,增强器330可以解析提高指令事件EVENT2,并且将与解析结果相对应的(一个或多个)值存储在QoS相关系统文件337中。QoS控制器340可以基于在QoS相关系统文件337中所存储的增强控制值或QoS最小值,来生成用于增强控制或QoS最小值控制的控制信号(S242)。例如,控制信号可以包括频率控制信号CTR_C和功率控制信号CTR_P。
图7和图8是描述可以通过图3中所示的软件组件所执行的控制QoS最小值的方法的示例性实施例的流程图。
参考图1、图3、图7和图8,当计算机系统100被初始化或启动时(S310),则负载追踪器310可以将空闲回调(例如,空闲起始工作线程回调351和空闲终止工作线程回调353)注册在空闲模块350中(S312)。在启动期间(S310),负载追踪器310可以生成空闲起始工作线程311和空闲终止工作线程313。在启动(S310)期间,增强器330可以设置由负载追踪器310所生成的空闲起始工作线程311和空闲终止工作线程313中的每个的超时时间或过期时间。
当运行空闲任务370时(图3的371或图7的S314),则空闲模块350可以感测通过空闲任务370的运行371所生成的中断INT1,并且调用空闲起始工作线程回调351(S316)。
当列队的空闲终止工作线程存在于工作队列中380时,空闲起始工作线程回调351可以取消或擦除空闲终止工作线程的调度(在定时器中所设置的超时时间或过期时间)(S318)。空闲起始工作线程回调351可以确定空闲起始工作线程311或381的调度前提(S320),并且满足前提时,则空闲起始工作线程回调351可以调度空闲起始工作线程311或381(S322)。
例如:(1)当在工作序列380中空闲起始工作线程未待决并且在工作序列380中空闲终止工作线程未待决时,或(2)当在工作序列380中空闲起始工作线程未待决并且核心210增强时,则空闲起始工作线程回调351可以调度空闲起始工作线程311或381(S322)。
工作序列380可以确定在空闲起始工作线程381中所设置的过期时间是否过期(或经过)(S324)。当过期时间未过期或经过时(S324中的否),则工作序列380可以执行处理S324。然而,当过期时间过期或经过时(S324中的是),则空闲起始工作线程311或381可以生成指令增强终止或降低增强等级的降低指令事件EVENT1,并且向增强器S330广播降低指令事件EVENT1(S326)。
增强器330的事件接收器331可以响应于降低指令事件EVENT1来调用增强终止器335(S328)。例如,增强器330可以解析降低指令事件EVENT1并且根据解析的结果调用增强终止器335(S328)。增强终止器335可以如预先定义地在QoS相关系统文件337中设置QoS相关参数(S330)。QoS控制器340可以基于在QoS相关系统文件337中所存储的增强控制值或QoS最小值,来生成用于增强控制或QoS最小值控制的控制信号(S332)。例如,控制信号可以包括频率控制信号CTR_C和/或功率控制信号CTR_P。当空闲任务370被运行时,计算机系统100可以维持空闲任务370的空闲(或空闲状态)(图3的373)。当空闲任务370终止时(图3的375或图7的340),则空闲模块350可以感测通过空闲任务370的终止(图3的375)所生成的中断INT2,并且调用空闲终止工作线程回调335(S342)。
空闲终止工作线程回调353可以确定空闲终止工作线程313或383的调度前提(S344),并且当满足前提时,则空闲终止工作线程回调353可以调度空闲终止工作线程313或383(S346)。
例如:(1)当在工作序列380中空闲终止工作线程未待决并且在工作序列380中空闲起始工作线程待决时,或(2)当在工作序列380中空闲终止工作线程未待决并且核心210未增强时,则空闲终止工作线程回调353可以调度空闲终止工作线程313或383(S346)。
工作序列380可以确定在空闲终止工作线程383中所设置的过期时间是否过期(或经过)(S348)。当过期时间未过期或经过时(S348中的否),则工作序列380可以重复或连续地运行处理S348。
然而,当过期时间过期或经过时(S348中的是),则当空闲起始工作线程被列队在工作序列380中时,空闲终止工作线程313或383可以取消或擦除空闲起始工作线程的调度(或在定时器中所设置的超时时间或过期时间)(S350)。
空闲终止工作线程313可以生成指令增强起始或提高增强等级的提高指令事件EVENT2,并且向增强器330广播提高指令事件EVENT2(S352)。
增强器330的事件接收器331可以响应于提高指令事件EVENT2来调用增强起始器333(S328)。例如,增强器330可以解析提高指令事件EVENT2并且根据解析的结果调用增强起始器333(S328)。增强起始器335可以如预先定义地在QoS相关系统文件337中设置QoS相关参数(S330)。QoS控制器340可以基于在QoS相关系统文件337中所存储的增强控制值或QoS最小值,来生成用于增强控制或QoS最小值控制的控制信号(S332)。例如,控制信号可以包括频率控制信号CTR_C和/或功率控制信号CTR_P。
图9示出了可以作为图2中所示的QoS控制器340的示例性实施例的QoS控制器340A。根据图2中的QoS控制器340的示例性实施例的QoS控制器340A可以被例示为DVFS程序。QoS控制器340A可以包括DVFS调节器341、CMU驱动器343、以及PMU驱动器345。
DVFS调节器341可以从QoS相关系统文件337中读取并且分析增强控制值或QoS最小值,并且将与分析结果相对应的(一个或多个)分析值传送到CMU驱动器343和PMU驱动器345。CMU驱动器343可以基于(一个或多个)分析值生成频率控制信号CTR_C并且将频率控制信号CTR_C传送到CMU 220。PMU 345可以基于(一个或多个)分析值生成功率控制信号CTR_P并且将功率控制信号CTR_P传送到PMU 230。
图10示出了可以作为图1中所示的CPU 210的示例性实施例的CPU 210B。参考图10,假定CPU 210B包括四个核心:分别地为第一核心210-1、第二核心210-2、第三核心210-3以及第四核心210-4。然而,本发明构思的技术构思不限于在CPU 210B中所包括的核心的数目。假定CPU 210B包括与核心210-1、210-2、210-3以及210-4中的每个有关的指令缓存I-Cache和数据缓存D-Cache,其中,I-Cache和D-Cache包括CPU 210B的存储器。
第一核心210-1可以包括(或运行)第一负载追踪器310-1、增强器330、QoS相关系统文件337、QoS控制器340、空闲模块350-1以及工作序列380-1。第一核心210-1可以使用时钟信号CLK1_1和操作电压PW1_1来进行操作。例如,配置元件310-1、330、337、340、350-1以及380-1中的每个可以被存储在第一核心210-1的指令缓存I-Cache(即,存储器)中,并且配置元件310-1、330、337、340、350-1以及380-1中的每个可以被第一核心210-1运行。
当计算机系统100被初始化(或启动)时,则第一负载追踪器310-1可以将用于第一核心210-1的第一空闲起始工作线程回调和第一空闲终止工作线程回调注册在第一空闲模块350-1中,并且生成用于第一核心210-1的第一空闲起始工作线程和第一空闲终止工作线程。当计算机系统100被初始化时,则增强器330可以设置第一空闲起始工作线程和第一空闲终止工作线程中的每个的过期时间。
当在第一核心210-1中运行第一空闲任务时,则第一空闲模块350-1可以调用在第一空闲模块350-1中所注册的第一空闲起始工作线程回调。当在第一核心210-1中执行第一空闲任务时,则第一空闲起始工作线程回调可以取消已经存在于第一工作序列380-1中的(一个或多个)空闲起始工作线程的调度。
当:(1)在第一工作序列380-1中空闲起始工作线程未待决并且在第一工作序列380-1中空闲终止工作线程未待决时,或(2)在第一工作序列380-1中空闲起始工作线程未待决并且第一核心210-1增强时,则第一空闲起始工作线程回调可以调度第一空闲起始工作线程。
第一工作序列380-1可以确定第一空闲起始工作线程的过期时间是否过期(或经过)。在第一空闲起始工作线程的过期时间过期(或经过)后,第一空闲起始工作线程可以将用于第一核心210-1的繁忙核心计数降低1,并且向增强器330传送降低指令事件EVENT1。
当在第一核心210-1中终止第一空闲任务的运行时,则第一空闲模块350-1可以调用在第一空闲模块350-1中所注册的第一空闲终止工作线程回调。
当:(1)在第一工作序列380-1中空闲终止工作线程未待决并且在第一工作序列380-1中空闲起始工作线程待决时,或(2)在第一工作序列380-1中空闲终止工作线程未待决并且第一核心210-1未增强时,则第一空闲终止工作线程回调可以调度第一空闲终止工作线程。
第一工作序列380-1可以确定第一空闲终止工作线程的过期时间是否过期(或经过)。在第一空闲终止工作线程的过期时间过期(或经过)后,第一空闲终止工作线程可以取消在第一工作序列380-1中所调度的空闲起始工作线程的调度,将用于第一核心210-1的繁忙核心计数增加1,以及向增强器330传送提高指令事件EVENTA。
第二核心210-2可以包括(或运行)第二负载追踪器310-2、空闲模块350-2以及工作序列380-2。第二核心210-2可以使用时钟信号CLK1_2和操作电压PW1_2来进行操作。例如,配置元件310-2、350-2以及380-2中的每个可以被存储在第二核心210-2的指令缓存I-Cache(即,存储器)中,并且配置元件310-2、350-2以及380-2中的每个可以被第二核心210-2运行,如图10中所示。
当计算机系统100被初始化(或启动)时,则第二负载追踪器310-2可以将用于第二核心210-2的第二空闲起始工作线程回调和第二空闲终止工作线程回调注册在第二空闲模块350-2中,并且生成用于第二核心210-2的第二空闲起始工作线程和第二空闲终止工作线程。当计算机系统100被初始化时,则第一核心210-1的增强器330可以设置第二空闲起始工作线程和第二空闲终止工作线程中的每个的过期时间。
当在第二核心210-2中运行第二空闲任务时,则第二空闲模块350-2可以调用在第二空闲模块350-2中所注册的第二空闲起始工作线程回调。当在第二核心210-2中执行第二空闲任务时,则第二空闲起始工作线程回调可以取消已经存在于第二工作序列380-2中的(一个或多个)空闲起始工作线程的调度。
当:(1)在第二工作序列380-2中空闲起始工作线程未待决并且在第二工作序列380-2中空闲终止工作线程未待决时,或(2)在第二工作序列380-2中空闲起始工作线程未待决并且第二核心210-2增强时,则第二空闲起始工作线程回调可以调度第二空闲起始工作线程。
第二工作序列380-2可以确定第二空闲起始工作线程的过期时间是否过期(或经过)。在第二空闲起始工作线程的过期时间过期(或经过)后,第二空闲起始工作线程可以将用于第二核心210-2的繁忙核心计数降低1,并且向增强器330传送降低指令事件EVENTB。
当在第二核心210-2中终止第二空闲任务的运行时,第二空闲模块350-2可以调用在第二空闲模块350-2中所注册的第二空闲终止工作线程回调。
当:(1)在第二工作序列380-2中空闲终止工作线程未待决并且在第二工作序列380-2中空闲起始工作线程待决时,或(2)在第二工作序列380-2中空闲终止工作线程未待决并且第二核心210-2未增强时,则第二空闲终止工作线程回调可以调度第二空闲终止工作线程。
第二工作序列380-2可以确定第二空闲终止工作线程的过期时间是否过期(或经过)。在第二空闲终止工作线程的过期时间过期(或经过)后,第二空闲终止工作线程可以取消在第二工作序列380-2中所调度的空闲起始工作线程的调度,将用于第二核心210-2的繁忙核心计数增加1,以及向增强器330传送提高指令事件EVENTB。
第三核心210-3可以包括(或运行)第三负载追踪器310-3、空闲模块350-3以及工作序列380-3。第三核心210-3可以使用时钟信号CLK1_3和操作电压PW1_3来进行操作。例如,配置元件310-3、350-3以及380-3中的每个可以被存储在第三核心210-3的指令缓存I-Cache(即,存储器)中,并且配置元件310-3、350-3以及380-3中的每个可以被第三核心210-3运行,如图10中所示。
当计算机系统100被初始化(或启动)时,则第三负载追踪器310-3可以将用于第三核心210-3的第三空闲起始工作线程回调和第三空闲终止工作线程回调注册在第三空闲模块350-3中,并且生成用于第三核心210-3的第三空闲起始工作线程和第三空闲终止工作线程。当计算机系统100被初始化时,则增强器330可以设置第三空闲起始工作线程和第三空闲终止工作线程中的每个的过期时间。
当在第三核心210-3中运行第三空闲任务时,则第三空闲模块350-3可以调用在第三空闲模块350-3中所注册的第三空闲起始工作线程回调。当在第三核心210-3中执行第三空闲任务时,则第三空闲起始工作线程回调可以取消已经存在于第三工作序列380-3中的(一个或多个)空闲起始工作线程的调度。
当在第三工作序列380-3中空闲起始工作线程未待决并且在第三工作序列380-3中空闲终止工作线程未待决时,或(2)在第三工作序列380-3中空闲起始工作线程未待决并且第三核心210-3增强时,则第三空闲起始工作线程回调可以调度第三空闲起始工作线程。
第三工作序列380-3可以确定第三空闲起始工作线程的过期时间是否过期(或经过)。在第三空闲起始工作线程的过期时间过期(或经过)后,第三空闲起始工作线程可以将用于第三核心210-3的繁忙核心计数降低1,并且向增强器330传送降低指令事件EVENTC。
当在第三核心210-3中终止第三空闲任务的运行时,第三空闲模块350-3可以调用在第三空闲模块350-3中所注册的第三空闲终止工作线程回调。
当:(1)在第三工作序列380-3中空闲终止工作线程未待决并且在第三工作序列380-3中空闲起始工作线程待决时,或(2)在第三工作序列380-3中空闲终止工作线程未待决并且第三核心210-3未增强时,则第三空闲终止工作线程回调可以调度第三空闲终止工作线程。
第三工作序列380-3可以确定第三空闲终止工作线程的过期时间是否过期(或经过)。在第三空闲终止工作线程的过期时间过期(或经过)后,第三空闲终止工作线程可以取消在第三工作序列380-3中所调度的空闲起始工作线程的调度,将第三核心210-3的繁忙核心计数增加1,以及向增强器330传送提高指令事件EVENTC。
第四核心210-4可以包括(或运行)第四负载追踪器310-4、空闲模块350-4以及工作序列380-4。第四核心210-4可以使用时钟信号CLK1_4和操作电压PW1_4来进行操作。例如,配置元件310-4、350-4以及380-4中的每个可以被存储在第四核心210-4的指令缓存I-Cache(即,存储器)中,并且配置元件310-4、350-4以及380-4中的每个可以被第四核心210-4运行,如图10中所示。
当计算机系统100被初始化(或启动)时,则第四负载追踪器310-4可以将用于第四核心210-4的第四空闲起始工作线程回调和第四空闲终止工作线程回调注册在第四空闲模块350-4中,并且生成用于第四核心210-4的第四空闲起始工作线程和第四空闲终止工作线程。当计算机系统100被初始化时,则增强器330可以设置第四空闲起始工作线程和第四空闲终止工作线程中的每个的过期时间。
当在第四核心210-4中运行第四空闲任务时,则第四空闲模块350-4可以调用在第四空闲模块350-4中所注册的第四空闲起始工作线程回调。当在第四核心210-4中执行第四空闲任务时,则第四空闲起始工作线程回调可以取消已经存在于第四工作序列380-4中的(一个或多个)空闲起始工作线程的调度。
当:(1)在第四工作序列380-4中空闲起始工作线程未待决并且在第四工作序列380-4中空闲终止工作线程未待决时,或(2)在第四工作序列380-4中空闲起始工作线程未待决并且第四核心210-4增强时,则第四空闲起始工作线程回调可以调度第四空闲起始工作线程。
第四工作序列380-4可以确定第四空闲起始工作线程的过期时间是否过期(或经过)。在第四空闲起始工作线程的过期时间过期(或经过)后,第四空闲起始工作线程可以将用于第四核心210-4的繁忙核心计数降低1,并且向增强器330传送降低指令事件EVENTD。
当在第四核心210-4中终止第四空闲任务的运行时,第四空闲模块350-4可以调用在第四空闲模块350-4中所注册的第四空闲终止工作线程回调。
当:(1)在第四工作序列380-4中空闲终止工作线程未待决并且在第四工作序列380-4中空闲起始工作线程待决时,或(2)在第四工作序列380-4中空闲终止工作线程未待决并且第四核心210-4未增强时,则第四空闲终止工作线程回调可以调度第四空闲终止工作线程。
第四工作序列380-4可以确定第四空闲终止工作线程的过期时间是否过期(或经过)。在第四空闲终止工作线程的过期时间过期(或经过)后,则第四空闲终止工作线程可以取消在第四工作序列380-4所调度的空闲起始工作线程的调度,将用于第四核心210-4的繁忙核心计数增加1,以及向增强器330传送提高指令事件EVENTD。
当事件EVENTA、EVENTB、EVENTC以及EVENTD中的至少一个被广播给增强器330时,则在待机状态中的线程被内核系统调用API唤醒,并且增强器330可以解析至少一个所接收的事件。当至少一个事件被解析时,则增强器330可以检查(或确定)核心210-1、210-2、210-3以及210-4中的每个的繁忙核心计数。增强器330可以设置(或写入)与总共的繁忙核心计数相对应的QoS最小值,该总共的繁忙核心计数与QoS相关系统文件337中的检查的结果相对应。QoS控制器340可以基于从QoS相关系统文件337所输出的QoS最小值来生成用于控制核心210-1、210-2、210-3以及210-4中的每个的QoS最小值的控制信号CTR_C和CTR_P。
第一时钟信号CLK1整体地表示时钟信号CLK1_1至CLK1_4,并且第一操作电压PW1整体地表示操作电压PW1_1至PW1_4。然而,CMU 220可以基于频率控制信号CTR_C来控制时钟信号CLK1_1至CLK1_4中的每个的频率。此外,PMU 230可以基于功率控制信号CTR_P来生成用于控制操作电压PW1_1至PW1_4中的每个的电平的控制信号CTR,并且将控制信号CTR输出到PMIC 270。
事件EVENTA、EVENTB、EVENTC以及EVENTD中的每个可以表示如参考图3描述的降低指令事件EVENT1或提高指令事件EVENT2。
核心210-1、210-2、210-3以及210-4中的每个的负载追踪器310-1、310-2、310-3以及310-4中的每个在结构和功能上与参考图3至图9描述的负载追踪器310相同或相似。核心210-1、210-2、210-3以及210-4中的每个的空闲模块350-1、350-2、350-3以及350-4中的每个在结构和功能上与参考图3至图9描述的空闲模块350相同或相似。核心210-1、210-2、210-3以及210-4中的每个的工作序列380-1、380-2、380-3以及380-4中的每个在结构和功能上与参考图3至图9描述的工作序列380相同或相似。
图11是描述使用图10中所示的CPU 210B所执行的控制增强等级的方法的概念图。参考图10和图11,核心210-1、210-2、210-3以及210-4中的每个的相应的负载追踪器310-1、310-2、310-3以及310-4的空闲起始工作线程可以执行降低繁忙核心计数的操作,并且相应的负载追踪器310-1、310-2、310-3以及310-4的空闲终止工作线程可以执行增加繁忙核心计数的操作。这里,繁忙核心计数表示要被增强的核心的数目。
例如,当在核心210-1、210-2、210-3以及210-4中的每个中运行空闲任务时,用于核心210-1、210-2、210-3以及210-4中的每个的繁忙核心计数可以降低;并且当在核心210-1、210-2、210-3以及210-4中的每个中终止空闲任务时,用于核心210-1、210-2、210-3以及210-4中的每个的繁忙核心计数可以增加。
在第一核心210-1中所运行的增强器330可以解析事件EVENTA、EVENTB、EVENTC以及EVENTD中的每个,并且根据解析结果来计算用于CPU 210B总共的繁忙核心计数
如图11中所示,当仅第三核心CORE3(210-3)在第一时间T1运行需要增强的任务时,第三核心CORE3(210-3)的第三负载追踪器310-3向增强器330传送提高指令事件EVENTC=EVENT2,并且因此,由增强器330所计算的总共的繁忙核心计数为1。
当第一核心CORE1 210-1在第二时间T2执行需要增强的任务时,第一核心CORE1210-1的第一负载追踪器310-1向增强器330传送提高指令事件EVENTA=EVENT2,并且从而,由增强器330所计算的总共的繁忙核心计数为2。
当第二核心CORE2 210-2在第二时间T3执行需要增强的任务时,第二核心CORE2210-2的第二负载追踪器310-2向增强器330传送提高指令事件EVENTB=EVENT2,并且从而,由增强器330所计算的总共的繁忙核心计数为3。在第四时间T4处,由增强器330所计算的总共的繁忙核心计数仍然为3。
当如参考图4所描述地ETH未过期或经过时,即使第二核心CORE2 210-2在第五时间T5终止需要增强的任务,由增强器330所计算的总共的繁忙核心计数可以被维持为3。因为在ETH过期或经过后,第二核心CORE2 210-2的第二负载追踪器310-2在第六时间T6向增强器330传送降低指令事件EVENTB=EVENT1。响应于此,由增强器330所计算的总共的繁忙核心计数可以从3降低到2。
在第三核心CORE3 210-3终止需要增强的任务并且ETH在第七时间T7过期或经过之后,第三核心CORE3 210-3的第三负载追踪器310-3向增强器330传送降低指令事件EVENTC=EVENT1,并且从而,由增强器330所计算的总共的繁忙核心计数可以从2降低到1。
在第八时间T8,即,在第一核心CORE1终止需要增强的任务并且ETH过期或经过之后,第一核心CORE1的第一负载追踪器310-1向增强器330传送降低指令事件EVENTA=EVENT1,并且从而,由增强器330所计算的总共的繁忙核心计数可以从1降低到0。图11中所示的STH和ETH中的每个可以与参考图4所描述的STH和ETH中的每个相同。
图12是描述使用图10中所示的CPU 210B所执行的控制增强等级的方法的示例性实施例的概念图。参考图4、图10、图11以及图12,假定当总共的繁忙核心计数为1或2时的增强等级是等级-1(LV1),而当总共的繁忙核心计数为3或4时的增强等级是等级-2(LV2)。
假定图10中所示的第一核心210-1和第二核心210-2中的每个是小核,并且第三核心210-3和第四核心210-4中的每个是大核。在图12中,假定MIF是图1中所示的存储器接口250和260中的至少一个,并且INT是图1中所示的输入/输出接口265。如参考图10和图11所描述地,由第一核心210-1所运行的增强器330可以基于从核心210-1、210-2、210-3以及210-4中的每个所输出的事件EVENTA、EVENTB、EVENTC以及EVENTD中的每个来计算总共的繁忙核心计数。
第一核心210-1的增强器330可以基于所计算的总共的繁忙核心计数来在QoS相关系统文件337中设置QoS最小值。因此,QoS控制器340可以生成用于控制QoS最小值的控制信号CTR_C和CTR_P。CMU 220可以响应于频率控制信号CTR_C来控制时钟信号CLK1_1、CLK1_2、CLK1_3、CLK1_4、CLK2、CLK3、CLK4以及CLK5当中的至少一个时钟信号的频率。
例如,当增强等级是等级-1(LV1)时,则CMU 220可以将被供给到大核的时钟信号的频率调整为1.5GHz并且将被供给到小核的时钟信号的频率调整为1.5GHz,将被供给到INT的时钟信号的频率调整为500MHz,将被供给到MIF的时钟信号的频率调整为1.5GHz,以及开启HMP增强。当HMP增强开启时,被指派给小核的任务可以强制地被指派给大核。
例如,当增强等级是等级-2(LV2)时,则CMU 220可以将被供给到大核的时钟信号的频率调整为2.0GHz并且将被供给到小核的时钟信号的频率调整为1.5GHz,将被供给到INT的时钟信号的频率调整为600MHz,将被供给到MIF的时钟信号的频率调整为1.6GHz,以及开启HMP增强。
图13是描述使用图10中所示的CPU 210B所执行的软件组件来控制QoS最小值的方法的示例性实施例的概念图;以及图14、图15和图16是描述使用图10中所示的CPU 210B所执行的软件组件来控制QoS最小值的方法的示例性实施例的流程图。
参考图1至图3以及图13至图16,当计算机系统100被初始化(或启动)时(S410),则负载追踪器310、310-1、310-2、310-3或310-4(整体地,310A)可以将用于相对应的核心210-1、210-2、210-3或210-4的空闲工作线程回调,例如,空闲起始工作线程回调351和空闲终止工作线程回调353,注册在空闲模块350、350-1、350-2、350-3或350-4(整体地,350A)中(S412)。
负载追踪器310A可以生成用于相对应的核心210-1、210-2、210-3或210-4的空闲起始工作线程311和空闲终止工作线程313(S414)。
当计算机系统100被初始化时,则增强器330可以从第二存储器设备290读取配置文件382(S416),并且通过繁忙核心计数或通过总共的繁忙核心计数,通过系统文件330-2来将在调度器384和/或DVFS(或DFS)中要设置的参数330-3加载到存储器设备215或280(S418)。例如,配置文件382可以是图12中示意性地示出的增强等级配置。然而,其不限于此。图13中所示的增强器330可以包括主回路(main loop)330-1,并且主回路330-1可以包括增强器330A,增强器330A包括事件接收器331、增强起始器333以及增强终止器335。例如,增强器330和增强器330A可以包括数据流;然而,增强器330的功能可以与增强器330A的功能相同。
增强器330可以设置由负载追踪器310A所生成的空闲起始工作线程311和空闲终止工作线程313中的每个的过期时间(S420)。例如,增强器330可以设置图4中所示的过期时间STH和ETH中的每个。
增强器330可以打开通信应用编程接口(API)以用于接收或监听来自内核或内核区域的事件EVENT1、EVENT2、EVENTA、EVENTB、EVENTC和/或EVENTD(整体地,为EVENT)(S422)。通信API可以指代套接口(socket)。通信API或套接口可以指代用于传送或接收包括繁忙核心计数的事件EVENT的通信信道。
增强器330可以打开通信API,以及可以调用通信API的内核系统调用API,并且进入待机状态(S424)。
当空闲任务370起始时(S510),则空闲模块350A可以调用空闲起始工作线程回调351(S512)。
空闲起始工作线程回调351可以取消存在于工作序列380、380-1、380-2、380-3和/或380-4(整体地,380)中的空闲终止工作线程的调度(或定时器的过期时间)(S514)。如上所述,当要被取消的空闲终止工作线程不存在于工作序列380中时,处理S514将被省略或跳过。
当:(1)在工作序列380中空闲起始工作线程未待决并且在工作序列380中空闲终止工作线程未待决时,或(2)在工作序列380中空闲起始工作线程未待决并且相对应的核心210-1、210-2、210-3或210-4增强时(S516),则空闲起始工作线程回调351可以调度空闲起始工作线程311(S518)。
工作序列380可以确定空闲起始工作线程311的过期时间是否过期(或经过)(S520)。当空闲起始工作线程311的过期时间过期(或经过)(S520中的是)时,空闲起始工作线程311可以将相对应的核心211、210-1、210-2、210-3或210-4的繁忙核心计数降低1,并且向增强器330广播指令增强终止或增强等级降低的降低指令事件EVENT(S522)。
当降低指令事件EVENT被广播到增强器330时,则在待机状态中的线程可以被增强器330的内核系统调用API(例如,epoll)唤醒(S524)。例如,主回路330-1的事件接收器331可以接收从负载追踪器310A所传送的降低指令事件EVENT,解析降低指令事件EVENT(S526),以及根据解析结果调用增强终止器335。
增强终止器335可以根据解析结果将与QoS最小值相对应的(一个或多个)参数写入在QoS相关系统文件337中(S528)。QoS控制器340可以从QoS相关系统文件337读取与QoS最小值相对应的(一个或多个)参数,使用(一个或多个)参数生成相对应的核心211、210-1、210-2、210-3或210-4的QoS相关的控制信号CTR_C和CTR_P,以及输出控制信号CTR_C和CTR_P(S530)。
控制电路200可以根据基于控制信号CTR_C和CTR_P进行操作的CMU 220和PMU 230的控制来控制控制电路200的QoS或QoS最小值(S532)。即,CMU 220可以基于频率控制信号CTR_C来调整时钟信号CLK1、CLK2、CLK3、CLK4以及CLK5中的至少一个的频率。PMIC 270可以基于与功率控制信号CTR_P有关的控制信号CTR来调整操作电压PW1、PW2、PW3、PW4、PW5以及PW6中的至少一个的电平。
如以上参考图10所描述地,CMU 220可以基于频率控制信号CTR_C来调整时钟信号CLK1_1、CLK1_2、CLK1_3以及CLK1_4中的至少一个的频率。PMIC 270可以基于与功率控制信号CTR_P有关的控制信号CTR来调整操作电压PW1_1、PW1_2、PW1_3以及PW1_4中的至少一个的电平。继续参考图13、图14和图16,当终止空闲任务370的运行时(S610),则空闲模块350A可以调用空闲终止工作线程回调358(S612)。
当:(1)在工作序列380中空闲终止工作线程未待决并且在工作序列380中空闲起始工作线程待决时,或(2)在工作序列380中空闲终止工作线程未待决并且相对应的核心211、210-1、210-2、210-3或210-4未增强时(S614),则空闲终止工作线程回调353可以调度空闲终止工作线程313(S615)。
工作序列380可以确定空闲终止工作线程313的过期时间是否过期(或经过)(S616)。当空闲终止工作线程的过期时间过期(或经过)(S616中的是)时,则空闲终止工作线程313可以取消或擦除用于相对应的核心211、210-1、210-2、210-3或210-4的空闲起始工作线程的调度(定时器的过期时间)(S618)。
空闲终止工作线程313可以将用于相对应的核心211、210-1、210-2、210-3或210-4的繁忙核心计数增加1,并且向增强器330广播指令增强起始或提高增强等级的提高指令事件EVENT(S620)。
当提高指令事件EVENT被广播到增强器330时,则在待机状态中的线程可以被增强器330的内核系统调用API(例如,epoll)唤醒(S524)。例如,主回路330-1的事件接收器331可以接收从负载追踪器310A所传送的提高指令事件EVENT,解析提高指令事件EVENT(S526),以及根据解析结果调用增强起始器333。
增强起始器333可以根据解析结果将与QoS最小值相对应的(一个或多个)参数写入在QoS相关系统文件337中(S528)。QoS控制器340可以从QoS相关系统文件337读取与QoS最小值相对应的(一个或多个)参数,使用(一个或多个)参数生成相对应的核心211、210-1、210-2、210-3或210-4的QoS相关的控制信号CTR_C和CTR_P,以及输出控制信号CTR_C和CTR_P(S530)。
控制电路200可以根据基于控制信号CTR_C和CTR_P进行操作的CMU 220和PMU 230的控制来控制控制电路200的QoS或QoS最小值(S532)。即,CMU 220可以基于频率控制信号CTR_C来调整时钟信号CLK1、CLK2、CLK3、CLK4以及CLK5中的至少一个的频率。PMIC 270可以基于与功率控制信号CTR_P有关的控制信号CTR来调整操作电压PW1、PW2、PW3、PW4、PW5以及PW6中的至少一个的电平。如以上参考图10所描述地,CMU 220可以基于频率控制信号CTR_C来调整时钟信号CLK1_1、CLK1_2、CLK1_3以及CLK1_4中的至少一个的频率。PMIC 270可以基于与功率控制信号CTR_P有关的控制信号CTR来调整操作电压PW1_1、PW1_2、PW1_3以及PW1_4中的至少一个的电平。
图17是用于描述在图3中所示的空闲模块中注册空闲工作线程回调的处理的程序代码的示例性实施例。参考图17,在图17中示例性地示出的程序代码表示用于在空闲模块中注册空闲工作线程回调,例如,空闲起始工作线程回调和空闲终止工作线程回调的代码的一部分。
图18是用于描述在图3中所示的空闲模块中所注册的空闲工作线程回调中的空闲起始工作线程和空闲终止工作线程的调度处理和取消处理的程序代码的示例性实施例。参考图18,在图18中示例性地示出的程序代码表示其中空闲起始工作线程回调调度并且取消空闲起始工作线程的代码的一部分,以及其中空闲终止工作线程回调调度并且取消空闲终止工作线程的代码的一部分。
如参考图1至图18所描述地,在其中当核心未进行操作时运行空闲任务的CPU 210或包括CPU 210的计算机系统100中,当运行空闲任务时调度空闲起始工作线程,并且当终止空闲任务的运行时调度空闲终止工作线程。
当运行空闲任务时,则取消空闲终止工作线程的调度。当未取消所调度的空闲起始工作线程和所调度的空闲终止工作线程中的每个的调度,并且所调度的空闲起始工作线程的过期时间过期或经过,或者所调度的空闲终止工作线程过期或经过时,则可以执行针对所调度的空闲起始工作线程所指定的操作,或者可以执行针对所调度的空闲终止工作线程所指定的操作。
针对空闲起始工作线程所指定的操作要向增强器330广播降低增强等级的事件,并且针对空闲终止工作线程所指定的操作要向增强器330广播提高增强等级的事件。增强器330实时地监听事件。当增强器330接收事件时,执行针对所接收的事件预先定义的操作。预先定义的操作可以包括增强的起始、增强的终止、增强等级的改变、与增强有关的外围设备240、250、260以及265中的至少一个的操作的控制、和/或依赖于通过计算机系统100所运行的OS的操作。
根据本发明构思的示例性实施例来操作CPU的方法可以当迫切地需要高性能时自动感测,并且根据感测结果自动地设置QoS最小值。根据本发明构思的示例性实施例来操作CPU的方法可以检基于中断来检测负载的发生,而不周期性地轮询CPU的负载。
尽管已经示出并且描述了本一般性发明构思的一些实施例,但是本领域技术人员将意识到在这些实施例中可以进行改变,而不脱离一般性发明构思的原理和精神,该一般性发明构思的范围在所附的权利要求书及其等同形式中被定义。

Claims (25)

1.一种操作中央处理单元(CPU)的方法,所述CPU包括用于存储第一负载追踪器和增强器的第一存储器以及用于运行第一负载追踪器和增强器的第一核心,所述方法包括:
通过所述第一负载追踪器来确定在所述第一核心中是否运行第一空闲任务;
通过所述第一负载追踪器来生成与所述确定结果相对应的第一事件;
通过所述第一负载追踪器来向所述增强器广播所生成的第一事件;以及
通过所述增强器来基于所述第一事件设置第一核心的服务质量(QoS)最小值。
2.根据权利要求1所述的方法,进一步包括:
当所述CPU被初始化时,通过所述第一负载追踪器来将空闲起始工作线程回调和空闲终止工作线程回调注册在空闲模块中,以及
当所述CPU被初始化时,通过所述第一负载追踪器来生成空闲起始工作线程和空闲终止工作线程。
3.根据权利要求2所述的方法,进一步包括:
当所述CPU被初始化时,通过所述增强器来设置所述空闲起始工作线程的第一过期时间和所述空闲终止工作线程的第二过期时间。
4.根据权利要求3所述的方法,进一步包括:
当所述第一空闲任务被运行时,通过所述空闲模块来调用所述空闲起始工作线程回调;以及
当所述第一空闲任务被终止时,通过所述空闲模块来调用所述空闲终止工作线程回调。
5.根据权利要求4所述的方法,进一步包括:
当所述第一空闲任务被运行时,通过所述空闲起始工作线程回调来调度所述空闲起始工作线程,以及
当所述第一空闲任务被终止时,通过所述空闲终止工作线程回调来调度所述空闲终止工作线程。
6.根据权利要求5所述的方法,进一步包括:当所述第一空闲任务被运行时,通过所述空闲起始工作线程回调来取消存在于工作序列中的前一个空闲终止工作线程的调度。
7.根据权利要求5所述的方法,其中,通过所述第一负载追踪器来生成与所述确定结果相对应的所述第一事件包括下述之一:
当所述第一过期时间经过时,通过所述空闲起始工作线程来生成指令QoS最小值降低的第一事件,以及
当所述第二过期时间经过时,通过所述空闲终止工作线程来取消所述空闲起始工作线程,并且生成指令QoS最小值增加的第一事件。
8.根据权利要求1所述的方法,进一步包括:
通过所述增强器基于所设置的QoS最小值来向QoS控制器输出用于所述第一核心的动态电压频率调节(DVFS)的控制信号;以及
通过所述QoS控制器响应于所述控制信号来生成与所述第一核心的操作时钟信号的频率控制有关的频率控制信号和与所述第一核心的操作电压的控制有关的电压控制信号。
9.根据权利要求1所述的方法,其中,所述CPU进一步包括用于存储第二负载追踪器的第二存储器以及用于运行第二负载追踪器的第二核心,操作CPU的所述方法进一步包括:
通过所述第二负载追踪器来确定在所述第二核心中是否运行第二空闲任务;
通过所述第二负载追踪器来生成与所述确定结果相对应的第二事件;
通过所述第二负载追踪器来向在所述第一核心中所运行的所述增强器广播所生成的第二事件;以及
通过所述增强器来基于所述第一事件和所述第二事件设置所述第一核心的QoS最小值和所述第二核心的QoS最小值。
10.根据权利要求9所述的方法,进一步包括:基于所述第一核心的设置的QoS最小值和所述第二核心的设置的QoS最小值,将被指派给所述第一核心的任务强制地指派给所述第二核心。
11.一种操作片上系统的方法,所述片上系统包括:CPU,具有用于存储第一负载追踪器、增强器和QoS控制器的第一存储器,并且进一步具有用于运行第一负载追踪器、增强器和QoS控制器的第一核心;时钟管理单元;以及功率管理单元,所述方法包括:
通过所述第一负载追踪器来确定在所述第一核心中是否运行第一空闲任务;
通过所述第一负载追踪器来生成与所述确定结果相对应的第一事件;
通过所述第一负载追踪器来向所述增强器广播所生成的第一事件;
通过所述增强器来基于所述第一事件设置所述第一核心的服务质量(QoS)最小值;
通过所述QoS控制器来基于所述设置的QoS最小值输出频率控制信号和电压控制信号;
通过所述时钟管理单元来响应于所述频率控制信号控制被供给到所述第一核心的第一时钟信号的第一频率;以及
通过所述功率管理单元响应于所述电压控制信号来生成用于控制功率管理IC的控制信号,以用于将第一操作电压供给到所述第一核心。
12.根据权利要求11所述的方法,进一步包括:
当所述CPU被初始化时,通过所述第一负载追踪器来将空闲起始工作线程回调和空闲终止工作线程回调注册在空闲模块中,以及
当所述CPU被初始化时,通过所述第一负载追踪器来生成空闲起始工作线程和空闲终止工作线程。
13.根据权利要求12所述的方法,进一步包括:
当所述第一空闲任务被运行时,通过所述空闲模块来调用所述空闲起始工作线程回调;以及
当所述第一空闲任务被终止时,通过所述空闲模块来调用所述空闲终止工作线程回调。
14.根据权利要求13所述的方法,进一步包括:
当所述第一空闲任务被运行时,通过所述空闲起始工作线程回调来取消存在于工作序列中的前一个空闲终止工作线程的调度;
通过所述空闲起始工作线程回调来确定所述空闲起始工作线程的调度前提;以及
当满足所述调度前提时,通过所述空闲起始工作线程回调来调度所述空闲起始工作线程。
15.根据权利要求14所述的方法,其中,所述调度前提包括其中所述空闲起始工作线程或所述空闲终止工作线程均没有待决的情况,或者其中所述空闲起始工作线程未待决并且所述第一核心被增强的情况。
16.根据权利要求13所述的方法,进一步包括:
当所述第一空闲任务被终止时,通过所述空闲终止工作线程回调来确定所述空闲终止工作线程的调度前提;以及
当满足所述调度前提时,通过所述空闲终止工作线程回调来调度所述空闲终止工作线程。
17.根据权利要求16所述的方法,其中,所述调度前提包括其中所述空闲终止工作线程未待决并且所述空闲工作起始线程待决的情况,或者其中所述空闲终止工作线程未待决并且所述第一核心未被增强的情况。
18.根据权利要求16所述的方法,进一步包括:当所述空闲终止工作线程的过期时间过期时,通过所述空闲终止工作线程来取消所述空闲起始工作线程的调度。
19.根据权利要求11所述的方法,其中,所述CPU进一步包括用于存储第二负载追踪器的第二存储器以及用于运行第二负载追踪器的第二核心,所述方法进一步包括:
通过所述第二负载追踪器来确定在所述第二核心中是否运行第二空闲任务;
通过所述第二负载追踪器来生成与所述确定结果相对应的第二事件;
通过所述第二负载追踪器来向在所述第一核心中所运行的所述增强器广播所生成的第二事件;
通过所述增强器来基于所述第一事件和所述第二事件设置所述第一核心的QoS最小值和所述第二核心的QoS最小值;
通过所述QoS控制器来基于所述第一核心的设置的QoS最小值和所述第二核心的设置的QoS最小值输出频率控制信号和电压控制信号;
通过所述时钟管理单元来响应于所述频率控制信号控制被供给到所述第一核心的第一时钟信号的第一频率和被供给到所述第二核心的第二时钟信号的第二频率;以及
通过所述功率管理单元响应于所述电压控制信号来输出用于控制所述功率管理IC的控制信号,以用于将第一操作电压供给到所述第一核心并且将第二操作电压供给到所述第二核心。
20.一种操作计算系统的方法,所述计算系统包括:CPU,具有用于存储第一负载追踪器、增强器和QoS控制器的第一存储器,并且进一步具有用于运行第一负载追踪器、增强器和QoS控制器的第一核心;时钟管理单元;功率管理单元;以及功率管理IC,所述方法包括:
通过所述第一负载追踪器来确定在第一核心中是否运行第一空闲任务;
通过所述第一负载追踪器来生成与确定结果相对应的第一事件;
通过所述第一负载追踪器来向所述增强器广播所生成的第一事件;
通过所述增强器来基于第一事件设置所述第一核心的QoS最小值;
通过所述QoS控制器基于所设置的QoS最小值来输出第一频率控制信号和第一电压控制信号;
通过所述时钟管理单元来响应于所述第一频率控制信号控制被供给到所述第一核心的第一时钟信号的第一频率;
通过所述功率管理单元来响应于所述第一电压控制信号将第一控制信号输出到所述功率管理IC;以及
通过所述功率管理IC来响应于所述第一电压控制信号控制被供给到所述第一核心的第一操作电压。
21.一种方法,包括:
中央处理单元(CPU)监视CPU的第一核心的第一空闲任务的状态;
至少部分地基于CPU的第一核心的第一空闲任务的监视状态来设置CPU的增强等级;以及
通过时钟管理单元响应于所述增强等级来控制第一核心的第一操作时钟信号的第一频率。
22.根据权利要求21所述方法,进一步包括:
中央处理单元(CPU)监视CPU的第二核心的第二空闲任务的状态;
至少部分地基于CPU的第一核心的第一空闲任务的监视状态和CPU的第二核心的第二空闲任务的监视状态来设置CPU的增强等级;以及
通过时钟管理单元响应于所述增强等级来控制第一核心的第一操作时钟信号的第一频率和第二核心的第二操作时钟信号的第二频率。
23.根据权利要求21所述方法,进一步包括:
基于CPU的第一核心的第一空闲任务的监视状态来设置第一核心的服务质量(QoS)最小值;以及
响应于第一核心的QoS最小值来控制被供给到第一核心的第一操作电压。
24.根据权利要求23所述方法,进一步包括:
中央处理单元(CPU)监视CPU的第二核心的第二空闲任务的状态;
基于CPU的第二核心的第二空闲任务的监视状态来设置CPU的第二核心的服务质量(QoS)最小值;以及
响应于第二核心的QoS最小值来控制被供给到第二核心的第二操作电压。
25.根据权利要求21所述方法,其中,计算机包括所述CPU、用于与至少一个存储器设备进行通信的至少一个存储器接口、以及输入/输出接口,所述方法进一步包括:响应于增强等级来调整所述存储器接口的存储器接口时钟的频率以及I/O接口的I/O时钟的频率中的至少一个。
CN201610797860.1A 2015-08-31 2016-08-31 操作cpu的方法以及操作具有cpu的系统的方法 Active CN106484527B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020150122353A KR102375925B1 (ko) 2015-08-31 2015-08-31 Cpu의 작동 방법과 상기 cpu를 포함하는 시스템의 작동 방법
KR10-2015-0122353 2015-08-31

Publications (2)

Publication Number Publication Date
CN106484527A true CN106484527A (zh) 2017-03-08
CN106484527B CN106484527B (zh) 2022-04-12

Family

ID=58011595

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610797860.1A Active CN106484527B (zh) 2015-08-31 2016-08-31 操作cpu的方法以及操作具有cpu的系统的方法

Country Status (6)

Country Link
US (1) US10496149B2 (zh)
JP (1) JP6838897B2 (zh)
KR (1) KR102375925B1 (zh)
CN (1) CN106484527B (zh)
DE (1) DE102016116158A1 (zh)
TW (1) TWI724021B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109992314A (zh) * 2019-04-09 2019-07-09 Oppo广东移动通信有限公司 数据上报方法、装置、终端和存储介质

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10656701B2 (en) * 2016-12-16 2020-05-19 Red Hat, Inc. Managing processor frequencies
KR20180076631A (ko) * 2016-12-28 2018-07-06 삼성전자주식회사 반도체 장치의 성능 부스팅 방법 및 시스템
CN107423135B (zh) * 2017-08-07 2020-05-12 上海兆芯集成电路有限公司 均衡装置以及均衡方法
US10732694B2 (en) * 2017-09-22 2020-08-04 Qualcomm Incorporated Power state control of a mobile device
CN115373506A (zh) 2021-05-21 2022-11-22 三星电子株式会社 集成电路、动态电压和频率缩放调节器及包括其的系统

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5414860A (en) * 1991-01-29 1995-05-09 International Business Machines Incorporated Power management initialization for a computer operable under a plurality of operating systems
CN101067758A (zh) * 2007-06-14 2007-11-07 华南理工大学 一种嵌入式系统的能耗管理方法
CN101493761A (zh) * 2008-01-25 2009-07-29 国际商业机器公司 处理器流水线处理指令的方法及相应的处理器
US20100191987A1 (en) * 2009-01-29 2010-07-29 Elpida Memory, Inc. Semiconductor device using plural external voltage and data processing system including the same
CN102375528A (zh) * 2010-08-13 2012-03-14 联发科技股份有限公司 具备可调效能的系统、以及用来调整系统效能的方法
CN102792279A (zh) * 2009-11-19 2012-11-21 高通股份有限公司 用于测量多线程处理器的性能的方法和装置
US20140173311A1 (en) * 2012-12-17 2014-06-19 Samsung Electronics Co., Ltd. Methods and Systems for Operating Multi-Core Processors
CN104679586A (zh) * 2013-10-31 2015-06-03 三星电子株式会社 包括异构多核处理器的电子系统及其操作方法

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6154821A (en) * 1998-03-10 2000-11-28 Rambus Inc. Method and apparatus for initializing dynamic random access memory (DRAM) devices by levelizing a read domain
US6298448B1 (en) 1998-12-21 2001-10-02 Siemens Information And Communication Networks, Inc. Apparatus and method for automatic CPU speed control based on application-specific criteria
KR100390645B1 (ko) * 2001-07-27 2003-07-07 삼성전자주식회사 이동통신단말기 시스템에서 소모전류를 줄이기 위한 방법
JP2007334497A (ja) 2006-06-13 2007-12-27 Renesas Technology Corp 情報処理装置の省電力化方法、プログラム、およびプログラム実行システム
US7882379B2 (en) 2006-09-22 2011-02-01 Sony Computer Entertainment Inc. Power consumption reduction in a multiprocessor system
US7900069B2 (en) 2007-03-29 2011-03-01 Intel Corporation Dynamic power reduction
US8321614B2 (en) 2009-04-24 2012-11-27 Empire Technology Development Llc Dynamic scheduling interrupt controller for multiprocessors
US9563250B2 (en) 2009-12-16 2017-02-07 Qualcomm Incorporated System and method for controlling central processing unit power based on inferred workload parallelism
US9104411B2 (en) 2009-12-16 2015-08-11 Qualcomm Incorporated System and method for controlling central processing unit power with guaranteed transient deadlines
JP2011216004A (ja) 2010-04-01 2011-10-27 Toyota Motor Corp マイクロプロセッサ、電子制御ユニット、実行比率切り替え方法
US8381004B2 (en) 2010-05-26 2013-02-19 International Business Machines Corporation Optimizing energy consumption and application performance in a multi-core multi-threaded processor system
US8942932B2 (en) * 2010-08-31 2015-01-27 Advanced Micro Devices, Inc. Determining transistor leakage for an integrated circuit
JP2012113558A (ja) 2010-11-25 2012-06-14 Panasonic Corp 割込み制御装置、割込み制御方法及び集積回路
TWI454905B (zh) 2011-09-30 2014-10-01 Intel Corp 在多核心平台中之受限制的啓動技術
US9395784B2 (en) * 2013-04-25 2016-07-19 Intel Corporation Independently controlling frequency of plurality of power domains in a processor system
US9483092B2 (en) 2013-10-14 2016-11-01 Advanced Micro Devices, Inc. Performance state boost for multi-core integrated circuit
KR20150122353A (ko) 2014-04-23 2015-11-02 스타 제너레이션 리미티드 타이완 브랜치 골성장분말/생의학적필러를 회전식으로 밀어주는 구조를 지닌 임플란트
US9378536B2 (en) * 2014-04-30 2016-06-28 Qualcomm Incorporated CPU/GPU DCVS co-optimization for reducing power consumption in graphics frame processing
US10203746B2 (en) * 2014-05-30 2019-02-12 Apple Inc. Thermal mitigation using selective task modulation
US9904612B2 (en) * 2015-07-08 2018-02-27 Futurewei Technologies, Inc. Dynamic voltage/frequency scaling for multi-processors using end user experience metrics
US9952651B2 (en) * 2015-07-31 2018-04-24 International Business Machines Corporation Deterministic current based frequency optimization of processor chip

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5414860A (en) * 1991-01-29 1995-05-09 International Business Machines Incorporated Power management initialization for a computer operable under a plurality of operating systems
CN101067758A (zh) * 2007-06-14 2007-11-07 华南理工大学 一种嵌入式系统的能耗管理方法
CN101493761A (zh) * 2008-01-25 2009-07-29 国际商业机器公司 处理器流水线处理指令的方法及相应的处理器
US20100191987A1 (en) * 2009-01-29 2010-07-29 Elpida Memory, Inc. Semiconductor device using plural external voltage and data processing system including the same
CN102792279A (zh) * 2009-11-19 2012-11-21 高通股份有限公司 用于测量多线程处理器的性能的方法和装置
CN102375528A (zh) * 2010-08-13 2012-03-14 联发科技股份有限公司 具备可调效能的系统、以及用来调整系统效能的方法
US20140173311A1 (en) * 2012-12-17 2014-06-19 Samsung Electronics Co., Ltd. Methods and Systems for Operating Multi-Core Processors
CN104679586A (zh) * 2013-10-31 2015-06-03 三星电子株式会社 包括异构多核处理器的电子系统及其操作方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
LIDE DUAN等: "Optimizing Cloud Data Center Energy Efficiency via Dynamic Prediction of CPU Idle Intervals", 《2015 IEEE 8TH INTERNATIONAL CONFERENCE ON CLOUD COMPUTING》 *
袁龙等: "一种基于同构多核处理器的动态节能调度算法", 《计算机工程与应用》 *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109992314A (zh) * 2019-04-09 2019-07-09 Oppo广东移动通信有限公司 数据上报方法、装置、终端和存储介质
CN109992314B (zh) * 2019-04-09 2022-03-29 Oppo广东移动通信有限公司 数据上报方法、装置、终端和存储介质

Also Published As

Publication number Publication date
DE102016116158A1 (de) 2017-03-02
KR102375925B1 (ko) 2022-03-17
US10496149B2 (en) 2019-12-03
JP6838897B2 (ja) 2021-03-03
CN106484527B (zh) 2022-04-12
TW201710914A (zh) 2017-03-16
US20170060222A1 (en) 2017-03-02
JP2017049999A (ja) 2017-03-09
TWI724021B (zh) 2021-04-11
KR20170025625A (ko) 2017-03-08

Similar Documents

Publication Publication Date Title
CN106484527A (zh) 操作cpu的方法以及操作具有cpu的系统的方法
CN105718024B (zh) 提供每内核电压和频率控制
TWI610165B (zh) 用於包含在多個處理元件間的功率與效能平衡之能源效率及能源節約的方法、裝置及系統
US7689838B2 (en) Method and apparatus for providing for detecting processor state transitions
US8726055B2 (en) Multi-core power management
CN101379453B (zh) 使用动态工作负载特征来控制cpu频率和电压调节的方法和装置
TWI595418B (zh) 用於排程任務之系統、電腦實施方法及電腦可讀媒體
US9600059B2 (en) Facilitating power management in a multi-core processor
US9678564B2 (en) Multiprocessor system with interrupt distributor
US20150046679A1 (en) Energy-Efficient Run-Time Offloading of Dynamically Generated Code in Heterogenuous Multiprocessor Systems
US20130060555A1 (en) System and Apparatus Modeling Processor Workloads Using Virtual Pulse Chains
US9110708B2 (en) Region-weighted accounting of multi-threaded processor core according to dispatch state
CN103842933B (zh) 多核平台中的受约束引导技术
US9081577B2 (en) Independent control of processor core retention states
Xu et al. Energy-efficient scheduling with reliability guarantee in embedded real-time systems
KR102164099B1 (ko) 시스템 온 칩, 이의 작동 방법, 및 이를 포함하는 장치
CN104583896A (zh) 向处理器的异构计算元件分配功率
CN110300959B (zh) 用于动态运行时任务管理的方法、系统、设备、装置和介质
US10296074B2 (en) Fine-grained power optimization for heterogeneous parallel constructs
US9958928B2 (en) Method and apparatus for controlling an operating mode of a processing module
US20230185623A1 (en) Method of task transition between heterogenous processors
US20210248003A1 (en) Electronic device for scheduling based on heterogeneous multi-processor and operating method thereof
EP4268050A1 (en) Power management for universal serial bus (usb) type-c port
US20240103601A1 (en) Power management chip, electronic device having the same, and operating method thereof
WO2022188306A1 (zh) 一种任务分配方法及装置

Legal Events

Date Code Title Description
C06 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