基于处理器的设备中的追踪存储器块存取频率的制作方法

文档序号:37821397发布日期:2024-04-30 17:31阅读:10来源:国知局
基于处理器的设备中的追踪存储器块存取频率的制作方法


背景技术:

1、由基于处理器的设备的存储器设备提供的存储器可以被再分为存储器块。如本文中所用,术语“存储器块”是指由基于处理器的设备的存储器设备提供的任何连续范围的存储器。一些实施例中的存储器块可以与存储器页对齐,该存储器页是与从虚拟存储器地址(或中间物理存储器地址)到连续范围的存储器内的物理地址的地址转换相关联的连续范围的存储器。根据一些实施例的存储器块可以包括存储器页的严格子集,反之亦然。

2、采用不同延迟或带宽的多个异构存储器设备的基于处理器的设备可能遇到情况,在该情况中希望了解哪些存储器块随着时间的推移被更频繁或更不频繁地存取。例如,基于处理器的设备可以以基于处理器的设备可以与之本地通信的双数据速率(ddr)动态随机存取存储器(dram)存储器设备的形式提供较低延迟(即具有较快的存储器存取时间)的存储器,以及以驻留在诸如计算快速链路(cxl)的媒体抽象或事务接口后面的存储器设备的形式提供较高延迟(即具有较慢的存储器存取时间)的存储器两者。在一个潜在的用例中,在这种基于处理器的设备上执行的管理程序可以需要确定是否基于客户虚拟机存储器页被存取的频率动态分配客户虚拟机(vm)存储器页到较低延迟存储器或较高延迟存储器。类似地,在一个用例中,其中存储器被超额订阅,软件可能需要识别充分“冷”(即不经常存取)的远存储器的子集,以符合作为候选以被转移到数据存储,例如固态设备(ssd)中的交换空间中。

3、一种确定存储器块存取频率的常规方法使用一种软件解决方案,该软件解决方案从用于虚拟到物理或中间物理到物理存储器地址映射的页表的每个页表条目(pte)中取回存取指示符位的值。然而,这种方法仅提供存取频率的粗略指示(即存取或未存取),除非在很长的时间窗口内观察到存取指示符位,可以不提供足够的颗粒度。这种方法还要求处理器硬件,该处理器硬件通常以多字节颗粒度管理一致性,以读取几个多字节pte以存取这些pte中感兴趣的几个单个位,这浪费了带宽和处理器周期,并可能产生更严重的高速缓存污染。另一种方法在每个pte中添加硬件递增计数字段,这可以在当计数存储器块存取时减轻软件上的负担。但是,当存取每个pte的一小部分的内容以总体上确定存取频率时,这种方法仍然导致类似的带宽消耗和高速缓存污染问题。还有另一种方法涉及硬件管理的高速缓存解决方案,例如使用由主机存储器控制器管理的ddr介质作为一个大型的最后一级高速缓存(llc)。这种方法不太理想,因为如果硬件管理的高速缓存解决方案是直接映射的,它可能导致高速缓存的抖动,如针对dram高速缓存的常规方法。

4、因此,一种用于追踪基于处理器的设备中的存储器块存取频率的更有效率的机制是值得的。


技术实现思路

1、本文公开的示例性实施例追踪基于处理器的设备中的存储器块存取频率。在这一点上,在一个示例性实施例中,基于处理器的设备提供了包括用于追踪对存储器块的存取的存取计数表的处理元件(pe)。存取计数表是包括多个存取计数值的打包表,每个存取计数值与多个存储器块中的存储器块相对应。在检测到指向给定存储器块的存储器存取操作(即,诸如存储器加载操作、存储器存储操作、原子递增操作、集合操作等的数据侧存储器存取,或诸如代码取出操作的指令侧存储器存取)时,pe递增与存储器块相对应的存取计数值。然后,存取计数值可以由在基于处理器的设备上执行的第一进程存取,并用于确定针对存储器块的存取频率。

2、为了减少由pe执行的递增操作的目量,一些实施例可以仅针对导致转换后备缓冲区(tlb)未命中和/或高速缓存未命中的内存存取操作递增存取计数值。在这样的实施例中,可能出现存取计数值为零(0)相对于针对相应存储器块的存取频率不明确的情况,因为它可以指示“极端热”(即极端频繁存取)存储器块或“极端冷”(即极端不频繁存取)存储器块。这是因为使用tlb可以满足对极端热存储器块的存储器存取操作的转换,这可以导致针对极端热存储器块的针对存储器块的相应存取计数值不递增。

