[发明专利]基于任务的执行阶段动态调整高速缓存分区大小的方法和设备无效
申请号: | 200780007357.0 | 申请日: | 2007-02-24 |
公开(公告)号: | CN101395586A | 公开(公告)日: | 2009-03-25 |
发明(设计)人: | 毕尤·托马斯;斯里拉姆·克里斯兰;米林德·马诺哈尔·库尔卡尼;萨拿斯·卡拉帕姆 | 申请(专利权)人: | NXP股份有限公司 |
主分类号: | G06F12/08 | 分类号: | G06F12/08;G06F12/12 |
代理公司: | 中科专利商标代理有限责任公司 | 代理人: | 朱进桂 |
地址: | 荷兰艾*** | 国省代码: | 荷兰;NL |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 基于 任务 执行 阶段 动态 调整 高速缓存 分区 大小 方法 设备 | ||
技术领域
本发明一般涉及包括高速缓存存储器的数据处理系统,更具体地,涉及在多处理器中针对应用任务对高速缓存存储器进行动态分区。
背景技术
高速缓存分区是多任务系统中众所周知的技术,其通过减小资源干扰来实现更加可预测的高速缓存性能。在包括多处理器的数据处理系统中,在多个进程或任务之间共享高速缓存存储器。高速缓存存储器被分为不同的部分以用于不同的应用任务。有利的是将高速缓存分为多个部分,其中每个部分被分配给各类进程,而不是各类进程共享整个高速缓存存储器。在将高速缓存存储器分为多个部分时,产生了如何确定不同应用任务的高速缓存分区的大小以及何时调整该高速缓存分区的大小的问题。
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]。应用任务的执行阶段被定义为在应用任务的执行中具有相似行为的间隔的集合,而应用任务的工作集合被定义为在特定执行阶段处应用任务的高速缓存分区需求。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于NXP股份有限公司,未经NXP股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/200780007357.0/2.html,转载请声明来源钻瓜专利网。
- 上一篇:自适应语义平台体系结构
- 下一篇:功率变换器系统