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

管理具有固定住的数据的高速缓存的方法和系统技术方案

技术编号:2920315 阅读:257 留言:0更新日期:2012-04-11 18:40
在恒定访问时间界限高速缓存中,对固定住数据保留高速缓存中的未分配线的第一数量,所述第一数量小于高速缓存中的线数;以及如果数据需要被插入高速缓存中作为固定住数据,则从为固定住数据保留的线中选择一个线;将所述数据存入该线;以及将所述线插入高速缓存的查找群。

【技术实现步骤摘要】
【国外来华专利技术】
技术介绍
高速缓存是使用更小、更快速的存储装置来加速对更大、更慢的存储装置中存储的数据的访问的公知技术。高速缓存的典型应用可以在盘访问技术中找到。例如,如果将以访问时间少于驱动器的固态存储器实现的高速缓存插入驱动器和处理器之间,访问硬盘驱动器上的数据的基于处理器的系统可以达到改良的性能。如本领域熟练技术人员公知的,这种高速缓存被存放来自系统访问的盘的数据,随后对相同数据的后续访问可以对该高速缓存进行而不是对所述盘进行,从而加速性能。高速缓存的使用提供了对系统设计的某些约束,诸如高速缓存与主存储装置的一致性要求,例如在将数据写到高速缓存时,以及基于性能的约束,这些约束确定例如在对不在高速缓存中的数据元素进行数据访问以及高速缓存正好满了时将替换高速缓存的哪些部分(高速缓存替换策略)。高速缓存,特别是对盘高速缓存,的公知设计是N路组相联高速缓存,其中N是某非零整数。在这种设计中,高速缓存被实现为高速缓存线的N个阵列的集合,每个阵列表示一组,而每个组只具有这些数据元素作为成员(member)或简单地具有来自其对该组的寻址映射基于容易计算的映射函数的盘的元素。因此,在盘高速缓存的情况下,盘上的任何元素都可以快速地被映射到高速缓存中的一组,例如通过获得用组数N进行盘上元素的地址的求模形成的整数值,其标记,在高速缓存中(标记MOD N)该结果是唯一地将元素映射到一组的数。许多其它方法可用于将一线映射到高速缓存中的一组,包括标记的比特移位,或者与线相关联的任何其它唯一组,以获得组的索引号;在标记或其它唯一标识符和掩码之间进行逻辑AND;用掩码对标记或其它唯一标识符进行XOR以导出一组数,这是本领域熟练技术人员已知的,且所声明的主题不限于这些方法中的任一个或多个。为了在组相联高速缓存中定位元素,系统使用盘上数据的地址来计算其中驻留元素的组,并随后在典型实现中查找经过表示该组的阵列直到发现匹配,或者确定元素不在该组中。高速缓存的类似实现可使用散列表代替相联组来组织高速缓存。在这种高速缓存中,元素再一次被组织成固定大小阵列,通常是同等大小。但是在该实例中,散列函数被用于计算其中定位元素的阵列。对散列函数的输入可基于元素的标记且随后函数将元素映射到特殊的散列地址。散列函数和用于访问数据和高速缓存组织的使用是公知的且这里不详细讨论。为了简化该此专利申请中主题的说明,引入术语恒定访问时间界限(CATB)来描述包括上述基于组相联和散列表的高速缓存的高速缓存设计。本领域中CATB高速缓存的关键特点在于它们被组织成固定大小阵列,通常是同等大小,它们每一个都是基于诸如其标记的高速缓存元素的某些唯一方面而在恒定时间内可寻址的。CATB高速缓存的其它设计可以是本领域熟练技术人员显而易见的。一般,在CATB高速缓存中定位一个元素的访问时间由常数限定,或者至少独立于总高速缓存大小,因为识别阵列的时间是恒定的且每个阵列大小固定,所以阵列内的这种查找由常数限定。为了术语的一致,术语查找群被用于表示通过映射元素来识别的阵列(即,组相联高速缓存中的组或者基于散列表的高速缓存中的散列地址)。CATB高速缓存中的每个元素或高速缓存线120都包含来自系统正访问的较慢存储装置的实际数据以及用于管理用途的高速缓存管理系统所使用的称作元数据的一些其它数据。元数据可包括一标记,即线中数据的唯一标识符或地址,以及涉及包括比特或标志的线状态的其它数据,该标志用以表示线被使用(分配)还是不被使用(未分配),以及保留用于其它用途的比特。只要系统在运行中,高速缓存中的特定线总是保留在该高速缓存中是有利的,例如包含常访问的操作系统代码的那些线。那些高速缓存线潜在地无限期地被保持在高速缓存中并不受正常的高速缓存替换策略的影响,且被称作被“固定住”。当为了进入高速缓存的新数据的存储而需要新高速缓存线时,高速缓存管理系统将不从高速缓存中除去该线。在这种实现中的线在其元数据中可具有标志,表示线是否被固定住。但存在与固定住相关联的缺点。出于已知的且这里不详细描述的原因,具有近似相等大小的组的CATB高速缓存会表现得比具有不均匀组大小的那些更好。如果在诸如组相联高速缓存中的组的CATB高速缓存的查找群中的一个或多个线由固定住的数据占据,则用非固定住数据的用于高速缓存操作的查找群的有效大小减少固定住线的数量。如果系统尝试访问被映射到该查找群的数据元素,相对于在具有非固定住元素的其它查找群中访问数据的性能,其性能会被降低。该现象被称作热点形成,并为具有固定住线的高速缓存的设计提出了问题。附图说明图1示出了可用于实现N路组相联高速缓存的动态数据结构。图2示出了根据所声明主题的在没有固定住数据被添加到高速缓存时实现具有保留用于固定住数据的一部分高速缓存的N路组相联高速缓存的数据结构的状态。图3示出了所声明主题的实施例中在已将一些固定住高速缓存线插入高速缓存后图2的数据结构的状态。图4示出了在所声明主题的一个实施例中用于将固定住数据插入高速缓存的动作的流程图。图5示出了在所声明主题的一个实施例中在非易失性实现中的断电事件后采取重新构建高速缓存的动作的流程图。图6示出了根据所声明主题的一个实施例的基于处理器系统。具体实施例方式在所声明主题的一个实施例中,动态数据结构被用于实现组相联高速缓存,一种CATB高速缓存类型。在这种实现中,如图1所示,高速缓存中的每个组都被实现为链接列表100。在两个示例性实施例中,该列表可以是单或双链接列表。每个组都包含高速缓存线120,每个高速缓存线又具有数据和元数据,如140处所示。从高速缓存的该实现中插入、访问和去除元素可通过使用高速缓存线的标记计算用于组的标识符并随后遍历与相对于该组的链接列表来实现。如果找到具有相同标记的线,则元素在该高速缓存中;如果没有,则元素不在该高速缓存中。在这种类型的高速缓存实现中,高速缓存中的组可以都是相同大小,但也可以通过从表示一组的链接列表中去除一根高速缓存线并将它链接到另一链接列表或者倒过来从与表示这些组的列表分开的链接列表中去除高速缓存线并将它添加到一组,而从组中去除元素或添加元素。因此,在这种高速缓存实现中,组可以是大小不同的。如图6所示的基于处理器的系统实现所声明主题的一个示例性实施例。该图示出了经由总线640连接到存储器660以及包括盘680和盘高速缓存600的盘和高速缓存系统的处理器620。在该实现中,盘高速缓存600可以在易失性或非易失性存储器中实现。处理器可执行程序和访问数据,使得数据对盘680进行读取和写入因此在盘高速缓存600中进行高速缓存。图6的系统当然仅仅是表示性的。基于处理器的系统的许多其它变型是可能的,包括处理器数量、总线结构、存储器结构和盘数量和类型的变型。此外,所声明的主题不限于基于处理器的系统,特别是一般可以扩展为高速缓存,如权利要求书中描述的。在上述实施例中和所声明主题的其它实施例中,非易失性存储器单元可使用参考图1所讨论的数据结构用于实现盘高速缓存,诸如图6所示的,但其中一部分高速缓存被保留用于图2所示的固定住数据。在图中,称作空(free)固定住线240的一部分未分配高速缓存线被保留与固定住数据一起使用。这些空固定住线被置于空固定住链接列表220。其余高速缓存线260按用于组相联高本文档来自技高网...

【技术保护点】
一种在恒定访问时间界限(CATB)高速缓存中的方法,包括:为固定住数据而在高速缓存中保留第一数量的未分配线,该第一数量小于所述高速缓存中的线数;以及如果需要将数据插入所述高速缓存中作为固定住数据,则从为固定住数据保留 的线中选择一线;将数据存入所述线;以及将所述线插入CATB高速缓存的查找群。

【技术特征摘要】
【国外来华专利技术】...

【专利技术属性】
技术研发人员:小R鲁瓦耶
申请(专利权)人:英特尔公司
类型:发明
国别省市:US[美国]

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

1