3、相应地,这样的实施例提供了存取追踪表,该存取追踪表是包括多个存取追踪指示符和多个存取清除指示符的打包表,每个存取追踪指示符和存取清除指示符与多个存储器块中的存储器块相对应。当对该存储器块的存储器存取操作发生时设置与存储器块相对应的存取追踪指示符,并且可以从与相应页表条目(pte)存取指示符被清除的时间解耦的时间被清除。当存取追踪指示符被执行基于处理器的设备的进程清除时,相应的存取清除指示符也由该进程设置。然后,该进程可以采用存取追踪指示符和存取清除指示符以消歧存取计数值零(0),通过使用存取追踪指示符作为表示极端冷存储器块时,存取计数值为零(0)在其他方面符合的(当存取清除指示符被设置时)的不符合。

4、在另一个示例性实施例中,公开了一种基于处理器的设备。该基于处理器的设备包括pe,其包括存取计数表,该存取计数表是包括多个存取计数值的打包表,多个存取计数值各自与多个存储器块中的存储器块相对应。该pe被配置为检测指向多个存储器块中的存储器块的存储器存取操作。该pe还被配置为响应于检测到存储器存取操作,递增多个存取计数值中的存取计数值,其中存取计数值与存储器块相对应。

5、在另一个示例性实施例中,提供了一种用于追踪基于处理器的设备中的存储器块存取频率的方法。该方法包括由基于处理器的设备的pe检测指向多个存储器块中的存储器块的存储器存取操作。该方法还包括响应于检测到存储器存取操作,递增存取计数表的多个存取计数值中的存取计数值,其中存取计数表是打包表,并且存取计数值与存储器块相对应。

6、在另一个示例性实施例中,公开了一种非暂时性计算机可读介质。该计算机可读介质在其上存储计算机可执行指令,当由基于处理器的设备执行时,使基于处理器的设备检测指向多个存储器块中的存储器块的存储器存取操作。该计算机可执行指令还使基于处理器的设备响应于检测到存储器存取操作,递增存取计数表的多个存取计数值中的存取计数值,其中存取计数表是打包表,并且存取计数值与存储器块相对应。

7、本领域技术人员在阅读了以下与附图相关联的更好的实施例的详细描述之后将理解本公开的范围并实现它的附加实施例。



技术特征:

1.一种基于处理器的设备,包括:

2.根据权利要求1所述的基于处理器的设备,还包括第一存储器设备和第二存储器设备;

3.根据权利要求1所述的基于处理器的设备,其中:

4.根据权利要求3所述的基于处理器的设备,其中:

5.根据权利要求3所述的基于处理器的设备,其中:

6.根据权利要求3所述的基于处理器的设备,还包括第一存储器设备和第二存储器设备;

7.根据权利要求6所述的基于处理器的设备,其中所述基于处理器的设备通过被配置为以下而被配置为基于所述存取计数值以及所述存取追踪指示符和所述存取清除指示符中的一个或多个指示符确定所述存储器块的所述存取频率:

8.根据权利要求6所述的基于处理器的设备,其中所述基于处理器的设备通过被配置为以下而被配置为基于所述存取计数值以及所述存取追踪指示符和所述存取清除指示符中的一个或多个指示符确定所述存储器块的所述存取频率,:

9.根据权利要求1所述的基于处理器的设备,其中所述基于处理器的设备还被配置为,响应于核算间隔被触发,重置所述多个存取计数值。

10.一种方法,包括:

11.根据权利要求10所述的方法,还包括响应核算间隔被触发:

12.根据权利要求10所述的方法,还包括:

13.根据权利要求12所述的方法,还包括:响应于所述核算间隔被触发,设置所述存取追踪表的多个存取清除指示符中的存取清除指示符,其中所述存取清除指示符与所述存储器块相对应。

14.根据权利要求12所述的方法,还包括:响应于后续的核算间隔被触发,清除所述存取追踪表的多个存取清除指示符中的存取清除指示符,其中所述存取清除指示符与所述存储器块相对应。

15.根据权利要求12所述的方法,还包括响应于所述核算间隔被触发:


技术总结
本文公开了在基于处理器的设备中追踪存储器块存取频率。在一个示例性实施例中,基于处理器的设备提供处理元件(PE),该处理元件被配置为包括用于追踪对存储器块的存取的存取计数表。存取计数表是包括多个存取计数值的打包表,每个存取计数值与多个存储器块的存储器块相对应。在检测到指向给定存储器块的存储器存取操作(即,诸如存储器加载操作、存储器存储操作、原子递增操作、设置操作等的数据侧操作或者诸如代码取出操作的指令侧操作)时,PE递增与存储器块相对应的存取计数值。然后存取计数值可以被存取(例如,由在PE上执行的进程),并用于确定针对存储器块的存取频率。

技术研发人员:A·J·拉什,T·P·斯佩尔
受保护的技术使用者:微软技术许可有限责任公司
技术研发日:
技术公布日:2024/4/29
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1