用于具有动态分区的共享高速缓存的方法和装置制造方法及图纸

技术编号:14880207 阅读:40 留言:0更新日期:2017-03-24 02:59
一些方面包括用于根据集合和通路将系统高速缓存动态地分区成组件高速缓存的计算设备、系统和方法。一种系统高速缓存控制器可以管理组件高速缓存,并管理针对这些组件高速缓存的访问。该系统高速缓存控制器可以接收系统高速缓存请求,对系统高速缓存中与这些请求的组件高速缓存标识符相关的组件高速缓存相对应的位置进行预留。预留该系统高速缓存中的位置,可以激活系统高速缓存中的该位置,以便由请求方客户端进行使用,并且还可以防止其它客户端使用系统高速缓存中的所预留的位置。对系统高速缓存中的这些位置的释放可以对系统高速缓存中的这些位置进行去激活,并允许其它客户端使用它们。预留系统高速缓存中的位置的客户端可以在其组件高速缓存内对其已经预留的位置的量进行改变。

【技术实现步骤摘要】
【国外来华专利技术】相关申请本申请与和本申请同时提交的、标题为“MethodandApparatusForFlexibleCachePartitioningBySetsAndWaysIntoComponentCaches”的美国专利申请No.14/333,981相关,故以引用方式将其全部内容明确地并入本文。
技术介绍
高速缓存分区以服务计算系统中的多个客户端进程(“客户端”)具有一些利益。分区大小可以进行变化,以匹配客户端的性能需求。客户端体验稳健的性能,因为其专用缓存中的数据不会由于其他客户端的访问而被驱逐。可以关闭空闲分区以减少功耗。但是,由于完成当前高速缓存分区的方式所造成的限制,这些益处不如它们本可以实现的那么大。当前高速缓存只能在高速缓存通路(way)上进行分区,这具有多种限制。高速缓存分区数量受到高速缓存通路数量的限制,并且向高速缓存分区添加关联性以减少高速缓存冲突减少高速缓存分区的可能的最大数量。根据该关联性来确定最小通路分区大小。例如,具有8路相连的8个通路的8MB高速缓存的最小分区是1MB。此外,更小的高速缓存分区可能由于碎片化而导致高速缓存空间的丢失。使用同一个示例,将512KB的数据存储在最小的1MB高速缓存分区中,将导致该高速缓存分区中512KB的空间未使用。根据关联性来确定最小通路分区电源崩溃粒度。在相同的示例中,可能发生电源崩溃的最小粒度是1MB高速缓存分区。崩溃粒度的大小影响功率节省/使用,特别是在共享系统高速缓存替代多个专用存储器的情况下,其中所述多个专用存储器可以独立地发生电源崩溃。在移动片上系统(SoC)计算系统中面临的另一个问题是子系统所产生的不同访问模式。例如,像视频和图形之类的多媒体子系统具有更长的访问时间,并受益于更长的高速缓存线,而来自于应用中央处理单元(CPU)的访问是更随机的,并对于时延是敏感的,并且因此受益于更小的高速缓存线和更高的关联性。并不是所有的潜在访问模式,都能利用依赖于通路高速缓存分区的当前高速缓存分区进行更好地工作。常规的高速缓存分区为所有应用和子系统提供单一大小的高速缓存。该高速缓存分区的大小可能使某些访问模式比其他模式获益更多。另一个示例是在图像处理引擎和显示引擎之间看到的生产者对消费者访问模式,其可以受益于先进先出(FIFO)替换策略。但是,保持这些引擎之间的转换数据的高速缓存可能使该应用程序使用低效的替换策略。
技术实现思路
各个方面的方法和装置提供用于对系统高速缓存进行动态分区的电路和方法,其可以包括:从客户端接收包括组件高速缓存标识符的系统高速缓存访问请求;从组件高速缓存配置表中,检索所述组件高速缓存配置表中与所述组件高速缓存标识符相关的集合移位特性和集合偏移特性;以及对系统高速缓存中,与由所述集合移位特性和所述集合偏移特性所指示的集合组内的组件高速缓存的通路组的至少一部分相关的位置进行激活。在一个方面,对系统高速缓存中,与由所述集合移位特性和所述集合偏移特征指示的集合组中的组件高速缓存的通路组的至少一部分相关的所述位置进行激活包括:对系统高速缓存中的所述位置进行预留。在一个方面,对系统高速缓存中的所述位置进行预留包括:针对系统高速缓存中的所述位置,在组件高速缓存预留表中设置预留指示符。一个方面方法还可以包括:更新所述预留指示符,以改变与所述通路组和所述集合组的更新部分相关的在系统高速缓存中预留的位置的数量。一个方面方法还可以包括:利用对所述组件高速缓存的所述通路组的活动的所述部分的指示来更新组件高速缓存活动通路表,其中,预留系统高速缓存中的所述位置包括:对组件高速缓存活动通路表的所述指示的所述通路进行预留。一个方面方法还可以包括:防止另一个客户端访问系统高速缓存中的所述位置。一个方面方法还可以包括:对系统高速缓存中的所述位置的至少一部分进行释放;对系统高速缓存中,与系统高速缓存中的所释放的位置相关的位置进行去激活。在一个方面,所述组件高速缓存标识符可以是第一组件高速缓存标识符,所述组件高速缓存可以是第一组件高速缓存,所述方法还可以包括:装载针对至少所述第一组件高速缓存标识符的奖励向量,所述奖励向量被配置为指示与所述第一组件高速缓存标识符相关联的所述第一组件高速缓存扩展到其的一个或多个通路;接收针对至少所述第一组件高速缓存标识符的预留向量,所述预留向量被配置为指示被预留用于所述第一组件高速缓存的一个或多个通路;确定所述预留向量的一个或多个通路是否被第二组件高速缓存预留;响应于确定所述第二组件高速缓存已预留所述预留向量的一个或多个通路,对所述第二组件高速缓存进行去激活,以使由所述第二组件高速缓存预留的所述一个或多个通路未被预留;确定使用所述第一组件高速缓存是否包括使用所述奖励向量的所述通路中的一个或多个通路;响应于确定使用所述第一组件高速缓存的所述请求包括对所述奖励向量的所述通路中的一个或多个通路的所述使用,确定所述奖励向量的一个或多个通路是否被所述第二组件高速缓存预留;响应于确定所述第二组件高速缓存已预留所述奖励向量的一个或多个通路,对所述第二组件高速缓存进行去激活,以使由所述第二组件高速缓存预留的所述一个或多个通路未被预留;以及为所述第一组件高速缓存预留一个或多个未被预留的通路。一个方面包括一种计算设备,该计算设备具有彼此之间通信连接的处理器、系统高速缓存和系统高速缓存控制器,其中,所述系统高速缓存控制器被配置为执行上面所描述的方面方法中的一个或多个的操作。一个方面包括一种其上存储有处理器可执行软件指令的非暂时性处理器可读介质,所述处理器可执行软件指令使处理器和系统高速缓存控制器执行上面所描述的方面方法中的一个或多个方面方法的操作一个方面包括一种计算设备,该计算设备具有用于执行上面所描述的方面方法中的一个或多个方面方法的功能的单元。附图说明被并入本文并且构成本说明书一部分的附图,描绘了本专利技术的示例性方面,并且连同上面给出的概括描述以及下面给出的详细描述一起来解释本专利技术的特征。图1是描绘适合于实现一个方面的计算设备的组件框图。图2是示出适合于实现一个方面的示例性多核处理器的组件框图。图3是示出根据一个方面,适合于根据集合和通路将高速缓存存储器分区成一些组件高速缓存的计算设备的组件框图。图4是根据一个方面,示出根据集合和通路来可变地分区以实现组件高速缓存的示例性高速缓存存储器的示意图。图5是根据一个方面,示出一种示例性组件高速缓存配置表的示意图。图6是根据一个方面,示出根据集合和通路被可变地分区成组件高速缓存的示例性系统高速缓存存储器的示意图。图7是根据一个方面,示出组件高速缓存的客户端访问的原理和处理流程图。图8是根据一个方面,示出用于访问组件高速缓存的地址转换示例的原理和处理流程图。图9是根据一个方面,示出使用物理地址来访问组件高速缓存的地址转换示例的原理和处理流程图。图10是根据一个方面,示出使用结合定制索引的物理地址来访问组件高速缓存的地址转换示例的原理和处理流程图。图11是适合于实现一个方面的示例性组件高速缓存激活/去激活控制命令的组件框图。图12是适合于实现一个方面的示例性组件高速缓存激活/去激活控制状态的组件框图。图13是根据一个方面,示出示例性组件高速缓存活动通路表的示意图。图14是根据一个方面,示出示例性组件高速缓存预本文档来自技高网
...
<a href="http://www.xjishu.com/zhuanli/55/201580038324.html" title="用于具有动态分区的共享高速缓存的方法和装置原文来自X技术">用于具有动态分区的共享高速缓存的方法和装置</a>

【技术保护点】
一种用于对系统高速缓存进行动态分区的方法,包括:从客户端接收系统高速缓存访问请求,所述系统高速缓存访问请求包括组件高速缓存标识符;从组件高速缓存配置表中检索所述组件高速缓存配置表中与所述组件高速缓存标识符相关的集合移位特性和集合偏移特性;以及对所述系统高速缓存中,与由所述集合移位特性和所述集合偏移特性所指示的集合组内的组件高速缓存的通路组的至少一部分相关的位置进行激活。

【技术特征摘要】
【国外来华专利技术】2014.07.17 US 14/334,0101.一种用于对系统高速缓存进行动态分区的方法,包括:从客户端接收系统高速缓存访问请求,所述系统高速缓存访问请求包括组件高速缓存标识符;从组件高速缓存配置表中检索所述组件高速缓存配置表中与所述组件高速缓存标识符相关的集合移位特性和集合偏移特性;以及对所述系统高速缓存中,与由所述集合移位特性和所述集合偏移特性所指示的集合组内的组件高速缓存的通路组的至少一部分相关的位置进行激活。2.根据权利要求1所述的方法,其中,对所述系统高速缓存中,与由所述集合移位特性和所述集合偏移特性所指示的所述集合组内的所述组件高速缓存的所述通路组的所述至少一部分相关的所述位置进行激活包括:对所述系统高速缓存中的所述位置进行预留。3.根据权利要求2所述的方法,其中,对所述系统高速缓存中的所述位置进行预留包括:针对所述系统高速缓存中的所述位置,在组件高速缓存预留表中设置预留指示符。4.根据权利要求3所述的方法,还包括:更新所述预留指示符,以改变与所述通路组和所述集合组的更新的部分相关的在所述系统高速缓存中预留的位置的数量。5.根据权利要求2所述的方法,还包括:利用对所述组件高速缓存的所述通路组中的活动的所述部分的指示来更新组件高速缓存活动通路表,其中,预留所述系统高速缓存中的所述位置包括:对组件高速缓存活动通路表的所述指示的所述通路进行预留。6.根据权利要求1所述的方法,还包括:防止另一个客户端访问所述系统高速缓存中的所述位置。7.根据权利要求1所述的方法,还包括:对所述系统高速缓存中的所述位置的至少一部分进行释放;以及对所述系统高速缓存中,与所述系统高速缓存中的所释放的位置相关的位置进行去激活。8.根据权利要求1所述的方法,其中,所述组件高速缓存标识符是第一组件高速缓存标识符,并且所述组件高速缓存是第一组件高速缓存,还包括:装载针对至少所述第一组件高速缓存标识符的奖励向量,所述奖励向量被配置为指示与所述第一组件高速缓存标识符相关联的所述第一组件高速缓存扩展到其的一个或多个通路;接收针对至少所述第一组件高速缓存标识符的预留向量,所述预留向量被配置为指示被预留用于所述第一组件高速缓存的一个或多个通路;确定所述预留向量的一个或多个通路是否被第二组件高速缓存预留;响应于确定所述第二组件高速缓存已预留所述预留向量的一个或多个通路,对所述第二组件高速缓存进行去激活,以使由所述第二组件高速缓存预留的所述一个或多个通路未被预留;确定使用所述第一组件高速缓存是否包括使用所述奖励向量的所述通路中的一个或多个通路;响应于确定使用所述第一组件高速缓存的所述请求包括对所述奖励向量的所述通路中的一个或多个通路的所述使用,确定所述奖励向量的一个或多个通路是否被所述第二组件高速缓存预留;响应于确定所述第二组件高速缓存已预留所述奖励向量的一个或多个通路,对所述第二组件高速缓存进行去激活,以使由所述第二组件高速缓存预留的所述一个或多个通路未被预留;以及为所述第一组件高速缓存预留一个或多个未被预留的通路。9.一种计算设备,包括:处理器;系统高速缓存,其连接到所述处理器,所述系统高速缓存被配置为提供用于存储和检索数据的快速访问;系统高速缓存控制器,其通信地连接到所述处理器和所述系统高速缓存,并且被配置为执行包括以下各项的操作:从客户端接收系统高速缓存访问请求,所述系统高速缓存访问请求包括组件高速缓存标识符;从组件高速缓存配置表中检索所述组件高速缓存配置表中与所述组件高速缓存标识符相关的集合移位特性和集合偏移特性;以及对所述系统高速缓存中,与由所述集合移位特性和所述集合偏移特性所指示的集合组内的组件高速缓存的通路组的至少一部分相关的位置进行激活。10.根据权利要求9所述的计算设备,其中,所述系统高速缓存控制器被配置为执行操作,以使得对所述系统高速缓存中,与由所述集合移位特性和所述集合偏移特性所指示的所述集合组内的所述组件高速缓存的所述通路组的所述至少一部分相关的所述位置进行激活包括:对所述系统高速缓存中的所述位置进行预留。11.根据权利要求10所述的计算设备,其中,所述系统高速缓存控制器被配置为执行操作,以使得对所述系统高速缓存中的所述位置进行预留包括:针对于所述系统高速缓存中的所述位置,在组件高速缓存预留表中设置预留指示符。12.根据权利要求11所述的计算设备,其中,所述系统高速缓存控制器被配置为执行还包括以下各项的操作:更新所述预留指示符,以改变与所述通路组和所述集合组的更新的部分相关的在所述系统高速缓存中预留的位置的数量。13.根据权利要求10所述的计算设备,其中,所述系统高速缓存控制器被配置为执行还包括以下各项的操作:利用对所述组件高速缓存的所述通路组中的活动的所述部分的指示来更新组件高速缓存活动通路表,其中,预留所述系统高速缓存中的所述位置包括:对组件高速缓存活动通路表的所述指示的所述通路进行预留。14.根据权利要求9所述的计算设备,其中,所述系统高速缓存控制器被配置为执行还包括以下各项的操作:防止另一个客户端访问所述系统高速缓存中的所述位置。15.根据权利要求9所述的计算设备,其中,所述系统高速缓存控制器被配置为执行还包括以下各项的操作:对所述系统高速缓存中的所述位置的至少一部分进行释放;以及对所述系统高速缓存中,与所述系统高速缓存中的所释放的位置相关的位置进行去激活。16.根据权利要求9所述的计算设备,其中,所述组件高速缓存标识符是第一组件高速缓存标识符,并且所述组件高速缓存是第一组件高速缓存,以及其中,所述系统高速缓存控制器被配置为执行还包括以下各项的操作:装载针对至少所述第一组件高速缓存标识符的奖励向量,所述奖励向量被配置为指示与所述第一组件高速缓存标识符相关联的所述第一组件高速缓存扩展到其的一个或多个通路;接收针对至少所述第一组件高速缓存标识符的预留向量,所述预留向量被配置为指示被预留用于所述第一组件高速缓存的一个或多个通路;确定所述预留向量的一个或多个通路是否被第二组件高速缓存预留;响应于确定所述第二组件高速缓存已预留所述预留向量的一个或多个通路,对所述第二组件高速缓存进行去激活,以使由所述第二组件高速缓存预留的所述一个或多个通路未被预留;确定使用所述第一组件高速缓存是否包括使用所述奖励向量的所述通路中的一个或多个通路;响应于确定使用所述第一组件高速缓存的所述请求包括对所述奖励向量的所述通路中的一个或多个通路的所述使用,确定所述奖励向量的一个或多个通路是否被所述第二组件高速缓存预留;响应于确定所述第二组件高速缓存已预留所述奖励向量的一个或多个通路,对所述第二组件高速缓存进行去激活,以使由所述第二组件高速缓存预留的所述一个或多个通路未被预留;以及为所述第一组件高速缓存预留一个或多个未被预留的通路。17.一种具有存储在其上的处理器可执行软件指令的非暂时性处理器可读介质,所述处理器可执行软件指令用于使处理器和系统高速缓存控制器执行包括以下各项的操作:从客户端接收系统高速缓存访问请求,所述系统高速缓存访问请求包括组件高速缓存标识符;从组件...

【专利技术属性】
技术研发人员:S·帕拉查拉M·卡恩A·阿尔蒂耶里K·邦霍尔V·沙马蒂Y·李R·三库拉特里G·帕奇拉腊斯P·K·蒂鲁纳加里A·E·特纳JH·吴
申请(专利权)人:高通股份有限公司
类型:发明
国别省市:美国;US

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

1