基于任务的执行阶段动态调整高速缓存分区大小的方法和设备技术

技术编号:2917088 阅读:292 留言:0更新日期:2012-04-11 18:40
本发明专利技术提出了用于在多处理器中针对应用任务的高速缓存动态分区的方法和系统。提供了基于应用任务的执行阶段来动态调整高速缓存分区大小的方法。以表格形式来标识和更新应用任务的执行阶段。在执行任务的特定情况期间调整高速缓存分区的大小,使得在任何给定的时间点,为任务分配必要且足量的高速缓存空间。该高速缓存分区大小是根据任务执行期间的任务的工作集合需求来确定的,动态或静态地监控所述任务的工作集合需求。根据任务的执行阶段来动态调整高速缓存分区的大小,以避免不必要地保留整个高速缓存,因此实现了高速缓存的有效利用。

【技术实现步骤摘要】
【国外来华专利技术】
本专利技术一般涉及包括高速缓存存储器的数据处理系统,更具体地,涉及在多处理器中针对应用任务对高速缓存存储器进行动态分区。
技术介绍
高速缓存分区是多任务系统中众所周知的技术,其通过减小资源干扰来实现更加可预测的高速缓存性能。在包括多处理器的数据处理系统中,在多个进程或任务之间共享高速缓存存储器。高速缓存存储器被分为不同的部分以用于不同的应用任务。有利的是将高速缓存分为多个部分,其中每个部分被分配给各类进程,而不是各类进程共享整个高速缓存存储器。在将高速缓存存储器分为多个部分时,产生了如何确定不同应用任务的高速缓存分区的大小以及何时调整该高速缓存分区的大小的问题。Henk Muller等的美国专利申请2002/0002657 A1公开了一种对系统中的高速缓存存储器进行操作的方法,在该系统中,处理器能够执行多个进程。这样的技术将高速缓存分为许多小分区,而不是使用一个单片数据高速缓存,在单片数据高速缓存中,对不同数据对象的访问可能彼此干扰。在这种情况下,典型地,编译器知道高速缓存的架构并为任务分配高速缓存分区。这样的技术在任务的整个执行持续时间内为任务保留了的所分的高速缓存部分。因此,静态的分区技术通常导致对高速缓存的次优使用或对高速缓存分区的保留不足。由Edward Suh等在“Analytical Cache Models with applications tocache partitioning”中提出的动态分区技术试图通过动态调整分区大小来避免上述静态分区的缺点。这样的技术没有考虑如各个任务的分阶段执行之类的程序特性。例如,多媒体应用的执行行为通常属于重复行为(阶段),该重复行为(阶段)可以具有不同的高速缓存使用特性。-->可以通过在程序阶段边界(phase boundary)处确定分区大小来实现有效的高速缓存使用。Timothy等描述了可以精确地识别和预测程序行为的阶段[参考文献2:“Discovering and exploiting program phase”,Timothy Sherwood etal]。这些阶段中的程序(任务)行为具有不同的资源使用特性并可以使用性能度量来量化。这种度量的一个示例是[参考文献2]中描述的基本块矢量(basic block vector)[BBV]。当前的高速缓存分区技术为应用任务在其整个执行持续时间内保留了高速缓存存储器的分区部分。但是,媒体处理任务具有彼此不同的执行阶段,对高速缓存的需求在这些阶段的每一个中发生变化。在多任务实时系统中,由于高优先级的应用任务的到来,会切换应用任务。由于中断而切换应用任务也是常见的。这样的任务切换可以在当前执行的任务的不同执行阶段发生。当前的高速缓存分区技术不能解决这个高速缓存的变化需求的问题。因此,存在这样一种未被满足的需要,即根据执行阶段来动态地调整多处理器中针对每个任务分配的高速缓存分区的大小,使得在任何给定的时间,只分配最少量的高速缓存空间。对这个问题的解决方案将确保对于即将到来的任务(切换进来的中断任务或高优先级任务)有足够的(或更优的)高速缓存空间可用。
技术实现思路
本专利技术提出了一种多处理器中针对每个应用任务动态高速缓存分区的方法和系统。提供了基于应用任务的执行阶段来动态地调整高速缓存分区大小的方法。根据当前任务的执行阶段来动态地调整高速缓存分区的大小,从而避免对整个高速缓存的不必要的保留,因此实现了高速缓存的有效利用。在多任务处理共享高速缓存/存储器的多处理器中,通常认为分区是一种实现存储器子系统的可预测性能的机制。在文献中已有多种分区方案,如路线分区(Way Partitioning)(列高速缓存(ColumnCaching)、集合分区(Set Partitioning)等。流应用采用具有不同阶段-->的执行模式,所述不同阶段具有不同的持续时间。本专利技术的目的是利用关于多媒体应用任务的不同执行阶段的信息,从而基于在执行阶段期间的需求来自调整分区大小。可以以许多方式来识别应用任务(程序)的执行阶段:一个示例是通过监控工作集合的改变以及其他方法[参考文献2]。应用任务的执行阶段被定义为在应用任务的执行中具有相似行为的间隔的集合,而应用任务的工作集合被定义为在特定执行阶段处应用任务的高速缓存分区需求。本专利技术的一个方面提供了基于应用任务的执行阶段来动态调整高速缓存分区大小的方法。以表格形式来标识和更新应用任务的执行阶段。在执行任务的特定情况期间调整高速缓存分区的大小,使得在任何给定的时间点,为任务分配必要且足量的高速缓存空间。该高速缓存分区大小是根据任务执行期间任务的工作集合需求来确定的,动态或静态地监控所述任务的工作集合需求。本专利技术的另一方面提供了一种用于在多处理器中针对应用任务动态调整高速缓存分区大小的计算机系统。所述系统包括任务阶段监控器,用于监控应用任务的工作集合的变化,可以动态地监控工作集合的变化或可以静态地收集信息并将其存储在所述任务阶段监控器中。在任务阶段表中存储任务的阶段信息。所述任务阶段表包含阶段以及在切换任务时分配的高速缓存分区(这是在相应阶段处应用任务的工作集合)。所述系统也包括高速缓存分配控制器,用于在新的应用任务中断当前执行的任务时分配最大高速缓存大小。在新的应用任务中断当前执行的任务时,所述高速缓存分配控制器查看新的应用任务的工作集合需求,并通过为所述新任务分配最大可能的高速缓存大小来对所述高速缓存进行分区。根据所述新应用任务的阶段来进行高速缓存存储器的分配。本专利技术的一个目的是设计一种用于动态地管理正在计算机系统上执行的多个进程之间的高速缓存分区的方法和装置。本专利技术的另一个目的是通过避免在应用任务执行的整个持续时间期间为正在执行的应用任务不必要地保留高速缓存分区,来提高高速-->缓存的利用率。本专利技术的另一个目的是增大将中断任务的工作集合的更多部分映射到高速缓存上的概率。因此,当较高优先级任务或中断发生时,将有更多高速缓存可用于分配给中断任务。附图说明本专利技术的上述概括不是旨在描述本专利技术的每个公开实施例。以下的附图和详细描述提供了本专利技术的其他方面。图1示出了在多处理器中针对应用任务动态调整高速缓存分区大小的方法的实施例。图2是示出了应用任务的工作集合变化的图示。图3是示出了针对应用任务动态调整高速缓存分区大小的系统实施例的架构的框图。图4示出了用于存储应用任务的信息的任务阶段表。图5是示出了两个应用任务(T1和T2)的高速缓存需求的示例的简单图示。图6示出了当新的应用任务T3中断当前执行的应用任务(T1和T2)时图5所示示例的高速缓存分区情况。具体实施方式以下结合附图,详细描述本专利技术的上述和其他特征、方面和优点。附图包括6幅图。图1示意了在多处理器中针对应用任务动态调整高速缓存分区大小的方法的实施例。通过使用应用任务的基本块矢量(BBV)度量或工作集合,标识每个应用任务的执行阶段101。以表格的形式来存储应用任务的阶段信息和工作集合102。接着,根据应用任务的执行阶段,利用该阶段信息来动态配置高速缓存分区。根据所提出的专利技术,在应用任务执行的特定情况期间调整高速缓存分区的大小,使得在任何给定的时间点,为应用任务分配必要且足量的高速缓存空间。该高速缓存分区大小是根据任务执行期间的任本文档来自技高网
...

【技术保护点】
一种针对多个应用任务动态地调整多处理器中的高速缓存分区的大小的方法,其中,所述多处理器能够执行所述多个应用任务,所述多处理器包括主存储器和高速缓存存储器,所述高速缓存存储器包括高速缓存分区的集合,所述方法包括以下步骤: 标识和监控所述多个应用任务的执行阶段; 维护和更新关于当前应用任务的执行阶段和工作集合的信息;以及 根据所述当前应用任务的执行阶段,动态地配置所述高速缓存分区,从而避免在任务执行的整个持续时间上为执行任务冗余地保留高速缓存分区。

【技术特征摘要】
【国外来华专利技术】US 2006-3-2 60/779,2711.一种针对多个应用任务动态地调整多处理器中的高速缓存分区的大小的方法,其中,所述多处理器能够执行所述多个应用任务,所述多处理器包括主存储器和高速缓存存储器,所述高速缓存存储器包括高速缓存分区的集合,所述方法包括以下步骤:标识和监控所述多个应用任务的执行阶段;维护和更新关于当前应用任务的执行阶段和工作集合的信息;以及根据所述当前应用任务的执行阶段,动态地配置所述高速缓存分区,从而避免在任务执行的整个持续时间上为执行任务冗余地保留高速缓存分区。2.如权利要求1所述的方法,其中,所述应用任务包括指令序列。3.如权利要求1所述的方法,其中,所述应用任务的执行阶段包括在所述应用任务执行中的具有相似行为的间隔的集合。4.如权利要求1所述的方法,其中,所述应用任务的工作集合包括在特定执行阶段处所述应用任务的高速缓存分区需求。5.如权利要求1所述的方法,其中,静态地进行对所述执行任务的执行阶段的监控,以及根据执行期间所述应用任务的工作集合需求来确定高速缓存分区大小。6.如权利要求1所述的方法,其中,动态地进行对所述执行任务的执行阶段的监控,以及根据执行期间所述应用任务的工作集合需求来确定高速缓存分区大小。7.如权利要求1所述的方法,其中,当出现较高优先级任务时,有足够的...

【专利技术属性】
技术研发人员:毕尤托马斯斯里拉姆克里斯兰米林德马诺哈尔库尔卡尼萨拿斯卡拉帕姆
申请(专利权)人:NXP股份有限公司
类型:发明
国别省市:NL[荷兰]

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

1