CN102804103A - 用于在源和目标处理电路间转移工作量的数据处理装置和方法 - Google Patents

用于在源和目标处理电路间转移工作量的数据处理装置和方法 Download PDF

Info

Publication number
CN102804103A
CN102804103A CN2011800121922A CN201180012192A CN102804103A CN 102804103 A CN102804103 A CN 102804103A CN 2011800121922 A CN2011800121922 A CN 2011800121922A CN 201180012192 A CN201180012192 A CN 201180012192A CN 102804103 A CN102804103 A CN 102804103A
Authority
CN
China
Prior art keywords
circuit
treatment
source
treatment circuit
investigation
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
CN2011800121922A
Other languages
English (en)
Other versions
CN102804103B (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.)
ARM Ltd
Original Assignee
Advanced Risc Machines 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 Advanced Risc Machines Ltd filed Critical Advanced Risc Machines Ltd
Publication of CN102804103A publication Critical patent/CN102804103A/zh
Application granted granted Critical
Publication of CN102804103B publication Critical patent/CN102804103B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

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
    • 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/325Power saving in peripheral device
    • G06F1/3275Power saving in memory, e.g. RAM, cache
    • 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/3293Power saving characterised by the action undertaken by switching to a less power-consuming processor, e.g. sub-CPU
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0815Cache consistency protocols
    • G06F12/0831Cache consistency protocols using a bus scheme, e.g. with bus monitoring or watching means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/163Interprocessor communication
    • G06F15/167Interprocessor communication using a common memory, e.g. mailbox
    • 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
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1016Performance improvement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1028Power efficiency
    • 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)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Power Sources (AREA)

Abstract

响应于转移激励,对处理工作量的执行从源处理电路被转移到目标处理电路,为源处理电路在转移之后被置于省电状态做准备。为了减少在转移之后目标处理电路所需要进行的存储器数据获取的数目,源处理电路的缓存在侦查时段内被保持在加电状态。在侦查时段中,缓存侦查电路侦查源缓存中的数据值并获取侦查的数据值用于目标处理电路。

Description

用于在源和目标处理电路间转移工作量的数据处理装置和方法
技术领域
本发明涉及用于在第一和第二处理电路之间切换工作量的数据处理装置和方法,并且具体涉及用于提高切换之后工作量的处理性能的技术。
背景技术
在当今的数据处理系统中,诸如游戏操作之类的高强度任务和诸如MP3播放之类的低强度任务之间的性能需求差异可能超过100:1的比率。对于要被用于所有任务的一个处理器而言,该处理器将必须是高性能的,但是处理器微结构的公理是高性能的处理器比低性能处理器的能量效率低。公知可以利用诸如动态电压和频率缩放(DVFS)或功率门控之类的技术为处理器提供一定范围的性能水平和相应的能量消耗特性,从而提高处理器层的能量效率。然而,这些技术普遍变得不足以允许单个处理器承接具有如此分散性能需求的任务。
因此,已经考虑使用多核体系结构来提供用于执行这些不同任务的能量高效系统。虽然具有多个处理器核心的系统被用于提高性能已有一段时间了,这些系统通过允许不同的核心并行地工作于不同的任务上来提高吞吐量,但是关于这些系统如何被用于提高能量效率的分析还是相对近期的发展方向。
V Kumar等的文章“Towards Better Performance Per Watt in VirtualEnvironments on Asymmetric Single-ISA Multi-Core Systems”,ACM SIGOPSOperating Systems Review,第43卷,第3期(2009年7月)讨论了不对称单一指令集体系结构(ASISA)多核系统,该系统由面向相同的指令集体系结构(ISA)但在特征、复杂度、功耗和性能方面不同的若干个核心构成。在这篇文章中,虚拟工作量的属性被研究以了解这些工作量应该怎样在ASISA系统上被调度,从而提高性能和能量消耗。这篇文章认定某些任务更适用于高频率/性能的微体系结构(通常是计算密集型任务),而其它任务则更适合于较低频率/性能的微体系结构并且作为副效应将消耗更少的能量(通常是输入/输出密集型任务)。虽然这些研究揭示了ASISA系统可以怎样被用于以能量高效的方式运行各种任务,但是仍然需要提供一种用于将各个任务调度到最合适的处理器的机制。这种调度管理通常会给操作系统带来很大的负担。
R Kumar等的文章“Single-ISA Heterogeneous Multi-Core Architectures:The Potential for Processor Power Reduction”,Proceedings of the 36thInternational Symposium of Microarchitecture (MICRO-36’03)讨论了一种多核体系结构,其中所有核心执行相同的指令集但是具有不同的功能和性能水平。在运行时,系统软件对应用的资源需求进行评估,并选择可以最佳地满足这些需求同时又最小化能量消耗的核心。如这篇文章的第2部分中所论述的,在应用执行期间,操作系统软件尝试将应用与不同的核心匹配,试图满足定义的目标功能,例如特定的性能要求。在2.3部分中,提到会有切换核心的开销,需要对切换的粒度进行限制。接下来论述了具体示例,其中如果操作系统确定切换已就绪,则对新核心加电,触发缓存刷新(cache flush)以将所有脏的缓存数据保存到共享的存储器结构中,然后发信号告知新核心在预定义的操作系统入口点处启动。然后,旧核心可以被关闭电源,同时新核心从存储器中获取所需要的数据。这种方法在2.3部分中被描述为允许通过操作系统将应用在核心之间切换。这篇文章的其余部分还论述了在目标是减少能量消耗的情况下,这种切换可以怎样在多核设置内被动态执行。
虽然上述文章讨论了单一ISA异构多核体系结构实现能量消耗减少的可能,但是它仍然要求操作系统被提供足够的功能以实现针对各个应用做出的调度决定。当在具有不同体系结构特征的处理器实例之间切换时,操作系统的角色会被变得更加复杂。在此,应当注意该文章中所考虑的Alpha核心EV4到EV8不是完全ISA兼容的,例如在2.2部分的第五段中所论述的。
此外,这篇文章不能解决在核心之间切换应用时会涉及到很大开销的问题,这个问题可能很大程度上减少了从这种切换中所获得的好处。开销不仅包括执行切换所花费的时间(在这期间没有处理器在执行被转移的工作量),还包括切换之后缓存缺失所带来的惩罚。当目标核心开始执行转移来的处理工作量时,设置在目标核心中的任何缓存都在不包含有效数据的情况下开始工作,所以目标核心要经历冷启动缓存缺失。这意味着数据必须从存储器中获取,这减慢了处理的执行并且要使用非常多的能量。只有在目标缓存通过缓存一些存储器中所存储的数据值而变得“热起来”之后,性能和能量效率才会恢复。虽然以上R.Kumar等的文章在4.4部分中指明了冷启动缓存缺失的问题,但是Kumar没有提供针对该问题的任何解决方案。本发明寻求提高切换到目标处理器之后的处理性能。
发明内容
从一个方面来看,本发明提供了一种数据处理装置,包括:
第一处理电路和第二处理电路,被配置为执行处理工作量以使得所述处理工作量在同一时间由所述第一处理电路和所述第二处理电路中的一个执行;
电力控制电路,用于独立地控制对所述第一处理电路和所述第二处理电路的电力供应;
工作量转移控制器,响应于转移激励,在源处理电路被所述电力控制电路置于省电状态之前控制对所述处理工作量的执行使之从所述源处理电路转移到目标处理电路,所述源处理电路是所述第一和第二处理电路中的一个处理电路且所述目标处理电路是所述第一和第二处理电路中的另一个处理电路;其中:
至少所述源处理电路具有缓存;
所述电力控制电路被配置为在所述目标处理电路开始执行被转移的处理工作量之后的侦查时段中将至少所述源处理电路的所述缓存保持在加电状态;
所述数据处理装置包括缓存侦查电路,被配置为在所述侦查时段中侦查所述源处理电路的所述缓存中的数据值并获取所述被侦查的数据值用于所述目标处理电路;并且
所述电力控制电路被配置为在所述侦查时段结束之后将所述至少所述源处理电路的所述缓存置于所述省电状态。
本发明的数据处理装置具有第一和第二处理电路,并且在处理期间的任意时间,第一和第二处理电路中的一个在执行处理工作量。当转移激励发生时,对处理工作量的执行从源处理电路(在接收到转移激励时第一和第二处理电路中当前正在执行工作量的任一电路)被转移到目标处理电路(第一和第二处理电路中的另一电路),为源处理电路被置于省电状态做准备。不管转移本身是如何被实现的,本发明都提高了处理工作量被转移到目标电路之后的目标电路的性能水平。
本发明意识到在转移之后,目标处理电路可能需要在转移之前被存储在源处理电路的缓存中的数据值。在目标处理电路对被转移来的处理工作量的执行开始之后的有限时段(侦查时段)内,至少源处理电路的缓存被保持在加电状态。缓存侦查电路在侦查时段中侦查源缓存中的数据,并代表目标处理电路获取数据。通过在侦查时段中保持对源缓存的供电,目标处理电路在处理的最初时段内可访问源缓存中的数据,从而避免了需要从存储器中获取数据。由于访问源缓存比访问存储器更快并且使用更少的电力,所以本发明在转移处理工作量之后提高了目标处理电路的性能水平以及整个装置的能量效率。
本发明还意识到对源缓存中的数据的侦查只对于在目标处理电路开始执行处理工作量之后的有限时段是有用的。最终,源缓存中的数据都将不再与目标处理电路所执行的处理相关。例如,目标处理电路可能开始处理不需要来自源缓存的数据的另一应用,或者目标处理电路可能已经处理了数据使得不同于存储在源缓存中的值的更新后的值当前正在被使用。因此,在侦查时段结束时,缓存侦查电路停止侦查来自源缓存的数据值,并且电力控制电路被配置为将至少源处理电路的缓存置于省电状态以节能。
总结来说,不是在处理工作量转移到目标处理电路之后立即关闭源缓存的电源,而是源缓存在侦查时段内被保持在加电状态,在侦查时段中缓存侦查电路可以侦查源缓存中的数据值并获取侦查的数据值以用于目标处理电路。通过减少从存储器中获取数据的次数,性能水平和能量效率被提高。
虽然本申请将总地针对有两个处理电路(第一和第二处理电路)的情况描述本发明,但是数据处理装置可以包括其它处理电路并且本发明可以被应用于在处理电路中的任意两个之间转移处理工作量。此外,每个处理电路可以包括单个处理器核心或者多个处理器核心。
处理工作量可以包括至少一个处理应用和用于运行这至少一个处理应用的至少一个操作系统。通过将整个工作量作为在任意特定时间点处都仅在第一和第二处理电路中的一个上被执行的宏观实体,工作量可以以一种对操作系统透明的方式很好地在第一和第二处理电路之间切换。这种方法解决了由于使用操作系统来管理针对特定处理电路的应用的调度而产生的前述问题。
工作量转移控制器可以被配置为在转移期间对所述至少一个操作系统屏蔽预定的处理器专用配置信息,以使得工作量的转移对所述至少一个操作系统而言是透明的。这意味着操作系统的配置被简化了,因为操作系统不需要知道与第一处理电路相关联的处理器专用配置信息和与第二处理电路相关联的处理器专用配置信息之间的差异。由于第一和第二处理电路的处理器专用信息差异对于操作系统被屏蔽起来,所以从操作系统的角度(以及操作系统所运行的任何应用的角度)来看,工作量被运行在单一硬件平台上。不管工作量是被运行在第一处理电路还是第二处理电路上,操作系统所看到的硬件平台是一样的。这使得更容易配置操作系统和应用。
工作量转移控制器可以至少包括虚拟软件(virtualisation software),该虚拟软件从逻辑上将所述至少一个操作系统与第一处理电路和第二处理电路分隔开。虚拟软件提供一种抽象水平以将各个处理电路的硬件配置对操作系统隐藏起来,使得操作系统不知道哪个处理电路在执行工作量。因此,操作系统配置可以被简化。虚拟软件可以控制将处理工作量分配给第一处理电路或第二处理电路。
第一处理电路可以在体系结构上与第二处理电路兼容,使得要被数据处理装置执行的处理工作量可以在第一处理电路或第二处理电路上被执行。这意味着从应用的角度来看,运行在第一处理电路上的应用与运行在第二处理电路上的应用之间的唯一差异就在于所实现的性能水平或能量效率。不需要进行第一和第二处理电路之间的指令集转换。包括操作系统和正在被操作系统运行的应用的整个处理工作量可以按简单的方式在第一和第二处理电路之间来回转移。
第一处理电路可以在微体系结构上不同于第二处理电路,使得第一处理电路的性能不同于第二处理电路的性能。第一和第二处理电路中具有较高性能水平的那个电路通常比第一和第二处理电路中的另一个电路消耗更多的能量。这意味着如果高性能处理被需要(例如当游戏应用被执行时),则工作量可以被切换到较高性能的处理电路。另一方面,如果诸如MP3播放之类的低性能处理正在被执行,则处理工作量可以被整个切换到较低性能的处理电路以提高能量效率。因而,通过提供微体系结构不同的处理电路,对处理工作量的执行可以根据要被执行的工作量的特征针对性能和能耗而被优化。
处理电路之间的微体系结构差异可以包括例如具有不同的执行管线长度或不同的执行资源。管线长度的不同通常将导致操作频率的不同,进而将对性能产生影响。类似地,执行资源的不同将对吞吐量以及性能产生影响。例如,具有更宽范围的执行资源的处理电路将使得在任意特定时间点处有更多的信息被处理,提高吞吐量。附加地或者替代地,一个处理电路可以具有比另一处理电路更多的执行资源,例如更多的算术逻辑单元(ALU),这同样将提高吞吐量。作为不同执行资源的另一示例,高能量效率的处理电路可以具有简单的顺序管线,而较高性能的处理电路可以具有乱序超标量管线。此外,较高性能的处理电路可以具有分支预测功能,该功能通过在分支被解析之前提前获取预测的分支目标来加速处理,而更高能量效率的处理电路可能不具有分支预测器。这些体系结构差异不影响每个体系结构上兼容的处理电路执行相同处理工作量的能力,但是在各个处理电路执行处理工作量时得到不同的性能水平和能耗。
当只有源处理电路有缓存时,本发明可以被使用。在这种情况下,目标处理电路的一些存储器访问可以通过利用缓存侦查电路在侦查时段中侦查源缓存而被避免。在侦查时段结束之后,所有的数据都将需要从存储器中获取。
然而,通常目标处理电路也将包括缓存,使得第一和第二处理电路都包括缓存。在这种情况下,由缓存侦查电路侦查的和由缓存侦查电路为目标处理电路获取的数据值可以被存储在目标处理电路的缓存中以加速之后对数据的引用。
在实施例中,电力控制电路可被配置为在侦查时段中将除源处理电路的缓存以外的源处理电路置于省电状态,并且在侦查时段结束之后将源处理电路的缓存置于省电状态。这减少了数据处理装置的功耗,因为源处理电路的大部分可以在工作量已被移交给目标处理器之后被关闭电源。在侦查时段中只有源处理电路的缓存保持加电,使得缓存侦查电路能够获取存储在源缓存中的值以用于目标处理电路。
在一个实施例中,当缓存是源处理电路内的缓存等级结构中的一部分时,在侦查时段中被侦查的源缓存可以被保持在加电状态中,而缓存等级结构中的至少一个其它缓存处于省电状态中。
这种情况的一个示例是当要被侦查的源缓存是二级包含型缓存时,该缓存被配置为存储在缓存等级结构的任意(一个或多个)一级缓存中存储的全部数据。在这种情况下,在侦查时段中二级缓存可以被保持在加电状态中以允许来自缓存侦查电路的代表目标处理电路的侦查,而一级缓存可与源处理电路的其余部分一起被关闭电源。
或者,电力控制电路可以被配置为在侦查时段中将源处理电路保持在加电状态,并且在侦查时段结束之后将包括源处理电路的缓存在内的整个源处理电路置于省电状态。虽然在侦查时段中将源处理电路保持加电增加了功耗,但是减少了数据处理装置的复杂度,这是因为不需要对源缓存和源处理电路的其余部分的独立电源控制。
其中可能需要对源缓存和源处理电路一起供电的示例情况是当要被缓存侦查电路侦查的源处理电路的缓存是一级缓存时。一级缓存可能与源处理电路内的处理核心过于紧密地集成,以至于不能提供对缓存和源处理电路的其余部分的单独电源控制。在这种情况下,包括缓存在内的整个源处理电路可以在侦查时段中被保持加电,并且在侦查时段结束之后关闭电源。
源处理电路可以被配置为在侦查时段结束之后并且在电力控制电路将源处理电路的缓存置于省电状态之前,对源缓存执行清除操作以将来自缓存的任意脏数据写回共享存储器中。通过在源缓存关闭电源之前清除缓存,确保了其最新值尚未被写回到存储器中的任何脏数据都不会丢失。
为了节省能量,电力控制电路在转移激励发生之前将目标处理电路保持在省电状态可能是有用的。在这种情况下,电力控制电路可以响应于转移激励对目标处理电路加电。
目标处理电路可以被配置为在目标处理电路开始执行被转移来的处理工作量之前使目标缓存无效。例如,如果在对处理工作量的执行转移之前目标处理电路处于省电状态,则在对目标处理电路加电时,目标缓存可能包含错误数据。通过在目标处理电路开始执行被转移来的处理工作量之前使目标缓存无效,可以避免处理错误。
为了提高处理性能,源处理电路可以被配置为在目标处理电路的缓存正被无效时继续执行处理工作量,并且工作量转移控制器可被配置为在目标处理电路的缓存已被无效之后将对处理工作量的执行转移到目标处理电路。通过允许源处理电路继续执行处理工作量一直到目标处理电路准备好开始执行处理工作量为止,其间没有处理电路在执行处理工作量的时段被减少,所以处理工作量的性能水平被提高。
在一个实施例中,侦查时段可以开始于目标处理电路开始执行处理工作量之时。
在包括至少一个侦查停止事件的一组侦查停止事件中的任一个发生时侦查时段可以结束。指示不再值得将源缓存保持在加电状态的一个或多个侦查停止事件可以触发缓存侦查电路来结束侦查时段。通常,这些事件指示源缓存中的数据不再被目标处理电路所需要。
缓存侦查电路可被配置为监控所述一组侦查停止事件中是否有任一事件发生。例如,缓存侦查电路可以包括性能计数器,用于监控目标处理电路的处理和目标处理电路所执行的数据访问。利用性能计数器,缓存侦查电路可以分析源缓存中的数据是否仍与正在被目标处理电路执行的处理相关。通过配置缓存侦查电路而非目标处理电路来监控是否有侦查停止事件发生,目标处理电路可以被保持不知道源缓存是否仍在被侦查。这使得目标处理电路的配置更简单。
至少一个侦查停止事件可以包括当导致源处理电路的缓存中的缓存命中的由缓存侦查电路执行的侦查的百分比降到预定的阈值水平以下时发生的事件。如果源缓存中的缓存命中的百分比变得很低,则表明目标处理电路所寻找的很多数据值不再存在于源缓存中,所以源缓存中的数据与目标处理电路无关。因此,可以通过一旦缓存命中的百分比降到预定的阈值水平以下,则结束侦查时段并且关掉源缓存来提高电源效率。
至少一个侦查停止事件还可以包括当目标处理电路完成预定数目的预定类型的处理事务时发生的事件。虽然目标处理电路可以经由缓存侦查电路访问存储在源缓存中的数据,但是目标处理电路通常不能更新源缓存中的值。在预定数目的事务完成之后可以预期目标处理电路将已经为原本存储在源缓存中的数据中的一些生成了新值。由于目标处理电路不能将数据写入源缓存,所以新的数据值将被存储在存储器和/或目标缓存中,这意味着源缓存中的原始数据值不再与目标处理电路相关。因此,预定数目的预定类型的处理事务的完成可以表明源缓存已不再需要,因而可以触发侦查时段的结束。预定类型的处理事务可以包括例如目标处理电路所执行的全部事务或者可以只包括可缓存的事务。
另一种侦查停止事件可以是在目标处理电路开始执行被转移来的处理工作量之后经过了预定数目的处理周期时发生的事件。如上所述,目标处理电路通常不能更新源缓存中的值。因此,在目标处理电路已经执行了特定数目的处理周期的处理之后,目标处理电路所使用的数据(例如存储在存储器或目标缓存中的数据)很可能不会与仍存储在源缓存中的数据相同了。这意味着从目标处理电路开始执行处理工作量起经过的处理周期的数目可以作为指示符,指示源缓存对目标处理电路而言不再有用并且可以被关闭电源。
在装置包括在第一和第二处理电路之间共享的共享存储器的情况下,至少一个侦查停止事件可以包括在开始执行被转移来的处理工作量之后目标处理电路第一次访问共享存储器的特定存储器区域时发生的事件。对特定存储器区域的第一次访问例如可以指示出目标处理电路已启动与特定存储区域相关联的不同于之前被目标处理电路处理的应用的新应用。这可以指示与新应用不相关联的源缓存中的数据不再与目标处理电路相关。因此,对特定存储器区域的第一次访问可以触发侦查时段的结束。
由于类似的原因,侦查停止事件还可以包括当目标处理电路在开始执行被转移来的处理工作量之后的最初时段内所访问的共享存储器的特定存储器区域在预定的时段内未被所述目标处理电路访问时发生的事件。当目标处理电路开始处理与原本被源处理电路处理的那个应用不同的应用时,与原始应用相关联的存储器区域可能在一段时间内都不被访问。这可能表示源缓存中的数据不再被目标处理电路使用,因而可以触发侦查时段的结束。
另一种侦查停止事件是当目标处理电路在开始执行被转移来的处理工作量之后第一次向共享存储器的预定存储器位置写入时发生的事件。这允许目标处理电路通过向预定的存储位置写入来发信号告知缓存侦查电路:其不再需要源缓存中的数据了。
这组侦查停止事件可以包括上述侦查停止事件中的任意一个或多个,以及其它类型的侦查停止事件。
这里所使用的术语“共享存储器”指的是可以被第一处理电路和第二处理电路两者直接访问的存储器,例如经由互连被耦接到第一和第二处理电路的主存储器。
该装置可以包括侦查撤消(override)控制器,该侦查撤消控制器响应于侦查撤消条件撤消缓存侦查电路对源处理电路的缓存的侦查,并且控制电力控制电路在对处理工作量的执行转移之后将包括缓存的源处理电路置于省电状态,而不等待所述侦查时段的结束。在某些情况下,对源缓存的侦查可能对于目标处理电路而言是没用的。在这些情况下,侦查撤消控制器可以通过以下步骤来撤消缓存侦查电路,所述步骤即阻止对源缓存的侦查并且控制电力控制电路将包括缓存在内的源处理电路置于省电状态而不等待侦查时段的结束。侦查撤消控制器可以例如作为在源处理电路上执行的固件或者作为虚拟软件的一部分被提供,所述虚拟软件对操作系统屏蔽处理电路的硬件专用信息。
例如,可能在对处理工作量的执行转移之前知道源缓存中的数据对于在转移之后将由目标处理电路执行的处理而言将是不需要的。例如,如果源处理电路刚刚结束执行游戏应用,则该游戏应用所使用的数据在目标处理电路开始处理不同的应用之后可能对其是没用的。在这种情况下,侦查撤消控制器可以用信号告知缓存侦查电路和电力控制电路:对缓存的侦查不再需要。
缓存侦查电路可以包括被耦接到第一和第二处理电路的一致互连(coherent interconnect)。该一致互连具有源缓存和存在于数据处理装置中的任何共享存储器这两者的视图。目标处理电路可以简单地请求来自一致互连的数据,并且一致互连可以管理数据是从源缓存中被侦查还是从存储器中获取(这取决于侦查时段是否已结束以及数据访问请求是否导致源缓存中的命中)。一致互连管理数据访问以使得目标处理电路不需要知道被请求数据的确切位置。目标处理电路可能不知道对来自源缓存的数据的侦查。在一些实施例中,一致互连可以提供一种方便的机制,用于在处理工作量的移交期间将体系结构状态从源处理电路转移到目标处理电路。
从另一方面看,本发明提供了一种数据处理装置,包括:
用于执行处理的第一处理装置和用于执行处理的第二处理装置,所述第一处理装置和第二处理装置被配置为执行处理工作量以使得所述处理工作量在同一时间由所述第一处理装置和所述第二处理装置中的一个执行;
电力控制装置,用于独立地控制对所述第一处理装置和所述第二处理装置的电力供应;
工作量转移控制装置,用于响应于转移激励,在源处理装置被所述电力控制装置置于省电状态之前控制对所述处理工作量的执行使之从所述源处理装置转移到目标处理装置,所述源处理装置是所述第一和第二处理装置中的一个处理装置且所述目标处理装置是所述第一和第二处理装置中的另一个处理装置;其中:
至少所述源处理装置具有用于存储被缓存的数据值的缓存装置;
所述电力控制装置被配置为在所述目标处理装置开始执行被转移的处理工作量之后的侦查时段中将至少所述源处理装置的所述缓存装置保持在加电状态;
所述数据处理装置包括缓存侦查装置,用于在所述侦查时段中侦查所述源处理装置的所述缓存装置中的数据值并获取所述被侦查的数据值用于所述目标处理装置;并且
所述电力控制装置被配置为在所述侦查时段结束之后将所述至少所述源处理装置的所述缓存装置置于所述省电状态。
从另一方面来看,本发明提供了用于包括第一处理电路和第二处理电路的装置的数据处理方法,所述第一和第二处理电路被配置为执行处理工作量以使得所述处理工作量在同一时间被所述第一处理电路和所述第二处理电路中的一个执行;该方法包括:
利用源处理电路执行所述处理工作量,所述源处理电路为所述第一和第二处理电路中的一个并且包括缓存,所述第一和第二处理电路中的另一个为目标处理电路;
响应于转移激励,在所述源处理电路被置于省电状态之前将对所述处理工作量的执行从所述源处理电路转移到所述目标处理电路;
在所述目标处理电路对被转移来的处理工作量的执行开始之后的侦查时段中将至少所述源处理电路的缓存保持在加电状态;
在所述侦查时段中,侦查所述源处理电路的缓存中的数据值并获取所述被侦查的数据值以用于所述目标处理电路;并且
在所述侦查时段结束之后将至少所述源处理电路的缓存置于所述省电状态。
从另一方面来看,本发明提供了一种数据处理装置,该数据处理装置包括:
第一处理电路和第二处理电路,被配置为执行处理工作量以使得所述处理工作量在同一个时间被所述第一处理电路和所述第二处理电路中的一个执行;
工作量转移控制器,响应于转移激励,在源处理电路被电力控制电路置于省电状态之前控制对所述处理工作量的执行使之从所述源处理电路转移到目标处理电路,所述源处理电路是所述第一和第二处理电路中的一个处理电路且所述目标处理电路是所述第一和第二处理电路中的另一个处理电路;其中:
至少所述目标处理电路具有缓存;
所述目标处理电路被配置为在所述目标处理电路开始执行被转移来的处理工作量之前使所述目标处理电路的缓存无效;
所述源处理电路被配置为在所述目标处理电路被无效的同时继续执行所述处理工作量;并且
所述工作量转移控制器被配置为在所述目标处理电路的缓存已被无效之后将对所述处理工作量的执行转移到所述目标处理电路。
本发明通过在接收到转移激励之后目标处理电路的缓存正在被无效的同时允许目标处理电路在一段时间内继续处理处理工作量,可以提高处理性能。通过只是在目标处理电路的缓存被无效之后将对处理工作量的执行转移到目标处理电路,其间没有处理电路在执行工作量的时间可被减少。因此,处理工作量被更快速且更高效地执行。
附图说明
下面将仅以示例的方式参考如附图中所示的本发明的实施例进一步描述本发明,在附图中:
图1是根据一个实施例的数据处理系统的框图;
图2示意性地图示了根据一个实施例提供切换控制器(这里也被称为工作量转移控制器)以在逻辑上将由数据处理装置执行的工作量与在数据处理装置内被用于执行所述工作量的特定硬件平台分开;
图3是示意性地图示了根据一个实施例的源处理器和目标处理器响应于切换激励以将工作量从源处理器转移到目标处理器而执行的步骤;
图4A示意性地图示了在图3的保存操作期间将源处理电路的当前体系结构状态存入其相关联的缓存;
图4B示意性地图示了在图3的恢复操作期间利用侦查控制单元控制源处理电路的当前体系结构状态向目标处理电路的转移;
图5图示了根据一个实施例的用于在转移操作期间提供加速机制以将源处理电路的当前体系结构状态转移给目标处理电路的替代结构;
图6A到6I示意性地图示了根据一个实施例的将工作量从源处理电路转移给目标处理电路所执行的步骤;
图7是根据一个实施例的示出了能量效率随性能的变化曲线并且图示了在该曲线上的各个点处图1中所示的各个处理器核心如何被使用的图;
图8A和8B分别示意性地图示了如在一个实施例中所使用的低性能处理器管线和高性能处理器管线;以及
图9是示出了当对处理工作量的执行在低性能、高能量效率处理电路和高性能、低能量效率处理电路之间切换时数据处理系统所消耗的功率变化的图。
具体实施方式
图1是示意性地图示了根据一个实施例的数据处理系统的框图。如图1中所示,该系统包括两个在体系结构上兼容的处理电路实例(处理电路010和处理电路150),但是这两个不同的处理电路实例具有不同的微结构。具体而言,处理电路10被安排为与处理电路50相比以更高的性能进行操作,但是作为权衡,处理电路10将比处理电路50的能量效率低。关于微结构差异的示例将在下面参考图8A和8B进行更详细的描述。
每个处理电路可以包括单个处理单元(这里也被称为处理器核心),或者这些处理电路实例中的至少一个本身可以包括具有相同微结构的处理单元的集群。
在图1中所示的示例中,处理电路10包括体系结构和微结构都相同的两个处理器核心15,20。作为对比,处理电路50只包含单个处理器核心55。在以下描述中,处理器核心15,20将被称为“大”核心,而处理器核心55将被称为“小”核心,这是因为处理器核心15,20由于在设计时着重考虑性能所以通常比处理器核心55更复杂,而相比之下,处理器核心55由于在设计时着重考虑能量效率所以通常复杂度要低很多。
在图1中,每个处理器核心15,20,55被假设分别具有他们自己的相关联的本地1级缓存25,30,60,这些缓存可以被布置为用于存储供相关联的核心引用的指令和数据的统一缓存,或者可以被布置为具有Harvard体系结构,提供不同的1级数据和1级指令缓存。虽然每个核心被显示为具有其自己的相关联的1级缓存,但这不是必须的,在替代实施例中,这些核心中的一个或多个核心可以没有本地缓存。
在图1中所示的实施例中,处理电路10还包括在核心15与核心20之间共享的2级缓存35,侦查控制单元40被用于确保两个1级缓存25,30与2级缓存35之间的缓存一致性。在一个实施例中,2级缓存被布置为包含型缓存,因此被存储在任一1级缓存25,30中的任意数据也都将存在于2级缓存35中。本领域技术人员将很清楚,侦查控制单元40的目的是确保各个缓存之间的缓存一致性,以使得可以确保任一核心15,20在发出访问请求时将总是访问到最新版本的数据。因此,仅作为示例,如果核心15发出针对不在相关联的1级缓存25中的数据的访问请求,则侦查控制单元40截获正在传输的对1级缓存25的请求,并且参考1级缓存30和/或2级缓存35确定是否可以根据那些其它缓存中的一个的内容为访问请求提供服务。只有在数据不存在于任何缓存中的情况下,访问请求才经由互连70被传送给主存储器80,主存储器80是在处理电路10与处理电路50之间共享的存储器。
设置在互连70内的侦查控制单元75按照与侦查控制单元40相类似的方式进行操作,但是在该示例中,用于保持设置在处理电路10内的缓存结构与设置在处理电路50内的缓存结构之间的一致性。在2级缓存35为包含型缓存的示例中,侦查控制单元保持处理电路10的2级缓存35与处理电路50的1级缓存60之间的硬件缓存一致性。但是,如果2级缓存35被布置为排他型2级缓存,则侦查控制单元75还将侦查保存在1级缓存25,30中的数据以确保处理电路10的缓存与处理电路50的缓存60之间的缓存一致性。
根据一个实施例,在任意时间点处,将只有处理电路10和处理电路50中的一个在积极处理工作量。为了本申请的目的,所述工作量可以被认为包括至少一个应用和用于运行该至少一个应用的至少一个操作系统,例如在图2中用标号100所示意性示出的。在该示例中,两个应用105,110正在操作系统115的控制下运行,并且应用105,110和操作系统115一起构成工作量100。这些应用可以被认为是存在于用户层,而操作系统存在于优先层(privileged level),并且总地来说由应用和操作系统所构成的工作量运行在硬件平台125(代表硬件层视图)上。在任意时间点处,硬件平台将由处理电路10或者由处理电路50提供。
如图1中所示,电力控制电路50被提供用于选择性地独立地向处理电路10和处理电路50提供电力。在从一个处理电路向另一处理电路转移工作量之前,通常只有处理电路中的一个是被充分供电的,即,当前正在执行工作量的那个处理电路(源处理电路),而另一处理电路(目标处理电路)通常处于省电状态。当确定工作量应当从一个处理电路被转移给另一处理电路时,在转移操作期间将有一段时间两个处理电路都处于加电状态,但是在转移操作之后的某个时间点处,工作量从其中被转移的源处理电路将被置于省电状态中。
取决于实现方式,省电状态可以采用各种形式,因而例如可以是关闭电源状态、部分/全部数据保持状态、休眠状态或发呆状态中的一个。这些状态将可以被本领域技术人员很好地理解,因此这里将不进行详细论述。
所述实施例的目的是根据工作量所需要的性能/能量水平在处理电路之间执行工作量的切换。因此,当工作量涉及执行一个或多个性能密集型任务(例如执行游戏应用)时,工作量可以在高性能处理电路10上被执行,或者利用大核心15,20中的一个或两者来执行。然而,作为对比,当工作量是仅仅执行低执行强度的任务(例如MP3播放)时,整个工作量可以被转移到处理电路50,从而得益于通过使用处理电路50而实现的能量效率。
为了最优地利用这些切换功能,需要提供一种机制,允许切换以一种简单且高效的方式进行以使得转移工作量的动作不会过多地消耗能量到抵消了切换所带来的好处的程度,并且还确保切换过程足够快以使得其本身不会在很大程度上降低性能。
在一个实施例中,这些好处至少部分地通过将处理电路10安排为与处理电路50在体系结构上兼容来获得。这确保了工作量可以从一个处理电路被转移到另一处理电路,同时确保正确的操作。作为最低要求,这种体系结构的兼容要求两个处理电路10和50共享相同的指令集体系结构。然而,在一个实施例中,这种体系结构的兼容还意味着更高的兼容要求以确保两个处理电路实例从编程者的角度看是相同的。在一个实施例中,这包括使用相同的体系结构寄存器,以及存储操作系统在执行应用时所使用的数据的一个或多个专用寄存器。有了这种级别的体系结构兼容,就可以对操作系统115屏蔽工作量在处理电路之间的转移,以使得操作系统完全不知道工作量是在处理电路10上还是在处理电路50上被执行的。
在一个实施例中,对从一个处理电路到另一处理电路的转移的处理由图2中所示的切换控制器120(这里也被称为虚拟器并且在文中的其它地方还被称为工作量转移控制器)管理。切换控制器可以用硬件、固件和/或软件特征的混合来实现,但是在一个实施例中包括本质上类似于虚拟机中发现的管理程序软件的软件以使得用一种本地指令集编写的应用能够在采用不同本地指令集的硬件平台上被执行。由于两个处理电路10,50之间的体系结构兼容性,切换控制器120可以仅仅通过对操作系统屏蔽一个或多个预定的处理器专用配置信息项来对操作系统屏蔽所述转移。例如,处理器专用配置信息可以包括CP15处理器ID寄存器和CP15缓存类型寄存器的内容。
在这样的实施例中,切换控制器然后只需要确保在转移被起动时尚不能从共享存储器80中获得的、源处理电路在转移时所保持的任意当前体系结构状态被使得可用于目标处理电路,以使得目标电路处于能够成功接管对工作量的执行的状况下。利用前述示例,这种体系结构状态通常将包括存储在源处理电路的体系结构寄存器文件中的当前值以及源处理电路的一个或多个专用寄存器的当前值。由于处理电路10,50之间的体系结构的兼容性,如果所述当前体系结构状态可以从源处理电路被传送给目标处理电路,则目标处理电路将处于成功接管对来自源处理电路的工作量的执行的状况下。
虽然处理电路10,50之间的体系结构的兼容性便于整个工作量在这两个处理电路之间的转移,但是在一个实施例中,处理电路10,50在微体系结构上彼此不同,使得存在与这两个处理电路相关联的不同的性能特性以及能量消耗特性。如前所述,在一个实施例中,处理电路10是高性能、高能耗处理电路,而处理电路50是较低性能、较低能耗的处理电路。这两个处理电路可以在很多方面上具有彼此不同的微体系结构,但是通常具有不同的执行管线长度和/或不同的执行资源中的至少一个。管线长度的不同通常将导致操作频率的不同,进而将对性能产生影响。类似地,执行资源的不同将对吞吐量以及性能产生影响。因而,例如,处理电路10可以具有更宽范围的执行资源和/或更多的执行资源以提高吞吐量。此外,处理器核心15,20内的管线可以被安排为执行乱序超标量处理,而能量高效处理电路50内的更简单的核心55可以被安排为顺序管线。关于微体系结构差异的更多讨论将在后面参考图8A和8B给出。
生成转移激励以使得切换控制器120起动移交操作将工作量从一个处理电路转移到另一处理电路可能因为很多种原因而被触发。例如,在一个实施例中,应用可以被描述和标记为“大”、“小”或者“大/小”,从而操作系统可以与切换控制器接口以相应地移动工作量。因此,利用这种方法,转移激励的生成可被映射到被执行的应用的特定组合,以确保当需要高性能时,工作量在高性能处理电路10上被执行,而当不需要高性能时,作为替代,能量高效处理电路50被使用。在其它实施例中,算法可以被执行以基于一个或多个输入动态地确定何时触发从一个处理电路到另一处理电路的工作量的转移。例如,处理电路的性能计数器可以被设置为对性能敏感事件进行计数(例如被执行指令的数目或者载入存储(load-store)操作的数目)。与周期计数器或系统定时器耦接,这允许识别出高度计算密集型应用正在执行,这种应用可以通过切换到较高性能的处理电路被更好地服务,或者识别出指示可以在能量高效的处理电路上被更好地服务的I/O密集型应用的大量载入-存储操作等。
作为转移激励可能被生成的另一示例,数据处理系统可以包括用于监控数据处理系统在操作期间的温度的一个或多个热传感器90。可能出现这样的情况,即现在的高性能处理电路(例如那些运行在GHz频率上的处理电路)有时会达到或者超过它们被指定工作的温度上限。利用这种热传感器90,当这些温度上限被达到时可以被检测到,并且在这种情况下,转移激励可以被生成以触发工作量向能量效率更高的处理电路转移,从而导致数据处理系统的整体冷却。因而,考虑图1的示例,其中处理电路10是高性能处理电路且处理电路50是消耗较少能量的较低性能的处理电路,当设备的温度上限被达到时将工作量从处理电路10转移到处理电路50将导致接下来设备的冷却,同时仍然允许进行连续的程序执行,尽管会有较低的吞吐量。
虽然在图1中两个处理电路10,50被示出,但是应当理解上述实施例的技术也可以被应用于包括两个以上不同处理电路的系统,允许数据处理系统有更大范围的性能/能量水平的跨度。在这些实施例中,不同处理电路中的每一个将被安排为在体系结构上彼此兼容以允许整个工作量在处理电路之间的妥当转移,但是也可以在微体系结构上彼此不同以允许根据所需要的性能/能量水平在对那些处理电路的使用之间进行选择。
图3是图示了在接收到转移激励之后工作量从源处理器被转移到目标处理器时在源处理器和目标处理器上执行的一系列步骤的流程图。这种转移激励可以经由系统固件接口由操作系统115或虚拟器120生成,导致在步骤200中源处理器(该处理器将不仅在运行工作量,并且在运行构成切换控制器120的至少一部分的虚拟器软件)检测到该切换激励。在步骤200中接收到转移激励(这里也被称为切换激励)将使得电力控制器65在目标处理器上起动加电和重置操作205。在该加电和重置操作之后,目标处理器将在步骤210中使其本地缓存无效,然后在步骤215中启动侦查。此时,目标处理器将用信号告知源处理器其已准备好进行工作量的转移,该信号使得源处理器在步骤225中执行保存状态操作。该保存状态操作将在后面参考图4A进行更详细的论述,但是在一个实施例中保存状态操作涉及:源处理电路将其当前体系结构状态中任意在移交操作被起动时不能从共享存储器中获取且对于目标处理电路成功接管对工作量的执行而言必需的状态存储到其本地缓存中。
在保存状态操作225之后,切换状态信号将被发给目标处理器230,向目标处理器指示其现在应该开始侦查源处理器以获取所需要的体系结构状态。该过程通过恢复状态操作230进行,该恢复状态操作将在后面参考图4B进行更详细的论述,但是在一个实施例中,恢复状态操作涉及目标处理电路起动一系列访问,这些访问被在互连70内的侦查控制单元75截获,并且使得在源处理器的本地缓存中缓存的体系结构状态的拷贝被获取并返回给目标处理器。
在步骤230之后,目标处理器就能够接管对工作量的执行了,因此在步骤235中常规操作开始。
在一个实施例中,一旦在目标处理器上常规操作开始,源处理器的缓存就可以被清除了,如步骤250中所示,从而将任何脏数据都刷新到共享存储器80中,然后在步骤255中源处理器可以被关闭电源。然而,在一个实施例中,为了进一步提高目标处理器的效率,源处理器被安排为在一段时间内保持加电,该段时间在图3中被称为侦查时段。在这个时段中,源电路的缓存中的至少一个保持加电,以使得其内容可以被侦查控制电路75响应于目标处理器所发布的访问请求进行侦查。在利用图3中所述的过程转移整个工作量之后,预期至少在最初的一段时间内(在该段时间之后目标处理器开始对工作量的执行),工作量的执行期间所需要的数据中的一些将保留在源处理器的缓存中。如果源处理器已经将其内容刷新到存储器中并且已经被关闭电源,则目标处理器在这些早期阶段将相对低效率地操作,这是因为在其本地缓存中可能有大量的缓存缺失,并且大量地从共享存储器中获取数据,导致在目标处理器的缓存“热起来”(即填充了目标处理器电路执行工作量所指定的操作所需要的数据值)的同时有很大的性能影响。然而,通过在侦查时段中保持源处理器的缓存加电,侦查控制电路75将能够参考源电路的缓存为大量的这些缓存缺失请求提供服务,与从共享存储器80中获取数据相比具有很大的性能优势。
然而,这个性能优势只能期望在切换之后持续一段特定的时间,在切换之后源处理器的缓存的内容将变为无效。因此,在某个时间点处,侦查停止事件将在步骤245中被生成以禁止侦查,之后在步骤250中源处理器的缓存将被清除,然后在步骤255中源处理器将被关闭电源。关于侦查停止事件可能被生成的各种情境的讨论将在后面参考图6G进行更详细的论述。
图4A示意性地图示了根据一个实施例在图3中的步骤225处执行的保存操作。具体而言,在一个实施例中,需要从源处理电路300被存储到本地缓存330中的体系结构状态由寄存器文件310的内容以及各个专用寄存器320的内容构成,所述寄存器文件310在数据处理操作的执行期间被算术逻辑单元(ALU)305参考,所述各个专用寄存器320标识工作量所需要的各条信息以成功使工作量能被目标处理电路接管。专用寄存器320的内容将包括例如标识当前被执行的指令的程序计数器值以及各种其它信息。例如,其它专用寄存器包括保存针对处理器模式、中断屏蔽、执行状态和标记的控制位的处理器状态寄存器(例如,ARM体系结构中的CPSR和SPSR)。其它专用寄存器包括保存改变数据字节排序、开关MMU、开关数据/指令缓存等的位的体系结构控制(ARM体系结构中的CP15系统控制寄存器)。CP15中的其它专用寄存器存储异常地址和状态信息。
如图4A中示意性图示的,源处理电路300通常还保存一些处理器专用配置信息315,但是这个信息不需要保存到缓存330中,这是因为其不可应用于目标处理电路。处理器专用配置信息315通常利用逻辑常量被硬编码在源处理电路300中,并且可以包括例如CP15处理器ID寄存器的内容(该内容对于每个处理电路而言是不同的)或者CP15缓存类型寄存器的内容(该内容将取决于缓存25,30,60的配置,例如指示缓存具有不同的缓存行长度)。当操作系统115需要一项处理器专用配置信息315时,那么除非处理器已经处于管理程序模式(hypervisor mode),否则到管理程序模式的执行陷阱(execution trap)发生。作为响应,在一个实施例中,虚拟器120可以指出被请求的信息的值,但是在另一实施例中将返回“虚拟”值。在处理器ID值的情况下,这个虚拟值可以被选择为对于“大”和“小”处理器来说是相同的,从而使得实际的硬件配置通过虚拟器120对操作系统115隐藏。
如图4A中示意性图示的,在保存操作期间,寄存器文件310和专用寄存器320的内容被源处理电路存储到缓存330中以形成缓存拷贝335。然后,该缓存拷贝被标记为可共享的,这允许目标处理器经由侦查控制单元75侦查该状态。
随后在目标处理器上执行的恢复操作在图4B中被示意性地示出。具体而言,目标处理电路350(该电路可以有或没有其自己的本地缓存)将发布针对体系结构状态的特定项的请求,该请求被侦查控制单元75截获。然后,侦查控制单元向源处理电路的本地缓存330发布侦查请求以确定所述体系结构状态的该项是否存在于源处理电路的缓存中。因为在图4A中所讨论的保存操作期间所进行的步骤,命中将在源处理电路的缓存330中被检测到,导致被缓存的体系结构状态经由侦查控制单元75被返回给目标处理电路350。该过程可以被来回重复一直到体系结构状态的所有项都已经由对源处理电路的缓存的侦查被获取为止。与目标处理电路350相关的任意处理器专用配置信息通常被硬编码在目标处理电路350中,如前所述。因此,一旦恢复操作已完成,目标处理电路就拥有了使其能够成功接管对工作量的处理所需要的全部信息。
此外,在一个实施例中,不管工作量100是在被“大”处理电路10还是被“小”处理电路50执行,虚拟器120都向操作系统115提供具有相同值的虚拟配置信息,所以“大”和“小”处理电路10,50之间的硬件差异被通过虚拟器120对操作系统115屏蔽起来。这意味着操作系统115不知道工作量100的执行已被转移到不同的硬件平台。
根据参考图4A和4B描述的保存和恢复操作,各个处理器实例10,50被安排为具有彼此相一致的硬件缓存,以减少在将体系结构状态从源处理器传送给目标处理器中所涉及的时间量、能量以及硬件复杂度。该技术利用源处理器的本地缓存来存储必须从源处理器转移到目标处理器的在转移操作发生时不能从共享存储器中获得的所有状态。因为状态在源处理器的缓存内被标记为可共享的,所以这允许硬件缓存一致的目标处理器能够在转移操作期间侦查所述状态。利用这种技术,可以在处理器实例之间转移状态,而不需要将该状态保存到主存储器或者本地存储器映射的存储单元中。因而,这会带来很大的性能和能耗方面的好处,增加了适合于切换工作量以寻求实现能耗优势的各种情形。
然而,虽然上述利用缓存一致性的技术提供了一种加速机制,用于在不需要经由共享存储器来路由当前体系结构状态的情况下使得当前体系结构状态可用于目标处理器,但是这不是这种加速机制可以实现的唯一方式。例如,图5图示了一种替代机制,其中专用总线380被设置在源处理电路300和目标处理电路350之间以允许体系结构状态在移交操作期间被转移。因而,在这种实施例中,图3的保存和恢复操作225,230用利用专用总线380的替代转移机制来代替。虽然这种方法通常比利用缓存一致性方法有更高的硬件成本(缓存一致性方法通常利用已经在数据处理系统内的硬件),但是该方法将提供一种更加快速的执行切换的方式,这在某些实现方式中可能是有利的。
图6A到6I示意性地图示了被执行用来将对工作量的执行从源处理电路300转移到目标处理电路350的一系列步骤。源处理电路300是处理电路10,50中在转移之前正在执行工作量的任一处理电路,而目标处理电路则是处理电路10,50中的另一处理电路。
图6A示出了在初始状态下的系统,其中源处理电路300被电力控制器65供电并且正在执行处理工作量100,而目标处理电路350处于省电状态。在该实施例中,省电状态是断电状态,但是如上所述,其它类型的省电状态也可以被使用。包括应用105,110和用于运行应用105,110的操作系统115的工作量100被虚拟器120从源处理电路300的硬件平台提取出来。在执行工作量100的同时,源处理电路300维护体系结构状态400,该体系结构状态可以包括例如寄存器文件310和专用寄存器320的内容,如图4A中所示。
在图6B中,转移激励430被虚拟器120检测到。虽然转移激励430在图6B中被显示为外部事件(例如热传感器90检测到热超标),但是转移激励430也可以是由虚拟器120本身或者由操作系统115触发的事件(例如操作系统115可以被配置为当特定类型的应用要被处理时通知虚拟器120)。虚拟器120通过控制电力控制器65向目标处理电路350提供电力来对转移激励430做出响应,以将目标处理电路350置于加电状态。
在图6C中,目标处理电路350开始执行虚拟器120。虚拟器120控制目标处理电路350来无效其缓存420,从而防止在对目标处理电路350加电时可能存在于缓存420中的错误数据值所引起的处理错误。在目标缓存420被无效的同时,源处理电路300继续执行工作量100。当目标缓存420的无效完成时,虚拟器120控制目标处理电路350以用信号告知源处理电路300:目标处理电路350已经准备好接管工作量100。通过继续在源处理电路300上处理工作量100一直到目标处理电路350准备好移交操作,可以减少移交对性能的影响。
在接下来的阶段中,如图6D中所示,源处理电路300停止执行工作量100。在此阶段期间,源处理电路300和目标处理电路350都不执行工作量100。体系结构状态400的拷贝从源处理电路300被传送给目标处理电路350。例如,体系结构状态400可以被保存到源缓存410中并且被返回给目标处理电路350,如图4A和4B中所示,或者可以如图5中所示通过专用总线来传送。体系结构状态400包括除已经存在于共享存储器80中的信息以外的目标处理电路250执行工作量100所需要的全部状态信息。
在将体系结构状态400转移给目标处理电路350之后,源处理电路300被电力控制电路65置于省电状态(参考图6E),例外的是源缓存410保持加电状态。同时,目标处理电路350开始利用被转移来的体系结构状态400执行工作量100。
当目标处理电路350开始处理工作量100时,侦查时段开始(参考图6F)。在侦查时段中,侦查控制单元75可以代表目标处理电路350侦查存储在源缓存410中的数据并获取数据。当目标处理电路350请求不存在于目标缓存420中的数据时,目标处理电路350请求来自侦查控制单元75的数据。然后,侦查控制单元75侦查源缓存410,并且如果侦查导致缓存命中,则侦查控制单元75从源缓存410中获取所侦查的数据并将其返回给目标处理电路350,其中所侦查的数据可被存储在目标缓存420中。另一方面,如果侦查导致源缓存410中的缓存缺失,则被请求的数据从共享存储器80中被获取并被返回给目标处理电路350。因为对源缓存410中的数据的访问比访问共享存储器80更快并且需要更少的能量,所以在一段时间内侦查源缓存410在工作量100移交到目标处理电路350之后的最初时段中提高了处理性能并且减少了能耗。
在图6G中所示的步骤中,侦查控制单元75检测到侦查停止事件,该事件指示将源缓存410保持在加电状态已经不再是高效的了。侦查停止事件触发侦查时段的结束。该侦查停止事件可以是被侦查控制电路75监控的一组侦查停止事件中的任意一个。例如,这组侦查停止事件可以包括以下事件中的任意一个或多个:
(a)当在目标处理电路350已经开始执行工作量100之后导致源缓存410内的缓存命中的侦查命中的百分比或比例(即,与侦查命中的数目/总侦查的数目成比例的量)降到预定的阈值水平以下时;
(b)当从目标处理电路350开始执行工作量100起被执行的事务的数目或者预定类型的事务(例如,可缓存事务)的数目超过预定阈值时;
(c)当从目标处理电路350开始执行工作量100起经过的处理周期的数目超过预定阈值时;
(d)当从目标处理电路350开始执行工作量100起共享存储器80的特定区域第一次被访问时;
(e)当共享存储器80中在目标处理电路350开始执行工作量100之后的最初时段内被访问的特定区域在预定数目的周期或预定的时间段内未被访问时;
(f)当目标处理电路350在开始执行被转移来的工作量100起第一次向预定的存储器位置写入时。
这些侦查停止事件可以利用在包括侦查控制单元75的一致性互连70中的可编程计数器被检测到。其它类型的侦查停止事件也可以被包括在这组侦查停止事件中。
在检测到侦查停止事件时,侦查控制单元75向源处理器300发送侦查停止信号440。侦查控制单元75停止侦查源缓存410并且从此刻开始通过从共享存储器80中获取被请求数据并将所获取的数据返回给目标处理电路350对来自目标处理电路350的数据访问请求做出响应,所获取的数据可以被缓存在目标处理电路350中。
在图6H中,源缓存的控制电路响应于侦查停止信号440清除缓存410,以将任何有效的脏数据值(即,其被缓存的值比共享存储器80中的相应值更新)保存到共享存储器80中。
在图6I中,源缓存410随后被电力控制器65关掉电源以使得源处理电路300整个处于省电状态。目标处理电路继续执行工作量100。从操作系统115的角度看,现在的情况与图6A中一样。操作系统115不知道工作量的执行从一个处理电路转移到了另一处理电路。当另一转移激励发生时,则图6A到6I的相同步骤可被用于将工作量的执行切换回第一处理器(在这种情况下,处理电路10,50中谁是“源处理电路”谁是“目标处理电路”将被反过来)。
在图6A到6I的实施例中,对缓存410和源处理电路300的独立电源控制是可实现的,使得一旦目标处理电路350开始执行工作量以后除了源缓存410以外的源处理电路300可以被关闭电源(如图6E),而只有源处理电路300的缓存410保持在加电状态(如图6F到6H)。然后在图6I中,源缓存410被关闭电源。这种方法对于节省能量来说是有用的,尤其当源处理电路300是“大”处理电路10时。
然而,也可以在侦查时段中继续对整个源处理电路300加电,然后在侦查时段结束并且清除源缓存410之后将源处理电路300整个置于省电状态,如图6I。这在源缓存410与源处理器核心嵌入得太深以至于不能独立地从源处理器核心供电的情况下可能是更有用的。当源处理器为“小”处理电路50(其功率消耗与“大”处理电路10相比不算大)时这种方法可能也是更实用的,因为一旦“大”处理电路10开始处理被转移来的工作量100,则在侦查时段中将除缓存60以外的“小”处理电路50切换到省电状态对系统的整体功率消耗的影响很小。这可能意味着向“小”处理电路50和“小”处理器核心的缓存60提供单独功率控制的附加硬件复杂度可能是不合理的。
在一些情况下,在工作量转移之前可能知道当目标处理电路350开始执行工作量100时源缓存410中所存储的数据将不被目标处理电路350所需要。例如,当转移发生时源处理电路300可能刚刚完成一个应用,因此转移时源缓存410中的数据与已完成的应用有关,而与转移后目标处理电路350所要执行的应用无关。在这种情况下,侦查撤消(override)控制器可以触发虚拟器120和侦查控制电路75以撤消对源缓存410的侦查并且控制源处理电路300清除源缓存410并关掉其电源,而不等待侦查停止事件用信号告知侦查时段的结束。在这种情况下,图6A到6I的技术将从图6E的步骤直接跳到图6G的步骤,而不执行其中数据从源缓存410中被侦查的图6F的步骤。因而,如果提前知道源缓存410中的数据对于目标处理电路350而言将不是有用的,则可以通过在不等待侦查停止事件的情况下将源缓存410和源处理电路300置于省电状态来节省电源。侦查撤消控制器可以是虚拟器120的一部分,或者可以被实现为在源处理电路300上执行的固件。侦查撤消控制器也可以被实现为元件的组合,例如当应用结束时操作系统115可以通知虚拟器120,并且如果转移发生在应用结束时,则虚拟器120可以撤消对源缓存410的侦查。
图7是其中曲线600示出了能量消耗如何随性能变化的曲线图。对于该曲线图的各个部分,数据处理系统可以被安排为利用图1中所示的处理器核心15,20的不同组合,以寻求在性能和能耗之间获得适当的权衡。因而,例如当大量非常高性能的任务需要被执行时,可以运行处理电路10的两个大核心15,20以得到所希望的性能。可选地,电源电压变化技术可被用于在利用这两个核心时允许性能和能耗上的一些变化。
当性能要求降到只利用这些大核心中的一个就可以实现所需要的性能的水平时,任务可以被转移到大核心15,20中的一个上,另一个核心被关闭电源或者置于某种其它省电状态中。同样,当利用这样一个大核心时,电源电压变化也可以被用来允许性能和能耗之间的某些变化。应当注意从两个大核心转移到一个大核心不需要生成转移激励,也不需要实用上述用于转移工作量的技术,因为无论怎样都是处理电路10在被使用,而处理电路50将处于省电状态。然而,如图7中的虚线610所示,当性能降至小核心能够实现所需要的性能的水平时,转移激励可以被生成以触发上述用于将整个工作量从处理电路10转移到处理电路50的机制,使得整个工作量运行在小核心55上,而处理电路10被置于省电状态。同样,电源电压变化可以被用于允许在小核心55的性能和能耗上的某些变化。
图8A和8B分别图示了根据一个实施例的低性能处理器管线800与高性能处理器管线850之间的微体系结构差异。图8A的低性能处理器管线800将适合于图1的小处理核心55,而图8B的高性能处理器管线850将适合于大核心15,20。
图8A的低性能处理器管线800包括用于从存储器80获取指令的取指阶段810、用于对所获取的指令译码的译码阶段820、用于发布供执行的指令的发布阶段830以及多个执行管线,所述多个执行管线包括用于执行整数操作的整数管线840、用于执行乘累加操作的MAC管线842以及用于执行SIMD(单一指令多数据)操作或浮点操作的SIMD/FPU管线844。在低性能处理器管线800中,发布阶段830每次发布一个指令,并且按照指令被获取的顺序发布指令。
图8B的高性能处理器管线850包括用于从存储器80获取指令的取指阶段860、用于对所获取的指令译码的译码阶段870、用于为译码后的指令中所指定的寄存器重命名的重命名阶段875、用于派发供执行的指令的派发阶段880以及包括两个整数管线890,892、MAC管线894和两个SIMD/FPU管线896,898的多个执行管线。在高性能处理器管线850中,派发阶段880是可以一次性向管线890,892,894,896,898中的不同管线发布多个指令的并行发布阶段。派发阶段880还可以乱序发布指令。与在低性能处理器管线800中不同,SIMD/FPU管线896,898是可变长度的,这意味着通过SIMD/FPU管线896,898进行的操作可以被控制跳过某些阶段。这种方法的优点是如果多个执行管线分别有不同的资源,则不需要人为地加长最短的管线以使其与最长的管线有相同的长度,但是反而需要逻辑来应对不同管线所产生的结果的乱序特征(例如如果处理异常发生则要将一切按顺序放回)。
重命名阶段875被提供用于将寄存器指示符映射到作为硬件平台的实际寄存器的物理寄存器,所述寄存器指示符被包括在程序指令中并且标识从编程者模式的角度看的特定体系结构寄存器。重命名阶段875使得与存在于微处理器的编程者模式视角内的寄存器相比,更大的物理寄存器的集合被微处理器提供。这个更大的物理寄存器的集合在乱序执行期间是有用的,因为它通过将两个或多个不同指令中所指定的相同体系结构寄存器映射到两个或多个不同的物理寄存器而使得诸如写后写(WAW)危险(hazard)之类的危险被避免,从而使不同的指令可以被同时执行。对于寄存器重命名技术的更多细节,读者可以参考同时拥有的美国专利申请US 2008/114966和美国专利7,590,826。
低性能管线800和高性能管线850的微体系结构在很多方面上是不同的。这些微体系结构差异可以包括:
(a)管线具有不同的阶段。例如,高性能管线850具有不存在于低性能管线800中的重命名阶段875.
(b)管线阶段具有不同的功能。例如,低性能管线800的发布阶段830只能够发布单个指令,而高性能管线850的派发阶段880可以并行地发布指令。并行发布提高了管线的处理吞吐量,从而提高了性能。
(c)管线阶段具有不同的长度。例如,高性能管线850的译码阶段870可以包括三个子阶段,而低性能管线800的译码阶段820可只包括一个子阶段。管线阶段越长(子阶段的数目越多),可以同时进行的指令的数目就越多,从而管线可以工作的工作频率就越大,导致更高的性能水平。
(d)不同数目的执行管线(例如高性能管线850比低性能管线800有更多的执行管线)。通过提供更多的执行管线,更多的指令可以被并行处理,从而性能被提高。
(e)提供顺序执行(如管线800中)或乱序执行(如管线850中)。当指令可以被乱序执行时,由于指令的执行可以被动态调度以最优化性能所以提高了性能。例如,在低性能顺序管线800中,在后面的指令可以被整数管线840和SIMD/浮点管线844中的一个执行之前,一系列MAC指令需要一个一个地被MAC管线842执行。作为对比,在高性能管线850中,MAC指令可以被MAC管线894执行,同时(面临不能通过重命名解决的数据危险)使用不同的执行管线890,892,896,898的后面的指令可以与MAC指令并行地被执行。这意味着乱序执行可提高处理性能。
这些及其它微体系结构差异的示例导致管线850提供比管线800更高性能的处理。另一方面,微体系结构差异也使得管线850比管线800消耗更多的能量。因此,提供微体系结构不同的管线800,850使得对工作量的处理针对高性能(通过使用具有高性能管线850的“大”处理电路10)或高能量效率(通过使用具有低性能管线800的“小”处理电路50)被优化。
图9示出了图示出数据处理系统的功耗在对工作量100的执行在大处理电路10和小处理电路50之间切换时的变化的曲线图。
在图9的点A处,工作量100正在小处理电路50上被执行,因而功耗较低。在点B处,转移激励发生,指示高强度处理要被执行,所以对工作量的执行被移交给大处理电路10。然后,在点C处功耗增大并且保持高值,同时大处理电路10在执行工作量。在点D处,假设两个大核心在一起工作以处理工作量。然而,如果性能要求降到工作量可以仅用一个大核心来处理的水平,则工作量被转移到仅一个大核心上,并且另一个大核心被关掉电源,如功率下降到临近点E的水平所示。然而,在点E处,另一转移激励发生(指示需要返回到低强度处理)以触发将对工作量的执行转移到小处理电路50。
当小处理电路50开始处理处理工作量时,大处理电路的大部分处于省电状态,但是大处理电路10的缓存在侦查时段(图9中的点F)中保持加电,以使得缓存中的数据被获取用于小处理电路50。因而,大处理电路10的缓存使得在点F处的功耗比只有小处理电路50被加电的点A处的功耗要高。在侦查时段结束时,大处理电路10的缓存被关掉电源,并且在点G处功耗返回到只有小处理电路50有效时的较低水平。
如上所述,在图9中,由于大处理电路10的缓存在侦查时段中被加电,所以在点F处的侦查时段中功耗比在点G处要高。虽然这种功耗的增加被指示为只是在大到小转换之后,但是在小到大转换之后,也可以有侦查时段,在该时段中小处理电路50的缓存中的数据可以由侦查控制单元75代表大处理电路10进行侦查。针对小到大转换的侦查时段在图9中未被示出,这是因为通过在侦查时段中将小处理电路50的缓存保持在加电状态所消耗的功率与大处理电路10执行处理工作量时所消耗的功率相比是很小的,所以由于小处理电路50的缓存被加电而造成的功耗的少量增加在图9中的曲线图中是看不到的。
上述实施例描述了包含两个或多个体系结构兼容且具有针对能量效率或性能优化的微体系结构的处理器实例的系统。操作系统和应用所需要的体系结构状态可以根据所需要的性能/能量水平在处理器实例之间被切换,以允许整个工作量在处理器实例之间切换。在一个实施例中,在任意给定时间处理器实例中只有一个在运行工作量,而另一个处理实例处于省电状态或者在进入/退出省电状态的过程中。
在一个实施例中,处理器实例可以被安排为彼此硬件缓存一致,以减少在将体系结构状态从源处理器切换到目标处理器的过程中所涉及的时间量、能量以及硬件复杂度。这减少了执行切换操作的时间,增加了实施例的技术可被使用的机会。
这些系统可以被用在能量效率对于电池寿命和/或热管理来说非常重要的各种情况下,并且性能的扩展使得更高能量效率的处理器可被用于较低的处理工作量,而较高性能的处理器可被用于较高的处理工作量。
因为两个或多个处理实例在体系结构上是兼容的,所以从应用的角度来看,两个处理器之间唯一的差异就是可得到的性能。通过一个实施例中的技术,所有需要的体系结构状态可以在处理器之间移动而不需要涉及到操作系统,使得关于操作系统和应用在哪个处理器上运行对于操作系统和运行在操作系统上的应用来说是透明的。
当使用在以上实施例中所述的体系结构兼容的处理器时,需要被转移的全部体系结构状态可以很容易地放到数据缓存内,并且由于现在的处理系统通常实现缓存一致性,所以通过将要被切换的体系结构状态存储到数据缓存内,目标处理器可以快速地利用现有的电路结构以高能量效率的方式侦查所述状态。
在一个所述实施例中,切换机制被用于确保针对数据处理系统的热上限不被达到。具体而言,当热上限快要达到时,整个工作量可以被切换到更高能量效率的处理器实例上,允许整个系统冷却,同时继续进行程序执行,尽管是有较低的吞吐量。
虽然这里已经描述了特定实施例,但是应当理解本发明并不限于此,并且很多对本发明的修改和添加都可以在本发明的范围内被进行。例如,后面的从属权利要求的特征可以与独立权利要求的特征进行各种组合,而不脱离本发明的范围。

