CN106164816B - 在处理器之间的全局电压/频率缩放切换的调度 - Google Patents
在处理器之间的全局电压/频率缩放切换的调度 Download PDFInfo
- Publication number
- CN106164816B CN106164816B CN201580019116.2A CN201580019116A CN106164816B CN 106164816 B CN106164816 B CN 106164816B CN 201580019116 A CN201580019116 A CN 201580019116A CN 106164816 B CN106164816 B CN 106164816B
- Authority
- CN
- China
- Prior art keywords
- processor
- frequency
- task
- rank
- global voltage
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Classifications
-
- 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
-
- 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/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
- 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/5094—Allocation of resources, e.g. of the central processing unit [CPU] where the allocation takes 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/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/3296—Power saving characterised by the action undertaken by lowering the supply or operating voltage
-
- 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)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Power Sources (AREA)
Abstract
被配置为在相同的全局电压/频率(VF)级别并发操作的多个处理器之间的任务执行通过使用全局功率管理器被控制,以控制从一个VF级别向另一VF级别的VF切换,相同的当前VF级别支配每个处理器的VF设置。处理器中的每个处理器控制它是否将在使能针对处理器中的该处理器的接下来的所调度的任务执行之前等待从当前VF级别向下一VF级别的VF切换,并且该决定基于当前VF级别是否高于下一所调度的VF级别。全局功率管理器至少基于定时调度,并且在一些但不是所有实施例中,还基于所有处理器是否指示它们正等待VF级别切换,来执行VF级别切换。
Description
技术领域
本发明涉及多处理器环境中的全局电压/频率切换,并且更特别地涉及具有异步操作的处理器的环境中的全局电压/频率切换,异步操作的处理器中的一个或多个处理器具有任务调度机制,该任务调度机制是依赖于来自其他处理器中的一个或多个处理器的输出的数据流。
背景技术
无线电收发器具有严格的时间要求,并且通常被当作不能错过最后期限的硬实时应用,并且对其而言不存在性能的优雅降级。
近年来,设计者实施了异构多处理器上的调制解调器的物理层(PHY)。归因于同步上的困难,处理器之间的任务既不是静态地被调度,也不是时间触发的。替代地,它们以分布式、自定时的方式在它们自身之间进行同步:当任务结束执行时,它向(可能运行在另一处理器/加速器上的)另一任务发送触发并且该任务开始执行。
同时,所谓的电压频率缩放(VFS)技术变得越来越受欢迎。这涉及允许一个或多个处理器核心在不同电压/频率级别之间切换的一个或多个切换。这些电压/频率级别中的每个级别提供了功耗与性能之间的不同权衡。因此,一个级别可能运行较快并消耗更多功率,或者运行较慢并消耗较少功率。这种切换不限于两个级别,而是典型地有多个离散级别。
由Orlando Pires Dos Reis Moreira于2013年4月4日公布的名称为“DFVS-Enabled Multiprocessor”的美国专利公布2013/0086402(后文称为“Moreira”)描述了根据线性编程(LP)技术设计的计算机程序如何能够(以被描述为利用定时注释的数据流图形的流式应用的时间要求被满足的方式)被用来生成静态周期性调度以针对每个时间间隔指配不同的电压-频率级别,同时提供最佳(最小)能耗,该美国专利公布由此以它的整体通过引用并入本文。然而,发明人已经认识到这种方法具有两个重要的限制。
第一个限制是它依靠每个处理器具有独立VFS切换的假设。在许多硬件平台中,由硬件提供单个全局VFS切换。这主要是由于成本问题。为了解决这一点,已经描述了启发式的包括(整数)LP的编程,它为全局VFS切换提供将能耗最小化的静态周期性调度。参见Moreira等人的“Throughput-Constrained Voltage and Frequency Scaling for Real-time Heterogeneous Multiprocessors”,SAC’13,2013年3月18-22日,葡萄牙科英布拉,(ACM 978-1-4503-1656-9/13/03)(后文称为“Moreira等人”),其由此以它的整体通过引用并入本文。
第二个限制是静态周期性调度非常难以在系统级别实施,因为它要求非常精确的全局同步以用于每个任务的开始/停止。如之前所提到的,大多数多处理器系统具有分布式、自定时的同步。对于在Moreira公布中假设的情况,这不是真正的问题。因为每个处理器具有它自己的VFS切换,所以由于每个处理器可以设置它自己的执行步调和它自己的功耗级别,静态调度的自定时实施(即,保持顺序,但是放弃精确的激活时间)将总是奏效。所引用的Moreira等人的公布还假设在全局情况中存在共享的VFS切换。但是在该公布中,假设了有可能容易地跨所有处理器静态地进行调度,所以没有留意将用于自定时调度的功耗最小化。
然而,在具有全局切换的处理平台中,问题出现了。考虑图1中所描绘的任务图形。在该图形中被描绘为节点的多个复发性任务—具有由它们之间的有向边缘表达的每迭代的激活依赖性(意味着源任务必须在宿任务能够执行之前终止其当前迭代)以自定时的方式(即,任务在其依赖性被满足时立即激发—这通过任务间、处理器间的同步机制用信号通知,其从一个实施例到下一实施例可能不同)在多处理器上执行。每个任务能够仅在特定的处理器上运行(这可能是由于映射决定或者由于存在针对特定任务的专用/专门的处理器)。在这一示例中,系统包括三个处理器,分别标示为A、B和C。每个任务的名称通过它所映射到其上的处理器的指示被加上前缀。因此,任务A1映射至处理器A,任务B2映射至处理器B,等等。在一些实例中,可能有利的是将任务拆分为两个子任务,并且每个任务运行在不同的VFS级别。这通过以下来标示:将上面描述的命名约定应用于第一运行任务,并且然后将撇号(’)附加于相同的任务名称以用于第二运行任务。例如,在图1中,任务A1和A1’表示相同的总体任务,其中第一部分预定在第一VFS级别运行,并且第二部分预定在第二VFS级别运行。
在应用上面引用的Moreira等人的公布中描述的算法或另一算法来获得类似的VFS调度之后,用于所有任务的静态周期性调度、连同用于在针对全局VFS切换的不同频率级别之间进行切换的静态周期性调度一起被获得。调度由时间的“分段”构成。
图2描绘了针对图1的示例性图形的每处理器的理想静态调度,在切换中假设2个电压-频率级别。注意,该调度在针对所有任务的最坏情况执行时间的假设下工作,并且遵守所有的数据依赖性。如该图形中所示出的,任务A1和B1以低V/F设置运行,而处理器C保持空闲(归因于任务C’对任务B1的输出的数据依赖性)。在定时切换至高V/F设置(从分段1转变至分段2)时,假设任务A1和B1已经完成。因此,处理器A和C运行它们各自的任务A1’和C1。处理器B现在是空闲的,因为它的接下来的任务B2依赖于任务A1’和B1两者的完成。
在第三切换时段(分段3)中,电路切换至低V/F设置,并且任务A2、B2和C1’运行。在分段3的末尾处,电路在分段4中切换回到高V/F设置,并且任务A3在处理器A上运行,而根据图1的图形没有进一步任务被调度的处理器B和C保持空闲。
图2中所描绘的定时是静态的并且基于全局定时器,该全局定时器具有超时时段,超时时段被设置为保证最慢的任务能够在定时器到期之前运行完成的值。这意味着每次任务发起的定时由VFS级别切换调度来规定。现在来看图1中所描绘的相同程序在任务的执行是自定时、但是VFS级别的切换保持静态周期性的时候可能发生什么。在这一示例中,假设在一个迭代中,任务A1’和C1的执行时间是最坏情况执行时间的一半。作为结果的调度被描绘在图3的调度图形中。每个任务被准许在它的数据依赖性一旦被满足时就运行,但是VFS切换的调度是静态周期性的。
因为执行是自定时的(即,在所有的数据依赖性被保持的情况下尽可能快)并且数据流的执行模型是时间单调的(即,任务激活或激发的“快于最坏”情况结束仅能够导致任何依赖的任务激活或激发的“快于最坏”情况开始),所以所有的依赖性被保持。此外,因为任务的“快于最坏情况”结束仅能够导致任务的“快于最坏情况”开始(假设新任务的其他数据依赖性(如果有的话)也已经被满足),并且考虑到VFS切换的调度仅可能更慢,所以唯一的可能性是任务将快于所要求的完成,并且从不会较迟。因此,所有的最坏情况时间要求被履行。
问题是电路潜在地比在静态周期性调度上耗费多得多的功率。这从对图3的审视来看是明显的。已经计划以低功率模式执行任务A2、B2和C1’(参见图2、分段3),但是由于调度的自定时的尽可能快的实施,因此它们的大多数循环在分段2的高频率/电压处被执行(但并不必要,因为这甚至在这些任务被要求开始之前发生),因此耗费比为了实时行为所要求而言的较大功率。
因此,希望解决如下的问题:如何以节省多处理器芯片上的能耗的方式调度全局V/F切换,同时也保证满足所有的实时应用定时要求。
发明内容
应当强调,术语“包括”和“包括有”当在本说明书中使用时被用于规定所陈述的特征、整数、步骤或组件的存在;但是这些术语的使用不排除一个或多个其他特征、整数、步骤、组件或它们的群组的存在或添加。此外,如在本文中所使用的,术语“示例性”意指用作出自任何数目的可能例示中的一个例示。
根据本发明的一个方面,前述和其他的目的在用于在被配置为在相同的全局电压/频率(VF)级别并发操作的多个处理器之间控制任务执行的方法和装置中被实现。任务执行控制包括:使用全局功率管理器来控制从一个VF级别向另一VF级别的VF切换,其中相同的当前VF级别支配处理器中的每个处理器的VF设置;以及处理器中的每个处理器控制处理器中的该处理器是否将在使能针对处理器中的该处理器的接下来的所调度的任务的执行之前等待从当前VF级别向下一VF级别的VF切换。
在这种布置中,全局功率管理器执行VF级别切换过程,该VF级别切换过程包括控制定时器以便促使定时器在已知的未来时间生成定时器事件。每当定时器事件发生时,定时器事件被检测并且响应于该检测,从当前VF级别向下一所调度的VF级别的VF切换被促使发生。
此外在这种布置中,控制处理器中的该处理器是否将在使能针对处理器中的该处理器的接下来的所调度的任务的执行之前等待从当前VF级别向下一VF级别的VF切换包括:检测当前VF级别高于下一所调度的VF级别。响应于检测到当前VF级别高于下一所调度的VF级别,处理器中的该处理器被促使在使能处理器中的该处理器的接下来的所调度的任务的执行开始之前等待从当前VF级别向下一VF级别的VF切换;否则处理器中的该处理器的接下来的所调度的任务的执行被使能开始而无需等待从当前VF级别向下一VF级别的VF切换。
在一些但不必然是所有实施例中,促使处理器中的该处理器在使能处理器中的该处理器的接下来的所调度的任务的执行开始之前等待从当前VF级别向下一VF级别的VF切换包括:促使处理器中的该处理器等待直到处理器中的该处理器检测到定时器事件的发生。
在一些但不必然是所有实施例中,由全局功率管理器执行的VF级别切换过程包括:检测处理器的所有执行过程在使能处理器中的该处理器的接下来的所调度的任务的执行开始之前正等待从当前VF级别向下一VF级别的VF切换,并且响应于所述检测,促使从当前VF级别向下一所调度的VF级别的VF切换。
在一些但不必然是所有实施例中,促使处理器中的该处理器在使能处理器中的该处理器的接下来的所调度的任务的执行开始之前等待从当前VF级别向下一VF级别的VF切换包括:通知全局功率管理器处理器中的该处理器在使能处理器中的该处理器的接下来的所调度的任务的执行开始之前正等待从当前VF级别向下一VF级别的VF切换。
在一些但不必然是所有实施例的一个方面中,处理器中的该处理器的接下来的所调度的任务中的每个接下来的所调度的任务仅在接下来的所调度的任务中的该接下来的所调度的任务的执行已经被使能时并且在接下来的所调度的任务中的该接下来的所调度的任务的所有特定于任务的依赖性已经被满足时开始。例如,在一些但不必然是所有实施例中,接下来的所调度的任务中的该接下来的所调度的任务的特定于任务的依赖性包括特定于任务的数据依赖性。
附图说明
本发明的目的和优点将通过结合附图阅读以下详细描述而被理解,在附图中:
图1是描绘了具有每迭代的激活依赖性的多个复发性任务的示例性任务图形,该多个复发性任务将以自定时的方式在多处理器上执行。
图2描绘了针对图1的示例性图形的每处理器的理想静态调度,在切换中假设2个电压-频率级别。
图3是调度图形,其描绘了当图1中所描绘的程序的任务的执行是自定时的并且任务的执行时间能够短于最坏情况但是VFS级别的切换被保持为静态周期的时候发生什么。
图4a是调度图形,其示出了当图1的任务图形所定义的过程根据符合于本发明的第一类实施例被调度时的任务执行的定时。
图4b是备选调度图形,其示出了当图1的任务图形所定义的过程根据符合于本发明的第一类实施例被调度时的任务执行的定时。
图5是调度图形,其示出了当图1的任务图形所定义的过程根据符合于本发明的第二类实施例被调度时的任务执行的定时。
图6描绘了根据第二类实施例的图1的任务图形的原始任务与VF切换转变和定时器事件之间的激活依赖性。
图7a在一个方面是符合于第一类实施例的根据本发明的一些但不必然是所有示例性实施例的由电路执行的步骤/过程的流程图。
图7b在一个方面是符合于第二类实施例的根据本发明的一些但不必然是所有示例性实施例的由电路执行的步骤/过程的流程图。
图8是依赖于异步数据流的处理器的示例性布置的框图,每个处理器连接至相同的全局功率管理器。
具体实施例
现在将参考附图来描述本发明的各种特征,在附图中相似的部分利用相同的参考字符来标识。
现在将结合多个示例性实施例更详细地描述本发明的各种方面。为了促进对本发明的理解,本发明的许多方面在将由计算机系统的元件或能够执行经编程的指令的其他硬件执行的动作序列的方面被描述。将认识到,在每个实施例中,各种动作可以由专门电路(例如,被互连以执行专门功能的模拟和/或分立逻辑门)、由利用适合的指令集编程的一个或多个处理器、或者由这两者的组合来执行。术语“电路被配置为”执行一个或多个所描述的动作在本文中用来指代任何这样的实施例(即,一个或多个专门电路和/或一个或多个经编程的处理器)。此外,本发明能够另外地被考虑为完全被体现在包含将引起处理器执行本文所描述的技术的适当的计算机指令集的任何形式的计算机可读载体内,诸如固态存储器、磁盘、或光盘。因此,本发明的各种方面可以以许多不同的形式来体现,并且所有这样的形式被认为在本发明的范围内。对于本发明的各种方面中的每个方面,上文所描述的实施例的任何这样的形式可以在本文中被称为“逻辑配置为”执行所描述的动作,或者备选地被称为执行所描述的动作的“逻辑”。
描述了解决如下问题的多个实施例:如何以节省多处理芯片上的能耗的方式调度全局V/F切换,同时也保证满足所有的实时应用定时要求。如将更详细地看到的,一个方面涉及利用动态松弛。
符合于本发明的第一类实施例在它不需要在处理核心之间的任何同步的意义上纯粹是局部的。它允许任务的自定时,但是不像传统解决方案,它保证了至少与借助于V/F切换的静态调度可获得的差不多的节能。
这一类的实施例的一个方面是,如果在相比于VF调度中的下一VF级别较高的VF级别上执行的任务相比于预期较早结束,则处理器暂停直到下一VF切换时间的时间,在该时间点它将苏醒并开始执行。此外,当处理器被暂停时,由过早结束的任务所激活的任何触发也必须被中止,从而其他处理器中的由过早结束的任务所触发的其他任务不能在相比于静态调度中所计划的较高VF级别开始执行。什么构成“触发”依赖于实施方式。在同步为事件驱动的实施方式中,这样的触发能够是事件。在同步为数据驱动的实施方式中,这样的触发能够是输出数据发放。
当任务在关联于高V/F设置的分段期间过早地结束时中止同步触发的一种备选方式是引入依赖性,其中在低V/F级别开始的所有任务除了由任务图形定义的所有触发以外,还要求来自动态频率和电压缩放(DFVS)控制器的触发以启动处理。然而,这要求额外的同步、DFVS控制器中的更多逻辑,并且因此当与上面描述的制止触发的解决方案相比时具有一些缺陷。
这一类的实施例的另一方面是,如果在过早任务完成的时候,V/F级别低于下一级别,那么接下来的任务能够立即开始执行,因为这将导致已经计划在较高VF级别执行的一些工作在较低VF级别被执行,因此增加了节省。任何这种任务的提早开始保证了任务不能晚于所计划的完成,并且最可能地,由于数据流的计算模型的时间单调性,它将较早地完成。
不管与对定时器编程相关联的开销如何,能够看出符合于这一类的实施例的实施例保证了自定时系统将节省至少与所计划的静态周期制度差不多的能量。然而,它没有高效地使用已有的动态松弛。图4a是调度图形,其示出了当图1的任务图形所定义的过程根据符合于本发明的第一类实施例被调度时的任务执行的定时。如果处理器在其相关联的VF分段的末尾之前完成任务的执行,则处理器在开始其下一所调度的任务之前等待直到下一VF分段的开始。在图4a的示例中,当理想地将有可能立即开始A2、B2和C1’的执行时,在任务A1’和C1的完成之后所有的处理器是空闲的—如果有可能立即切换至较低频率则这将会是功率高效的。
图4b是备选的调度图形,其示出了当图1的任务图形所定义的过程根据符合于本发明的第一类实施例被调度时的任务执行的定时。如果处理器在其相关联的VF分段的末尾之前完成任务的执行,则处理器在开始其下一所调度的任务之前等待直到下一VF分段的开始,但是这仅在VF级别转变为相比当前分段的VF级别较低的VF级别时发生。在所有其他情况中,接下来的任务被准许提早(即,在相比下一分段的VF级别相同或较低的VF级别)开始运行,假设其所有数据和其他依赖性已经被满足。
在图4b的示例中,当理想地将有可能立即开始A2、B2和C1’的执行时,在任务A1’和C1完成之后所有的处理器是空闲的—如果有可能立即切换至较低频率则这将会是功率高效的。但是在这一实例中,针对分段2的VF级别高于下一分段(即,分段3)的VF级别。因此,接下来的任务(A2、B2和C1’)的开始被迫等待直到分段3的所调度的开始。同时,处理器进入低功率状态(基本上“关断”)以节约能量。它们将在分段3的开始处再次被加电。
如这一示例中进一步示出的,任务A2、B2和C1’中的每个任务相比其预期的最坏情况时间较早地完成执行。因为,在这一实例中,当前分段(分段3)的VF级别不高于下一所调度的分段(分段4)的VF级别,所以为处理器A调度的接下来的任务(即,任务A3)被准许在“低于计划的”VF级别提早开始。A3的提早开始不能发生,除非其所有数据和其他依赖性已经被满足,但是在这一示例中,任务A2、B2和C1’中的每个任务都提早完成,所以用于开始A3的执行的所有前提都已经被满足。A3的这一提早开始改进了性能,因为A3的至少一部分在较低VF级别被执行(由此节省了能量),并且尽管A3花费相比预期较长地运行完成(归因于在“低于计划的”VF级别的部分执行),但是它仍然“按时”地或早于“按时”地结束执行,所以不存在与这一提早开始相关联的有害效应。
从以示例性实施例为形式的以下进一步描述来看,第一类实施例的进一步方面将变得明显。
考虑包括两个或更多处理器的系统,该两个或更多处理器可以具有或可以不具有相同的架构(即,该系统能够是异构的或同构的)。在一些实施例中,每个处理器具有对在所有处理器之间共用的可编程定时器的访问。在备选实施例中,每个处理器具有对它自己的定时器的访问,在该情况中,每个处理器将具有它自己的时间参考和它自己的定时器管理过程。
(多个)定时器在时间上的所指定时刻生成事件,这些通过对set_timer(time)的调用被发起和定义。作为一种示例,定时器事件能够被实施为(多个)处理器所看到的中断。
还假设处理器能够通过调用被称为current_time()的进程来询问定时器的当前绝对时间。current_time()返回的值是当前绝对时间。
电压-频率切换(vf_switch)能够由一个或多个处理器控制,并且在伪代码中这由函数switch_vf(vf_level)表示,函数switch_vf(vf_level)指令vf_switch从当前的VF级别切换至由函数自变量给定的级别。
此外,每个处理器具有对函数current_vf_level()的访问,函数current_vf_level()返回切换的当前VF级别。这一函数能够例如通过查询VF切换来实施,如果这由硬件支持的话。备选地,如在第一类实施例的情况中那样,当前VF级别的值能够通过检查当前时间并针对静态调度对它进行匹配而局部地被推断,因为在第一解决方案中VF切换严格地实施所给定的静态周期性调度。
用于对定时器编程的其他接口是可能的。例如,可能是定时器仅在经过的时间而非绝对时间方面被编程,并且可能是绝对时间通过处理定时器事件而局部地被考虑。
定时器生成中断并不是必需的。所需要的是一种用于处理器上的响应于事件而关断和苏醒的过程的机制:例如,当使用提供了标记或旗语以及等待这些标记/旗语改变状态的能力的处理器时,定时器事件能够被联系到事件标记/旗语以替代中断线。
在一般情况下,处理器被配置有调用wait(event)函数的能力,wait(event)函数关断处理器并且在特定事件(或事件的组合)发生时将其接通回来。然而,已观察到这种第一类示例性实施例仅需要等待定时器事件。
任务被设置为通过调用execute(task)函数来执行,execute(task)函数意指任务被使能在它的所有激活要求一旦已经被满足时就运行。归因于自定时的行为,所设置的(使能的)任务仍然需要满足其在数据可用性方面的激活要求;作为结果,如果数据可用性在对execute(task)的调用已经被作出的时候还没有被满足,则任务将仍然阻塞并且等待数据可用性。
示例性实施例利用能够通过例如应用Moreiral等人描述的算法而获得的静态周期性调度的表示。更特别地,每个处理器具有包括分段记录的列表的调度变量。在以下伪代码中,调度变量被称为static_periodic_schedule。调度中的每个分段项目包含指向必须在该分段上执行的任务的指针、以时间为单位的分段的持续期、以及应当在该分段期间被应用的VF级别。在以下伪代码中,分段具有以下结构:
其中
·vf_level能够是例如enum类型;
·Task能够是例如函数指针类型(或者C编程语言中的void*);
·descendants是如下处理器(不是任务)的列表,它们针对下一分段的执行依赖于在这个处理器上在这一分段中正被执行的任务的执行结束,并且它们需要在执行任务的结束时被触发。给出一种示例,参考图1的任务图形所定义的过程,与任务A1’相对应的分段必须在descendants的列表中包括处理器B,因为任务B2依赖于任务A1’。至于局部触发,诸如A1’对A2,它们在原则上是不必要的,因为假设存在每处理器的有保证的静态执行顺序)。
针对每个处理器的分段列表对于所有处理器是相同的,除了Task之外,Task是特定于处理器的并且对应于根据预先计算的静态周期性调度应当在该处理器上、在该分段上被执行的任务。
每个分段对应于VF级别。
如果调度暗示原始任务需要部分地在一个级别中并且部分地在另一级别中执行,则如关于图1的任务图形所描述的相同方法:任务被拆分成两个子任务,子任务在每个相应的VF级别中被执行。这在图1中通过任务A1和A1’被图示,它们是将原始任务拆分到两个分段中的结果,一个将在高VF处被执行并且另一个将在低VF处被执行。
提供了函数next_segment(schedule),它返回调度schedule中的下一分段。在这个示例性实施例中,一旦列表中的最后分段通过对next_segment的调用被返回,下一调用将再次返回第一分段,以此类推。然而,这不是对所有实施方式的要求。
在这些示例性实施例中,任务的执行不包括对接下来的任务的同步触发;这些必须通过调用进程emit_trigger_to_descendants(Segment List)而显式地被生成。
每个处理器具有执行以下面的示例性伪代码表示的序列的应用任务进程。
以叙述形式被表达,该进程执行任务,而根据静态周期性调度实施执行顺序。它允许任务在静态周期性调度中规定的时间之前开始执行,但是这仅在当前VF级别低于或等于如静态周期性调度中规定的由任务所要求的级别时。“if”语句针对向相比于当前VF级别较低的VF级别的转变进行测试,并且如果这一条件被满足,则替代立即使能接下来的所调度的任务用于执行,“wait(timer_event)”函数被调用,其迫使处理器在开始执行接下来的任务之前等待定时器事件(标记较低VF级别的开始)的发生。因为在这一类实施例中定时器事件表明VF切换的发生(VF切换遵守静态调度),所以这等价于等待VF切换发生。
除了上面描述的在每个处理器(即,每个核心)上运行的进程以外,还存在控制定时器和vf_switch的进程。这一进程能够运行在任何应用处理器上,或者它能够运行在专用处理器或者软件或硬件形式的加速器上。这一进程在本文中被称为功率管理器,并且示例性实施例具有以伪代码形式例示的以下功能:
在上面的代码中,第一行获得下一分段并且将其指配为“当前分段”。在第二行中,该分段应当结束的时间被确定为当前时间加上用于分段的执行所需要的最坏情况(“wc”)时间。然后,进行VF切换至新级别,并且设置定时器以使得它在所计算的“分段的结束”时间将引起定时器事件。功率管理器然后等待定时器事件发生。
作为调度的显式表示的备选,应用的代码被展开,每个任务被调用,并且用于处理分段和定时器事件的代码正好与任务执行交错。
如早前提到的,在上面描述的类别的实施例中,有可能经历所有处理器为空闲的间隔。例如,图4a和图4b示出了在任务A1’和C1完成之后所有处理器为空闲的实例。这是对时间的浪费,因为不存在任务A2、B2和C1’不能立即开始而不是必须等待下一VF分段开始的功能性原因。然而,为了通过在较高VF级别提早开始这些任务以避免不必要地耗费功率,可取的是也立即切换至较低VF级别。
发明人在这一点上的见解导致了第二类实施例。为了说明各种方面,图5是调度图形,其示出了当图1的任务图形所定义的过程根据符合于本发明的第二类实施例被调度时的任务执行的定时。在一个方面中,VFS切换的调度被允许是自定时的而非静态的。如果需要在高频率处被执行的所有任务必须在所计划的最坏情况时间之前运行完成,则切换被编程为在预先调度的时间之前切换至低频率,并且所有处理器处的执行被允许进展到接下来的任务。然而,当正在从低VF设置进行切换时,它停留在低VF设置直到原始的预期最坏情况切换时间。任务被允许在预期的最坏情况切换时间之前开始执行,这具有增加功率节省的有益效果。这是因为被计划完全在高VF设置处执行的任务将在较低能耗级别较早地开始执行,并且因此从动态松弛中获益。与所计划的静态周期性调度器相比较,这一过程基本上延长了处理器在低VF级别执行的时间间隔,并且缩短了处理器在高VF级别执行的时间间隔。
图6描绘了根据第二类实施例的在图1的任务图形的原始任务与VF切换转变和定时器事件之间的激活依赖性。在这一种类的数据流图形中,可能不存在基于依赖性的逻辑OR’ing的激活:每个任务仅在其所有输入可用时激活。由于这个原因,仅描绘了与每个VF切换转变相关的依赖性:该设计假设每个任务在所预测的最坏情况时间或之前完成,从而“VF下”任务从来不需要通过“定时器等待”事件被激活。“VF上”任务在任何实例中不依赖于任务完成,因为在这种第二类实施例中,任务完成不被允许过早地迫使低至高VF转变;替代地,“VF上”任务依赖于定时器事件。
通过图6能够看出,当进行“VF下”切换601时,任务A1和B1被激活。与此同时,定时器等待时段603开始,它的到期促使“VF上”切换605发生。该等待的长度基于用于任务A1和B1并发运行的最坏情况的期望执行时间。任务A1的完成足以促使任务A1’被激活而不管“定时器等待”时段603是否到期,从而任务A1’可以在VF低设置处或者在VF高设置处开始执行。类似地,任务B1的完成足以促使任务C1被激活而不管“定时器等待”时段603是否到期,从而任务C1可以在VF低设置处或者在VF高设置处开始执行。
“VF上”切换605的发生将“VF下”切换607建立为将进行的下一VF切换,但是这不会发生直到任务A1’和C1两者已经运行完成。(“VF下”切换607依赖于任务A1’和C1两者的完成。)“VF下”切换607的发生使能任务A2、B2和C1’的激活。注意,任务A2和C1’将在“VF下”切换607发生时发生,因为它们像“VF下”607那样依赖于任务A1’和C1的完成。然而,“VF下”切换607的发生不是激活任务B2的充分条件,因为该任务还依赖于任务B1的完成。(“VF下”切换607不依赖于任务B1的完成并且因此可以在任务B1完成之前发生。)
“VF下”607切换607的激活使定时器等待时段609的开始激活,定时器等待时段609的到期促使“VF上”切换611发生。该等待的长度基于用于任务A2、B2和C1’的并发运行的最坏情况的预期执行时间。任务A3尽管被调度为在高VF设置处运行,但是仅依赖于三个任务A2、B2和C1’的完成。因此,如果所有三个这些任务在它们的最坏情况执行时间之前结束执行,则任务A3可以提早被激活,而处理器仍然操作在低VF设置。如果当定时器等待时段609到期时任务A3仍然在运行,则任务A3将在高VF设置处结束执行。
从以示例性实施例为形式的以下进一步描述来看,第二类实施例的进一步方面将变得明显。这一实施例依靠上面关于第一类实施例所描述的相同环境,除了现在对等待函数的调用能够依赖于所有处理器所生成的事件(尽管不是每个处理器都需要从每个其他处理器接收事件)。此外,添加了另一函数emit(event),其允许处理器生成事件。
因为在这一解决方案中不需要在任务执行之后制止同步触发,所以通过去除对于显式同步调用的需求而进行简化。现在这是任务执行的一部分。
简略地说,功率管理器进程需要从所有其他处理器接收事件,并且所有其他处理器需要从功率管理器接收事件。多个中继机制中的任何中继机制能够被采用以达成这一点,但是在事件的定时中必须考虑到增加的延迟。
在每个处理器上运行的任务执行进程是根据以下的示例性伪代码的:
上面的伪代码描述了以下的处理:处理在切换事件发生时开始,在该点处以下被重复:
处理根据调度中的下一分段被导向,从而old_segment被给定new_segment的当前值,并且new_segment被指配为静态周期性调度中的下一分段的值。
“if”语句进行测试以查明是否正在向相比于正从其进行切换的VF级别较低的VF级别进行切换。如果是这种情况,则可以有可能提早开始执行接下来的所调度的任务,但是为了避免在“高于必要”的VF级别运行该接下来的任务,希望实际上进行向较低VF级别的提早切换。但是这一切换不能进行,直到与当前“较高”VF级别相关联的所有任务都已经结束执行;否则这些其他任务中的一个或多个任务将被迫在“非计划的”较低VF级别结束它们的执行。
确保符合于这些要求涉及这一任务向功率管理器发出其“已完成”状态,并且然后等待功率管理器实际上进行VF切换。(函数调用emit(wait_event_processor_n)通知功率管理器处理器“n”(其中“n”的值是进行函数调用的处理器的标识符)已经完成其任务并且正进入等待状态(在等待状态期间处理器进入减小的功率状态,基本上“关”)。在VF切换的发生之后(处理器在它从“等待”返回时意识到它),处理器切换回接通并且开始执行接下来的所调度的任务(标示为“current_segment.task”)。如下面关于功率管理器将看到的,切换事件将发生在分段定时器事件的提早以及检测到与当前分段相关联的所有运行中的任务已经完成并且正在等待切换事件的时候。
将观察到,如果分段不是正切换到较低的VF级别(即,它正切换至相同或较高的VF级别),则“if”语句的谓词没有被满足,并且接下来的所调度的任务的执行将立即开始。这是可接受的,因为任务提早开始并且其初始VF级别处于或低于针对该任务的预先调度的级别,从而在其完成中将不存在功率或延迟的任何不必要的花销。由此,性能被改进而没有任何相关联的负面效果。
正如第一类实施例,第二类实施例也包括控制定时器和vf_switch的功率管理器进程。这一进程能够运行在任何应用处理器上,或者它能够运行在专用处理器或者软件或硬件中的加速器上。用于第二类实施例的功率管理器的示例性实施例具有以下功能,这里以伪代码表达:
以叙述形式对此进行表达,针对下一切换的最坏情况时间被初始化为预定值,诸如零。然后,重复执行以下功能:对于每个分段,每当检测到分段的持续期达到其最大预定义值、或者检测到被调度为在这一分段期间运行的所有处理器已经运行完成并且正等待切换事件的通知时,VF切换将发生。
在伪代码中,这一功能首先通过“if”语句来表达,其针对“所有执行进程正在等待”的发生或者定时器事件的发生进行测试。功率管理器处理保持在这里,直到这些条件之一被满足。
当任一条件被满足时,下一分段从静态周期性调度被选择,并且这个“下一”分段被作为“当前”分段。然后,向关联于新的当前分段的VF级别进行VF切换。
将标记分段结束的时间上的未来时刻被计算为当前时间(作为wc_time_for_next_switch的当前值)加上与新的当前分段相关联的“最坏情况”时间(即,与新的当前分段相关联的任务的最坏情况执行时间的最坏)。这一所计算的时间上的未来时刻然后被使用作为当下一定时器事件将发生时用于设置的基础。
然后,已经进行了VF切换并且已经设置了将在新的当前分段到期时引起定时器事件的定时器,所有等待中的处理器(经由“emit”函数)被通知VF切换已经发生。功率管理器然后将它自己放入等待状态,等待状态将在下一定时器事件的发生时或者来自处理器中的任何处理器的等待事件的通知的发生时结束。
将意识到,如果功率管理器由于来自处理器中的已经进入等待状态的处理器的通知而苏醒,则这不一定引起下一VF切换发生。这是因为还可能存在尚未将它们的任务运行完成的其他处理器。当是这种情况时,由“if”语句测试的谓词将导致“假”,并且与“then”语句相关联的所有处理将被跳过;替代地,功率管理器将仅再次进入“等待状态”,再次等待下一定时器事件的发生(定时器将仍然从它被设置的最后时间运行)或者来自处理器中的任何处理器的等待事件的通知。
为了进一步说明符合于本发明的实施例的多个方面,图7a在一个方面是符合于第一类实施例的根据本发明的一些但不必然是所有示例性实施例的由电路执行的步骤/过程的流程图,以用于协调VF设置的调度与多个并发运行的处理器中的每个处理器中的任务调度的目的。在另一方面,图7a能够被考虑为描绘了示例性部件(means)700,示例性部件700包括被配置为执行所描述的功能的各种被说明的电路(例如,硬连线的和/或适当被编程的处理器)。
图7a描绘了并发运行的两个进程:全局功率管理器701和处理器的任务执行控制703。在实践中,将存在多于一个处理器,并且处理器中的每个处理器它自己将运行处理器的任务执行控制703;只是为了简化附图的缘故,仅描绘了它们中的一个。
在被配置为在全局电压/频率(VF)级别并发操作的多个处理器之间控制任务执行的示例性方法包括:使用全局功率管理器来控制电压/频率(VF)从一个VF级别切换至另一VF级别,其中相同的当前VF级别支配处理器中的每个处理器的VF设置;并且处理器中的每个处理器控制处理器中的该处理器是否将在使能针对处理器中的该处理器的接下来的所调度的任务的执行之前等待从当前VF级别向下一VF级别的VF切换。
在这一类实施例中,全局功率管理器执行VF级别切换过程,该VF级别切换过程包括控制定时器以便促使定时器在已知的未来时间生成定时器事件(步骤705)。测试被执行以查明定时器事件是否已经发生(判定块707)。只要定时器事件尚未发生(出自判定块707的“否”路径),处理继续针对这一条件进行测试。
每当定时器事件发生时,它被检测到(出自判定块707的“是”路径)并且响应于该检测,VF切换被促使从当前VF级别向下一所调度的VF级别而发生(步骤709)。全局功率管理器701然后将通知发送给所有受影响的处理器,告知它们VF切换已经发生(步骤711)。
与全局功率管理器701的动作并发地,每个处理器的任务执行控制703在例如当前运行的任务完成的时间(在备选实施例中其他时间是可能的)将当前VF级别与下一所调度的VF级别进行比较(判定块713)。
响应于检测到当前VF级别高于下一所调度的VF级别(出自判定块713的“是”路径),处理器等待从当前VF级别向下一VF级别的VF切换。这能够通过例如等待接收到VF切换已经发生(步骤715)的通知而被达成。在一些但不必然是所有的实施例中,“通知”能够为等待全局功率管理器701正等待的相同定时器事件的发生的形式。将认识到,这一“等待”发生在使能处理器中的该处理器的接下来的所调度的任务的执行开始之前。响应于检测到VF切换已经发生(出自判定块715的“是”路径),处理器使能这一处理器的接下来的(多个)任务的执行(步骤717)。
参考回到判定块713,如果检测到当前VF级别不高于下一所调度的VF级别(出自判定块713的“否”路径),则处理器使能处理器中的该处理器的接下来的所调度的任务的执行开始(步骤717)而无需等待从当前VF级别向下一VF级别的VF切换。
为了进一步说明符合于本发明的实施例的多个方面,图7b在一个方面是符合于第二类实施例的根据本发明的一些但不必然是所有示例性实施例的由电路执行的步骤/过程的流程图,以用于协调VF设置的调度与多个并发运行的处理器中的每个处理器中的任务的调度的目的。在另一方面,图7b能够被考虑为描绘了示例性部件750,示例性部件750包括被配置为执行所描述的功能的各种被说明的电路(例如,硬连线的和/或适当被编程的处理器)。
图7b描绘了并发运行的两个进程:全局功率管理器751和处理器的任务执行控制753。在实践中,将存在多于一个处理器,并且处理器中的每个处理器它自己将运行处理器的任务执行控制753;只是为了简化附图的缘故,仅描绘了它们中的一个。
在被配置为在全局电压/频率(VF)级别并发操作的多个处理器之间控制任务执行的示例性方法包括:使用全局功率管理器来控制电压/频率(VF)从一个VF级别切换至另一VF级别,其中相同的当前VF级别支配处理器中的每个处理器的VF设置;并且处理器中的每个处理器控制处理器中的该处理器是否将在使能针对处理器中的该处理器的接下来的所调度的任务的执行之前等待从当前VF级别向下一VF级别的VF切换。
在这一类实施例中,全局功率管理器执行VF级别切换过程,该VF级别切换过程包括控制定时器以便促使定时器在已知的未来时间生成定时器事件(步骤755)。测试被执行以查明定时器事件是否已经发生(判定块757)。如果定时器事件尚未发生(出自判定块757的“否”路径),则处理继续以测试所有处理器的执行进程是否正等待VF切换的发生(步骤759)。
全局功率管理器751能够通过例如进行测试以查看它是否已经从处理器中的每个处理器接收到通知765(指示它正等待VF切换)来测试这一点。如果少于所有处理器正等待VF切换事件,则条件没有被满足(出自判定块759的“否”路径)并且处理返回到判定块757。
每当定时器事件发生时,它被检测到(出自判定块757的“是”路径)并且响应于该检测,VF切换被促使从当前VF级别向下一所调度的VF级别而发生(步骤761)。类似地,每当所有处理器的执行进程正等待VF切换时,这一条件被检测到(出自判定块759的“是”路径)并且响应于该检测,VF切换被促使从当前VF级别向下一所调度的VF级别而发生(步骤761)。全局功率管理器751然后将通知发送给所有受影响的处理器,告知它们VF切换已经发生(步骤763)。
与全局功率管理器751的动作并发地,每个处理器的任务执行控制753在例如当前运行的任务完成的时间(在备选实施例中其他时间是可能的)将当前VF级别与下一所调度的VF级别进行比较(判定块765)。
响应于检测到当前VF级别高于下一所调度的VF级别(出自判定块765的“是”路径),处理器等待从当前VF级别向下一VF级别的VF切换。这能够通过例如等待(步骤767)接收到VF切换已经发生的通知763而被达成。将认识到,这一“等待”发生在使能处理器中的该处理器的接下来的所调度的任务的执行开始之前。
在这种第二类实施例中,对于每个处理器重要的是,通知全局功率管理器751它正等待VF切换发生。因此,还与检测到当前VF级别高于下一所调度的VF级别(出自判定块765的“是”路径)相关联的是,处理器发出其个体的通知:它正等待VF切换发生(步骤771)。
响应于检测到VF切换已经发生(出自判定块767的“是”路径),处理器使能这一处理器的接下来的(多个)任务的执行(步骤769)。
参考回到判定块765,如果检测到当前VF级别不高于下一所调度的VF级别(出自判定块765的“否”路径),则处理器使能处理器中的该处理器的接下来的所调度的任务的执行开始(步骤769)而无需等待从当前VF级别向下一VF级别的VF切换。
如早前所解释的,任务已经被“使能”开始的事实不意味着它将实际上立即开始。根据数据流编程技术,每个任务仍然不能开始其执行直到任务的所有特定于任务的依赖性已经被满足。特定于任务的依赖性能够包括,作为示例并且不带限制,特定于任务的数据依赖性。
图8是依赖于异步数据流的处理器801-1、801-2、…、801-n的示例性布置的框图,每个处理器连接至相同的全局功率管理器803。处理器801-1、801-2、…、801-n不需要彼此相同,但是共同的因素是每个处理器具有任务执行过程电路805(例如,硬连线的和/或软件定向的处理器),任务执行过程电路805被配置为根据本文描述的任何实施例来执行任务调度,诸如但不限于图7a和图7b中任一个的任务执行控制703、753。类似地,全局功率管理器803包括被配置为根据本文描述的任何实施例来执行VF切换控制的电路,诸如但不限于图7a和图7b中描绘的全局功率管理器701和751中的相应的全局功率管理器。这一示例的示例性全局功率管理器803包括可编程处理器807,可编程处理器807耦合到通过存储器809来例示的处理器可读存储介质。存储器809在其内存储有功率管理器软件811,功率管理器软件811包括用于控制处理器807的程序指令以及与将被用于一系列分段中的每个分段的VF级别有关的调度信息。
处理器807还被耦合以控制和接收来自可编程定时器813的信号/数据,可编程定时器813能够在预编程的定时器值达到时生成定时器事件。
已经描述了多个示例性实施例。然而,符合于本发明的实施例的各种方面在应用中不只限于具有单个全局切换的平台;它们能够等同地被使用在两个或更多核心共享一个VFS切换的任何实例中。
相对于传统技术,各种实施例具有优点。例如,关于完全静态调度:
·它们不要求所有任务根据它们的最坏情况执行时间来执行;
·归因于动态行为,它们能够从额外的功率节省中获益;
·阻拦了任务间通信中的或者关于对定时器编程的高开销,它们将总是提供相比静态解决方案较低的能耗;
另外:
·对比定时器中的负余量,校正功能操作是鲁棒的;
·每核心的实施例非常简单,并且能够以软件或以硬件实现。
比较上面描述的两类实施例,如果忽略VF切换调度器与处理器之间的通信引入的开销,则第二类实施例总是提供更好的能耗。但是,第一类实施例还引入了对定时器编程的开销。
上面阐述的技术的评价提到了与对定时器编程和任务间同步中所涉及的开销有关的能耗。这一开销有多高结果是取决于针对定时器和任务间通信的硬件支持。所预想到的是,实施例相比简单的静态VFS技术更为复杂,并且每个处理器需要维护VFS调度切换点的指示以及它的任务的最坏情况执行时间的知识。
参考特定实施例描述了本发明。然而,对本领域的技术人员将容易明显的是,有可能以除了上面描述的实施例的形式之外的具体形式来具体化本发明。
例如,示例性实施例中的焦点是在用于所有任务的VFS静态周期性调度、以及用于在针对全局VFS切换的不同频率级别之间的切换的静态周期性调度。然而,这不是本申请的必要特性。相反地,即使原始调度不是周期性的,上面描述的实施例的各种方面也等同地可应用。
因此,所描述的实施例仅是说明性的并且不应当以任何方式被考虑为是限制性的。本发明的范围通过所附权利要求而非前面的描述给定,并且落入权利要求的范围内的所有变型和等效被意图为包含在权利要求的范围中。
Claims (13)
1.一种在被配置为在相同的全局电压/频率级别并发操作的多个处理器之间控制任务执行的方法,所述方法包括:
使用全局功率管理器来控制从一个全局电压/频率级别向另一全局电压/频率级别的全局电压/频率切换,其中相同的当前全局电压/频率级别支配所述处理器中的每个处理器的全局电压/频率设置;以及
所述处理器中的每个处理器控制所述处理器中的该处理器是否将在使能针对所述处理器中的该处理器的接下来的所调度的任务的执行之前等待从当前全局电压/频率级别向下一全局电压/频率级别的全局电压/频率切换,
其中:
所述全局功率管理器执行全局电压/频率级别切换过程,所述全局电压/频率级别切换过程包括:
控制定时器以便促使所述定时器在已知的未来时间生成定时器事件;以及
每当所述定时器事件发生时,检测所述定时器事件并且响应于所述检测,促使从当前全局电压/频率级别向下一所调度的全局电压/频率级别的全局电压/频率切换;并且
控制所述处理器中的该处理器是否将在使能针对所述处理器中的该处理器的所述接下来的所调度的任务的执行之前等待从所述当前全局电压/频率级别向所述下一全局电压/频率级别的全局电压/频率切换包括:
检测所述当前全局电压/频率级别高于所述下一所调度的全局电压/频率级别;以及
响应于检测到所述当前全局电压/频率级别高于所述下一所调度的全局电压/频率级别,促使所述处理器中的该处理器在使能所述处理器中的该处理器的所述接下来的所调度的任务的执行开始之前等待从所述当前全局电压/频率级别向所述下一全局电压/频率级别的所述全局电压/频率切换,否则使能所述处理器中的该处理器的所述接下来的所调度的任务的执行开始而无需等待从所述当前全局电压/频率级别向所述下一全局电压/频率级别的所述全局电压/频率切换。
2.根据权利要求1所述的方法,其中促使所述处理器中的该处理器在使能所述处理器中的该处理器的所述接下来的所调度的任务的执行开始之前等待从所述当前全局电压/频率级别向所述下一全局电压/频率级别的所述全局电压/频率切换包括:
促使所述处理器中的该处理器等待直到所述处理器中的该处理器检测到所述定时器事件的发生。
3.根据权利要求1所述的方法,其中由所述全局功率管理器执行的所述全局电压/频率级别切换过程包括:
检测所述处理器的所有执行过程在使能所述处理器中的该处理器的所述接下来的所调度的任务的执行开始之前正等待从所述当前全局电压/频率级别向所述下一全局电压/频率级别的所述全局电压/频率切换,以及响应于所述检测,促使从所述当前全局电压/频率级别向所述下一所调度的全局电压/频率级别的所述全局电压/频率切换。
4.根据权利要求3所述的方法,其中促使所述处理器中的该处理器在使能所述处理器中的该处理器的所述接下来的所调度的任务的执行开始之前等待从所述当前全局电压/频率级别向所述下一全局电压/频率级别的所述全局电压/频率切换包括:
通知所述全局功率管理器所述处理器中的该处理器在使能所述处理器中的该处理器的所述接下来的所调度的任务的执行开始之前正等待从所述当前全局电压/频率级别向所述下一全局电压/频率级别的所述全局电压/频率切换。
5.根据权利要求1所述的方法,其中所述处理器中的该处理器的所述接下来的所调度的任务中的每个所述接下来的所调度的任务仅在所述接下来的所调度的任务中的该接下来的所调度的任务的执行已经被使能时并且在所述接下来的所调度的任务中的该接下来的所调度的任务的所有特定于任务的依赖性已经被满足时开始。
6.根据权利要求5所述的方法,其中所述接下来的所调度的任务中的该接下来的所调度的任务的所述特定于任务的依赖性包括特定于任务的数据依赖性。
7.一种在被配置为在相同的全局电压/频率级别并发操作的多个处理器之间控制任务执行的装置,所述装置包括:
全局功率管理器,被配置为控制从一个全局电压/频率级别向另一全局电压/频率级别的全局电压/频率切换,其中相同的当前全局电压/频率级别支配所述处理器中的每个处理器的全局电压/频率设置;以及
所述处理器中的每个处理器中的任务执行控制器,所述任务执行控制器中的每个任务执行控制器被配置为控制所述处理器中的该处理器是否将在使能针对所述处理器中的该处理器的接下来的所调度的任务的执行之前等待从当前全局电压/频率级别向下一全局电压/频率级别的全局电压/频率切换,
其中:
所述全局功率管理器被配置为执行全局电压/频率级别切换过程,所述全局电压/频率级别切换过程包括:
控制定时器以便促使所述定时器在已知的未来时间生成定时器事件;以及
每当所述定时器事件发生时,检测所述定时器事件并且响应于所述检测,促使从当前全局电压/频率级别向下一所调度的全局电压/频率级别的全局电压/频率切换;并且
所述任务执行控制器中的每个任务执行控制器被配置为通过以下操作来控制所述处理器中的该处理器是否将在使能针对所述处理器中的该处理器的所述接下来的所调度的任务的执行之前等待从所述当前全局电压/频率级别向所述下一全局电压/频率级别的全局电压/频率切换:
检测所述当前全局电压/频率级别高于所述下一所调度的全局电压/频率级别;以及
响应于检测到所述当前全局电压/频率级别高于所述下一所调度的全局电压/频率级别,促使所述处理器中的该处理器在使能所述处理器中的该处理器的所述接下来的所调度的任务的执行开始之前等待从所述当前全局电压/频率级别向所述下一全局电压/频率级别的所述全局电压/频率切换,否则使能所述处理器中的该处理器的所述接下来的所调度的任务的执行开始而无需等待从所述当前全局电压/频率级别向所述下一全局电压/频率级别的所述全局电压/频率切换。
8.根据权利要求7所述的装置,其中促使所述处理器中的该处理器在使能所述处理器中的该处理器的所述接下来的所调度的任务的执行开始之前等待从所述当前全局电压/频率级别向所述下一全局电压/频率级别的所述全局电压/频率切换包括:
促使所述处理器中的该处理器等待直到所述处理器中的该处理器检测到所述定时器事件的发生。
9.根据权利要求7所述的装置,其中由所述全局功率管理器执行的所述全局电压/频率级别切换过程包括:
检测所述处理器的所有执行过程在使能所述处理器中的该处理器的所述接下来的所调度的任务的执行开始之前正等待从所述当前全局电压/频率级别向所述下一全局电压/频率级别的所述全局电压/频率切换,并且响应于所述检测,促使从所述当前全局电压/频率级别向所述下一所调度的全局电压/频率级别的所述全局电压/频率切换。
10.根据权利要求9所述的装置,其中促使所述处理器中的该处理器在使能所述处理器中的该处理器的所述接下来的所调度的任务的执行开始之前等待从所述当前全局电压/频率级别向所述下一全局电压/频率级别的所述全局电压/频率切换包括:
通知所述全局功率管理器所述处理器中的该处理器在使能所述处理器中的该处理器的所述接下来的所调度的任务的执行开始之前正等待从所述当前全局电压/频率级别向所述下一全局电压/频率级别的所述全局电压/频率切换。
11.根据权利要求7所述的装置,其中所述处理器中的该处理器的所述接下来的所调度的任务中的每个接下来的所调度的任务仅在所述接下来的所调度的任务中的该接下来的所调度的任务的执行已经被使能时并且在所述接下来的所调度的任务中的该接下来的所调度的任务的所有特定于任务的依赖性已经被满足时开始。
12.根据权利要求11所述的装置,其中所述接下来的所调度的任务中的该接下来的所调度的任务的所述特定于任务的依赖性包括特定于任务的数据依赖性。
13.一种无线电收发器,包括:
多个处理器,被配置为在相同的全局电压/频率级别并发操作;以及
根据权利要求7至12中任一项所述的装置。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US14/250,819 US9354930B2 (en) | 2014-04-11 | 2014-04-11 | Scheduling of global voltage/frequency scaling switches among asynchronous dataflow dependent processors |
US14/250,819 | 2014-04-11 | ||
PCT/EP2015/057076 WO2015155072A1 (en) | 2014-04-11 | 2015-03-31 | Scheduling of global voltage/frequency scaling switches among asynchronous dataflow dependent processors |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106164816A CN106164816A (zh) | 2016-11-23 |
CN106164816B true CN106164816B (zh) | 2019-06-07 |
Family
ID=52829072
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201580019116.2A Active CN106164816B (zh) | 2014-04-11 | 2015-03-31 | 在处理器之间的全局电压/频率缩放切换的调度 |
Country Status (4)
Country | Link |
---|---|
US (1) | US9354930B2 (zh) |
EP (1) | EP3129876B1 (zh) |
CN (1) | CN106164816B (zh) |
WO (1) | WO2015155072A1 (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106598708B (zh) * | 2016-08-12 | 2020-06-09 | 中国航空工业集团公司西安飞行自动控制研究所 | 一种时间触发的嵌入式任务通讯装置与方法 |
US11195152B2 (en) * | 2019-10-21 | 2021-12-07 | International Business Machines Corporation | Calendar aware activity planner |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102456394A (zh) * | 2010-10-20 | 2012-05-16 | 三星电子株式会社 | 执行dram刷新操作的存储电路、系统和模块及其操作方法 |
CN102722234A (zh) * | 2011-03-24 | 2012-10-10 | 株式会社东芝 | 控制器及其方法 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7111179B1 (en) * | 2001-10-11 | 2006-09-19 | In-Hand Electronics, Inc. | Method and apparatus for optimizing performance and battery life of electronic devices based on system and application parameters |
US7721127B2 (en) * | 2006-03-28 | 2010-05-18 | Mips Technologies, Inc. | Multithreaded dynamic voltage-frequency scaling microprocessor |
US20090327656A1 (en) * | 2008-05-16 | 2009-12-31 | Dan Baum | Efficiency-based determination of operational characteristics |
US8566618B2 (en) | 2009-10-05 | 2013-10-22 | International Business Machines Corporation | Reliable setting of voltage and frequency in a microprocessor |
US9086883B2 (en) * | 2011-06-10 | 2015-07-21 | Qualcomm Incorporated | System and apparatus for consolidated dynamic frequency/voltage control |
US8966300B2 (en) | 2011-10-04 | 2015-02-24 | Ericsson Modems Sa | DFVS-enabled multiprocessor |
US20130166924A1 (en) | 2011-12-21 | 2013-06-27 | Jen-Chieh Yang | Method for performing scenario driven voltage scaling, and associated apparatus |
-
2014
- 2014-04-11 US US14/250,819 patent/US9354930B2/en active Active
-
2015
- 2015-03-31 WO PCT/EP2015/057076 patent/WO2015155072A1/en active Application Filing
- 2015-03-31 EP EP15716001.1A patent/EP3129876B1/en active Active
- 2015-03-31 CN CN201580019116.2A patent/CN106164816B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102456394A (zh) * | 2010-10-20 | 2012-05-16 | 三星电子株式会社 | 执行dram刷新操作的存储电路、系统和模块及其操作方法 |
CN102722234A (zh) * | 2011-03-24 | 2012-10-10 | 株式会社东芝 | 控制器及其方法 |
Non-Patent Citations (2)
Title |
---|
Throughput-constrained voltage and frequency scaling for real-time heterogeneous multiprocessors;Pengcheng huang,Moreira 等;《SAC "13: Proceedings of the 28th Annual ACM Symposium on Applied Computing》;20130322;全文 * |
异构系统功耗感知的并行循环调度方法;王桂彬 等;《软件学报》;20110930;第22卷(第9期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
WO2015155072A1 (en) | 2015-10-15 |
CN106164816A (zh) | 2016-11-23 |
EP3129876B1 (en) | 2018-05-09 |
US20150293788A1 (en) | 2015-10-15 |
EP3129876A1 (en) | 2017-02-15 |
US9354930B2 (en) | 2016-05-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8181047B2 (en) | Apparatus and method for controlling power management by comparing tick idle time data to power management state resume time data | |
US7389440B2 (en) | Method, system, and apparatus for improving multi-core processor performance | |
US6308279B1 (en) | Method and apparatus for power mode transition in a multi-thread processor | |
US8230249B2 (en) | Dynamic selection of server states for servers in a cluster of servers | |
Swaminathan et al. | Pruning-based, energy-optimal, deterministic I/O device scheduling for hard real-time systems | |
KR20100011891A (ko) | 그레이스 주기의 저 전력 검출을 위한 방법, 시스템 및 컴퓨터 판독 가능한 저장 매체 | |
TWI489266B (zh) | 指定應用程式執行緒的效能狀態之指令 | |
WO2006138687A2 (en) | Reducing computing system power through idle synchronization | |
JP2010044770A (ja) | モニタメモリ待機を用いたキューされたロック | |
CN105843362A (zh) | 用于异构多核心系统的动态核心选择 | |
JP2010286898A (ja) | マルチスレッド実行装置、マルチスレッド実行方法 | |
Cai et al. | Thread shuffling: Combining DVFS and thread migration to reduce energy consumptions for multi-core systems | |
Lee et al. | Reducing peak power consumption inmulti-core systems without violatingreal-time constraints | |
Imes et al. | Bard: A unified framework for managing soft timing and power constraints | |
CN103677990A (zh) | 虚拟机实时任务的调度方法、装置和虚拟机 | |
JP2011519452A (ja) | マルチプロセッサシステム用のエネルギ消費を管理するための方法 | |
CN106164816B (zh) | 在处理器之间的全局电压/频率缩放切换的调度 | |
Ranjbar et al. | Toward the design of fault-tolerance-aware and peak-power-aware multicore mixed-criticality systems | |
Niu et al. | Reliability-aware scheduling for reducing system-wide energy consumption for weakly hard real-time systems | |
JP2009070389A (ja) | 処理装置のためのコントローラ | |
Nelis et al. | Mora: An energy-aware slack reclamation scheme for scheduling sporadic real-time tasks upon multiprocessor platforms | |
JP2009048358A (ja) | 情報処理装置及びスケジューリング方法 | |
Baharvand et al. | ARMOR: Adaptive reliability management by on-the-fly redundancy in multicore embedded processors | |
Günzel et al. | HEART: H ybrid Memory and E nergy-A ware R eal-T ime Scheduling for Multi-Processor Systems | |
JP2010140319A (ja) | 半導体装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |