高速缓存存储器及其中实现的方法技术

技术编号:22363917 阅读:13 留言:0更新日期:2019-10-23 04:38
提供了高速缓存存储器及其中实现的方法,特别提供了用以实现n路组关联高速缓存的唯一准最近最少使用实现即LRU实现的方法和设备。根据一个实现的方法包括:确定生成预拾取请求;获得与所述预拾取请求相关联的目标数据的置信度值;将所述目标数据写入n路组关联高速缓存存储器的组;修改所述高速缓存存储器的n位置阵列,使得n个阵列位置中的特定的一个阵列位置标识所述n路中的1路,其中n个LRU阵列位置中的该特定的一个LRU阵列位置由所述置信度值确定。

Cache memory and its implementation

【技术实现步骤摘要】
高速缓存存储器及其中实现的方法
本专利技术一般涉及高速缓存存储器电路,更特别地涉及用于将数据预拾取(prefetch)到处理器高速缓存中的系统和方法。
技术介绍
大多数现代计算机系统包括用于进行执行软件程序所必需的计算的微处理器。计算机系统还包括连接至微处理器(或者位于微处理器内部)的其它装置,诸如存储器。存储器存储微处理器所要执行的软件程序指令。存储器还存储程序指令进行操作以实现程序的期望功能的数据。计算机系统中的位于微处理器外部(或者位于处理器核心外部)的装置(诸如存储器)通过处理器总线而直接或间接地连接至微处理器(或核心)。处理器总线是使得微处理器能够以相对大的数据块传送数据的信号集合。当微处理器执行用于对存储器中所存储的数据进行计算的程序指令时,微处理器必须使用处理器总线将数据从存储器拾取到微处理器中。类似地,微处理器使用处理器总线来将计算结果写回存储器。从存储器拾取数据或将数据写入存储器所需的时间比微处理器对数据进行计算所需的时间大许多倍。因此,微处理器必须低效地空闲等待从存储器拾取到数据。为了减少这个问题,现代微处理器包括至少一个高速缓存存储器。高速缓存存储器或高速缓存是微处理器(或处理器核心)内部的存储系统存储器中的数据的子集的存储器(通常比系统存储器小得多)。当微处理器执行引用数据的指令时,该微处理器首先检查以查看数据是否存在于高速缓存中并且是否有效。如果是,则由于数据已经存在于高速缓存中,因此相比于必须要从系统存储器检索数据的情况可以更快速地执行指令。也就是说,微处理器不必在使用处理器总线将数据从存储器拾取到高速缓存中时等待。微处理器检测到数据存在于高速缓存中并且有效的情况通常被称为高速缓存命中。所引用的数据不存在于高速缓存中的情况通常被称为高速缓存未命中。在所引用的数据已经存在于高速缓存存储器中的情况下,通过避免从外部存储器检索数据所需的额外时钟周期,实现了显著的时间节省。高速缓存预拾取是计算机处理器所使用的、通过在该处理器实际需要数据或指令之前将指令或数据从外部存储器拾取到高速缓存存储器中来进一步提高执行性能的技术。成功预拾取数据避免了在必须从外部存储器检索数据时遇到的延时。预拾取存在基本的权衡。如上所述,预拾取可以通过(通过在实际需要数据之前已经将数据拾取到高速缓存存储器中来)减少延时来提高性能。另一方面,如果预拾取了太多信息(例如,太多高速缓存行),则预拾取器的效率将降低,并且其它系统资源和带宽可能负担过重。此外,如果高速缓存已满,则将新的高速缓存行预拾取到该高速缓存中将导致另一高速缓存行从该高速缓存被驱逐。因此,高速缓存中的由于先前需要而在该高速缓存中的行可能被仅可能在将来需要的行驱逐。在一些微处理器中,高速缓存实际上由多个高速缓存组成。多个高速缓存被布置为多级的阶层结构。例如,微处理器可以具有两个高速缓存,称为第一级(L1)高速缓存和第二级(L2)高速缓存。L1高速缓存比L2高速缓存更接近微处理器的计算元件。也就是说,L1高速缓存能够比L2高速缓存更快地向计算元件提供数据。L2高速缓存通常比L1高速缓存大,但是不必须如此。多级高速缓存布置对预拾取指令的一个影响是,由预拾取指令指定的高速缓存行可能在L2高速缓存中命中而不是在L1高速缓存中命中。在这种情况下,微处理器可以将高速缓存行从L2高速缓存传送至L1高速缓存,而不是使用处理器总线从存储器拾取该行,这是因为从L2到L1的传送比通过处理器总线拾取高速缓存行快得多。也就是说,L1高速缓存分配高速缓存行(即高速缓存行的存储位置),并且L2高速缓存向L1高速缓存提供高速缓存行以存储在L1高速缓存中。虽然预拾取器是已知的,但是期望改进预拾取器的性能。
技术实现思路
根据一个实施例,一种高速缓存存储器,其包括:存储器区域,用于存储所述高速缓存存储器所请求的数据,所述存储器区域被配置为具有n路组关联;预拾取逻辑,其被配置为执行用于评估所述高速缓存存储器在不久的将来是否将请求该高速缓存存储器外部的目标数据的算法;存储位置阵列,其一般被组织为k(其中k是大于1的整数值)个一维阵列的形式,k个阵列中的各阵列具有n个位置,其中每个这样的阵列位置标识所述存储器区域的n路中的用于所述k个阵列中的给定的一个阵列的唯一1路,以及其中各阵列被组织为使得多个阵列位置的序列顺序一般按照所述多个阵列位置要被替换的顺序标识所述n路;针对多个一维阵列中的各一维阵列,还包括:与所述预拾取逻辑相关联的置信度逻辑,其被配置为计算置信度测度,其中所述置信度测度反映相关处理器在不久的将来将请求所述目标数据的所确定的可能性;以及控制逻辑,其被配置为管理各阵列位置中的数据的内容,所述控制逻辑还被配置为:基于所计算出的置信度测度来分配特定的一个阵列位置以与要存储所述目标数据的路相对应;使各阵列位置中的值从所分配的阵列位置朝向与下一次替换的位置相对应的阵列位置移动;以及将与下一次替换位置相对应的阵列位置中先前所保持的值写入所分配的阵列位置。根据另一实施例,一种n路组关联高速缓存存储器,包括:预拾取逻辑,其被配置为执行用于评估所述高速缓存存储器在不久的将来是否将请求该高速缓存存储器外部的目标数据的算法;k组阵列,所述k组中的各组具有n个阵列位置,其中所述n个阵列位置中的各阵列位置标识高速缓存存储器的给定的一组的n路中的唯一1路;置信度逻辑,其被配置为计算置信度测度,其中所述置信度测度反映相关处理器在不久的将来将请求所述目标数据的所确定的可能性;以及控制逻辑,其被配置为通过基于置信度测度将来自与最近最少使用位置即LRU位置相对应的阵列位置的值写入在所述k组中选择的一组中的中间位置、并且使各阵列位置中的值从该中间位置朝向倒数第二个LRU位置移动一个位置,来调整所选择的一组中的值。根据又一实施例,一种在n路组关联高速缓存存储器中实现的方法,所述方法包括:确定生成预拾取请求;获得与所述预拾取请求相关联的目标数据的置信度值;将所述目标数据写入n路组关联高速缓存存储器的组;修改所述高速缓存存储器的n位置阵列,使得n个阵列位置中的特定的一个阵列位置标识所述n路中的1路,其中n个LRU阵列位置中的特定的一个LRU阵列位置由所述置信度值确定。通过审查以下附图和详细描述,本专利技术的其它系统、方法、特征和优点对于本领域技术人员将是或者将变得明显。所有这些附加系统、方法、特征和优点旨在包括在本说明书内,在本专利技术的范围内,并且受到所附权利要求的保护。附图说明参考以下附图,可以更好地理解本专利技术的各个方面。不必按比例绘制附图中的组件,而是将重点放在清楚地说明本专利技术的原理。此外,在附图中,相同的附图标记在若干视图中表示相应部件。图1是示出实现本专利技术的处理器的某些特征的框图;图2是示出主要用于与其它系统组件的通信的高速缓存存储器的某些特征的框图;图3是高速缓存存储器的框图,其示出本专利技术的实施例的主要特征;图4A~4D是一组LRU阵列的图,其示出假设示例中的一组传统LRU阵列的内容的排序;图5是示出用于生成预拾取操作的置信度值的示例算法的流程图;图6A~6B是示出一般被组织为LRU阵列的一组阵列、并且示出根据本专利技术的优选实施例的该阵列中的内容的排序的图;以及图7是示出根据本专利技术的实施例的预拾取操作中的基本操作的流本文档来自技高网
...

【技术保护点】
1.一种高速缓存存储器,包括:存储器区域,用于存储所述高速缓存存储器所请求的数据,所述存储器区域被配置为具有n路组关联;预拾取逻辑,其被配置为执行用于评估所述高速缓存存储器在不久的将来是否将请求该高速缓存存储器外部的目标数据的算法;存储位置阵列,其被组织为k个一维阵列的形式,其中k是大于1的整数值,k个阵列中的各阵列具有n个位置,其中每个这样的阵列位置针对所述k个阵列中的给定的一个阵列标识所述存储器区域的n路中的唯一1路,以及其中各阵列被组织为使得多个阵列位置的序列顺序按照所述多个阵列位置要被替换的顺序标识所述n路;所述高速缓存存储器针对多个一维阵列中的各一维阵列还包括:与所述预拾取逻辑相关联的置信度逻辑,其被配置为计算置信度测度,其中所述置信度测度反映相关处理器在不久的将来将请求所述目标数据的所确定的可能性;以及控制逻辑,其被配置为管理各阵列位置中的数据的内容,所述控制逻辑还被配置为:基于所计算出的置信度测度来分配特定的一个阵列位置以与要存储所述目标数据的路相对应;使各阵列位置中的值从所分配的阵列位置朝向与用于下一次替换的位置相对应的阵列位置移动;以及将与下一次替换位置相对应的阵列位置中先前所保持的值写入所分配的阵列位置。...

