CN104583900A - 在处理器的异质核之间动态切换工作载荷 - Google Patents
在处理器的异质核之间动态切换工作载荷 Download PDFInfo
- Publication number
- CN104583900A CN104583900A CN201380046118.1A CN201380046118A CN104583900A CN 104583900 A CN104583900 A CN 104583900A CN 201380046118 A CN201380046118 A CN 201380046118A CN 104583900 A CN104583900 A CN 104583900A
- Authority
- CN
- China
- Prior art keywords
- core
- processor
- equipment
- timer
- information
- 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
Links
- 238000000034 method Methods 0.000 claims description 46
- 230000004044 response Effects 0.000 claims description 16
- 230000008569 process Effects 0.000 claims description 14
- 230000008859 change Effects 0.000 claims description 8
- 238000012544 monitoring process Methods 0.000 claims description 5
- 239000004065 semiconductor Substances 0.000 claims description 5
- 238000004364 calculation method Methods 0.000 claims description 3
- GOLXNESZZPUPJE-UHFFFAOYSA-N spiromesifen Chemical compound CC1=CC(C)=CC(C)=C1C(C(O1)=O)=C(OC(=O)CC(C)(C)C)C11CCCC1 GOLXNESZZPUPJE-UHFFFAOYSA-N 0.000 claims description 3
- 230000009471 action Effects 0.000 claims description 2
- 230000002265 prevention Effects 0.000 claims 1
- 230000015654 memory Effects 0.000 description 25
- 238000010586 diagram Methods 0.000 description 15
- 238000004891 communication Methods 0.000 description 13
- 229910003460 diamond Inorganic materials 0.000 description 9
- 239000010432 diamond Substances 0.000 description 9
- 238000013461 design Methods 0.000 description 8
- 230000000712 assembly Effects 0.000 description 5
- 238000000429 assembly Methods 0.000 description 5
- 230000008878 coupling Effects 0.000 description 4
- 238000010168 coupling process Methods 0.000 description 4
- 238000005859 coupling reaction Methods 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 4
- 230000002093 peripheral effect Effects 0.000 description 4
- 238000004458 analytical method Methods 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 3
- 230000007717 exclusion Effects 0.000 description 3
- 238000005538 encapsulation Methods 0.000 description 2
- 230000007613 environmental effect Effects 0.000 description 2
- 238000000605 extraction Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 230000005055 memory storage Effects 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 230000004913 activation Effects 0.000 description 1
- 230000003044 adaptive effect Effects 0.000 description 1
- 230000015572 biosynthetic process Effects 0.000 description 1
- 238000012512 characterization method Methods 0.000 description 1
- 239000003795 chemical substances by application Substances 0.000 description 1
- 230000001427 coherent effect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000008030 elimination Effects 0.000 description 1
- 238000003379 elimination reaction Methods 0.000 description 1
- 238000009434 installation Methods 0.000 description 1
- 230000007774 longterm Effects 0.000 description 1
- 239000011159 matrix material Substances 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000008447 perception Effects 0.000 description 1
- 230000000737 periodic effect Effects 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
- 230000002618 waking effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/78—Architectures of general purpose stored program computers comprising a single central processing unit
- G06F15/7839—Architectures of general purpose stored program computers comprising a single central processing unit with memory
- G06F15/7842—Architectures of general purpose stored program computers comprising a single central processing unit with memory on one IC chip (single chip microcontrollers)
-
- 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
- G06F9/4893—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues taking into account power or heat criteria
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
- G06F1/3206—Monitoring of events, devices or parameters that trigger a change in power modality
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
- G06F1/3234—Power saving characterised by the action undertaken
- G06F1/324—Power saving characterised by the action undertaken by lowering clock frequency
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
- G06F1/3234—Power saving characterised by the action undertaken
- G06F1/3287—Power saving characterised by the action undertaken by switching off individual functional units in the computer system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
- G06F1/3234—Power saving characterised by the action undertaken
- G06F1/329—Power saving characterised by the action undertaken by task scheduling
-
- 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3885—Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
- G06F9/505—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the load
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/52—Program synchronisation; Mutual exclusion, e.g. by means of semaphores
- G06F9/526—Mutual exclusion algorithms
- G06F9/528—Mutual exclusion algorithms by using speculative mechanisms
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/50—Indexing scheme relating to G06F9/50
- G06F2209/5019—Workload prediction
-
- 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)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- Power Sources (AREA)
Abstract
在一个实施例中,策略管理器可接收操作系统调度信息、至少一个将来量子的性能预测信息以及当前处理器利用信息,并至少部分基于这个接收的信息确定将来量子的性能预测以及是否引起多核处理器的不对称核之间的切换。描述并要求保护其它实施例。
Description
背景技术
随着计算装置(诸如智能电话和平板计算机还有其它计算装置)中性能需求的增加,多核处理器变得更普遍,以递送对于高强度工作载荷和多线程应用期望的性能。然而,随着这个增加,处理器的功耗也增加了,由此增加了由平台消耗的总体功率。当许多平台(特别是便携平台)的总体可用总功率有限时,这是个问题。向具体核提供某些工作载荷的固定调度或者在动态缩放性能中需要大量开销的当前机制造成了许多复杂性。
附图说明
图1是根据本发明实施例的方法的流程图。
图2是根据本发明实施例用于执行核切换的方法的流程图。
图3是根据本发明实施例的处理器的框图。
图4是根据本发明一个实施例的处理器核的框图。
图5是根据本发明实施例的计算机系统中存在的组件的框图。
图6是可使用实施例的示例系统的框图。
具体实施方式
经由根据本发明实施例的预测算法,处理器性能可通过在具有不同特性的核之间动态切换来动态缩放。例如,在两个或更多低功率同时多处理器(SMP)核上执行的工作载荷可被切换到在例如四核或更高核片上系统(SoC)的两个或更多高性能SMP核上执行。
在一个实施例中,动态工作载荷特征化和预测算法的组合可用于确定即将到来的执行量子的适当核选择。在一个实施例中,可使用在系统内可用的一个或多个分析器(profiler)实现工作载荷特征化。例如,处理器可包含性能监视单元,从其可获得分析中央处理单元(CPU)的操作的信息。还经由这个单元或存储器系统的独立分析器,可获得存储器分析信息。当然,在一些实施例中可存在附加分析器,诸如互连分析器,以确定一个或多个互连(诸如处理器内部互连和存储器互连)上的带宽操作。
此外,预测算法可接收调度信息。一旦调度信息,但在执行调度之前,就可从操作系统(OS)调度器管道获得这个信息。根据所有此信息,算法可在随后时间Pt+1、Pt+2、Pt+3...Pt+n预测容纳调度工作载荷的性能,其中Pt是在任何给定时刻预测的性能等级,并且Pt+1是在下一时刻的性能。在一个实施例中,这些时间量子可对应于OS调度工作载荷以便执行的线程量子或时间切片。作为一个此类示例,每个量子可在大约50毫秒与100毫秒之间。算法可确定对于操作系统管道中第n线程量子所期望的性能。
CPU和存储器分析器使用性能监视单元分析系统,并读取各种计数器以确定在给定时刻的当前CPU利用和存储器吞吐量。在一个实施例中,这些利用值可与一个或多个阈值相比较,并且基于此类比较,可以确定是否将发生核切换或性能等级改变。
现在参考图1,示出了根据本发明实施例的方法的流程图。更确切地说,图1示出了能经由可在不同实施例中在固件、OS或处理器的独立控制器(诸如功率控制器)内执行的策略管理器实现的预测方法100。
如图1中所看到的,方法100可开始于接收OS调度信息(框110)。更确切地说,这个OS调度信息可从OS调度器接收,并且可包含有关将来时间量子的调度过程和线程的信息。要指出,在一个实施例中,从调度器接收的这个调度信息可包含对于将来时间量子调度的过程的数量和在此类量子中要执行的线程的数量。在一个实施例中,这个OS调度信息可从OS调度器用将来时间量子的调度判定填充的运行队列中获得。
一般而言,调度队列可由OS填充,并且可包含多个条目,其中对于每个线程量子,可选择这些条目中的一个或多个以便执行。一般而言,每个条目可包含过程标识符和线程标识符。单个过程的条目可具有公共过程标识符和不同的线程标识符,从而指示存在那个过程的多个线程。要指出,一般而言,可创建一个过程,并且这个过程又可包含一个或多个线程。一个或多个线程可同时在多处理器(诸如SMP处理器)的一个或多个核上执行。
仍参考图1,在框120,可接收用于至少一个将来量子的性能预测信息。这个性能预测信息可对应于由策略管理器对于已经发生的给定时间量子生成的先前预测。在框130,还可接收当前处理器利用信息。在不同实施例中,可接收各种类型信息。例如,在具有性能监视单元的处理器中,可接收不同计数器的值。对于这些计数,可标识或导出不同处理器度量。例如,可确定每个周期的指令,并且可获得CPU利用率,其可以是时间量子期间处理器的有效利用的百分比。在一些实施例中,可获得附加的当前处理器利用信息,诸如各种互联度量和存储器度量,以及许多其它度量。
仍参考图1,根据所有此信息,可确定用于将来量子的处理器性能预测(框140)。尽管本发明的范围不限于这方面,但这个性能预测可依据给定性能状态,例如根据在高级配置和功率接口(ACPI)规范(诸如2006年10月10日的高级配置和功率接口规范修改版30b(例如功率状态Po-Pn中的给定功率状态))中详述的功率状态。因此,在一个实施例中,可依据频率进行这个性能预测。并且根据这个频率,选择适当核,并且判定是否将发生SMP核之间的切换。
在不同实施例中,可进行确定这个处理器性能预测的不同方式。在一个实施例中,计算可基于作为输入接收以上信息(包含调度信息、新能预测信息和当前处理器利用信息)的预定功能。预测算法采取来自调度器管道的输入并预测所需的性能,并且引起SMP核之间的动态切换和/或对核频率的调整。在一个实施例中,预测算法采取如下项作为来自调度器管道的输入:在给定时刻(例如t1、t2、t3、t4....tn)的每个核的调度器管道中的调度线程的数量;以及在给定时刻(例如p1、p2、p3、p4....pn)的每个核的调度器管道中的活动过程的数量。此外,预测算法作为输入接收当前处理器利用信息。
在一个实施例中,给定量子t的预测性能(Pt)是调度线程的数量、活动过程的数量和每个线程所需的性能的函数。在一些实施例中,可使用线程的利用信息计算由每个线程所需的估计性能。作为一个此类示例,在确定中可使用那个线程的当前CPU和存储器总线利用。
从而,在一个实施例中,预测CPU性能等级基于分析当前CPU利用和存储器总线利用计算如下:Pt=F{f(t1,t2,t3,t4....tn, p1,p2,p3,p4....pn,Pt+1,Pt+2,Pt+3...Pt+n),当前CPU利用,存储器总线利用,IPC和数据高速缓存缺失率}。这个预测性能等级可在不同方面计算。然而,在一个实施例中,例如可依据对应于核频率的性能等级计算预测性能等级。
如在图1中所进一步看到的,下一控制传到菱形框150,在此可基于性能预测确定是否要执行核切换。可以各种方式进行是否要执行切换的这个确定。然而,为了讨论的目的,假定如果标识与处理器的当前性能等级不同标记的性能预测,则可进行核切换确定(例如,当处理器的当前性能在600兆赫兹(MHz)时,2.0吉赫兹(GHz)频率的性能预测可足以引起核切换)。要指出,有关核切换的这个确定针对将来量子。从而,这个核切换的标识可被放入核切换队列中而不是立即执行切换,以便随后当将要执行给定线程量子时访问。要指出,该预测针对为将来时间所确定的性能。根据所预测的性能需要确定频率,并根据该频率选择最有效的核。一旦进行了这个选择,然后就确定是否要执行核切换。
仍参考图1,如果做出核切换确定,则控制传到框160,在此可进行调用以执行核切换。在一个实施例中,这个调用可以是给定类型的系统调用,其详情将在下面进一步描述。否则,如果性能预测不基本上不同于处理器的当前性能等级使得发生核切换,则控制替代地从菱形框150传到菱形框170。在那儿,可确定是否应该执行核频率的改变。如果是这样,则控制传到框180,在此例如可对固件或硬件(诸如处理器的功率控制器)进行对于频率改变的调用。相反,如果这个确定是否定的,则没有动作可发生,并且方法可结束。
现在参考图2,示出的是根据本发明实施例用于执行核切换的方法的流程图。如图2所示,可使用各种系统组件(包含硬件、软件和/或固件)执行该方法以实现第一类型核与第二类型核之间的切换。为了便于讨论,在图2中示出的方法200关于从低功率核到高功率核的切换。当然,虽然在图2的示例中以这种方式示出,但要理解,本发明的范围不限于这方面,并且实施例同样适用于在高功率核与低功率核之间的切换以及处理器内异质计算机元件之间的任何其它类型切换。而且,要理解,实施例不限于执行单个处理器(诸如SoC)内的切换操作。而是,实施例同样适用于其它情形,诸如配置在系统的单独半导体管芯或集成电路中的处理单元之间的切换。
如图2中所看到的,方法200可开始于执行策略管理器(框205)。在各种实施例中,此策略管理器可执行基于预测的分析,诸如上面相对于图1描述的。在不同实现中,此策略管理器可在OS的代码、固件或其它位置内执行。并且在又一些实施例中,策略管理器可在单独控制器(诸如微控制器,例如SoC或其它处理器的功率控制单元)上执行。为了讨论,假定策略管理器在SoC的低功率SMP核(例如OS的一部分)上执行。
在此为了讨论,还假定,策略管理器的判定将执行核切换,即从低功率核切换到高功率核。然后,控制传到框210,在此可执行内核输入输出控制(IOCTL)调用。要指出,在其它实施例中,诸如在固件中实现策略管理器的实施例中,此调用可以是另一类型系统调用。响应于此调用,SMP核可通过进入关键选择来准备切换(框215)。通过这个临界区段,可禁用其它中断、间断事件等的其它外部操作和处置。控制接下来传到框220,在此可读取一个或多个核切换配置寄存器。尽管本发明的范围不限于这个方面,但在这些配置寄存器中可存在各种信息,包含SoC核以及它们的状况(例如活动或睡眠状态)的标识。接下来,控制传到框225,在此参数可被设置成调用固件来执行核切换。要指出,在一个实施例中,可在OS代码中执行从执行策略管理器到对固件的这个调用的上述操作。
然而,例如可用低功率核的固件中执行操作的下一集合。如所看到的,这些操作可在菱形框230开始,在菱形框230中确定所请求的操作是核切换还是频率改变。如上面所描述的,为了讨论,假定正在发生核切换。要理解,上述操作以及图2中示出的剩余操作同样适用于当策略管理器确定时执行频率改变,尽管未指示核切换,但指示了核频率的改变。
为了讨论,假定该判定用于核切换。因而,在框235,可完成未决操作,例如核的各种缓冲器内的任何未决写/读。接下来,控制传到框240,在此可禁用中断,从而防止核处置来自外部代理的任何中断。控制接下来传到框245,在此可保存处理器的状态。更确切地说,该状态可被存储在本地存储器,诸如高速缓冲存储器。尽管本发明的范围不限于这个方面,但在一个实施例中,该状态可被存储在共享高速缓冲存储器,诸如对SoC的其它核可访问的第2级(L2)高速缓存。除了核状态的存储,其可包含存储在各种寄存器(包含架构寄存器、配置寄存器、控制寄存器、状况寄存器等)中的信息,还可存储校验和。这个校验和从而可以是基于所保存的整个状态生成的校验值,其随后可用于确认已经检索到正确状态。
仍参考图2,接下来可以锁定互相排斥位置,即互斥(框250)。这个互斥可以是共享存储器(诸如L2高速缓存或静态随机存取存储器(SRAM))中的锁,其可被获取,从而锁定状态,并防止任何其它代理访问此信息。这个旋转锁通过代码从SRAM运行来获取。因为这个存储器在异质SMP核之间共享,所以所有此类核可访问存储器,并且可获取锁。接下来,可激活定时器(框255)。在一个实施例中,这个定时器可被设置近似20微秒与100微秒之间的长度。要指出,这个定时器可以是核切换定时器,其可用于确定在预期时间帧内是否发生核切换。通过使用用于执行核切换的定时器,可以确保以低等待时间有效地进行核切换。控制然后传到框260,在此事件可被发送到高功率核。在一个实施例中,这个事件可以是经由处理器间通信(IPC)发送的唤醒事件。
仍参考在固件中执行的操作,控制传到菱形框265,以确定核切换定时器是否已经被清除。如果是,则这指示成功执行了到高功率核的核切换。因此,控制接下来传到框275,在此可刷新低功率核的各种结构/使其无效。尽管本发明的范围不限于这个方面,但此类结构可包含第1级(L1)高速缓存和转换后备缓冲器(TLB)。在刷新这个信息之后,其在一个实施例中可仅包含任何修改的或脏信息以加速无效操作,控制传到框276,在此低功率核可被置于睡眠状态。因此,这个核将等待要唤醒的事件。
如果到高功率核的切换不成功,如未被清除的核切换定时器所确定的,则控制相反传到框270,在此不支持核切换的指示例如可被传到OS。因而,在框272,临界区段可被禁用,并且当重新开始时在低功率核上可发生附加操作(框274)。
在核切换成功时的典型情况下,控制传到框280,在此高功率核(其可被假定为处于低功率或睡眠状态)从而监视事件,即这个唤醒事件。这个确定从而可在菱形框282进行,在此核识别唤醒事件。要指出,周期性定时器(诸如唤醒定时器)可在高功率核中设置成允许它周期性唤醒,以确定这个唤醒事件或任何其它间断事件是否被提供给它。
当高功率核响应于这个事件而唤醒时,控制接下来传到菱形框284以基于经由互斥设施访问状态与校验和来确定校验和是否正确。如上面所描述的,有效校验和可指示存储在共享存储器中的低功率核的状态是否正确。因而,控制传到框286,在此这个状态可被重新加载到高功率核中。接下来,控制传到框288,在此定时器(即核切换定时器)可被清除。在框290,高功率核然后启用中断,并且在框290,控制从固件执行(在一个实施例中)传回到OS,其中临界区段可被禁用,并且正常操作可在高功率核上开始或重新开始(框292)。如果在菱形框284确定校验和无效,则控制相反传到框295,在此可进行不支持核切换的指示。在一个实施例中,这个指示可被发送到另一(低功率)核。尽管在图2的实施例中在这个高等级示出,但要理解,本发明的范围不限于这个方面。
要理解,实施例可适用于许多不同类型的处理器。现在参考图3,示出了根据本发明实施例的处理器的框图。如图3所示,处理器300可实现为包含配置在单个半导体管芯上的各种组件的SoC,例如实现为单个IC封装。在所示出的具体实施例中,可存在多个核。更确切地说,可存在多个低功率核3100-310n。此外,还可存在多个高功率核。在所示出的实施例中,可存在高功率核3200-320n。
在一个实施例中,低功率核可操作在0与600兆赫(MHz)之间的频率,而高功率核可操作在600MHz与2.5吉赫(GHz)之间的频率。在一些实施例中,这些核可属于同质设计,不过低功率核操作在较低频率级。然而,在许多实施例中,这些核可属于异质设计。例如,低功率核可以是相对简单的有序处理器,诸如基于英特尔? Atom?设计的核。替代地,高功率核可属于更复杂的无序设计,诸如英特尔?架构(IA)32核,诸如英特尔Core?设计。要指出,每一个核都可包含各种结构,包含前端单元、执行单元、后端单元等。此外,在每个核内可存在高速缓冲存储器的一个或多个级。所有核都可耦合到共享高速缓存330,共享高速缓存330在一个实施例中可以是L2高速缓存,L2高速缓存又耦合到相干系统总线和组构340以提供到各种不同组件的互连,各种不同组件可经由一组控制器耦合到SoC。在所示出的实施例中,此类控制器可包含照相机控制器350、视频控制器355、图形控制器360、存储器控制器365(诸如双倍数据速率(DDR)存储器控制器)、一个或多个中断控制器370,还有其它控制器375。尽管在图3的实施例中在这个高等级示出,但要理解,本发明的范围不限于这个方面。
使用本发明的实施例,与核切换关联的开销可被最小化,从而减少用于切换的等待时间,消除颠簸,并实现SMP核的可预测动态切换,由此降低软件复杂性。
根据多个将来执行量子(例如下一量子和随后量子(t和t+1))的性能要求,核切换可动态发生,并且对操作系统和软件应用完全透明。由于异质核各具有不同功率性能特性,因此切换阈值可被调谐到SoC的特定实现。例如,如果预测针对700MHz的频率(并且假定600MHz的上阈值),则从低功率核到高功率核的确定可发生。
表1示出了根据本发明一个实施例基于预测算法确定是否动态切换SMP核的策略管理器的输出。
表1
在表1中,示出了系统的各种可特征化参数。基于这些参数中的一个或多个,策略管理器可确定给定将来量子的性能策略。如所看到的,参数包含当前的每周期的指令(IPC)、预测的CPU利用(例如就频率而言)。此外,可标识存储器利用信息(诸如高速缓存缺失的数量)作为存储器请求的百分比。根据这些参数,系统可处于给定状态,诸如存储器束缚状态、CPU束缚状态或低活动状态。
在各种实施例中,策略管理器可根据策略确定SoC的一个或多个选择的核基于这些参数中的一个或多个启用,这在表1的矩阵中可看到。例如,在一个实施例中,预测的处理器利用(例如就频率而言)本身可用于确定将启用还是禁用具体类型的核。还要理解,表1中示出的实现用于包含两个低功率核和两个高功率核的多核处理器,其中通过启用两个并且仅两个核(低功率核或者是高功率核)来简化策略。当然,在其它实施例中,可启用核的不同组合,包含零核、一个低功率核、一个高功率核或低功率核与高功率核的不同组合。此外,要理解,在其它实施例中,可存在多于两种异质类型的核,并且要进一步理解,包含多于四个核的SoC也可合并本发明的实施例。
现在参考图4,示出了根据本发明一个实施例的处理器核的框图。如图4所示,处理器核400可以是多级流水线的无序处理器。处理器核400在图4中以相对简化的视图示出,并且可对应于本文所描述的SoC的核之一。SoC的一个或多个其它核可包含相同架构,而一个或多个其它核可属于不同架构,诸如有序核。
如图4所示,核400包含前端单元410,其可用于提取要执行的指令,并且准备它们随后供处理器使用。例如,前端单元410可包含提取单元401、指令高速缓存403和指令解码器405。在一些实现中,前端单元410可进一步包含追踪高速缓存,连同微代码存储装置以及微操作存储装置。提取单元401例如可从存储器或指令高速缓存403提取宏指令,并将它们馈送到指令解码器405,以将它们解码成基元,即,由处理器执行的微操作。
耦合在前端单元410与执行单元420之间的是指令分配器415,其可实现为无序实现中的无序逻辑以接收微指令,并且准备它们用于执行。更确切地说,指令分配器415可包含各种缓冲器以分配对于执行所需的各种资源,并提供各种寄存器文件(诸如寄存器文件430和扩展寄存器文件435)内存储位置上的逻辑寄存器的重新命名。寄存器文件430可包含用于整数和浮点操作的单独寄存器文件。扩展的寄存器文件435可提供用于向量大小的单元(例如每个寄存器256位或512位)的存储装置。
如图4中进一步看到的,处理器400可包含一组模型特定寄存器(MSR)425。各种类型的模型特定信息可被存储在此类寄存器中。在一些实施例中,此类寄存器可包含有关执行特性或事件(诸如中断、陷阱、异常等)的信息。
在执行单元420中可存在各种资源,例如包含各种整数、浮点和单指令多数据(SIMD)逻辑单元,还有其它专用硬件。例如,此类执行单元可包含一个或多个算术逻辑单元(ALU) 422。此外,执行单元可进一步包含性能监视单元(PMU) 424。在各种实施例中,PMU 424可用于控制各种信息(例如分析计数器、MSR中的信息等)的获得。在这里的具体实现中,PMU 424或其它此类逻辑可用于提供处理器利用信息以便由策略管理器使用。
执行单元中的执行结果可被提供给引退逻辑,即,重新排序缓冲器(ROB) 440。更确切地说,ROB 440可包含接收与被执行的指令关联的信息的各种阵列和逻辑。这个信息然后由ROB 440检查以确定指令是否能有效引退,并且结果数据是否能提交给处理器的架构状态,或者是否发生了防止指令适当引退的一个或多个异常。当然,ROB 440可处置与引退关联的其它操作。
如图4中所示,ROB 440耦合到高速缓存450,其在一个实施例中可以是低级高速缓存(例如L1高速缓存),不过本发明的范围不限于这个方面。此外,执行单元420可直接耦合到高速缓存450。虽然在图4的实施例中以此高等级示出,但要理解,本发明的范围不限于这个方面。
现在参考图5,示出了根据本发明实施例在计算机系统中存在的组件的框图。如图5所示,系统500可包含许多不同组件。这些组件可实现为IC、其部分、分立电子装置或适用于电路板(诸如母板或计算机系统的附加式卡)的其它模块,或实现为以其它方式合并在计算机系统底座内的组件。还要指出,图5的框图打算示出计算机系统的许多组件的高级视图。然而,要理解,在某些实现中可存在附加组件,并且此外,在其它实现中可出现所示组件的不同布置。
如图5所看到的,处理器510(其可以是低功率多核处理器插座(诸如超低电压处理器))可充当主处理单元和中央集线器,以便与系统的各种组件通信。此类处理器可实现为片上系统(SoC)。在一个实施例中,处理器510可以是基于英特尔?架构Core?的处理器,诸如i3、i5、i7或可从加利福尼亚圣克拉拉的英特尔公司得到的另一此类处理器,诸如组合了一个或多个基于Core?的核与一个或多个基于英特尔?ATOM?的核从而在单个SoC中实现高功率核和低功率核的处理器。然而,要理解,在其它实施例(诸如苹果A5处理器)中,相反可存在诸如可从加利福尼亚的Sunnyvale的Advanced Micro Devices公司(AMD)得到的其它低功率处理器、来自ARM Holdings有限公司的基于ARM的设计或来自加利福尼亚的Sunnyvale的MIPS技术公司的基于MIPS的设计或者它们的获许可者或采用者。无论如何,处理器510可基于本文所描述的预测操作提供不同核之间的动态工作载荷切换。
处理器510可与系统存储器515通信,系统存储器515在一个实施例中可经由多个存储器装置实现以提供给定量的系统存储器。作为示例,存储器可按照基于联合电子装置工程委员会(JEDEC)低功率双倍数据速率(LPDDR)的设计,诸如根据JEDEC JESD 209-2E (2009年4月公布的)的当前LPDDR2标准、或者称为LPDDR3的下一代LPDDR标准,其将提供对LPDDR2的扩展以增大带宽。作为示例,系统存储器的2/4/8吉字节(GB)可存在,并且可经由一个或多个存储器互连耦合到处理器510。在各种实现中,各个存储器装置可属于不同封装类型,诸如单管芯封装(SDP)、双管芯封装(DDP)或四管芯封装(QDP)。这些装置在一些实施例中可直接焊接到母板上以提供较低简档解决方案,而在其它实施例中,装置可配置成为一个或多个存储器模块,这些存储器模块又可通过给定连接器耦合到母板。
为了提供诸如数据、应用、一个或多个操作系统等信息的永久存储,大容量存储装置520也可耦合到处理器510。在各种实施例中,为了启用更薄并且更轻的系统设计,以及为了改进系统响应,这个大容量存储装置可经由SSD实现。然而,在其它实施例中,大容量存储装置可主要使用具有较小量SSD存储空间的硬盘驱动器(HDD)实现以充当SSD高速缓存,以使在掉电事件期间启用上下文状态和其它此类信息的非易失性存储,使得在系统活动重新启动时可发生快速加电。还如图5所示,闪速装置522例如可经由串行外围接口(SPI)耦合到处理器510。这个闪速装置可提供系统软件(包含系统的基本输入/输出软件(BIOS)以及其它固件)的非易失性存储装置。
在系统500内可存在各种输入/输出(I/O)装置。确切地说,在图5的实施例中示出的是显示器524,其可以是配置在底座的盖部分内的高清LCD或LED面板。这个显示器面板还可提供例如适应于在显示器面板外部的触摸屏525,使得经由用户与这个触摸屏的交互,用户输入可被提供给系统以实现期望操作,例如关于信息的显示,信息的访问等。在一个实施例中,显示器524可经由可实现为高性能图形互连的显示器互连耦合到处理器510。触摸屏525可经由另一互连(其在一个实施例中可以是I2C互连)耦合到处理器510。如图5中进一步示出的,除了触摸屏525,也可经由触摸板530发生通过触摸的用户输入,触摸板530可配置在底座内,并且也可耦合到与触摸屏525相同的I2C互连。
为了感知计算和其它目的,各种传感器可存在于系统内,并且能以不同方式耦合到处理器510。某些惯性和环境传感器可通过传感器集线器540(例如经由I2C互连)耦合到处理器510。在图5所示的实施例中,这些传感器可包含加速计541、环境光传感器(ALS)542、指南针543和陀螺仪544。其它环境传感器可包含一个或多个热传感器546,热传感器在一个实施例中可经由系统管理总线(SMBus)总线耦合到处理器510。
如在图5中所看到的,各种外围装置可经由低管脚计数(LPC)互连耦合到处理器510。在所示出的实施例中,各种组件可通过嵌入式控制器535耦合。此类组件可包含键盘536(例如经由PS2接口耦合)、风扇537和热传感器539。在一些实施例中,触摸板530还经由PS2接口耦合到EC535。此外,安全处理器(诸如按照日期为2003年10月2日的可信计算群(TCG)TPM规范版本1.2的可信平台模块(TPM)538)也可经由这个LPC互连耦合到处理器510。
系统500能以各种方式(包含无线)与外部装置通信。在图5所示的实施例中,存在各种无线模块,每一个无线模块可对应于为具体无线通信协议配置的无线电。用于短程(诸如近场)中无线通信的一种方式可经由近场通信(NFC)单元545,其在一个实施例中可经由SMBus与处理器510通信。要指出,经由这个NFC单元545,彼此紧靠的装置可通信。例如,用户可使系统500能够经由一起适配处于靠近关系的两个装置并实现信息(诸如标识信息、支付信息、数据(诸如图像数据等))的传送与另一(例如)便携装置(诸如用户的智能电话)通信。也可使用NFC系统执行无线功率传送。
如在图5中进一步看到的,附加无线单元可包含其它短程无线引擎,其包含WLAN单元550和蓝牙单元552。使用WLAN单元550,可实现按照给定电气与电子工程师协会(IEEE) 802.11标准的Wi-Fi?通信,而经由蓝牙单元552,可发生经由蓝牙协议的短程通信。这些单元例如可经由USB链路或通用异步接收器传送器(UART)链路与处理器510通信。或者,这些单元可经由互连经按照PCI ExpressTM快速规范基本规范版本3.0 (2007年1月17日公布)的外围组件互连快速(PCIe?)协议或另一此类协议(诸如串行数据输入/输出(SDIO)标准)耦合到处理器510。当然,这些外围装置(它们可配置在一个或多个附加式卡上)之间的实际物理连接可通过适应于母板的下一代形状因子(NGFF)连接器。
此外,例如根据蜂窝或其它无线广域协议的无线广域通信可经由WWAN单元556发生,WWAN单元556又可耦合到订户身份模块(SIM) 557。此外,为了实现位置信息的接收和使用,也可存在GPS模块555。要指出,在图5所示的实施例中,WWAN单元556和集成捕获装置(诸如照相机模块554)可经由给定USB协议(诸如USB 2.0或3.0链路或者UART或I2C协议)通信。再一次,这些单元的实际物理连接可经由使NGFF附加式卡适应于配置在母板上的NGFF连接器。
为了提供音频输入和输出,音频处理器可经由数字信号处理器(DSP) 560实现,数字信号处理器560可经由高清音频(HDA)链路耦合到处理器510。类似地,DSP 560可与集成编码器/解码器(CODEC)和放大器562通信,该放大器562又可耦合到输出扬声器563,该扬声器563可在底座内实现。类似地,放大器和CODEC 562可耦合以从麦克风565接收音频输入,该麦克风565在一个实施例中可经由双阵列麦克风实现以提供高质量音频输入,以便实现在系统内对各种操作进行语音激活控制。还要指出,音频输出可从放大器/CODEC 562提供到耳机插孔564。尽管在图5的实施例中用这些具体组件示出,但要理解,本发明的范围不限于这个方面。
实施例可用在许多不同环境中。现在参考图6,示出了可使用实施例的示例系统600的框图。如所看到的,系统600可以是智能电话或其它无线通信器。如在图6的框图中所示的,系统600可包含基带处理器610,该基带处理器可包含异质核,异质核可被动态控制以基于本文所描述的所做的预测在不同核类型之间切换工作载荷。一般而言,基带处理器610可相对于通信执行各种信号处理,以及执行装置的计算操作。基带处理器610又可耦合到用户接口/显示器620,其在一些实施例中可由触摸屏显示器实现。此外,基带处理器610可耦合到存储器系统,存储器系统在图6的实施例中包含非易失性存储器(即闪速存储器630)和系统存储器(即动态随机存取存储器(DRAM))635。如进一步所看到的,基带处理器610可进一步耦合到捕获装置640,诸如可记录视频和/或静态图像的图像捕获装置。
为了实现传送和接收通信,在基带处理器610与天线690之间可耦合各种电路。确切地说,可存在射频(RF)收发器670和无线局域网(WLAN)收发器675。一般而言,RF收发器670可用于根据给定无线通信协议(诸如诸如按照码分多址(CDMA)、全球移动通信系统(GSM)、长期演进(LTE)的3G或4G通信协议)或其它协议接收和传送无线数据和调用。此外,可存在GPS传感器680。还可提供其它无线通信,诸如无线电信号(例如AM/FM和其它信号)的接收或传送。此外,经由WLAN收发器675,还可实现诸如根据蓝牙标准或IEEE 802.11标准(诸如IEEE 802.11a/b/g/n)的本地无线信号。尽管在图6的实施例中以这个高等级示出,但要理解,本发明的范围不限于这个方面。
实施例可用在许多不同类型系统中。例如,在一个实施例中,通信装置可布置成执行本文描述的各种方法和技术。当然,本发明的范围不限于通信装置,并且相反,其它实施例可指向用于处理指令的其它类型的设备或者一个或多个机器可读介质,所述介质包含响应于在计算装置上的执行而使该装置执行本文描述的其中一个或多个方法和技术的指令。
如下示例涉及另外的实施例。
在一个实施例中,设备包含执行指令的第一核和执行指令的第二核。第二核相对于第一核可不对称,并且具有比第一核更高的功耗等级。策略管理器又将接收操作系统调度信息、至少一个将来量子的性能预测信息以及当前处理器利用信息,并且至少部分基于操作系统调度信息、性能预测信息和当前处理器利用信息来确定将来量子的性能预测以及是否引起第一核与第二核之间的切换。
性能监视单元可向策略管理器提供当前处理器利用信息。
策略管理器可以是在第一核和第二核之一上执行的固件。策略管理器备选地可以是配置在单个半导体管芯上的多核处理器的功率控制器。
操作系统调度信息对于多个将来量子中的每个可包含要执行的过程的数量和线程的数量。当前处理器利用信息可包含每周期的指令和处理器利用率。
策略管理器可确定是否引起对第一核和第二核中至少一个的频率的改变。
在一个实施例中,可存在各相对于第一核同质的多个第一核以及各相对于第二核同质的多个第二核,其中策略管理器将基于将来量子的性能预测确定是否将在多个第一核中的至少一些上执行的工作载荷切换到多个第二核中的至少一些。
策略管理器可发出使在第一核上执行的OS进入临界区段并使设备能够将OS的执行切换到对OS透明的第二核的调用。
第一核可将第一核的状态保存到共享存储器,锁定互相排斥位置,并且在OS执行切换之前激活定时器。如果在定时器期满之前在第二核上执行OS期间清除定时器,则第一核也可使第一核的高速缓存无效。如果在定时器期满之前未清除定时器,则第一核也可使OS禁用临界区段并重新开始在第一核上执行。
在一个实施例中,设备是包含第一核和第二核的SoC,并且策略管理器将在第一核和第二核中的启用核上执行。
在另一实施例中,方法包含:在多核处理器的第一核中从策略管理器接收指示处理器操作参数的改变的调用;执行一组动作以完成未决的访问并且阻止对第一核的中断;将第一核的状态存储在耦合到第一核的共享存储器中,并设置共享存储器的互相排斥位置;以及启动定时器,并且确定在定时器期满之前定时器是否被清除。
处理器操作参数可以是在第一核与第二核之间的核切换以使工作载荷从第一核移动到第二核,并且可在启动定时器之后将事件从第一核发送到第二核以使第二核唤醒。
该方法可进一步包含:响应于确定在定时器期满之前定时器被清除而使第一核进入低功率状态。
该方法可进一步包含:响应于定时器期满而使第一核重新开始执行工作载荷,而没有核切换。
该方法可进一步包含:将第一核状态的校验和与第一核状态保存在共享存储器中,并且经由第二核访问第一核状态与校验和,并且确定校验和是否有效。
该方法可进一步包含:响应于确定校验和有效而将第一核状态加载到第二核中,并且此后清除定时器,并且响应于确定校验和无效而不清除定时器。
在另一实施例中,制品包含至少一个存储介质,存储介质包含指令,所述指令当执行时使多核处理器能够接收有关要在多个将来量子中执行的过程和线程的操作系统调度信息、至少一个将来量子的性能预测信息以及当前处理器利用信息;并且至少部分基于操作系统调度信息、性能预测信息和当前处理器利用信息确定是否引起多核处理器的第一核与第二核之间的切换(其中第一核和第二核是异质计算元件);以及向第一核发出指示切换的调用,其中响应于该调用,第一核将把第一核的状态存储在共享存储器中,并且设置共享存储器的相互排斥位置,启动定时器,并确定在定时器期满之前定时器是否被清除。
该制品可进一步包含如下指令:以响应于确定在定时器期满之前定时器被清除而使第一核进入低功率状态。
该制品可进一步包含如下指令:响应于定时器期满而使多核处理器在第一核上重新开始执行工作载荷,而没有切换。
该制品可进一步包含如下指令:使多核处理器将第一核状态的校验和与第一核状态保存在共享存储器中,并且访问第一核状态与校验和以确定校验和是否有效,并且如果是,则在第二核上重新开始执行工作载荷,并清除定时器。
实施例可以用代码实现,并且可存储在其上存储有指令的非易失性存储介质上,指令可用于对系统编程以执行指令。存储介质可包含但不限于任何类型的盘,包含软盘、光盘、固态驱动器(SSD)、压缩盘只读存储器(CD-ROM)、可重写压缩盘(CD-RW)和磁光盘、诸如只读存储器(ROM)的半导体装置、诸如动态随机存取存储器(DRAM)、静态随机存取存储器(SRAM)的随机存取存储器(RAM)、可擦除可编程只读存储器(EPROM)、闪存、电可擦除可编程只读存储器(EEPROM)、磁卡或光卡或适合于存储电子指令的任何其它类型介质。
虽然本发明已经相对于有限数量的实施例进行描述,但本领域技术人员将从其中认识到众多修改和改变。意图是,所附权利要求涵盖落入本发明的真实精神和范围内的所有此类修改和改变。
Claims (23)
1. 一种设备,包括:
第一核,用于执行指令;
第二核,用于执行指令,所述第二核相对于所述第一核不对称,并且具有比所述第一核更高的功耗等级;以及
策略管理器部件,用于接收操作系统调度信息、至少一个将来量子的性能预测信息以及当前处理器利用信息,并至少部分基于所述操作系统调度信息、所述性能预测信息以及所述当前处理器利用信息确定将来量子的性能预测以及是否引起所述第一核与所述第二核之间的切换。
2. 如权利要求1所述的设备,进一步包括:性能监视部件,用于向所述策略管理器部件提供所述当前处理器利用信息。
3. 如权利要求1所述的设备,其中所述策略管理器部件包括在所述第一核和所述第二核之一上执行的固件。
4. 如权利要求1所述的设备,其中所述策略管理器部件包括处理器的功率控制器,所述处理器对应于配置在单个半导体管芯上的多核处理器。
5. 如权利要求1所述的设备,其中所述操作系统调度信息对于多个将来量子中的每个包含要执行的过程的数量和线程的数量。
6. 如权利要求5所述的设备,其中所述当前处理器利用信息包含每周期的指令和处理器利用率。
7. 如权利要求1所述的设备,其中所述策略管理器部件用于确定是否引起对所述第一核和所述第二核中至少一个的频率的改变。
8. 如权利要求1所述的设备,其中所述策略管理器部件用于发出使在所述第一核上执行的操作系统(OS)进入临界区段并使所述设备能够将所述OS的执行切换到对所述OS透明的所述第二核的调用。
9. 如权利要求8所述的设备,其中所述第一核将把所述第一核的状态保存到共享存储器,锁定互相排斥位置,并且在所述OS执行切换之前激活定时器。
10. 如权利要求9所述的设备,其中如果在所述定时器期满之前在所述第二核上执行所述OS期间所述定时器被清除,则所述第一核将使所述第一核的高速缓存无效。
11. 如权利要求10所述的设备,其中如果在所述定时器期满之前所述定时器未被清除,则所述第一核将使所述OS禁用所述临界区段并重新开始在所述第一核上执行。
12. 如权利要求1所述的设备,其中所述设备包括包含所述第一核和所述第二核的片上系统(SoC),并且其中所述策略管理器将在所述第一核和所述第二核中的启用核上执行。
13. 一种方法,包括:
在多核处理器的第一核中从策略管理器接收指示对处理器操作参数的改变的调用;
执行完成未决的访问和阻止对所述第一核的中断的动作集合;
将所述第一核的状态存储在耦合到所述第一核的共享存储器中,并设置所述共享存储器的互相排斥位置;以及
启动定时器,并确定在所述定时器期满之前所述定时器是否被清除。
14. 如权利要求13所述的方法,其中所述处理器操作参数包括在所述第一核与第二核之间的核切换以使工作载荷从所述第一核移动到所述第二核,并且进一步包括在启动所述定时器之后将事件从所述第一核发送到所述第二核以使所述第二核唤醒。
15. 如权利要求14所述的方法,进一步包括:
响应于确定在所述定时器期满之前所述定时器被清除而使所述第一核进入低功率状态。
16. 如权利要求14所述的方法,进一步包括:
响应于所述定时器到期而使所述第一核重新开始执行所述工作载荷,而没有所述核切换。
17. 如权利要求13所述的方法,进一步包括:
将所述第一核状态的校验和与所述第一核状态保存在所述共享存储器中;以及
经由所述第二核访问所述第一核状态和所述校验和,并确定所述校验和是否有效。
18. 如权利要求17所述的方法,进一步包括:
响应于确定所述校验和是有效的而将所述第一核状态加载到所述第二核中,并且此后清除所述定时器。
19. 如权利要求18所述的方法,进一步包括:
响应于确定所述校验和不是有效的而不清除所述定时器。
20. 一种通信装置,布置成执行如权利要求13至19中任一项所述的方法。
21. 至少一个机器可读介质,包括多个指令,所述指令响应于在计算装置上的执行而使所述计算装置执行如权利要求13至19中任一项所述的方法。
22. 一种用于处理指令的设备,配置成执行如权利要求13至19中任一项所述的方法。
23. 一种设备,包括用于执行如权利要求13至19中任一项所述的方法的部件。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610812079.7A CN106383570B (zh) | 2012-10-04 | 2013-09-19 | 在处理器的异质核之间动态切换工作载荷 |
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/645,081 US9619284B2 (en) | 2012-10-04 | 2012-10-04 | Dynamically switching a workload between heterogeneous cores of a processor |
US13/645081 | 2012-10-04 | ||
PCT/US2013/060566 WO2014055254A1 (en) | 2012-10-04 | 2013-09-19 | Dynamically switching a workload between heterogeneous cores of a processor |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610812079.7A Division CN106383570B (zh) | 2012-10-04 | 2013-09-19 | 在处理器的异质核之间动态切换工作载荷 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104583900A true CN104583900A (zh) | 2015-04-29 |
CN104583900B CN104583900B (zh) | 2018-07-10 |
Family
ID=50433703
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610812079.7A Active CN106383570B (zh) | 2012-10-04 | 2013-09-19 | 在处理器的异质核之间动态切换工作载荷 |
CN201380046118.1A Active CN104583900B (zh) | 2012-10-04 | 2013-09-19 | 在处理器的异质核之间动态切换工作载荷 |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610812079.7A Active CN106383570B (zh) | 2012-10-04 | 2013-09-19 | 在处理器的异质核之间动态切换工作载荷 |
Country Status (4)
Country | Link |
---|---|
US (1) | US9619284B2 (zh) |
EP (1) | EP2904466B1 (zh) |
CN (2) | CN106383570B (zh) |
WO (1) | WO2014055254A1 (zh) |
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106201725A (zh) * | 2016-07-21 | 2016-12-07 | 张升泽 | 多核芯片的功率实现方法及系统 |
WO2018018492A1 (zh) * | 2016-07-28 | 2018-02-01 | 张升泽 | 电流在多核芯片内部的多区间分配方法及系统 |
WO2018018494A1 (zh) * | 2016-07-28 | 2018-02-01 | 张升泽 | 基于多区间分配的功率分配方法及系统 |
WO2019085912A1 (zh) * | 2017-10-31 | 2019-05-09 | 捷开通讯(深圳)有限公司 | 通信终端及其通信方法、存储介质 |
CN109947569A (zh) * | 2019-03-15 | 2019-06-28 | Oppo广东移动通信有限公司 | 绑定核心的方法、装置、终端及存储介质 |
WO2019153993A1 (en) * | 2018-02-09 | 2019-08-15 | Huawei Technologies Co., Ltd. | Video playback energy consumption control |
CN110968415A (zh) * | 2018-09-29 | 2020-04-07 | Oppo广东移动通信有限公司 | 多核处理器的调度方法、装置及终端 |
CN111475213A (zh) * | 2020-04-03 | 2020-07-31 | 深圳忆联信息系统有限公司 | 多核结构固态硬盘的功耗降低方法、装置和计算机设备 |
WO2021082969A1 (zh) * | 2019-10-29 | 2021-05-06 | Oppo广东移动通信有限公司 | 核间数据处理方法、系统、片上系统以及电子设备 |
CN115509342A (zh) * | 2022-10-31 | 2022-12-23 | 南京芯驰半导体科技有限公司 | 一种多核集群之间的切换方法及系统 |
WO2024114728A1 (zh) * | 2022-12-02 | 2024-06-06 | 华为技术有限公司 | 一种异构处理器及相关调度方法 |
Families Citing this family (33)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20120095607A1 (en) * | 2011-12-22 | 2012-04-19 | Wells Ryan D | Method, Apparatus, and System for Energy Efficiency and Energy Conservation Through Dynamic Management of Memory and Input/Output Subsystems |
KR102005765B1 (ko) * | 2012-12-17 | 2019-07-31 | 삼성전자주식회사 | 시스템-온 칩과, 이의 동작 방법 |
KR102082859B1 (ko) * | 2013-01-07 | 2020-02-28 | 삼성전자주식회사 | 복수의 이종 코어들을 포함하는 시스템 온 칩 및 그 동작 방법 |
US20140298074A1 (en) * | 2013-03-29 | 2014-10-02 | GM Global Technology Operations LLC | Method of calculating cpu utilization |
CN104424156A (zh) * | 2013-09-09 | 2015-03-18 | 中兴通讯股份有限公司 | 处理器的核处理方法、装置及终端 |
US9965279B2 (en) * | 2013-11-29 | 2018-05-08 | The Regents Of The University Of Michigan | Recording performance metrics to predict future execution of large instruction sequences on either high or low performance execution circuitry |
US9417927B2 (en) * | 2014-04-01 | 2016-08-16 | International Business Machines Corporation | Runtime capacity planning in a simultaneous multithreading (SMT) environment |
US9361159B2 (en) | 2014-04-01 | 2016-06-07 | International Business Machines Corporation | Runtime chargeback in a simultaneous multithreading (SMT) environment |
US9870226B2 (en) | 2014-07-03 | 2018-01-16 | The Regents Of The University Of Michigan | Control of switching between executed mechanisms |
US9720827B2 (en) * | 2014-11-14 | 2017-08-01 | Intel Corporation | Providing multiple memory modes for a processor including internal memory |
GB2536871A (en) * | 2015-03-04 | 2016-10-05 | Advanced Risc Mach Ltd | An apparatus and method to generate trace data in response to transactional execution |
KR102352756B1 (ko) * | 2015-04-29 | 2022-01-17 | 삼성전자주식회사 | 애플리케이션 프로세서, 시스템 온 칩, 및 이를 포함하는 컴퓨팅 장치 |
US10031574B2 (en) * | 2015-05-20 | 2018-07-24 | Mediatek Inc. | Apparatus and method for controlling multi-core processor of computing system |
US20170168832A1 (en) * | 2015-12-11 | 2017-06-15 | International Business Machines Corporation | Instruction weighting for performance profiling in a group dispatch processor |
US9892058B2 (en) * | 2015-12-16 | 2018-02-13 | Advanced Micro Devices, Inc. | Centrally managed unified shared virtual address space |
US10037227B2 (en) * | 2015-12-17 | 2018-07-31 | Intel Corporation | Systems, methods and devices for work placement on processor cores |
CN107046508B (zh) * | 2016-02-05 | 2020-01-31 | 华为技术有限公司 | 报文接收方法及网络设备 |
US9977488B1 (en) * | 2016-03-10 | 2018-05-22 | Changming Kong | Electronic device with smart power management system |
US10083068B2 (en) | 2016-03-29 | 2018-09-25 | Microsoft Technology Licensing, Llc | Fast transfer of workload between multiple processors |
US10379904B2 (en) * | 2016-08-31 | 2019-08-13 | Intel Corporation | Controlling a performance state of a processor using a combination of package and thread hint information |
US10552212B2 (en) * | 2016-11-28 | 2020-02-04 | Arm Limited | Data processing |
US10459517B2 (en) * | 2017-03-31 | 2019-10-29 | Qualcomm Incorporated | System and methods for scheduling software tasks based on central processing unit power characteristics |
US10218358B2 (en) * | 2017-06-16 | 2019-02-26 | Intel Corporation | Methods and apparatus for unloading data from a configurable integrated circuit |
US10970118B2 (en) | 2017-08-02 | 2021-04-06 | Advanced Micro Devices, Inc. | Shareable FPGA compute engine |
CN109803279B (zh) * | 2017-11-16 | 2021-06-25 | 大唐移动通信设备有限公司 | 一种切片管理方法、基站及终端 |
KR102452205B1 (ko) | 2017-11-20 | 2022-10-06 | 삼성전자주식회사 | 멀티 코어 제어 시스템 |
US10713075B2 (en) | 2017-11-30 | 2020-07-14 | International Business Machines Corporation | Workload manager control of dynamic thread mode switch |
WO2019153187A1 (en) | 2018-02-08 | 2019-08-15 | Alibaba Group Holding Limited | Hybrid system-on-chip for power and performance prediction and control |
US11074101B2 (en) | 2018-10-23 | 2021-07-27 | International Business Machines Corporation | Automated switching between interrupt context I/O processing and thread context I/O processing |
US11422812B2 (en) | 2019-06-25 | 2022-08-23 | Advanced Micro Devices, Inc. | Method and apparatus for efficient programmable instructions in computer systems |
CN111625284B (zh) * | 2020-05-28 | 2023-03-21 | 深圳忆联信息系统有限公司 | 固态硬盘的低功耗模式唤醒恢复方法、装置和计算机设备 |
US20240004776A1 (en) * | 2020-10-22 | 2024-01-04 | Arizona Board Of Regents On Behalf Of Arizona State University | User-space emulation framework for heterogeneous soc design |
CN115640058B (zh) * | 2022-12-13 | 2024-01-26 | 摩尔线程智能科技(北京)有限责任公司 | 操作系统的切换方法、电子设备及存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090083554A1 (en) * | 2005-09-30 | 2009-03-26 | Intel Corporation | Dynamic core swapping |
CN101790709A (zh) * | 2007-08-27 | 2010-07-28 | 马维尔国际贸易有限公司 | 动态核心切换 |
US20120233477A1 (en) * | 2011-03-11 | 2012-09-13 | Youfeng Wu | Dynamic core selection for heterogeneous multi-core systems |
Family Cites Families (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6449683B1 (en) * | 1999-12-14 | 2002-09-10 | Intel Corporation | Using non-volatile memory for power management in a computer |
US6687838B2 (en) * | 2000-12-07 | 2004-02-03 | Intel Corporation | Low-power processor hint, such as from a PAUSE instruction |
US6820263B1 (en) * | 2000-12-29 | 2004-11-16 | Nortel Networks Limited | Methods and system for time management in a shared memory parallel processor computing environment |
US7093147B2 (en) * | 2003-04-25 | 2006-08-15 | Hewlett-Packard Development Company, L.P. | Dynamically selecting processor cores for overall power efficiency |
US7788670B2 (en) | 2004-10-26 | 2010-08-31 | Intel Corporation | Performance-based workload scheduling in multi-core architectures |
DE102004059996B4 (de) * | 2004-12-13 | 2006-10-05 | Infineon Technologies Ag | Verfahren und Vorrichtung zum Einstellen der Taktfrequenz eines Prozessors |
US20080126748A1 (en) * | 2006-09-01 | 2008-05-29 | Capps Louis B | Multiple-Core Processor |
JP2008257578A (ja) * | 2007-04-06 | 2008-10-23 | Toshiba Corp | 情報処理装置、スケジューラおよび情報処理置のスケジュール制御方法 |
CN101295278B (zh) * | 2007-04-23 | 2010-08-11 | 大唐移动通信设备有限公司 | 定位被改写代码段所在进程的方法及装置 |
GB2449455B (en) * | 2007-05-22 | 2011-08-03 | Advanced Risc Mach Ltd | A data processing apparatus and method for managing multiple program threads executed by processing circuitry |
US8219788B1 (en) | 2007-07-23 | 2012-07-10 | Oracle America, Inc. | Virtual core management |
US8261284B2 (en) | 2007-09-13 | 2012-09-04 | Microsoft Corporation | Fast context switching using virtual cpus |
US8024590B2 (en) | 2007-12-10 | 2011-09-20 | Intel Corporation | Predicting future power level states for processor cores |
WO2009125257A1 (en) | 2008-04-11 | 2009-10-15 | Freescale Semiconductor, Inc. | Microprocessor having a low-power mode and a non-low power mode, data processing system and computer program product. |
US20110213947A1 (en) * | 2008-06-11 | 2011-09-01 | John George Mathieson | System and Method for Power Optimization |
US8122269B2 (en) | 2009-01-07 | 2012-02-21 | International Business Machines Corporation | Regulating power consumption in a multi-core processor by dynamically distributing power and processing requests by a managing core to a configuration of processing cores |
WO2010138031A1 (en) | 2009-05-26 | 2010-12-02 | Telefonaktiebolaget Lm Ericsson (Publ) | Method and scheduler in an operating system |
US8261275B2 (en) | 2009-06-29 | 2012-09-04 | Oracle America, Inc. | Method and system for heuristics-based task scheduling |
US8639862B2 (en) | 2009-07-21 | 2014-01-28 | Applied Micro Circuits Corporation | System-on-chip queue status power management |
US8510749B2 (en) | 2010-05-27 | 2013-08-13 | International Business Machines Corporation | Framework for scheduling multicore processors |
US9268611B2 (en) | 2010-09-25 | 2016-02-23 | Intel Corporation | Application scheduling in heterogeneous multiprocessor computing platform based on a ratio of predicted performance of processor cores |
-
2012
- 2012-10-04 US US13/645,081 patent/US9619284B2/en active Active
-
2013
- 2013-09-19 WO PCT/US2013/060566 patent/WO2014055254A1/en active Application Filing
- 2013-09-19 CN CN201610812079.7A patent/CN106383570B/zh active Active
- 2013-09-19 CN CN201380046118.1A patent/CN104583900B/zh active Active
- 2013-09-19 EP EP13844447.6A patent/EP2904466B1/en active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090083554A1 (en) * | 2005-09-30 | 2009-03-26 | Intel Corporation | Dynamic core swapping |
CN101790709A (zh) * | 2007-08-27 | 2010-07-28 | 马维尔国际贸易有限公司 | 动态核心切换 |
US20120233477A1 (en) * | 2011-03-11 | 2012-09-13 | Youfeng Wu | Dynamic core selection for heterogeneous multi-core systems |
Cited By (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106201725A (zh) * | 2016-07-21 | 2016-12-07 | 张升泽 | 多核芯片的功率实现方法及系统 |
WO2018018492A1 (zh) * | 2016-07-28 | 2018-02-01 | 张升泽 | 电流在多核芯片内部的多区间分配方法及系统 |
WO2018018494A1 (zh) * | 2016-07-28 | 2018-02-01 | 张升泽 | 基于多区间分配的功率分配方法及系统 |
WO2019085912A1 (zh) * | 2017-10-31 | 2019-05-09 | 捷开通讯(深圳)有限公司 | 通信终端及其通信方法、存储介质 |
WO2019153993A1 (en) * | 2018-02-09 | 2019-08-15 | Huawei Technologies Co., Ltd. | Video playback energy consumption control |
CN110968415A (zh) * | 2018-09-29 | 2020-04-07 | Oppo广东移动通信有限公司 | 多核处理器的调度方法、装置及终端 |
CN110968415B (zh) * | 2018-09-29 | 2022-08-05 | Oppo广东移动通信有限公司 | 多核处理器的调度方法、装置及终端 |
CN109947569A (zh) * | 2019-03-15 | 2019-06-28 | Oppo广东移动通信有限公司 | 绑定核心的方法、装置、终端及存储介质 |
CN109947569B (zh) * | 2019-03-15 | 2021-04-06 | Oppo广东移动通信有限公司 | 绑定核心的方法、装置、终端及存储介质 |
WO2021082969A1 (zh) * | 2019-10-29 | 2021-05-06 | Oppo广东移动通信有限公司 | 核间数据处理方法、系统、片上系统以及电子设备 |
CN111475213A (zh) * | 2020-04-03 | 2020-07-31 | 深圳忆联信息系统有限公司 | 多核结构固态硬盘的功耗降低方法、装置和计算机设备 |
CN111475213B (zh) * | 2020-04-03 | 2023-04-28 | 深圳忆联信息系统有限公司 | 多核结构固态硬盘的功耗降低方法、装置和计算机设备 |
CN115509342A (zh) * | 2022-10-31 | 2022-12-23 | 南京芯驰半导体科技有限公司 | 一种多核集群之间的切换方法及系统 |
CN115509342B (zh) * | 2022-10-31 | 2023-03-10 | 南京芯驰半导体科技有限公司 | 一种多核集群之间的切换方法及系统 |
WO2024114728A1 (zh) * | 2022-12-02 | 2024-06-06 | 华为技术有限公司 | 一种异构处理器及相关调度方法 |
Also Published As
Publication number | Publication date |
---|---|
EP2904466B1 (en) | 2019-06-19 |
CN106383570A (zh) | 2017-02-08 |
EP2904466A1 (en) | 2015-08-12 |
WO2014055254A1 (en) | 2014-04-10 |
EP2904466A4 (en) | 2016-12-21 |
US20140101411A1 (en) | 2014-04-10 |
CN106383570B (zh) | 2020-02-14 |
US9619284B2 (en) | 2017-04-11 |
CN104583900B (zh) | 2018-07-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104583900A (zh) | 在处理器的异质核之间动态切换工作载荷 | |
US10564699B2 (en) | Dynamically controlling cache size to maximize energy efficiency | |
EP3155521B1 (en) | Systems and methods of managing processor device power consumption | |
US20140068302A1 (en) | Mechanism for facilitating faster suspend/resume operations in computing systems | |
US20150046679A1 (en) | Energy-Efficient Run-Time Offloading of Dynamically Generated Code in Heterogenuous Multiprocessor Systems | |
CN114489306B (zh) | 遮蔽处理器的核的功率状态 | |
CN117873302A (zh) | 用于处理器的优化节流的系统、装置和方法 | |
US10089263B2 (en) | Synchronization of interrupt processing to reduce power consumption | |
CN105308571A (zh) | 基于活动处理器的动态电压和频率管理 | |
US9081577B2 (en) | Independent control of processor core retention states | |
CN104380257A (zh) | 在处理器核之间调度任务 | |
CN103229122A (zh) | 提供每内核电压和频率控制 | |
CN104049715A (zh) | 平台不可知的功率管理 | |
CN107003709A (zh) | 包括实现指令集架构不同部分的多个不同处理器内核的处理器 | |
CN113366410A (zh) | 用于处理器的功率许可控制的系统、装置和方法 | |
CN103842933A (zh) | 多核平台中的受约束引导技术 | |
US20230185349A1 (en) | Power management watchdog | |
US20230305927A1 (en) | Register replay state machine | |
US20230092152A1 (en) | Controlled exposure of statistical information | |
CN117597665A (zh) | 应用程序可协商平台热感知调度器 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |