动态缓存分区设备和方法技术

技术编号:13069016 阅读:50 留言:0更新日期:2016-03-24 04:29
本发明专利技术涉及动态缓存分区设备和方法,本发明专利技术能够被使用在具有多个核心的多核系统中,本发明专利技术的设备包括至少一个多核处理器和至少一个由多个处理核心共享的共享缓存,所述共享缓存包括多个缓存线并被划分成多个子缓存,该多个子缓存包括至少一个用于各单个处理核心的私有缓存和至少一个被所有所述处理核心共享的公共的子缓存;装置,用于为所述多个处理核心的各个处理核心监测共享缓存命中信息;以及装置,用于确定所述缓存线是否应当被分配给公共子缓存还是分配给与所述多个处理核心之一相关联的私有子缓存。本发明专利技术的设备和方法具有多个优点,例如提高数据共享性能,简化多核系统中的数据一致性和更有效地利用缓存。

【技术实现步骤摘要】

本专利技术总体涉及集成电路技术。更具体地,本专利技术涉及处理器中的缓存分区和控制。
技术介绍
存储器缓存系统被计算机的处理器所广泛使用以减少存储器存取时间,从而提高计算机的速度和性能。总的来说,存储器缓存是一种更小、更快的存储器,其用来存储来自主存储器的临时的、可能很快会被处理器使用的数据拷贝。当处理器需要从主存储器中的某一个位置读取数据或者将数据写入主存储器中的某一个位置时,该处理器首先检查该数据的拷贝是否在缓存中。如果该数据在该缓存中(缓存命中),则该数据能够被以比从主存储器中读取速度快得多的速度从该缓存中读取,或者能够以快得多的速度写入该缓存存储器。与此同时,随着集成电路技术的发展,更多的电路能够被实施在单个集成电路芯片上,从而使得集成电路具备更多的功能。例如,包括具有多个核心的处理器的集成电路已经成为现在的标准配置。许多处理器还使用多级缓存,即,更小、更快的缓存(一级缓存(L1缓存))之后具有较大、稍慢的“高级”的缓存(例如,二级缓存(L2缓存)、三级缓存(L3缓存)等等)。一般地,对于具有多个核心的处理器,各个核心具有其私有的一级缓存,并且共享更高级别的缓存。图1示意性地显示了一个缓存层级图,其中具有多个核心,并且每个核心具有私有的L1缓存,L2缓存则在多个核心之间共享。L1缓存和L2缓存都位于芯片上。
技术实现思路
随着多核心处理器的发展,同时共享共享缓存的核心的数量也在增加,这会导致被共享的缓存内的进程间的冲突的未命中的数量的增加,从而降低整个系统的性能。例如,图1所示的架构在例如少于8个核心时是最有效率的。然而,随着核心数量的增加,设计被所有核心共享的大容量的L2缓存是非常困难或者是不可能的。而且,即使这样的L2缓存能够被设计出来,由于不同的物理位置,也难以保障该共享的L2缓存能够为每个核心提供一致的存取等待时间。另外,除了容量和不同的存取等待时间之外,这样一种大容量的L2并不能被有效地管理,从而会降低整个系统的性能。已经提出了在同时发生的执行进程间划分共享的缓存,例如L2缓存,例如,图2显示了一种现有技术中的缓存分区方法,该方法将L2缓存划分为多个静态的子缓存(在图2的实施方式中,L2缓存被分成三个子缓存210、220和230),并且将这些子缓存中每一个分别分配给处理器的单个核心,以使其成为该单个核心的私有子缓存。然而,这种缓存分区方法的缺点是,当存取不均匀的时候,其会导致缓存的一部分未被利用。为了克服上述缺陷,本专利技术提供了一种。在体现本专利技术第一方面的示例性实施方式中,提供了一种包括动态缓存分区系统的设备。该设备包括至少一个多核处理器和至少一个由多个处理核心共享的共享缓存,所述共享缓存包括多个缓存线并被划分成多个子缓存,该多个子缓存包括至少一个用于各单个处理核心的私有子缓存和至少一个被所有所述处理核心共享的公共的子缓存;装置,用于为所述多个处理核心的各个处理核心监测共享缓存命中信息;以及装置,用于确定缓存线是否应当被分配给公共子缓存还是分配给与所述多个处理核心之一相关联的私有子缓存。在体现本专利技术第二方面的示例性实施方式中,提供了一种用于多核系统的动态缓存分区方法。该方法包括:监测多个处理核心中的每个对共享缓存的访问,确定缓存线是否应分配给被所有处理核心共享的所述共享内存中的公共子缓存,还是应分配给与所述多个处理核心之一关联的私有子缓存,以及将所述缓存线分配给所述共享缓存中的所述公共子缓存或者私有子缓存。在体现本专利技术第三方面的示例性实施方式中,提供了一种集成电路,包括:至少一个包括多个处理核心的处理器,该至少一个处理器进一步包括至少一个被所述多个处理核心共享的共享缓存,该共享缓存包括多个缓存线并且被划分成多个子缓存,该多个子缓存包括至少一个用于各个处理核心的私有子缓存和至少一个被所有处理核心共享的公共子缓存;与所述多个核心对应的多个监测电路,每个监测电路分别与所述多个核心之一耦合,每个监测电路被配置成监测所述多个核心中的各自的核心的共享缓存命中信息;以及分区逻辑电路,该分区逻辑电路与所述多个监测电路和所述共享缓存耦合,该分区逻辑电路被配置成确定是否应当将缓存线分配给公共子缓存或者与所述多个处理核心之一相关联的私有子缓存。本申请的下文描述了本专利技术的其它方面和实施方式。【附图说明】附图以示例的方式图示了本专利技术,其并不构成对本专利技术的限制。在附图中相同的数字表示相同的部件,其中:图1为传统的缓存架构的示意图;图2为显示了传统的缓存分区系统的示意图;图3显示了根据一个示例性实施方式的包括动态缓存分区系统的设备;图4显示了根据一个示例性实施方式的缓存线的示意图;图5为根据一个示例性实施方式的动态缓存状态的示意图;图6为描述了根据示例性实施方式的动态缓存分区方法的流程示意图。【具体实施方式】下面将参照附图中所示的一些实施例具体描述本专利技术的一些示例性实施方式。在下文的描述中,描述了一些具体的细节以提供对本专利技术的更深的理解。然而,对于本领域的技术人员来说显而易见的是,即使不具有这些具体细节中的一些,本专利技术也可被实施。另一方面,一些公知的工艺步骤和/或结构没有被详细描述以避免不必要地使本专利技术变得难以理解。在本专利技术的内容中,提供了针对多核心系统的一种包括动态缓存分区系统的设备和一种动态缓存分区方法。该设备和方法提供了在共享缓存的共享和私有的子缓存之间的动态分区。通过这种方式,该共享缓存的子缓存并不是静态的,而是能够根据该多核心系统的每个处理核心的命中信息被动态地调整,从而该缓存在多个核心之间既能够被用于私有的数据集,又能够被用于共享的数据集。该共享缓存的私有子缓存主要被私有数据使用,该共享的子缓存主要被共享数据使用。因此,本专利技术的设备和动态缓存分区方法能够改善数据共享性能和简化多核心系统中的数据一致性,并且该缓存能够被更有效率地使用。即使对该缓存的子缓存的访问是不一致的,该共享缓存中也不会有未使用的部分。图3显示了根据本专利技术的一个方面的包括动态分区系统的设备的示例性实施方式的示意图。如图3所示,该设备包括具有四个处理核心的处理器,然而,应当理解的是,核心的数量并不局限于四个,本专利技术同样适用于包括两个或更多个核心的任何设备。在图3中,四个核心中的每个,即核心1、核心2、核心3和核心4,具有私有L1缓存。每个核心被进一步与公共的共享L2缓存310耦合。L2缓存310能够被分成5个子缓存,包括四个分别与该四个处理核心中的一个相关联的私有子缓存,即C1PC、C2PC、C3PC和C4PC,以及一个公共的被所有处理核心共享的共享子缓存SC。此处,该四个私有的子缓存和该共享的子缓存并不是静态的,而是能够被动态地调整,下文将会对此进行描述。如图3所示,该设备还包括多个监测电路,每个监测电路与相应的一个核心耦合。每个监当前第1页1 2 3 本文档来自技高网...

【技术保护点】
一种设备,包括至少一个多核处理器和至少一个由多个处理核心共享的共享缓存,所述共享缓存包括多个缓存线并被划分成多个子缓存,该多个子缓存包括至少一个用于各单个处理核心的私有缓存和至少一个被所有所述处理核心共享的公共的子缓存;装置,用于为所述多个处理核心的各个处理核心监测共享缓存命中信息;以及装置,用于确定所述缓存线是否应当被分配给公共子缓存还是分配给与所述多个处理核心之一相关联的私有子缓存。

【技术特征摘要】

【专利技术属性】
技术研发人员:范博
申请(专利权)人:超威半导体产品中国有限公司
类型:发明
国别省市:北京;11

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

1