【技术特征摘要】
2019.03.20 US 16/358,7921.一种高速缓存存储器,包括:存储器区域,用于存储所述高速缓存存储器所请求的数据,所述存储器区域被配置为具有n路组关联;预拾取逻辑,其被配置为执行用于评估所述高速缓存存储器在不久的将来是否将请求该高速缓存存储器外部的目标数据的算法;存储位置阵列,其被组织为k个一维阵列的形式,其中k是大于1的整数值,k个阵列中的各阵列具有n个位置,其中每个这样的阵列位置针对所述k个阵列中的给定的一个阵列标识所述存储器区域的n路中的唯一1路,以及其中各阵列被组织为使得多个阵列位置的序列顺序按照所述多个阵列位置要被替换的顺序标识所述n路;所述高速缓存存储器针对多个一维阵列中的各一维阵列还包括:与所述预拾取逻辑相关联的置信度逻辑,其被配置为计算置信度测度,其中所述置信度测度反映相关处理器在不久的将来将请求所述目标数据的所确定的可能性;以及控制逻辑,其被配置为管理各阵列位置中的数据的内容,所述控制逻辑还被配置为:基于所计算出的置信度测度来分配特定的一个阵列位置以与要存储所述目标数据的路相对应;使各阵列位置中的值从所分配的阵列位置朝向与用于下一次替换的位置相对应的阵列位置移动;以及将与下一次替换位置相对应的阵列位置中先前所保持的值写入所分配的阵列位置。2.根据权利要求1所述的高速缓存存储器,其中,各一维阵列被组织为修改的最近最少使用阵列即LRU阵列或修改的伪LRU阵列,其中通过允许基于所述置信度测度非循序地插入所述阵列中来修改传统LRU布置。3.根据权利要求1所述的高速缓存存储器,其中,所述高速缓存存储器是2级高速缓存存储器。4.根据权利要求1所述的高速缓存存储器,其中,所述算法包括边界框预拾取算法和流预拾取算法至少之一。5.根据权利要求1所述的高速缓存存储器,其中,所述置信度逻辑包括用于响应于各个新加载请求而修改所述置信度测度、以使得所述置信度测度在所述新加载被预拾取的情况下递增并且在所述新加载未被预拾取的情况下递减的逻辑。6.根据权利要求5所述的高速缓存存储器,还包括用于将所述置信度测度转译为用作预拾取存储器阵列的n阵列位置中一个位置的索引的数值的逻辑。7.根据权利要求6所述的高速缓存存储器,其中,所述置信度测度向所述数值的转译是非线性转译。8.根据权利要求1所述的高速缓存存储器,还包括用于将所述置信度测度转译为用作预拾取存储器阵列的n阵列位置中一个位置的索引的数值的逻辑。9.一种n路组关联高速缓存存储器,包括:预拾取逻辑,其被配置为执行用于评估所述高速缓存存储器在不久的将来是否将请求该高速缓存存储器外部的目标数据的算法;k组阵列,所述k组中的各组具有n个阵列位置,其中所述n个阵列位置中的各阵列位置标识所述高速缓存存储器的给定组的n路中的唯一1路;置信度逻辑,其被配置为计算置信度测度,其中所述置信度测度反映相关处理器在不久的将来将请求所述目标数据的所确定的可能性;以及控制逻辑,其...

【专利技术属性】
技术研发人员:道格拉斯·R·瑞德阿卡什·多拉塔·赫巴尔
申请(专利权)人:上海兆芯集成电路有限公司
类型:发明
国别省市:上海,31

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

1