Claims (32)

1.一种数据处理装置,包括:
第一处理电路和第二处理电路,所述第一处理电路和第二处理电路被配置为执行处理工作量以使得所述处理工作量在同一时间由所述第一处理电路和所述第二处理电路中的一个执行;
电力控制电路,用于独立地控制向所述第一处理电路和所述第二处理电路的电力供应;
工作量转移控制器,该工作量转移控制器响应于转移激励,控制对所述处理工作量的执行在源处理电路被所述电力控制电路置于省电状态之前从所述源处理电路转移到目标处理电路,所述源处理电路是所述第一和第二处理电路中的一个处理电路且所述目标处理电路是所述第一和第二处理电路中的另一个处理电路;其中:
至少所述源处理电路具有缓存;
所述电力控制电路被配置为在所述目标处理电路开始执行被转移的处理工作量之后的侦查时段中将至少所述源处理电路的所述缓存保持在加电状态;
所述数据处理装置包括缓存侦查电路,该缓存侦查电路被配置为在所述侦查时段中侦查所述源处理电路的所述缓存中的数据值并为所述目标处理电路获取所述被侦查的数据值;并且
所述电力控制电路被配置为在所述侦查时段结束之后将所述至少所述源处理电路的所述缓存置于所述省电状态。
2.根据权利要求1所述的数据处理装置,其中所述处理工作量包括至少一个处理应用和用于运行所述至少一个处理应用的至少一个操作系统。
3.根据权利要求2所述的数据处理装置,其中所述工作量转移控制器被配置为在所述转移期间对所述至少一个操作系统屏蔽预定的处理器专用配置信息以使得所述工作量的转移对于所述至少一个操作系统而言是透明的。
4.根据权利要求3所述的数据处理装置,其中所述工作量转移控制器至少包括虚拟软件,该虚拟软件在逻辑上将所述至少一个操作系统与所述第一处理电路和所述第二处理电路分开。
5.根据任一前述权利要求所述的数据处理装置,其中所述第一处理电路在体系结构上与所述第二处理电路兼容,以使得要由所述数据处理装置执行的处理工作量可以在所述第一处理电路或者所述第二处理电路上被执行。
6.根据权利要求5所述的数据处理装置,其中所述第一处理电路在微体系结构上不同于所述第二处理电路,以使得所述第一处理电路的性能不同于所述第二处理电路的性能。
7.根据任一前述权利要求所述的数据处理装置,其中所述目标处理电路也包括缓存。
8.根据权利要求7所述的数据处理装置,其中通过所述缓存侦查电路为所述目标处理电路获取的被侦查数据值被存储在所述目标处理电路的缓存中。
9.根据任一前述权利要求所述的数据处理装置,其中所述电力控制电路被配置为在所述侦查时段中将除所述源处理电路的缓存以外的所述源处理电路置于所述省电状态,并且在所述侦查时段结束之后将所述源处理电路的缓存置于所述省电状态。
10.根据权利要求9所述的数据处理装置,其中所述源处理电路的缓存是所述源处理电路内的缓存等级结构中的一部分,并且在所述侦查时段中,所述缓存被保持在加电状态中而所述缓存等级结构中的至少一个其它缓存处于省电状态中。
11.根据权利要求10所述的数据处理装置,其中所述源处理电路的缓存是二级包含型缓存,该缓存被配置为存储在所述缓存等级结构的至少一个一级缓存中存储的全部数据。
12.根据权利要求1至8中的任一权利要求所述的数据处理装置,其中所述电力控制电路被配置为在所述侦查时段中将所述源处理电路保持在所述加电状态,并且在所述侦查时段结束之后将包括所述源处理电路的缓存在内的所述源处理电路置于所述省电状态。
13.根据权利要求12所述的数据处理装置,其中所述源处理电路的缓存是一级缓存。
14.根据任一前述权利要求所述的数据处理装置,其中所述源处理电路被配置为在所述侦查时段结束之后并且在所述电力控制电路将所述源处理电路的缓存置于所述省电状态之前,对所述源处理电路的缓存执行清除操作以将来自所述缓存的任意脏数据写回共享存储器中。
15.根据任一前述权利要求所述的数据处理装置,其中所述目标处理电路在所述转移激励发生之前处于所述省电状态,并且所述电力控制电路被配置为响应于所述转移激励将所述目标处理电路置于所述加电状态。
16.根据权利要求7的任一前述从属权利要求所述的数据处理装置,其中所述目标处理电路被配置为在所述目标处理电路开始执行所述被转移的处理工作量之前使所述目标处理电路的缓存无效。
17.根据权利要求16所述的数据处理装置,其中所述源处理电路被配置为在所述目标处理电路的缓存被无效的同时继续执行所述处理工作量,并且所述工作量转移控制器被配置为在所述目标处理电路的缓存已被无效之后将对所述处理工作量的执行转移到所述目标处理电路。
18.根据任一前述权利要求所述的数据处理装置,其中当所述目标处理电路开始执行所述处理工作量时所述侦查时段开始。
19.根据任一前述权利要求所述的数据处理装置,其中在包括至少一个侦查停止事件的一组侦查停止事件中的任一个发生时所述侦查时段结束。
20.根据权利要求19所述的数据处理装置,其中所述缓存侦查电路被配置为监控是否有所述一组侦查停止事件中的任一个事件已发生。
21.根据权利要求19所述的数据处理装置,其中所述至少一个侦查停止事件包括当导致所述源处理电路的缓存中的缓存命中的由所述缓存侦查电路执行的侦查的百分比降到预定的阈值水平以下时发生的事件。
22.根据权利要求19所述的数据处理装置,其中所述至少一个侦查停止事件包括当所述目标处理电路完成预定数目的预定类型的处理事务时发生的事件。
23.根据权利要求19所述的数据处理装置,其中所述至少一个侦查停止事件包括在所述目标处理电路开始执行被转移来的处理工作量之后经过了预定数目的处理周期时发生的事件。
24.根据权利要求19所述的数据处理装置,包括在所述第一和第二处理电路之间共享的共享存储器;
其中所述至少一个侦查停止事件包括在开始执行被转移来的处理工作量之后所述目标处理电路第一次访问所述共享存储器的特定存储器区域时发生的事件。
25.根据权利要求19所述的数据处理装置,包括在所述第一和第二处理电路之间共享的共享存储器;
其中所述至少一个侦查停止事件包括当所述目标处理电路在开始执行被转移来的处理工作量之后的最初时段内所访问的所述共享存储器的特定存储器区域在预定的时段内未被所述目标处理电路访问时发生的事件。
26.根据权利要求19所述的数据处理装置,包括在所述第一和第二处理电路之间共享的共享存储器;
其中所述至少一个侦查停止事件包括当所述目标处理电路在开始执行被转移来的处理工作量之后第一次向所述共享存储器的预定存储器位置写入时发生的事件。
27.根据任一前述权利要求所述的数据处理装置,包括侦查撤消控制器,该侦查撤消控制器响应于侦查撤消条件撤消所述缓存侦查电路对所述源处理电路的缓存的侦查,并且控制所述电力控制电路在对所述处理工作量的执行转移之后将包括缓存在内的所述源处理电路置于所述省电状态,而不等待所述侦查时段的结束。
28.根据权利要求27所述的数据处理装置,其中所述侦查撤消条件发生在所述源处理电路的缓存不被所述目标处理电路为了执行所述被转移来的处理工作量而需要时。
29.根据任一前述权利要求所述的数据处理装置,其中所述缓存侦查电路包括被耦接到所述第一处理电路和所述第二处理电路的一致互连。
30.一种数据处理装置,包括:
用于执行处理的第一处理装置和用于执行处理的第二处理装置,所述第一处理装置和第二处理装置被配置为执行处理工作量以使得所述处理工作量在同一时间由所述第一处理装置和所述第二处理装置中的一个执行;
电力控制装置,用于独立地控制向所述第一处理装置和所述第二处理装置的电力供应;
工作量转移控制装置,用于响应于转移激励,控制对所述处理工作量的执行在源处理装置被所述电力控制装置置于省电状态之前从所述源处理装置转移到目标处理装置,所述源处理装置是所述第一和第二处理装置中的一个处理装置且所述目标处理装置是所述第一和第二处理装置中的另一个处理装置;其中:
至少所述源处理装置具有用于存储被缓存的数据值的缓存装置;
所述电力控制装置被配置为在所述目标处理装置开始执行被转移的处理工作量之后的侦查时段中将至少所述源处理装置的所述缓存装置保持在加电状态;
所述数据处理装置包括缓存侦查装置,该缓存侦查装置用于在所述侦查时段中侦查所述源处理装置的所述缓存装置中的数据值并为所述目标处理装置获取被侦查的数据值;并且
所述电力控制装置被配置为在所述侦查时段结束之后将所述至少所述源处理装置的所述缓存装置置于所述省电状态。
31.一种用于包括第一处理电路和第二处理电路的装置的数据处理方法,所述第一和第二处理电路被配置为执行处理工作量以使得所述处理工作量在同一时间被所述第一处理电路和所述第二处理电路中的一个执行;该方法包括:
利用源处理电路执行所述处理工作量,所述源处理电路为所述第一和第二处理电路中的一个并且包括缓存,所述第一和第二处理电路中的另一个为目标处理电路;
响应于转移激励,在所述源处理电路被置于省电状态之前将对所述处理工作量的执行从所述源处理电路转移到所述目标处理电路;
在所述目标处理电路对被转移来的处理工作量的执行开始之后的侦查时段中将至少所述源处理电路的缓存保持在加电状态;
在所述侦查时段中,侦查所述源处理电路的缓存中的数据值并为所述目标处理电路获取被侦查的数据值;并且
在所述侦查时段结束之后将所述至少所述源处理电路的所述缓存置于所述省电状态。
32.一种数据处理装置,包括:
第一处理电路和第二处理电路,所述第一处理电路和第二处理电路被配置为执行处理工作量以使得所述处理工作量在同一时间被所述第一处理电路和所述第二处理电路中的一个执行;
工作量转移控制器,该工作量转移控制器响应于转移激励,控制对所述处理工作量的执行在源处理电路被电力控制电路置于省电状态之前从所述源处理电路转移到目标处理电路,所述源处理电路是所述第一和第二处理电路中的一个处理电路且所述目标处理电路是所述第一和第二处理电路中的另一个处理电路;其中:
至少所述目标处理电路具有缓存;
所述目标处理电路被配置为在所述目标处理电路开始执行被转移来的处理工作量之前无效所述目标处理电路的缓存;
所述源处理电路被配置为在所述目标处理电路的缓存正被无效时继续执行所述处理工作量;并且
所述工作量转移控制器被配置为在所述目标处理电路的缓存已被无效之后将对所述处理工作量的执行转移到所述目标处理电路。
CN201180012192.2A 2010-03-01 2011-02-17 用于在源和目标处理电路间转移工作量的数据处理装置和方法 Active CN102804103B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US12/659,230 US8533505B2 (en) 2010-03-01 2010-03-01 Data processing apparatus and method for transferring workload between source and destination processing circuitry
US12/659,230 2010-03-01
PCT/GB2011/050315 WO2011107775A1 (en) 2010-03-01 2011-02-17 Data processing apparatus and method for transferring workload between source and destination processing circuitry

Publications (2)

Publication Number Publication Date
CN102804103A true CN102804103A (zh) 2012-11-28
CN102804103B CN102804103B (zh) 2015-08-12

Family

ID=44209944

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201180012192.2A Active CN102804103B (zh) 2010-03-01 2011-02-17 用于在源和目标处理电路间转移工作量的数据处理装置和方法

Country Status (10)

Country Link
US (2) US8533505B2 (zh)
JP (1) JP5702407B2 (zh)
KR (1) KR101740225B1 (zh)
CN (1) CN102804103B (zh)
BR (1) BR112012021121B1 (zh)
DE (1) DE112011100743B4 (zh)
GB (1) GB2490825B (zh)
IL (1) IL221269A (zh)
RU (2) RU2711336C2 (zh)
WO (1) WO2011107775A1 (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104375963A (zh) * 2014-11-28 2015-02-25 上海兆芯集成电路有限公司 基于缓存一致性的控制系统和方法
CN104407995A (zh) * 2014-11-28 2015-03-11 上海兆芯集成电路有限公司 基于缓存一致性的控制系统和方法
CN105550140A (zh) * 2014-11-03 2016-05-04 联想(北京)有限公司 一种电子设备及数据处理方法

Families Citing this family (36)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8533505B2 (en) 2010-03-01 2013-09-10 Arm Limited Data processing apparatus and method for transferring workload between source and destination processing circuitry
US9010641B2 (en) * 2010-12-07 2015-04-21 Hand Held Products, Inc. Multiple platform support system and method
DE112012006377B4 (de) * 2012-05-17 2022-02-24 Intel Corporation Energieverbrauch und Leistung von Computersystemen steuern
US9804896B2 (en) * 2012-07-31 2017-10-31 Empire Technology Development Llc Thread migration across cores of a multi-core processor
US9000805B2 (en) * 2013-01-29 2015-04-07 Broadcom Corporation Resonant inductor coupling clock distribution
EP3014464A4 (en) * 2013-06-28 2017-03-15 Intel Corporation Techniques to aggregate compute, memory and input/output resources across devices
JP2015035073A (ja) * 2013-08-08 2015-02-19 ルネサスエレクトロニクス株式会社 半導体装置及び半導体装置の制御方法
US9798574B2 (en) 2013-09-27 2017-10-24 Intel Corporation Techniques to compose memory resources across devices
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
US9561232B2 (en) 2014-02-18 2017-02-07 Demerx, Inc. Low dose noribogaine for treating nicotine addiction and preventing relapse of nicotine use
US9591978B2 (en) 2014-03-13 2017-03-14 Demerx, Inc. Methods and compositions for pre-screening patients for treatment with noribogaine
US9244747B2 (en) 2014-03-13 2016-01-26 Qualcomm Incorporated System and method for providing dynamic clock and voltage scaling (DCVS) aware interprocessor communication
US20150379678A1 (en) * 2014-06-25 2015-12-31 Doa'a M. Al-otoom Techniques to Compose Memory Resources Across Devices and Reduce Transitional Latency
US9870226B2 (en) * 2014-07-03 2018-01-16 The Regents Of The University Of Michigan Control of switching between executed mechanisms
US9547592B2 (en) 2014-07-29 2017-01-17 International Business Machines Corporation Cache mobility
US9891964B2 (en) * 2014-11-19 2018-02-13 International Business Machines Corporation Network traffic processing
US9898071B2 (en) 2014-11-20 2018-02-20 Apple Inc. Processor including multiple dissimilar processor cores
US9958932B2 (en) 2014-11-20 2018-05-01 Apple Inc. Processor including multiple dissimilar processor cores that implement different portions of instruction set architecture
WO2016086194A1 (en) 2014-11-26 2016-06-02 Demerx, Inc. Methods and compositions for potentiating the action of opioid analgesics using iboga alkaloids
US9891699B2 (en) * 2014-12-18 2018-02-13 Vmware, Inc. System and method for performing distributed power management without power cycling hosts
US9697124B2 (en) * 2015-01-13 2017-07-04 Qualcomm Incorporated Systems and methods for providing dynamic cache extension in a multi-cluster heterogeneous processor architecture
GB2536202B (en) * 2015-03-02 2021-07-28 Advanced Risc Mach Ltd Cache dormant indication
JP6478762B2 (ja) 2015-03-30 2019-03-06 ルネサスエレクトロニクス株式会社 半導体装置及びその制御方法
US10055259B2 (en) * 2015-05-26 2018-08-21 Mediatek Inc. Method for performing processor resource allocation in an electronic device, and associated apparatus
US10628214B2 (en) 2015-06-01 2020-04-21 Samsung Electronics Co., Ltd. Method for scheduling entity in multicore processor system
US9928115B2 (en) 2015-09-03 2018-03-27 Apple Inc. Hardware migration between dissimilar cores
CN105302498A (zh) * 2015-11-24 2016-02-03 浪潮(北京)电子信息产业有限公司 一种存储冗余系统与方法
US10310858B2 (en) * 2016-03-08 2019-06-04 The Regents Of The University Of Michigan Controlling transition between using first and second processing circuitry
RU2652460C1 (ru) * 2017-06-23 2018-04-26 Федеральное государственное бюджетное образовательное учреждение высшего образования "Вятский государственный университет" Способ организации выполнения операции умножения двух чисел в модулярно-индексном формате представления с плавающей точкой на универсальных многоядерных процессорах
US10482016B2 (en) 2017-08-23 2019-11-19 Qualcomm Incorporated Providing private cache allocation for power-collapsed processor cores in processor-based systems
US11119830B2 (en) * 2017-12-18 2021-09-14 International Business Machines Corporation Thread migration and shared cache fencing based on processor core temperature
EP3750057B1 (en) 2018-02-08 2022-10-19 Alibaba Group Holding Limited Hybrid system-on-chip for power and performance prediction and control
EP3553666B1 (en) * 2018-04-12 2023-05-31 ARM Limited Cache control in presence of speculative read operations
US11106261B2 (en) 2018-11-02 2021-08-31 Nvidia Corporation Optimal operating point estimator for hardware operating under a shared power/thermal constraint
TWI697778B (zh) * 2019-06-17 2020-07-01 慧榮科技股份有限公司 資料儲存裝置與資料處理方法
US11531550B2 (en) 2020-11-05 2022-12-20 Cadence Design Systems, Inc. Program thread selection between a plurality of execution pipelines

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6501999B1 (en) * 1999-12-22 2002-12-31 Intel Corporation Multi-processor mobile computer system having one processor integrated with a chipset
US6631474B1 (en) * 1999-12-31 2003-10-07 Intel Corporation System to coordinate switching between first and second processors and to coordinate cache coherency between first and second processors during switching
WO2008152790A1 (ja) * 2007-06-12 2008-12-18 Panasonic Corporation マルチプロセッサ制御装置、マルチプロセッサ制御方法及びマルチプロセッサ制御回路
CN101349996A (zh) * 2007-07-20 2009-01-21 英特尔公司 在低功耗模式下保留被缓存的信息的技术

Family Cites Families (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3309A (en) * 1843-10-18 Weaver s loom for working any number of heddles
US288748A (en) * 1883-11-20 John watson
US5530932A (en) * 1994-12-23 1996-06-25 Intel Corporation Cache coherent multiprocessing computer system with reduced power operating features
JPH09138716A (ja) 1995-11-14 1997-05-27 Toshiba Corp 電子計算機
JP3864509B2 (ja) * 1997-08-19 2007-01-10 株式会社日立製作所 マルチプロセッサシステム
JPH11203254A (ja) 1998-01-14 1999-07-30 Nec Corp 共有プロセス制御装置及びプログラムを記録した機械読み取り可能な記録媒体
JP2000347758A (ja) * 1999-06-03 2000-12-15 Nec Kofu Ltd 情報処理装置
US6671795B1 (en) * 2000-01-21 2003-12-30 Intel Corporation Method and apparatus for pausing execution in a processor or the like
US6725354B1 (en) 2000-06-15 2004-04-20 International Business Machines Corporation Shared execution unit in a dual core processor
JP2002215597A (ja) 2001-01-15 2002-08-02 Mitsubishi Electric Corp マルチプロセッサ装置
US7100060B2 (en) 2002-06-26 2006-08-29 Intel Corporation Techniques for utilization of asymmetric secondary processing resources
US7487502B2 (en) 2003-02-19 2009-02-03 Intel Corporation Programmable event driven yield mechanism which may activate other threads
US20040225840A1 (en) 2003-05-09 2004-11-11 O'connor Dennis M. Apparatus and method to provide multithreaded computer processing
US20050132239A1 (en) 2003-12-16 2005-06-16 Athas William C. Almost-symmetric multiprocessor that supports high-performance and energy-efficient execution
US20060064606A1 (en) 2004-09-21 2006-03-23 International Business Machines Corporation A method and apparatus for controlling power consumption in an integrated circuit
US7275124B2 (en) * 2005-02-24 2007-09-25 International Business Machines Corporation Method and system for controlling forwarding or terminating of a request at a bus interface based on buffer availability
US7461275B2 (en) 2005-09-30 2008-12-02 Intel Corporation Dynamic core swapping
US20080263324A1 (en) 2006-08-10 2008-10-23 Sehat Sutardja Dynamic core switching
US7624253B2 (en) 2006-10-25 2009-11-24 Arm Limited Determining register availability for register renaming
US7590826B2 (en) 2006-11-06 2009-09-15 Arm Limited Speculative data value usage
US7996663B2 (en) 2007-12-27 2011-08-09 Intel Corporation Saving and restoring architectural state for processor cores
US20110213947A1 (en) 2008-06-11 2011-09-01 John George Mathieson System and Method for Power Optimization
US8725953B2 (en) * 2009-01-21 2014-05-13 Arm Limited Local cache power control within a multiprocessor system
US8566628B2 (en) * 2009-05-06 2013-10-22 Advanced Micro Devices, Inc. North-bridge to south-bridge protocol for placing processor in low power state
US9367462B2 (en) 2009-12-29 2016-06-14 Empire Technology Development Llc Shared memories for energy efficient multi-core processors
US8418187B2 (en) 2010-03-01 2013-04-09 Arm Limited Virtualization software migrating workload between processing circuitries while making architectural states available transparent to operating system
US8533505B2 (en) 2010-03-01 2013-09-10 Arm Limited Data processing apparatus and method for transferring workload between source and destination processing circuitry
US20110213935A1 (en) 2010-03-01 2011-09-01 Arm Limited Data processing apparatus and method for switching a workload between first and second processing circuitry
US8751833B2 (en) 2010-04-30 2014-06-10 Arm Limited Data processing system

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6501999B1 (en) * 1999-12-22 2002-12-31 Intel Corporation Multi-processor mobile computer system having one processor integrated with a chipset
US6631474B1 (en) * 1999-12-31 2003-10-07 Intel Corporation System to coordinate switching between first and second processors and to coordinate cache coherency between first and second processors during switching
WO2008152790A1 (ja) * 2007-06-12 2008-12-18 Panasonic Corporation マルチプロセッサ制御装置、マルチプロセッサ制御方法及びマルチプロセッサ制御回路
CN101349996A (zh) * 2007-07-20 2009-01-21 英特尔公司 在低功耗模式下保留被缓存的信息的技术

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105550140A (zh) * 2014-11-03 2016-05-04 联想(北京)有限公司 一种电子设备及数据处理方法
CN105550140B (zh) * 2014-11-03 2018-11-09 联想(北京)有限公司 一种电子设备及数据处理方法
CN104375963A (zh) * 2014-11-28 2015-02-25 上海兆芯集成电路有限公司 基于缓存一致性的控制系统和方法
CN104407995A (zh) * 2014-11-28 2015-03-11 上海兆芯集成电路有限公司 基于缓存一致性的控制系统和方法
CN104407995B (zh) * 2014-11-28 2018-10-09 上海兆芯集成电路有限公司 基于缓存一致性的控制系统和方法
CN104375963B (zh) * 2014-11-28 2019-03-15 上海兆芯集成电路有限公司 基于缓存一致性的控制系统和方法

Also Published As

Publication number Publication date
US20130311725A1 (en) 2013-11-21
CN102804103B (zh) 2015-08-12
IL221269A0 (en) 2012-10-31
RU2012141563A (ru) 2014-04-10
US20110213993A1 (en) 2011-09-01
RU2015107993A3 (zh) 2018-09-27
BR112012021121B1 (pt) 2020-12-01
KR20130012120A (ko) 2013-02-01
GB2490825B (en) 2016-06-08
KR101740225B1 (ko) 2017-05-26
DE112011100743T5 (de) 2013-06-06
IL221269A (en) 2017-02-28
JP5702407B2 (ja) 2015-04-15
DE112011100743B4 (de) 2014-07-10
US9286222B2 (en) 2016-03-15
RU2015107993A (ru) 2015-06-27
GB2490825A (en) 2012-11-14
WO2011107775A1 (en) 2011-09-09
US8533505B2 (en) 2013-09-10
JP2013521556A (ja) 2013-06-10
RU2550535C2 (ru) 2015-05-10
RU2711336C2 (ru) 2020-01-16
GB201214397D0 (en) 2012-09-26
BR112012021121A2 (pt) 2017-07-18

Similar Documents

Publication Publication Date Title
CN102804103B (zh) 用于在源和目标处理电路间转移工作量的数据处理装置和方法
CN102782671B (zh) 用于在第一和第二处理电路间切换工作量的数据处理装置和方法
TWI742032B (zh) 用於使用者等級執行緒暫止的方法、設備及指令
Kalla et al. IBM Power5 chip: A dual-core multithreaded processor
US10409763B2 (en) Apparatus and method for efficiently implementing a processor pipeline
Borkenhagen et al. A multithreaded PowerPC processor for commercial servers
US7925840B2 (en) Data processing apparatus and method for managing snoop operations
US20110213935A1 (en) Data processing apparatus and method for switching a workload between first and second processing circuitry
CN105843362B (zh) 用于异构多核心系统的动态核心选择
US9317102B2 (en) Power control for cache structures
US20150120978A1 (en) Input/output memory map unit and northbridge
Ferri et al. Embedded-TM: Energy and complexity-effective hardware transactional memory for embedded multicore systems
JP4487744B2 (ja) マルチスレッド制御装置及び制御方法
GB2527927A (en) Control of switching between execution mechanisms
Tanasic et al. Efficient exception handling support for GPUs
Gutierrez et al. Evaluating private vs. shared last-level caches for energy efficiency in asymmetric multi-cores
Burgess et al. e6500: Freescale's low-power, high-performance multithreaded embedded processor
Nellans et al. OS execution on multi-cores: is out-sourcing worthwhile?
Wolff It is Too Hot in Here! a Performance, Energy and Heat Aware Scheduler for Asymmetric Multiprocessing Processors in Embedded Systems
Renau et al. Speculative Multithreading Does not (Necessarily) Waste Energy Draft paper submitted for publication. November 6, 2003. Please keep confidential
Ahmed Cooperative caching in power-aware chip-multiprocessors

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant