CN112346557B - 多核系统及其控制操作 - Google Patents

多核系统及其控制操作 Download PDF

Info

Publication number
CN112346557B
CN112346557B CN202010391698.XA CN202010391698A CN112346557B CN 112346557 B CN112346557 B CN 112346557B CN 202010391698 A CN202010391698 A CN 202010391698A CN 112346557 B CN112346557 B CN 112346557B
Authority
CN
China
Prior art keywords
task
time
tasks
fine
processor cores
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN202010391698.XA
Other languages
English (en)
Other versions
CN112346557A (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 CN112346557A publication Critical patent/CN112346557A/zh
Application granted granted Critical
Publication of CN112346557B publication Critical patent/CN112346557B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • 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/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • G06F9/4893Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues taking into account power or heat criteria
    • 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
    • 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/3287Power saving characterised by the action undertaken by switching off individual functional units in the computer system
    • 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
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/3024Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a central processing unit [CPU]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3409Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
    • G06F11/3419Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment by assessing time
    • G06F11/3423Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment by assessing time where the assessed time is active or idle time
    • 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
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • 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/505Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the load
    • 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
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3058Monitoring arrangements for monitoring environmental properties or parameters of the computing system or of the computing system component, e.g. monitoring of power, currents, temperature, humidity, position, vibrations
    • G06F11/3062Monitoring arrangements for monitoring environmental properties or parameters of the computing system or of the computing system component, e.g. monitoring of power, currents, temperature, humidity, position, vibrations where the monitored property is the power consumption
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3409Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
    • G06F11/3433Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment for load management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/48Indexing scheme relating to G06F9/48
    • G06F2209/486Scheduler internals
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Computing Systems (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Mathematical Physics (AREA)
  • Power Sources (AREA)

Abstract

在操作包括多个处理器核的多核系统的方法中,通过监控相对于每个任务的任务停驻时间来提供分别对应于多个任务的多个任务停驻信息。任务停驻时间指示在任务激活时间内每个任务被暂停的时间,任务激活时间指示每个任务占用对应处理器核时的时间。基于所述多个任务停驻信息来执行任务调度,并且基于任务调度来执行细粒度动态电压和频率调节(DVFS)。多个任务可以基于负载不平衡被分配给多个处理器核,并且可以增加细粒度DVFS的效果以减少多核系统的功耗。

Description

多核系统及其控制操作
相关申请的交叉引用
本申请要求享有2019年8月6日向韩国知识产权局(KIPO)提交的韩国专利申请第10-2019-0095720号的优先权,其公开通过引用全文在此合并。
技术领域
示例实施例一般涉及半导体集成电路。例如,至少一些示例实施例涉及多核系统和/或操作多核系统的方法。
背景技术
降低功耗在由嵌入式电池供电的诸如智能电话、平板个人计算机(PC)等的移动设备中很重要,因为随着功耗降低,移动设备的使用时间可以增加。在这种情况下,已经引入了使用集成电压调节器(IVR)的细粒度动态电压和频率调节(DVFS),以增强具有大量功耗的多核处理器的功率效率。然而,在多个处理器核在同一时钟域中操作时的情况下,在没有与任务调度的适当配合的情况下细粒度DVFS的效果可能被限制。
发明内容
一些示例实施例可以提供能够增强细粒度DVFS的效率的多核系统和/或操作多核系统的方法。
根据示例实施例,一种操作包括多个处理器核的多核系统的方法,包括:监控多个任务中的每个任务的任务停驻时间,以分别生成多个任务停驻信息,任务停驻时间指示在任务激活时间内每个任务被暂停的时间长度,任务激活时间指示每个任务占用所述多个处理核中的对应处理器核的时间长度;基于所述多个任务停驻信息执行任务调度;以及基于任务调度执行细粒度动态电压和频率调节(DVFS)。
根据示例实施例,一种多核系统包括:多核处理器,其包括多个处理器核;以及处理电路,其被配置为:监控多个任务中的每个任务的任务停驻时间以生成多个任务停驻信息,任务停驻时间指示在任务激活时间内每个任务被暂停的时间长度,任务激活时间指示每个任务占用对应处理器核的时间长度;基于所述多个任务停驻信息执行任务调度;以及基于任务调度执行细粒度动态电压和频率调节(DVFS)。
根据示例实施例,一种操作包括多个处理器核的多核系统的方法,包括:监控多个任务中的每个任务的任务停驻时间以生成多个任务停驻信息,任务停驻时间指示在任务激活时间内每个任务被暂停的时间长度,任务激活时间指示每个任务占用对应处理器核的时间长度,所述多个处理器核包括在基于相同时钟信号操作的单个时钟域中;基于所述多个任务停驻信息,确定相对于每个任务应用细粒度DVFS的预期时间与所述任务激活时间的比率,以生成分别对应于所述多个任务的多个细粒度分数值;基于所述多个细粒度分数值将所述多个任务分配给所述多个处理器核;确定所述多个处理器核当中的参考处理器核,使得所述多个任务中分配给参考处理器核的任务的细粒度分数值的总和是所述多个任务中分配给所述多个处理器核的其他处理器核的任务的总和当中的最大值;以及基于与参考处理器核相关的参考核状态信号,相对于所述多个处理器核执行细粒度DVFS,以在所述多个任务中分配给参考处理器核的至少一个的执行被暂停时暂时降低所述多个处理器核的功率水平,参考核状态信号指示何时暂停分配给参考处理器核的所述多个任务的执行。
根据示例实施例的多核系统和/或操作该多核系统的方法可以基于分别与多个任务对应的多个任务停驻信息有效地执行适合于细粒度DVFS的任务调度。与基于负载平衡的常规任务调度相比,根据示例实施例,多个任务可以基于负载不平衡被分配给多个处理器核,并且可以增加细粒度DVFS的效果以减少多核系统的功耗。
附图说明
由以下结合附图的详细描述,本公开的示例实施例将被更清楚地理解。
图1是示出根据示例实施例的多核系统的示意框图。
图2是示出根据示例实施例的操作多核系统的方法的流程图。
图3是示出根据示例实施例的多核系统的框图。
图4是示出在图3的多核系统中实现的任务调度器的一示例实施例的图。
图5是示出根据示例实施例包括在多核系统中的任务监控电路的一示例实施例的图。
图6、图7和图8是用于描述根据示例实施例用于操作多核系统的方法的任务停驻信息(task stall information)的图。
图9、图10、图11和图12是示出根据示例实施例的任务调度的图。
图13和图14是示出根据示例实施例用于操作多核系统的方法的细粒度DVFS的一示例实施例的图。
图15和图16是示出根据示例实施例用于操作多核系统的方法的细粒度DVFS的另一示例实施例的图。
图17是示出根据示例实施例用于操作多核系统的方法的细粒度DVFS的定时控制的示例实施例的图。
图18是示出根据示例实施例包括在多核系统中的等待时间检测器的一示例实施例的框图。
图19是示出根据示例实施例由多核系统执行的示例事务和由图18的等待时间检测器检测的当前等待时间的时序图。
图20是示出根据示例实施例包括在多核系统中的处理器的一示例实施例的框图。
图21是示出根据示例实施例的电子系统的框图。
具体实施方式
在下文中将参考附图更全面地描述各种示例实施例,在附图中示出了一些示例实施例。在附图中,相同的附图标记始终表示相同的元件。可以省略重复的描述。
图1是示出根据示例实施例的多核系统的示意框图。
参考图1,多核系统1000可以包括处理器110、任务调度器135和任务监控器TMON115。多核系统1000可以包括另外的组件,并且下面将参考图3描述多核系统1000的更详细的配置。
多核系统1000可以被实现为可包括在各种计算设备中的片上系统。多核系统1000可以通过接口向主设备(未示出)发送数据、任务请求等和从主设备(未示出)接收数据、任务请求等。例如,接口可以经由并行AT附件(PATA)总线、串行AT附件(SATA)总线、SCSI、USB、PCIe等连接到主设备。
处理器110可以包括多个处理器核C1~C8以及分别分配给多个处理器核C1~C8的多个任务队列TQ1~TQ8。即使为了便于说明和描述在图1中示出了八个处理器核C1~C8,处理器110也可以包括各种数量的处理器核。
处理器核C1~C8可以是同构处理器核或异构处理器核。
当处理器核C1~C8是异构处理器核时,它们可以被分类为第一集群CL1和第二集群CL2。在处理器核C1~C8当中,第一集群CL1可以包括具有第一处理速度的高性能核C1~C4,第二集群CL2可以包括具有小于第一处理速度的第二处理速度的低性能核C5~C8。
在一些示例实施例中,处理器核C1~C8可以具有每核动态电压和频率调节(DVFS)架构。在每核DVFS架构中,处理器核C1~C8可以被包括在不同的电源域中,并且具有不同水平的电压和具有不同频率的时钟可以被供应给处理器核C1~C8。
在另外的示例实施例中,处理器核C1~C8可以具有每集群DVFS架构。在每集群DVFS架构中,第一集群CL1和第二集群CL2可以被包括在不同的电源域中,并且具有不同水平的电压和具有不同频率的时钟可以被供应给集群CL1和CL2。
供应给处理器核C1~C8的电力可能因热拔出方案而被阻止。换言之,处理器核C1~C8的一部分可以执行被分配的任务,并且到处理器核C1~C8的处于空闲状态的另一部分的电力可以被阻止。相反,当工作负载对于被供电的处理器核而言太重时,电力可以被供应给处于空闲状态的处理器核中的至少一个以执行任务,这被称为“热插入”。
任务监控电路115可以通过监控相对于每个任务的任务停驻时间来提供分别与多个任务对应的多个任务停驻信息。任务停驻时间指示在任务激活时间内每个任务被暂停的时间,而任务激活时间指示对应的处理器核被每个任务占用的时间。
任务调度器135可以包括分数生成器SGEN和控制逻辑CLOG。
任务调度器135可以被实现为硬件、软件或硬件和软件的组合。应理解,软件可以是以其上体现有计算机可读程序代码的一个或更多个计算机可读介质体现的计算机程序产品。计算机可读程序代码可以被提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器。计算机可读介质可以是计算机可读信号介质或计算机可读存储介质。计算机可读存储介质可以是可包含或存储供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合使用的程序的任何有形介质。
任务调度器135可以基于多个任务停驻信息来执行任务调度以将任务分配给或定位到任务队列TQ1~TQ8。任务队列可以实现为处理器核内的硬件或操作系统(OS)的内核中包括的数据结构。任务队列可以称为运行队列。
图2是示出根据示例实施例的操作多核系统的方法的流程图。
参考图1和图2,在操作S200中,任务监控电路115可以通过监控相对于每个任务的任务停驻时间来提供分别与多个任务对应的多个任务停驻信息,其中任务停驻时间指示在任务激活时间内每个任务被暂停的时间,任务激活时间表示每个任务占用对应处理器核的时间。每个任务停驻信息可以包括对应任务的任务激活时间和任务停驻时间。根据示例实施例,每个任务停驻信息可以包括另外的信息,诸如指示对应任务的暂停数的任务停驻数。
在操作S200中,任务调度器135可以基于多个任务停驻信息来执行任务调度。与基于负载平衡的常规任务调度相比,任务调度器135可以基于负载不平衡将多个任务分配给多个处理器核。
在一些示例实施例中,任务调度器135的分数生成器SGEN可以基于多个任务停驻信息,通过测量相对于每个任务应用细粒度DVFS的预期时间与激活时间的比率来提供分别与多个任务对应的多个细粒度分数值。任务调度器135的控制逻辑CLOG可以基于多个细粒度分数值将多个任务分配给多个处理器核C1~C8。
在操作S300中,多核系统1000的电源管理电路可以基于任务调度来执行细粒度动态电压和频率调节(DVFS)。电源管理电路可以包括电源管理单元和时钟控制单元,如将在下面参考图3所述。
细粒度DVFS表示基于短于几微秒的单位时间(其太短而无法由软件管理)来管理电压和频率的方案。相反,粗粒度DVFS表示基于相对长的单位时间(例如,长于几百微秒或几毫秒)来管理电压和频率的方案。当多个任务中的至少一个的执行被暂停时,可以通过细粒度DVFS暂时降低多个处理器核的功率水平。
这样,根据示例实施例的多核系统和操作该多核系统的方法可以基于分别与多个任务对应的多个任务停驻信息有效地执行适合于细粒度DVFS的任务调度。与基于负载平衡的常规任务调度相比,根据示例实施例,多个任务可以基于负载不平衡被分配给多个处理器核,并且细粒度DVFS的效果可以被提高以减少多核系统的功耗。
图3是示出根据示例实施例的多核系统的框图。
参考图3,多核系统1000可以包括片上系统(SoC)、工作存储器130、显示器件(LCD)152、触摸面板154、存储器件170、电源管理集成电路(PMIC)等。SoC可以包括中央处理单元(CPU)110、任务监控电路TMON 115、DRAM控制器120、性能控制器140、用户接口控制器(UI控制器)150、存储接口160以及加速器180、电源管理单元(PMU)144、时钟管理单元(CMU)146等。将理解,多核系统1000的组件不限于图3所示的组件。例如,多核系统1000还可以包括用于处理图像数据的硬件编解码器、安全块等。
处理器110执行用于多核系统1000的软件(例如,应用程序、操作系统(OS)和设备驱动器(device driver))。处理器110可以执行可加载到工作存储器130中的操作系统(OS)。处理器110可以执行要在操作系统(OS)上驱动的各种应用程序。处理器110可以被提供为同构多核处理器或异构多核处理器。多核处理器是包括至少两个可独立驱动的处理器(下文中称为“核”或“处理器核”)的计算组件。核的每个可以独立地读取和执行程序指令。
处理器110的每个处理器核可以包括以独立的驱动时钟和独立的驱动电压操作的多个电源域。提供给每个处理器核的驱动电压和驱动时钟可以以单个核为单位切断或连接。在下文中,从特定核切断提供给每个电源域的驱动电压和驱动时钟的操作将被称为“热拔出”。将驱动电压和驱动时钟提供给特定核的操作将被称为“热插入”。另外,提供给每个电源域的驱动时钟的频率和驱动电压的水平可以取决于每个核的处理负载而变化。例如,随着处理任务所需的时间变长,每个核可以通过增加提供给对应电源域的驱动时钟的频率或驱动电压的水平的动态电压频率调节(下文中称为“DVFS”)的方式被控制。根据本发明构思的一示例实施例,热插入和热拔出可以参考通过DVFS调节的处理器110的驱动电压的水平和驱动时钟的频率被执行。
操作系统(OS)的内核可以以特定时间间隔监控任务队列中的任务数以及处理器110的驱动电压和驱动时钟,以控制处理器110。另外,操作系统(OS)的内核可以参考监控的信息来控制处理器110的热插入或热拔出。这样,如下面参考图4更详细地讨论的,调度器135可以被提供为内核的一部分。
DRAM控制器120在工作存储器130和片上系统(SoC)之间提供接口。DRAM控制器120可以根据处理器110或另一个知识产权(IP)块的请求来访问工作存储器130。例如,DRAM控制器120可以根据处理器110的写入请求将数据写入到工作存储器130。或者,DRAM控制器120可以根据处理器110的读取请求从工作存储器130读取数据,并通过数据总线将读取的数据发送到处理器110或存储接口160。
在启动(booting)操作期间,操作系统(OS)或基本应用程序可以被加载到工作存储器130中。例如,存储在存储器件170中的OS图像在多核系统1000的启动期间基于启动顺序被加载到工作存储器130中。多核系统1000的总输入/输出操作可以由操作系统(OS)支持。类似地,应用程序可以被加载到工作存储器130中,以由用户选择或以提供基本服务。此外,工作存储器130可以用作缓冲存储器,以存储从诸如相机的图像传感器提供的图像数据。工作存储器130可以是诸如静态随机存取存储器(SRAM)和动态随机存取存储器(DRAM)的易失性存储器或者诸如相变随机存取存储器(PRAM)、磁阻随机存取存储器(MRAM)、电阻式随机存取存储器(ReRAM)、铁电随机存取存储器(FRAM)和NOR闪存的非易失性存储器件。
性能控制器140可以根据从操作系统(OS)的内核提供的控制请求来调整片上系统(SoC)的操作参数。例如,性能控制器140可以调整DVFS的水平以增强片上系统(SoC)的性能。或者,性能控制器140可以根据内核的请求来控制诸如处理器110的Big.LITTLE(由安谋国际科技公司(ARM Holdings)开发的异构计算架构)的多核处理器的驱动模式。在这种情况下,性能控制器140可以包括性能表142以在其中设定驱动时钟的频率和驱动电压。性能控制器140可以控制PMU 144和CMU 146,PMU 144和CMU 146一起形成电源管理电路、连接到PMIC 200以向每个电源域提供确定的驱动电压和确定的驱动时钟。
用户界面控制器150控制从用户界面装置的用户输入和输出。例如,用户界面控制器150可以根据处理器110的控制显示用于将数据输入到LCD 152的键盘屏幕。或者,用户界面控制器150可以控制LCD 152以显示用户请求的数据。用户界面控制器150可以将从诸如触摸面板154的用户输入装置提供的数据解码为用户输入数据。
存储接口160根据处理器110的请求访问存储器件170。例如,存储接口160提供片上系统(SoC)和存储器件170之间的接口。例如,由处理器110处理的数据通过存储接口160存储在存储器件170中。或者,存储在存储器件170中的数据可以通过存储接口160提供给处理器110。
存储器件170被提供为多核系统1000的存储介质。存储器件170可以存储应用程序、OS图像和各种类型的数据。存储器件170可以被提供为存储卡(例如,MMC、eMMC、SD、MicroSD等)。存储器件170可以包括具有高容量存储能力的NAND型闪存。或者,存储器件170可以包括诸如PRAM、MRAM、ReRAM和FRAM的下一代非易失性存储器或者NOR型闪存。根据本发明构思的一示例性实施例,存储器件170可以是结合在片上系统(SoC)中的嵌入式存储器。
加速器180可以被提供为单独的知识产权(IP)组件,以提高多媒体或多媒体数据的处理速度。例如,加速器180可以被提供为知识产权(IP)组件,以增强文本、音频、静止图像、动画、视频、二维数据或三维数据的处理性能。
系统互连器190可以是用于在片上系统(SoC)中提供片上网络的系统总线。系统互连器190可以包括例如数据总线、地址总线和控制总线。数据总线是数据传输路径。还可以提供到工作存储器130或存储器件170的存储器访问路径。地址总线提供知识产权(IP)之间的地址交换路径。控制总线提供控制信号沿着其在知识产权(IP)之间传输的路径。然而,系统互连器190的配置不限于以上描述,并且系统互连器190还可以包括用于有效管理的仲裁装置(arbitration means)。
任务监控电路115可以提供分别与多个任务对应的多个任务停驻信息。下面将参考图5至图8进一步描述任务监控电路。
图4是示出在图3的多核系统中实现的任务调度器的一示例实施例的图。
图4示出了图3所示的多核系统1000的软件结构。参考图3,加载到工作存储器130中并由CPU 110驱动的多核系统1000的软件层结构可以被分为应用程序132和内核134。操作系统(OS)还可以包括一个或更多个设备驱动器来管理各种器件,诸如存储器、调制解调器和图像处理器件。
应用程序132可以是作为基本服务驱动或由用户的请求驱动的上层软件。多个应用程序App0、App1和App2可以被同时执行以提供各种服务。应用程序App0、App1和App2可以在被加载到工作存储器130中之后由CPU 110执行。例如,当用户请求播放视频文件时,应用程序(例如,视频播放器)被执行以播放视频文件。然后,执行的播放器可以向存储器件170生成读取请求或写入请求,以播放用户请求的视频文件。
内核134(作为操作系统(OS)的组件)在应用程序132和硬件之间执行控制操作。内核134可以包括程序执行、中断、多任务、存储器管理、文件系统和设备驱动器。调度器135可以被提供为内核134的一部分。
调度器或任务调度器135监控和管理每个处理器核的任务队列。当同时执行多个任务时,任务队列是激活任务的队列。例如,与其他任务相比,任务队列中存在的任务可以由处理器110快速处理。调度器135可以参考加载到任务队列中的任务信息来确定后续处理。例如,调度器135根据任务队列的值来确定CPU资源的优先级。在Linux内核中,多个任务队列分别对应于多个处理器核。
调度器135可以将分别与任务队列对应的任务分别分配给对应的核。加载到任务队列中以由处理器110执行的任务被称为可运行任务。
根据示例实施例,调度器135可以包括分数生成器SGEN和控制逻辑CLOG。
如上所述,分数生成器SGEN可以通过测量相对于每个任务应用细粒度DVFS的预期时间与任务激活时间之间的比率基于多个任务停驻信息提供分别与多个任务对应的多个细粒度分数值。应用细粒度DVFS的预期时间对应于对应处理器核的功率水平降低而对应处理器核的性能不降低的时间。控制逻辑CLOG可以基于多个细粒度分数值将多个任务分配给多个处理器核。
图5是示出根据示例实施例包括在多核系统中的任务监控电路的一示例实施例的图,并且图6、图7和图8是用于描述根据示例实施例用于操作多核系统的方法的任务停驻信息的图。
参考图5至图8,任务监控电路115可以包括复位电路RST和多个测量电路。多个测量电路可以包括激活时间计数器CNTOCC、空闲时间计数器CNTIDL、停驻时间计数器CNTST、停驻数计数器CNTNS、等待时间检测器LATDET等。
复位电路RST可以响应于指示定时时段的调度定时信号SPC来初始化多个测量电路中的至少一部分。基于指示分配给处理器核的任务何时暂停的核状态信号CSS,激活时间计数器CNTOCC可以提供指示处理器核被任务占用的时间的任务激活时间tOCC。空闲时间计数器CNTIDL可以基于核状态信号CSS提供指示处理器核处于空闲状态的时间的核空闲时间tIDL。停驻时间计数器CNTST可以提供指示在任务激活时间tOCC内任务被暂停的时间的任务停驻时间tST。停驻数计数器CNTNS可以基于核状态信号CSS提供指示任务的暂停数的任务停驻数NS。等待时间检测器LATDET可以提供多核系统和外部设备之间的事务的等待时间CLAT。任务激活时间tOCC、任务停驻时间tST和任务停驻数NS可以相对于多个任务中的每个任务来测量,并且核空闲时间tIDL可以相对于多个处理器核中的每个处理器核来测量。等待时间CLAT可以相对于每个任务或每个处理器核来测量。上述任务停驻信息可以包括任务激活时间tOCC、任务停驻时间tST、任务停驻数和核空闲时间tIDL中的至少一个。等待时间CLAT可以用于控制细粒度DVFS的定时。
参考图6,一个或更多个任务可以根据相同时间间隔的调度时段被周期性地分配给处理器核Ci并由处理器核Ci处理。图6示出了第一至第四调度时段PSCH1~PSCH4的示例。调度定时信号SPC可以指示调度时段,并且核状态信号CSS可以指示处理器核Ci正在执行任务还是任务的执行被暂停。核空闲时间tIDL1~tIDL4可以取决于调度时段PSCH1~PSCH4而变化。
图7示出根据示例实施例的第一任务TA和第二任务TB,作为用于描述任务停驻信息的示例。在第一任务TA的情况下,第一任务激活时间tOCCa对应于第一停驻时间tSTa1+tSTa2+tSTa3与第一任务执行时间tEXa1+tEXa2+tEXa3+tEXa4之和,并且第一停驻数NSa对应于三个。在第二任务TB的情况下,第二任务激活时间tOCCb对应于第二停驻时间tSTb1+tSTb2与第二任务执行时间tEXb1+tEXb2+tEXb3之和,第二停驻数NSb对应于两个。
在一些示例实施例中,分别与多个任务对应的多个细粒度分数值可以相对于每个任务通过计算任务停驻时间与任务激活时间的比率基于多个任务停驻信息。在图7的情况下,(tSTa1+tSTa2+tSTa3)/tOCCa的值可以被提供为与第一任务TA对应的第一细粒度分数值,并且(tSTb1+tSTb2+)/tOCCb的值可以被提供为与第二任务TB对应的第二细粒度分数值。
在另外的示例实施例中,水平改变时间可以基于任务停驻数来相对于每个任务确定,其中水平改变时间对应于改变多个处理器核的功率水平所需的时间。相对于每个任务的预期时间可以通过从任务停驻时间减去水平改变时间来计算。分别与多个任务对应的多个细粒度分数值可以通过相对于每个任务计算预期时间与任务激活时间的比率来提供。水平改变时间可以与任务停驻数成比例。在图7的情况下,[(tSTa1+tSTa2+tSTa3)-k*NSa]/tOCCa的值可以被提供为对应于第一任务TA的第一细粒度分数值,并且[(tSTb1+tSTb2+)-k*NSb]/tOCCb的值可以被提供为对应于第二任务TB的第二细粒度分数值。这里,k是常数,如将在下面参考图17描述的。
参考图8,参考暂停时间tmin可以基于通过细粒度DVFS改变功率水平的时段来确定。处理器核可能处于停驻状态,而任务的下一指令无法执行,例如,因为处理器核必须等待来自外部电路块(诸如存储器、硬件加速器等)的响应。如果在诸如L1高速缓存未命中的情况下停驻状态持续短时间(例如,几个时钟周期或几十个时钟周期),则细粒度DVFS的影响可能很小。相反,如果在诸如LLC高速缓存未命中的情况下停驻状态持续较长时间(例如,多于数百个时钟周期),则可以通过应用细粒度DVFS来显著降低功耗。与特定阈值对应的参考暂停时间tmin可以确定细粒度DVFS的时间粒度,并且任务停驻数和任务停驻时间可以通过仅监控比参考暂停时间tmin持续得更长的停驻状态来确定。在图8的示例中,小于参考暂停时间tmin的停驻时间tSTa1、tSTa3和tSTa4可以从与第一任务TA对应的任务停驻时间的测量中排除。结果,第一任务TA的任务停驻时间可以被提供为tSTa2+tSTa5,并且第一任务TA的任务停驻数可以是两个。
图9、图10、图11和图12是示出根据示例实施例的任务调度的图。
在图9和图10中,示出了一个集群中包括的仅两个处理器核。将理解,示例实施例可以应用于包括各种数量的处理器核的多个集群。
在大多数智能手机或其他移动设备中,处理器被分类为多个集群(例如,Big.LITTLE)以优化功率效率和性能,并且每个集群包括基于相同时钟信号操作的多个处理器核。在这种情况下,常规调度器选择适合于任务和/或工作负载的种类的一个集群,并将任务平均地分配给所选集群中的处理器核,从而降低所选集群的电压和时钟频率。这是因为通过提高功率水平而增加的动态功率远远高于为新处理器核供电所需的静态功率。
如果在图9的左部分的情况下必须分配新任务,则作为第一情况CS1,新任务可以基于负载平衡被分配给第二处理器核C2,使得第一处理器核C1和第二处理器核C2的工作负载可以尽可能平均地确定。相反,作为第二情况CS2,新任务可以被分配给第一处理器核C1,使得第一处理器核C1和第二处理器核C2的工作负载可以不平衡。
第一情况CS1和第二情况CS2的功耗量可以被确定以在第一情况CS1和第二情况CS2中选择任务调度。
多核处理器的功耗量可以以表达式1计算。
表达式1
Ptotal=∑i{PCLSi+∑j(PCRSij+PCRDij)}
在表达式1中,∑i表示正在操作的集群的总和,∑j表示正在操作的处理器核的总和,PCLSi表示每个集群的静态功率,PCRSij表示每个处理器核的静态功率,PCRDij表示每个处理器核的动态功率。
集群和处理器核的静态功率可以根据操作频率和电压来确定,并且处理器核的动态功率可以根据操作频率、电压和工作负载的量来确定。动态功率可以使用细粒度分数值以表达式2计算。
表达式2
PCRDij=∑k{P(fo)*WLk*(1-SCRk)+P(fm)*WLk*SCRk}
在表达式2中,∑k表示分配给第j集群中的第i处理器核的任务的总和,P(fo)表示与操作频率fo对应的功率,P(fm)表示与由细粒度DVFS降低的频率fm对应的功率,WLk指示每个任务的工作负载,SCRk指示每个任务的细粒度分数值。
在一些示例实施例中,细粒度DVFS的第一功耗量可以基于第一任务调度来确定,通过该第一任务调度,多个任务基于多个细粒度分数值被分配给多个处理器核。此外,第二功耗量对应于第二任务调度,通过该第二任务调度,多个任务基于负载平衡被分配给多个处理器核。第一任务调度和第二任务调度中的一个可以基于第一功耗量和第二功耗量的比较结果来选择。
如在图10的左部分中所示,通过将新任务分配为大于参考容量RCAP(其是改变功率水平的标准),处理器核(例如,第一处理器核C1)的工作负载可以被增加。在这种情况下,如图10的右部分所示,包括第一处理器核C1和第二处理器核C2的集群的功率水平必须增加,使得最大容量和参考容量可以从MCAP和RCAP增加到MCAP'和RCAP'。最大容量和参考容量的增加可以如图11和图12所示地实现。当基于第一处理器核C1执行细粒度DVFS时,如图11和图12所示,可以基本上保持第一处理器核C1的核执行时间tEXE11。相反,对于包含在与第一处理器核C1相同的时钟域中的第二处理器核C2,基于第一处理器核C1的细粒度DVFS被执行时的第二情况CS2的核执行时间tEXE21'可以比不执行细粒度DVFS时的第一情况CS1的核执行时间tEXE21增加得更长。结果,对于第二情况第二处理器核C2的核执行时间tEXE21'可能超过第一调度时段PSCH1。在这种情况下,可能导致核执行延迟,使得分配给第二处理器核C2的任务可能无法在第一调度时段PSCH1中完成,并且任务调度器135的上述控制逻辑CLOG无法执行对于第二调度时段PSCH2的任务调度。
在一些示例实施例中,如图11所示,当多个处理器核的核执行时间中的至少一个通过执行细粒度DVFS被增加为大于最大执行时间(例如,调度时间)时,多个处理器核的功率水平可以通过执行粗粒度DVFS来提高。例如,操作频率可以在第三调度时段PSCH3中从fo增加到f1。结果,第三调度时段PSCH3中的核执行时间tEXE13、tEXE23和tEXE23'可以被减小得比第一调度时段PSCH1中的核执行时间短,并且所分配的任务可以在最大执行时间内成功地执行。
在一些示例实施例中,如图12所示,当多个处理器核的核执行时间中的至少一个通过执行细粒度DVFS被增加为大于最大执行时间时,可以增加相对于多个处理器核更新任务调度的调度时段。例如,操作频率可以保持为fo,但是第三调度时段PSCH3可以增加得比第一调度时段PSCH1更长,使得所分配的任务可以在最大执行时间内成功地执行。
图13和图14是示出根据示例实施例用于操作多核系统的方法的细粒度DVFS的一示例实施例的图。
作为非限制性示例,图13示出了单个时钟域中包括的第一至第四处理器核C1至C4、调度任务TA~TE以及分别对应于任务TA~TE的细粒度分数值。例如,任务TA的细粒度分数值是70,任务TB的细粒度分数值是40,依此类推。
任务调度器可以确定单个时钟域中包括的多个处理器核C1至C4当中的参考处理器核,使得分配给参考处理器核C1的任务的细粒度分数值的总和可以是分别分配给其他处理器核C1~C4的任务的总和当中的最大值。在图13的示例中,第一处理器核C1的细粒度分数值的总和具有最大值,任务调度器可以提供指示第一处理器核C1是参考处理器核的信号SRC。
细粒度亲和性块FGAF可以接收信号SRC,并基于参考核状态信号(也就是,第一核状态信号CSS1,其指示分配给参考处理器核C1的任务的执行何时暂停)相对于多个处理器核C1~C4执行细粒度DVFS,使得单个时钟域中多个处理器核C1~C4的功率水平可以在分配给参考处理器核C1的任务中的至少一个的执行被暂停时通过细粒度DVFS暂时降低。这样,细粒度亲和性块FGAF可以提供指示细粒度DVFS的定时的控制信号FGCON。随着对于多个处理器核C1~C4的细粒度DVFS,时钟管理单元CMU可以与控制信号FGCON同步地改变时钟信号CK的频率。多个处理器核C1至C4的功率水平可以在暂停多个任务中的至少一个的执行时通过细粒度DVFS暂时降低。例如,基于控制信号FGCON或参考核状态信号(例如,第一核状态信号CSS1),操作频率可以在参考处理器核(例如,第一处理器核C1)的停驻状态期间从fo降低到fm。
图15和图16是示出根据示例实施例用于操作多核系统的方法的细粒度DVFS的另一示例实施例的图。与图13和图14重复的描述可以被省略。
参考图15和图16,时钟分频器CDIV和时钟多路复用器CMUX可以用于实现细粒度DVFS。时钟管理单元CMU可以提供具有由粗粒度DVFS确定的操作频率fo的时钟信号CK。时钟分频器CDIV可以通过对时钟信号CK进行分频来提供具有低于操作频率fo的降低的频率fm的分频时钟信号DCK。时钟多路复用器CMUX可以响应于控制信号FGCON选择时钟信号CK和分频时钟信号DCK中的一个,以将内部时钟信号ICK提供给处理器核C1-C4。结果,可以使用时钟分频器CDIV和时钟多路复用器CMUX来实现与图13和图14相同的细粒度DVFS。
图17是示出根据示例实施例用于操作多核系统的方法的细粒度DVFS的定时控制的示例实施例的图。
图17示出了一个停驻时段tST和改变操作频率的细粒度DVFS的定时,也就是,改变操作频率的定时。第一情况CS1对应于理想情况,其中细粒度DVFS的定时与停驻时段tST的开始时间点T1和结束时间点T2一致。第二情况CS2指示操作频率在开始时间点T1之后降低并且在结束时间点T2之前升高。第三情况CS2指示操作频率在停驻时段tST的结束时间点T2之后升高。如果停驻时段tST的结束时间点T2可以被预期,则可以在结束时间点T2之前提前提高操作频率,以防止处理器核的性能下降。在一些示例实施例中,可以使用如下所述的等待时间来预期结束时间点T2。
图18是示出根据示例实施例包括在多核系统中的等待时间检测器的一示例实施例的框图。
参考图18,等待时间检测器540可以包括第一触发器(FF1)541、第二触发器(FF2)542、计数器543、第一锁存器(LATCH1)544、第二锁存器(LATCH2)545、计算器546、第一逻辑门548和第二逻辑门549。
例如,第一逻辑门548可以被实现为对请求有效信号ARVALID和请求准备信号ARREADY执行AND操作以输出操作结果的AND门。第一门548的输出被输入到第一触发器541的数据端子D,并且全局时钟信号ACLK被输入到第一触发器541的时钟端子C。第一触发器541响应于全局时钟信号ACLK的上升沿对第一门548的输出进行采样,以通过输出端子Q输出第一采样信号SS1。
例如,第二逻辑门549可以被实现为对服务有效信号RVALID、服务准备信号RREADY和服务完成信号RLAST执行AND操作以输出操作结果的AND门。第二门549的输出被输入到第二触发器542的数据端子D,并且全局时钟信号ACLK被输入到第二触发器542的时钟端子C。第二触发器541响应于全局时钟信号ACLK的上升沿对第二门549的输出进行采样,以通过输出端子Q输出第二采样信号SS2。
计数器543对全局时钟信号ACLK的周期数进行计数以提供计数信号CNT。第一锁存器544响应于第一采样信号SS1的上升沿锁存计数信号CNT,以提供起始计数信号CNT1。第一锁存器544可以接收与请求信号ARVALID和ARREADY相关的第一识别信号ARID,以提供第一识别码ID1。第二锁存器545响应于第二采样信号SS2的上升沿锁存计数信号CNT,以提供结束计数信号CNT2。第二锁存器545可以接收与服务信号RVALID、RREADY和RLAST相关的第二识别信号BID,以提供第二识别码ID2。
计算器546基于开始计数信号CNT1和结束计数信号CNT2生成当前等待时间CLAT。当系统1000采用支持主设备、互连设备和从设备之间的多个未完成事务的协议时,识别信号ARID和BID可以用于确定请求信号ARVALID和ARREADY是否与和服务信号RVALID、RREADY及RLAST相同的事务相关。
每当开始计数信号CNT1和第一识别码ID1被输入时,计算器546可以升级映射表547以存储第一识别码ID1的值ID11、ID12和ID13以及开始计数信号CNT1的对应计数值C1,C2和C3。当结束计数信号CNT2和第二识别码ID2被输入时,计算器546通过比较第二识别信号ID2的值与先前存储的第一识别信号ID1的值ID11、ID12和ID13从映射表547提取计数值C1、C2和C3之一。
计算器546可以通过计算代表服务请求定时点的提取值与代表发射完成定时点的值之间的差来生成当前等待时间CLAT。
这样获得的当前等待时间CLAT可以用于预期停驻时段tST的结束时间点T2。换言之,根据示例实施例,当前等待时间CLAT可以用于控制细粒度DVFS的定时。
图19是示出根据示例实施例由多核系统执行的示例事务和由图18的等待时间检测器检测的当前等待时间的时序图。
图19示出了根据高级可扩展接口(AXI)协议的读取事务的示例。AXI协议采用握手方案,该方案使用有效信号ARVALID和RVALID以及准备信号ARREADY和RREADY。
根据握手方案,如果主接口和从接口中的第一个将信号传输到主接口和从接口中的第二个,则第一个激活有效信号,然后当第二个准备好接收信号时,第二个激活与有效信号对应的准备信号。信号的采样响应于主接口和从接口两者处的全局时钟信号ACLK的上升沿来执行。换言之,当有效信号和准备信号两者在全局时钟信号ACLK的相同上升沿处被激活时,实现了有效信号传输。
如图19所示,当主设备传输信号时,与主接口对应的主设备100激活请求有效信号ARVALID,并且当互连设备10准备好从主设备100接收信号时,与从接口对应的互连设备10激活请求准备信号ARREADY。以相同的方式,当互连设备10传输信号时,互连设备10激活服务有效信号RVALID,并且当主设备准备好从互连设备10接收信号时,主设备100激活服务准备信号RREADY。
全局时钟信号ACLK的上升沿在图19中表示为定时点T0至T13。与主接口对应的主接口100通过激活与服务请求信号对应的请求有效信号ARVALID,将读取请求信号ARADDR传输到与从接口对应的互连设备10。当请求有效信号ARVALID和请求准备信号ARREADY两者都被激活时,在定时点T2成功地传输读取请求信号ARADDR。主设备100可以基于请求有效信号ARVALID来将定时点T1确定为服务请求定时点,而与请求准备信号无关,也就是与有效信号传输的成功无关。
作为对读取请求的响应,突发类型的数据D(A0)、D(A1)、D(A2)和D(A3)从互连设备10传输到主设备100。当服务有效信号RVALID和服务准备信号RREADY两者被激活时,数据D(A0)、D(A1)、D(A2)和D(A3)分别在定时点T6、T9、T10和T13处被成功传输。互连设备10通过传输最后数据D(A3)来激活服务完成信号RLAST,并且定时点T13被确定为服务完成定时点。
这样,图18的等待时间检测器540可以基于多核系统与诸如存储设备的外部设备之间的请求信号ARVALID和ARREADY以及服务信号RVALID、RREADY和RLAST来检测当前等待时间CLAT。
图20是示出根据示例实施例包括在多核系统中的处理器的一示例实施例的框图。
参考图20,处理器111可以包括例如四个处理器核C1~C4以及由处理器核C1~C4使用和共享的公共电路112。公共电路112可以包括一个或更多个公共资源CRS1和CRS2。
处理器核C1~C4可以分别包括缓冲器BUFF,以存储输入数据、在处理期间生成的中间数据以及处理结果数据。
当一个处理器核需要使用公共资源,而另一个处理器核占用该公共资源时,所述一个处理器核必须等待,直到所述另一个处理器核退出对公共资源的占用。结果,即使在所述一个处理器核中没有执行其他任务,所述一个处理器核也不可能执行需要公共资源的任务。已经开始的任务必须等待的时间可以包括在上述停驻时间中。
图21是示出根据示例实施例的电子系统的框图。
参考图21,电子系统可以包括控制器1210、电源1220、存储装置1230、存储器1240、I/O端口1250、扩展卡1260、网络设备1270和显示器1280。根据示例实施例,电子系统还可以包括相机模块1290。
控制器1210可以控制元件1220至1280中的每个的操作。电源1220可以向元件1210和1230至1280中的至少一个供应操作电压。存储装置1230可以被实现为硬盘驱动器(HDD)或SSD。存储器1240可以被实现为易失性或非易失性存储器。I/O端口1250可以将数据发送到电子系统或者将从电子系统输出的数据发送到外部设备。例如,I/O端口1250可以包括用于与诸如计算机鼠标的点击装置连接的端口、用于与打印机连接的端口以及用于与通用串行总线(USB)驱动器连接的端口。
扩展卡1260可以被实现为安全数字(SD)卡或MMC。扩展卡1260可以是用户识别模块(SIM)卡或通用SIM(USIM)卡。
网络设备1270使电子系统能够与有线或无线网络连接。显示器1280显示从存储装置1230、存储器1240、I/O端口1250、扩展卡1260或网络设备1270输出的数据。
相机模块1290是可以将光学图像转换成电子图像的模块。因此,从相机模块1290输出的电图像可以被存储在存储装置1230、存储器1240或扩展卡1260中。另外,从相机模块1290输出的电图像可以通过显示器1280被显示。例如,相机模块1290可以包括相机。
控制器1210可以被实现为如上所述的多核系统。根据示例实施例,控制器1210可以包括任务监控电路和任务调度器,以执行适合于细粒度DVFS的任务调度。
本发明构思可以应用于需要有效的多重处理的任何电子设备和系统。例如,本发明构思可以应用于诸如以下的系统:存储卡、固态驱动器(SSD)、嵌入式多媒体卡(eMMC)、通用闪存(UFS)、移动电话、智能电话、个人数字助理(PDA)、便携式多媒体播放器(PMP)、数码相机、便携式摄像机、个人计算机(PC)、服务器计算机、工作站、便携式计算机、数字TV、机顶盒、便携式游戏主机、导航系统、可穿戴设备、物联网(IoT)设备、万物互联(IoE)设备、电子书、虚拟现实(VR)设备、增强现实(AR)设备等。
这里所述的多核系统1000(诸如上述片上系统(SoC))的元件(包括任务监控电路115、任务调度器135和电源管理电路(其包括PMU 144和CMU 146))可以在处理电路和存储器中实现,处理电路为诸如包括逻辑电路的硬件、诸如执行软件的处理器的硬件/软件组合或其组合。例如,处理电路更具体地可以包括但不限于中央处理单元(CPU)、算术逻辑单元(ALU)、数字信号处理器、微型计算机、现场可编程门阵列(FPGA)、可编程逻辑单元、微处理器、专用集成电路(ASIC)等。
处理电路可以是专用处理电路,其通过基于负载不平衡将多个任务分配给多个处理器核以暂时降低多个核的功耗,同时暂停分配给参考处理器核的多个任务中的至少一个的执行来改善多核系统1000的功能。因此,专用处理电路可以增加细粒度DVFS的效果,以减少多核系统1000的功耗。
前述内容是示例实施例的说明,并且不应解释为对其的限制。尽管已经描述了一些示例实施例,但是本领域技术人员将容易理解,在实质上不脱离本发明构思的情况下,示例实施例中的许多修改是可能的。

Claims (19)

1.一种操作包括多个处理器核的多核系统的方法,所述方法包括:
监控多个任务中的每个任务的任务停驻时间以分别生成多个任务停驻信息,该任务停驻时间指示在任务激活时间内每个任务被暂停的时间长度,该任务激活时间指示每个任务占用所述多个处理器核中的对应处理器核的时间长度;
基于所述多个任务停驻信息执行任务调度;以及
基于任务调度执行细粒度动态电压和频率调节(DVFS),
其中,所述执行任务调度包括:
基于所述多个任务停驻信息将所述多个任务分配给所述多个处理器核,使得所述多个处理器核的工作负载不平衡。
2.根据权利要求1所述的方法,其中,所述多个处理器核被包括在单个时钟域中,使得所述多个处理器核被配置为基于相同的时钟信号操作。
3.根据权利要求1所述的方法,其中,所述执行细粒度DVFS在暂停所述多个任务中的至少一个的执行时暂时降低所述多个处理器核的功率水平。
4.根据权利要求1所述的方法,其中,所述执行任务调度包括:
基于所述多个任务停驻信息,确定相对于每个任务应用细粒度DVFS的预期时间与任务激活时间的比率,以生成分别与所述多个任务对应的多个细粒度分数值。
5.根据权利要求4所述的方法,其中,所述应用细粒度DVFS的预期时间对应于降低所述对应处理器核的功率水平而没有所述对应处理器核的性能下降的时间。
6.根据权利要求4所述的方法,其中,所述执行细粒度DVFS包括:
确定所述多个处理器核当中的参考处理器核,使得所述多个任务中分配给参考处理器核的任务的细粒度分数值的总和是所述多个任务中分配给所述多个处理器核的其他处理器核的任务的总和当中的最大值;以及
基于与参考处理器核相关的参考核状态信号相对于所述多个处理器核执行细粒度DVFS,该参考核状态信号指示何时暂停分配给参考处理器核的所述任务的执行。
7.根据权利要求4所述的方法,其中,所述执行任务调度还包括:
基于所述多个细粒度分数值,确定与第一任务调度相关的细粒度DVFS的第一功耗量,通过第一任务调度所述多个任务被分配给所述多个处理器核;
基于负载平衡确定与第二任务调度相关的第二功耗量,通过第二任务调度所述多个任务被分配给所述多个处理器核;以及
基于第一功耗量和第二功耗量,选择第一任务调度和第二任务调度中的一个。
8.根据权利要求1所述的方法,其中,所述监控任务停驻时间包括:
测量相对于所述多个任务中的每个任务的任务激活时间;以及
测量相对于所述多个任务中的每个任务的任务停驻时间。
9.根据权利要求8所述的方法,其中,所述监控任务停驻时间还包括:
基于通过细粒度DVFS改变功率水平的时段确定参考暂停时间,以及
基于每个任务被暂停时多个暂停时间中的大于参考暂停时间的暂停时间的总和生成任务停驻时间。
10.根据权利要求8所述的方法,其中,所述执行任务调度包括:
确定相对于每个任务的任务停驻时间与任务激活时间的比率,以分别生成与所述多个任务对应的多个细粒度分数值;以及
基于所述多个细粒度分数值将所述多个任务分配给所述多个处理器核。
11.根据权利要求1所述的方法,其中,所述监控任务停驻时间包括:
测量相对于每个任务的任务激活时间;
测量相对于每个任务的任务停驻时间;以及
测量指示每个任务的暂停数的任务停驻数。
12.根据权利要求11所述的方法,其中,所述监控任务停驻时间还包括:
基于通过细粒度DVFS改变功率水平的时段来确定参考暂停时间;
基于每个任务被暂停时多个暂停时间中的大于参考暂停时间的暂停时间的总和生成任务停驻时间;以及
基于大于参考暂停时间的所述多个暂停时间的数目生成每个任务的任务停驻数。
13.根据权利要求11所述的方法,其中,所述执行任务调度包括:
基于任务停驻数,确定相对于每个任务的水平改变时间,该水平改变时间对应于改变所述多个处理器核的功率水平的时间量;
通过从任务停驻时间减去水平改变时间来计算相对于每个任务的预期时间;
对于所述多个任务中的每个,计算预期时间与任务激活时间的比率,以分别生成与所述多个任务对应的多个细粒度分数值;以及
基于所述多个细粒度分数值将所述多个任务分配给所述多个处理器核。
14.根据权利要求1所述的方法,还包括:
响应于执行细粒度DVFS,提高所述多个处理器核的功率水平,所述执行细粒度DVFS导致所述多个处理器核的核执行时间中的至少一个超过最大执行时间。
15.根据权利要求1所述的方法,还包括:
响应于执行细粒度DVFS,增加相对于所述多个处理器核更新任务调度的调度时段,所述执行细粒度DVFS导致所述多个处理器核的核执行时间中的至少一个超过最大执行时间。
16.根据权利要求1所述的方法,还包括:
测量对应于从所述多个处理器核发射对于来自外部设备的服务的请求时到完成所请求的服务时的延迟的等待时间;以及
基于等待时间控制细粒度DVFS的定时。
17.一种多核系统,包括:
多核处理器,其包括多个处理器核;以及
处理电路,其被配置为:
监控多个任务中的每个任务的任务停驻时间以生成多个任务停驻信息,该任务停驻时间指示在任务激活时间内每个任务被暂停的时间长度,该任务激活时间指示每个任务占用对应处理器核的时间长度,
基于所述多个任务停驻信息执行任务调度,以及
基于任务调度执行细粒度动态电压和频率调节(DVFS),
其中,所述执行任务调度包括:
基于所述多个任务停驻信息将所述多个任务分配给所述多个处理器核,使得所述多个处理器核的工作负载不平衡。
18.根据权利要求17所述的多核系统,其中,所述处理电路还被配置为:
基于所述多个任务停驻信息,确定相对于每个任务应用细粒度DVFS的预期时间与任务激活时间的比率,以生成分别与所述多个任务对应的多个细粒度分数值,以及
基于所述多个细粒度分数值将所述多个任务分配给所述多个处理器核。
19.一种操作包括多个处理器核的多核系统的方法,所述方法包括:
监控多个任务中的每个任务的任务停驻时间以生成多个任务停驻信息,该任务停驻时间指示任务激活时间内每个任务被暂停的时间长度,该任务激活时间指示每个任务占用对应处理器核的时间长度,所述多个处理器核包括在基于相同时钟信号操作的单个时钟域中;
基于所述多个任务停驻信息,确定相对于每个任务应用细粒度DVFS的预期时间与任务激活时间的比率,以生成分别对应于所述多个任务的多个细粒度分数值;
基于所述多个细粒度分数值将所述多个任务分配给所述多个处理器核;
确定所述多个处理器核当中的参考处理器核,使得所述多个任务中分配给参考处理器核的任务的细粒度分数值的总和是所述多个任务中分配给所述多个处理器核的其他处理器核的任务的总和当中的最大值;以及
基于与参考处理器核相关的参考核状态信号,相对于所述多个处理器核执行细粒度DVFS,以在所述多个任务中分配给参考处理器核的至少一个的执行被暂停时暂时降低所述多个处理器核的功率水平,该参考核状态信号指示何时暂停分配给参考处理器核的所述多个任务的执行。
CN202010391698.XA 2019-08-06 2020-05-11 多核系统及其控制操作 Active CN112346557B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020190095720A KR20210017054A (ko) 2019-08-06 2019-08-06 멀티-코어 시스템 및 그 동작 제어 방법
KR10-2019-0095720 2019-08-06

Publications (2)

Publication Number Publication Date
CN112346557A CN112346557A (zh) 2021-02-09
CN112346557B true CN112346557B (zh) 2024-05-24

Family

ID=74357398

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010391698.XA Active CN112346557B (zh) 2019-08-06 2020-05-11 多核系统及其控制操作

Country Status (3)

Country Link
US (1) US11734067B2 (zh)
KR (1) KR20210017054A (zh)
CN (1) CN112346557B (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110514982B (zh) * 2019-08-22 2022-03-22 上海兆芯集成电路有限公司 性能分析系统与方法
US11640194B2 (en) * 2021-06-29 2023-05-02 Red Hat, Inc. Coordinating dynamic power scaling of agents based on power correlations of agent instructions
US20230418664A1 (en) * 2022-06-22 2023-12-28 Advanced Micro Devices, Inc. Adaptive thread management for heterogenous computing architectures

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106598731A (zh) * 2016-12-01 2017-04-26 上海交通大学 基于异构多核架构的运行时系统及其控制方法

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7730340B2 (en) * 2007-02-16 2010-06-01 Intel Corporation Method and apparatus for dynamic voltage and frequency scaling
US8892931B2 (en) 2009-10-20 2014-11-18 Empire Technology Development Llc Power channel monitor for a multicore processor
GB201008785D0 (en) 2009-12-18 2010-07-14 Univ Gent A counter architecture for online dvfs profitability estimation
US8549339B2 (en) * 2010-02-26 2013-10-01 Empire Technology Development Llc Processor core communication in multi-core processor
JP6051924B2 (ja) 2013-02-21 2016-12-27 富士通株式会社 情報処理装置の制御方法、制御プログラム、情報処理装置
KR101553649B1 (ko) * 2013-05-13 2015-09-16 삼성전자 주식회사 멀티 코어 장치 및 멀티 코어 장치의 작업 스케줄링 방법
KR102110812B1 (ko) 2013-05-30 2020-05-14 삼성전자 주식회사 멀티 코어 시스템 및 멀티 코어 시스템의 작업 스케줄링 방법
US9595526B2 (en) 2013-08-09 2017-03-14 Apple Inc. Multi-die fine grain integrated voltage regulation
KR101697647B1 (ko) 2013-10-08 2017-02-01 한국전자통신연구원 스케줄링 정책 기반 코어 간 태스크 이주 관리 장치 및 방법
US20150186160A1 (en) * 2014-01-02 2015-07-02 Advanced Micro Devices, Inc. Configuring processor policies based on predicted durations of active performance states
KR102169692B1 (ko) 2014-07-08 2020-10-26 삼성전자주식회사 멀티-코어 프로세서를 포함하는 시스템 온 칩 및 그것의 동적 전력 관리 방법
US10101800B2 (en) 2015-07-29 2018-10-16 Samsung Electronics Co., Ltd. Method of managing power and electronic device
GB2540804B (en) 2015-07-29 2018-03-07 Samsung Electronics Co Ltd Hardware power management apparatus and methods
WO2017096338A1 (en) * 2015-12-04 2017-06-08 Cornell University Execution time prediction for energy-efficient computer systems
US10345887B2 (en) 2016-05-06 2019-07-09 Mediatek Inc. Adaptive optimization of low power strategies
KR102670999B1 (ko) 2016-12-28 2024-05-30 삼성전자주식회사 Dvfs 동작을 수행하는 어플리케이션 프로세서, 이를 포함하는 컴퓨팅 시스템 및 이의 동작 방법
US10379923B2 (en) * 2017-09-15 2019-08-13 International Business Machines Corporation Efficiently repairing virtual machines by means of DVFS-aware proactive scheduling

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106598731A (zh) * 2016-12-01 2017-04-26 上海交通大学 基于异构多核架构的运行时系统及其控制方法

Also Published As

Publication number Publication date
CN112346557A (zh) 2021-02-09
US11734067B2 (en) 2023-08-22
US20210042157A1 (en) 2021-02-11
KR20210017054A (ko) 2021-02-17

Similar Documents

Publication Publication Date Title
US10073711B2 (en) Virtual machine monitor configured to support latency sensitive virtual machines
CN112346557B (zh) 多核系统及其控制操作
US8943584B2 (en) Centralized device virtualization layer for heterogeneous processing units
Jang et al. Energy reduction in consolidated servers through memory-aware virtual machine scheduling
US8928677B2 (en) Low latency concurrent computation
KR20170011350A (ko) 가상 머신을 지원하는 스토리지 장치, 그것을 포함하는 스토리지 시스템 및 그것의 동작 방법
US8656405B2 (en) Pulling heavy tasks and pushing light tasks across multiple processor units of differing capacity
US11243795B2 (en) CPU overcommit with guest idle polling
KR102169692B1 (ko) 멀티-코어 프로세서를 포함하는 시스템 온 칩 및 그것의 동적 전력 관리 방법
US11243604B2 (en) Method of performing dynamic voltage and frequency scaling based on power step
US12001880B2 (en) Multi-core system and method of controlling operation of the same
US20120144146A1 (en) Memory management using both full hardware compression and hardware-assisted software compression
US10983832B2 (en) Managing heterogeneous memory resource within a computing system
US9436625B2 (en) Approach for allocating virtual bank managers within a dynamic random access memory (DRAM) controller to physical banks within a DRAM
CN102945214B (zh) 基于io延迟时间分布优化中断处理任务的方法
CN102929819B (zh) 用于处理计算机系统中的存储设备的中断请求的方法
US11442522B2 (en) Method of controlling performance boosting of semiconductor device based on at least user input and feedback from previous boosting policies and semiconductor device performing the method
US20230184830A1 (en) System and method of monitoring performance of an electronic device
WO2023225991A1 (en) Dynamic establishment of polling periods for virtual machine switching operations
KR20230088211A (ko) 전자 장치의 성능 모니터링 시스템 및 성능 모니터링 방법
CN118672725A (zh) 存储控制器以及操作包括存储控制器的电子系统的方法
CN117590927A (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
GR01 Patent grant
GR01 Patent grant