当前位置: 首页 > 专利查询>英特尔公司专利>正文

用于缩减使用同时多线程处理器的带缓冲的应用的能耗的方法技术

技术编号:2843999 阅读:224 留言:0更新日期:2012-04-11 18:40
计算机系统中的资源管理可以缩减系统的能耗。这可以通过监控关于软件应用的应用状态和/或监控多线程化系统中的线程状态,并且随后在系统中做出资源调整来完成。应用状态的监控可以通过监控为软件应用所使用的暂时数据建立的数据缓冲区来进行。依赖于缓冲等级,资源可以被增加或减少。资源的调整可以以改变系统中的处理器的电压和频率的形式和其他方式来进行。减少资源可以帮助缩减能耗。资源的管理还可以通过监控与系统中的一个或多个软件应用相关联的线程并且控制线程的分派来进行。就绪线程可以被延迟以增加多个线程并发运行的机会。多个线程的并发运行可以帮助增加系统空闲时间的机会,并且因此能耗可以被减少。

【技术实现步骤摘要】
【国外来华专利技术】
本专利技术涉及计算机系统领域,更具体地,涉及用于缩减计算机系统的功耗的方法和装置。背景多线程技术(multithreading)是将指令分割成多个执行流(或线程),以便它们可以被并行地处理的技术。附图说明图1A是图示可以被用来支持多线程技术的现有技术系统的实施例的框图。系统100包括两个物理处理器105和110,并且可以被用来执行多线程软件应用。物理处理器105和110中的每一个可以包括类似的资源(例如体系结构状态、执行资源、缓存等)集合。所述两个物理处理器可以共享公共系统总线115和公共主存储器120。典型地,为了增加并行性,系统100可以采用调度技术,每当线程准备被分派时,所述调度技术分派该线程。附图简要说明下面的附图仅仅为了图示说明的目的公开本专利技术的各个实施方案,并且不想要对本专利技术的范围进行限制。图1A是图示可以被用来支持多线程技术的现有技术系统的实施例的框图。图1B是根据一个实施方案图示具有支持超线程技术的单个处理器的系统的实施例的框图。图1C是根据一个实施方案图示使用数据缓冲区的应用的实施例的框图。图2是根据一个实施方案图示多线程化系统(multithreading system)中的不同状态的框图。图3A和3B根据一个实施方案图示软件应用可以使用的缓冲区的两个实施例。图4A和4B根据一个实施方案图示在多线程化系统中被分派的线程的实施例。图5是根据一个实施方案图示在多线程化系统中使用延迟分派方案所分派的线程的图6是根据一个实施方案图示视频解码过程的实施例的图。详细说明对于一个实施方案,公开了用于管理系统中的资源的方法。所述方法包括监控与软件应用相关联的缓冲区和监控系统中的线程。基于当前缓冲等级(level)和线程状态中的至少一个,可用资源(例如,电压、频率、体系结构参数等)可以被增加或减少。在下面的描述中,为了解释的目的,阐述了很多具体细节以提供对本专利技术的完整理解。然而,本领域技术人员将会清楚,无需这些具体细节可以实践本专利技术。此外,公知结构、过程和设备以框图的形式被示出或者以概括的方式被提及,以提供没有过多细节的解释。超线程技术是一项来自加利福尼亚州圣塔克莱拉市的Intel公司的技术,所述技术使得使用单个物理处理器能够并行地执行线程。超线程技术是同时多线程技术(SimultaneousMulti-threading Technology,SMT)的一种形式,其中软件应用的多个线程可以在一个物理处理器上同时被执行。这可以通过复制体系结构状态来达到,其中每个体系结构状态共享处理器执行资源的一个集合。图1B是图示具有支持超线程技术的单个处理器的系统的实施例的框图。系统101包括具有两个体系结构状态185和190的物理处理器150,所述两个体系结构状态185和190使得物理处理器150被感知为两个逻辑处理器155、160。所述两个逻辑处理器155、160共享相同的执行资源165、缓存170、系统总线175和主存储器180。依赖于逻辑处理器155、160中的哪一个可用,物理处理器150可以以交织的方式调度多个线程。超线程技术导致处理器执行资源165和总吞吐量的增加的利用率。超线程技术使得执行单元更加繁忙,并且因此与不支持超线程技术的处理器相比,执行单元可能消耗更多的功率。对于现代系统,尤其是电池操作的移动系统,功耗正成为重要的考虑因素。在这些电池操作的系统中,对于系统的整体性能评估,用于给定的固定应用的平均功耗可能是所要考虑的一个至关重要的参数。已经提出用于缩减功耗的不同技术,包括例如动态电压管理(Dynamic Voltage Management,DVM)。使用DVM,通过变化所应用的频率和/或电压,可以配置处理器的性能和功耗。应用约束许多软件应用受数据传送要求的约束。图1C是根据一个实施方案图示使用数据缓冲区的应用的实施例的框图。如图1C所图示,第一应用182可以产生数据并且将其储存在第一数据缓冲区184中。第一数据缓冲区184中的数据可以随后被用作到第二应用192的输入。第二应用192可以随后产生要被储存在第二数据缓冲区194中的数据。当第一应用182和第二应用192不被任何数据传送要求约束时,任意地变化将数据储存在第一数据缓冲区184或第二数据缓冲区194中的频率以及从这些缓冲区中取得数据的频率可以对第一应用182和第二应用192没什么影响。然而,当第一应用182和第二应用192被某些形式的数据传送要求约束时,不考虑该因素可能会妨碍用户感受和/或软件应用可靠性。例如,对于流式多媒体或其他实时应用,在不当时刻的低频率处理器可以导致应用失败,导致跳帧或产生质量降低的图像。对于一个实施方案,通过监控利用一个或更多个缓冲区的一个或更多个软件应用,可以进行系统中资源的管理。软件应用可以包括一个或更多个线程。线程可以被多次分派。在系统中可以有两个或更多个并发运行的线程。这些线程可以来自同一软件应用或者来自不同软件应用。软件应用可以包括实时软件应用。系统可以包括支持多线程技术的一个或更多个处理器(例如支持超线程技术的处理器)。所述系统可以被称为多线程化系统。状态图2是根据一个实施方案图示可以被用来管理多线程化系统中的资源的不同状态的一个实施例的框图。系统200可以包括应用状态205、第一线程状态206、第一机器状态207和资源管理器210。依赖于应用状态205、第一线程状态206和第一机器状态207,资源管理器210可以例如将系统200从第一机器状态207转换到第二机器状态220,和/或将系统中的线程从第一线程状态206转换到第二线程状态215。机器状态第一机器状态207和第二机器状态220是系统200在任何特定时刻可以处于的状态的实施例。对于一个实施方案,机器状态可以与系统200中的一个或更多个硬件组件的配置或性能等级相关联。机器状态可以与应用到处理器的频率和/或电压的等级、乱序(out-of-order)项的数量、硬件缓冲区、存储器或缓存的大小、算术逻辑单元(ArthmeticLogic Unit,ALU)、寄存器等相关。例如,当应用到处理器的频率/电压被降低时,系统200可以处于低功耗状态(例如第一机器状态207)。类似地,当应用到处理器的频率/电压被增加时,系统200可以处于正常功耗状态(例如第二机器状态220)。可以存在许多不同的机器状态。资源管理器资源管理器210可以负责确定系统200中当前可用的资源的等级。资源管理器210可以增加或减少可用资源,并且因此可以将系统200从第一机器状态207转换到第二机器状态220。例如,资源管理器210可以进行操作以动态地调整应用到系统200中的处理器的频率和/或电压。资源管理器210还可以改变软件应用所使用的缓冲区的大小。一般情况下,资源管理器210可以配置系统200中的硬件电路的至少一部分。硬件电路可以包括例如处理器、存储器、缓存、芯片组等硬件组件。配置硬件电路的操作可以包括对一个或更多个硬件组件进行断电或通电。这可以使得资源管理器210能够间接地影响软件应用的执行。例如,增加可用资源的操作可以导致软件应用以较高的速率执行,并且减少可用资源的操作可以导致软件应用以较低的速率执行。通过将线程从第一线程状态206转换到第二线程状态215本文档来自技高网...

【技术保护点】
一种方法,包括:监控在系统中运行的应用的状态,其中所述监控所述应用的所述状态的操作包括监控与所述应用相关联的一个或更多个缓冲区;控制所述系统中的一个或更多个线程的分派,并且其中所述系统中的至少一个线程与所述应用相关联;以及   至少基于所述应用的所述状态和所述系统中的所述一个或更多个线程的所述状态,管理所述系统中的资源。

【技术特征摘要】
【国外来华专利技术】US 2004-2-6 10/774,1781.一种方法,包括监控在系统中运行的应用的状态,其中所述监控所述应用的所述状态的操作包括监控与所述应用相关联的一个或更多个缓冲区;控制所述系统中的一个或更多个线程的分派,并且其中所述系统中的至少一个线程与所述应用相关联;以及至少基于所述应用的所述状态和所述系统中的所述一个或更多个线程的所述状态,管理所述系统中的资源。2.如权利要求1所述的方法,其中线程包括一个或更多个活动,并且其中所述控制所述系统中的所述一个或更多个线程的所述分派的操作包括评价所述一个或更多个活动的执行就绪程度。3.如权利要求2所述的方法,其中所述控制所述系统中的所述一个或更多个线程的所述分派的操作包括使准备被分派的活动延迟被分派。4.如权利要求3所述的方法,其中,使第一活动延迟被分派,以等待第二活动就绪,从而所述第一和第二活动两者可以一起被分派,并且其中所述第一和第二活动来自一个或更多个应用。5.如权利要求1所述的方法,还包括监控所述系统的机器状态,其中所述监控所述机器状态的操作包括确定所述系统中可用的资源,以及基于所述应用的所述状态和所述系统中的所述一个或更多个线程的所述状态,增加或减少所述系统中可用的所述资源。6.如权利要求5所述的方法,其中所述资源包括可配置硬件组件。7.如权利要求6所述的方法,其中所述可配置硬件组件包括所述系统中的一个或更多个处理器、硬件缓冲区、存储器、缓存、算术逻辑单元(ALU)和寄存器。8.如权利要求7所述的方法,其中所述增加或减少所述系统中可用的所述资源的操作包括配置应用到所述系统中的至少所述一个或更多个处理器的频率。9.如权利要求8所述的方法,其中所述增加或减少所述系统中可用的所述资源的操作包括配置应用到所述系统中的至少所述一个或更多个处理器的电压。10.如权利要求7所述的方法,其中所述增加或减少所述系统中的所述资源的操作包括对所述系统中的电路的至少部分通电或者断电。11.如权利要求1所述的方法,其中所述监控与所述应用相关联的所述一个或更多个缓冲区的操作包括监控所述一个或更多个缓冲区的缓冲区填充等级。12.如权利要求11所述的方法,其中所述监控所述缓冲区填充等级的操作包括,对于与所述应用相关联的每个缓冲区,将缓冲等级与预定的缓冲区填充等级比较,其中所述预定的缓冲区填充等级包括高等级标记和低等级标记。13.如权利要求12所述的方法,其中所述比较操作确定缓冲区上溢和缓冲区下溢状况。14.一种包括可执行指令的计算机可读介质,当所述可执行指令在处理系统中被执行时,导致所述处理系统进行方法,所述方法包括监控在系统中运行的应用的状态,其中所述监控所述应用的所述状态的操作包括监控与所述应用相关联的一个或更多个缓冲区的缓冲区填充等级;控制所述系统中的一个或更多个线程的分派,并且其中所述系统中的至少一个线程与所述应用相关联;以及至少基于所述应用的所述状态和所述系统中的所述一个或更多个线程的所述状态,管理所述系统中的资源。15.如权利要求14所述的计算机可读介质,其中所述控制所述系统中的所述一个或更多个线程的所述分派的操作包括使准备被分派的线程延迟被分派。16.如权利要求14所述的计算机可读介质,还包括监控所述系统的机器状态,其中所述监控所述机器状态的操作包括确定所述系统中可用的资源,以及基于所述应用的所述状态和所述系统中的所述一个或更多个线程的所述状态,增加或减少所述系统中可用的所述资源。17.如权利要求16所述的计算机可读介质,其中所述资源包括可配置硬件组件。18.如权利要求16所述的计算机可读介质,其中所述增加或减少所述系统中可用的所述资源的操作包括配置应用到所述系统中的至少所述一个或更多个处理器的频率和/或电压。19.如权利要求14所述的计算机可读介质,其中所述监控所述缓冲区填充等级的操作包括,对于与所述应用相关联的每个缓冲区,将缓冲等级与预定的缓冲区填充等级比较,其中所述预定的缓冲区填充等级包括高等级标记和低等级标记。20.一种方法,包括通过监控在系统中运行的应用所使用的一个或更多个缓冲区的缓冲区填充等级,并且通过协调所述系统中的线程的分派,来管理所述系统中的资源。21.如权利要求20所述的方法,其中所述控制所述一个或更多个缓冲区的所述缓冲区填充等级的操作包括监控所述一个或更多个缓冲区中每一个的缓冲等级来确定缓冲区上溢或下溢状况。22.如权利要求20所述的方法,其中所述协调所述系统中的所述线程的所述分派的操作被进行以增加线程执行中的重叠。23.如权利要求22所述的方法,其中增加所述线程执行中的所述重叠的操作包括将线程从就绪状态改变到排队状态。24.如权利要求23所述的方法,其中所述线程保持在所述排队状态,直到存在另一个线程处于所述就绪状态,从而两个线程可以一起被分派。25.如权利要求20所述的方法,其中所述协调所述系统中的所述线程的分派的操作包括确定线程依赖性,并且其中当在所述应用的当前线程和下一线程之间存在依赖性,并且全部所述缓冲区的所述缓冲区填充等级指示潜在的上溢状况时,所述系统中的所述资源被增加。26.如权利要求20所述的方法,其中当全部所述缓冲区的所述缓冲区填充等级到达临界阶段时,所述系统中的所述资源被调整。27.一种包括可执行指令的计算机可读介质,当所述可执行指令在处理系统中被执行时,导致所述处理系统进行方法,所述方法包括通过监控在系统中运行的应用所使用的一个或更多个缓冲区的缓冲区填充等级,并且...

【专利技术属性】
技术研发人员:M杨Yk陈
申请(专利权)人:英特尔公司
类型:发明
国别省市:US[美国]

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1