[发明专利]用于实现NUMA感知统计计数器的系统和方法有效
申请号: | 201380072254.8 | 申请日: | 2013-12-19 |
公开(公告)号: | CN105190560B | 公开(公告)日: | 2018-12-11 |
发明(设计)人: | D·戴斯;Y·列夫;M·S·莫尔 | 申请(专利权)人: | 甲骨文国际公司 |
主分类号: | G06F9/52 | 分类号: | G06F9/52;G06F9/50 |
代理公司: | 中国国际贸易促进委员会专利商标事务所 11038 | 代理人: | 罗亚男 |
地址: | 美国加*** | 国省代码: | 美国;US |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 线程 递增计数器 节点标识符 优先权 计数器 统计计数器 存储器体系 单个节点 连续更新 数据结构 可扩展 更新 感知 延迟 饥饿 架构 风格 事务 访问 | ||
本文所述的系统和方法可以用来实现适于在采用NUMA风格存储器体系架构的系统中使用的可扩展统计计数器。计数器可以实现为包括计数值部分和节点标识符部分的数据结构。计数器可以在事务内访问。节点标识符部分可以识别最近递增计数器的线程在其上执行的节点或者已经请求递增计数器的优先权的线程在其上执行的节点。在所识别出的节点上执行的线程可以比其它线程具有更高的递增计数器的优先权。在其它节点上执行的线程可以延迟其递增计数器的尝试,从而鼓励来自单个节点上的线程的连续更新。不耐烦的线程可以尝试更新节点标识符部分或者可以更新抗饥饿变量,以指示对优先权的请求。
技术领域
本公开内容涉及共享的统计计数器,并且更具体而言涉及用于提高包括对共享统计计数器进行访问的应用的性能的技术。
背景技术
多核体系架构设计中当前的趋势暗示,在未来几年内,将有从简单的基于总线的设计朝分布式非一致存储器访问(NUMA)和高速缓存固有NUMA(CC-NUMA)体系架构的加速偏移。根据NUMA,对任何给定访问的存储器访问时间依赖于被访问的存储器相对于处理器的位置。这种体系架构通常包括具有快速本地存储器(例如,紧密耦合到处理器和/或位于相同的单个多核芯片上的存储器)的计算核心的集合,其中这些存储器经由较慢的(芯片间)通信介质彼此通信。在这种系统中,处理器通常可以访问其自己的比非本地存储器快的本地存储器,诸如其自己的高速缓存存储器。在一些系统中,非本地存储器可以包括一个或多个在处理器之间共享的存储器组和/或在另一处理器本地的存储器组。一些系统,包括许多NUMA系统,提供非一致的通信体系架构(NUCA)属性,其中访问其它处理器核心的高速缓存的时间随其离发出请求的核心的物理距离而变。在这些系统中,核心对其本地存储器的访问,并且尤其是对共享的本地高速缓存的访问,可以比对远程存储器(例如,位于另一芯片上的高速缓存)的访问快若干(或者许多)倍。
更大型的软件系统使用统计计数器来进行性能监视和诊断。例如,统计计数器对诸如检测各种系统事件的过高速率或者对基于事件频率而变的机制的目的具有实际重要性。虽然单线程的统计计数器微不足道,但是通常使用的单纯(naive)并发实现很快变得有问题,尤其是当线程计数增长时。例如,当系统增长并且当统计计数器在越来越多的非一致存储器访问(NUMA)系统中被使用时,常用的单纯计数器强加扩展性瓶颈和/或它们无用的此类不准确性。特别地,这些计数器(当在线程之间共享时)会对计数器的每次修改招致无效流量,这在NUMA机器上尤其昂贵。
并行执行事务的能力是可扩展性能的关键。但是,当对计数器的访问发生在事务内部时,共享计数器用于收集统计数据(例如,关于一块代码执行得多频繁、多少元素在散列表中等等的统计数据)会不利地影响事务成功率(因为由不同事务或线程对共享计数器的任何两次更新都将潜在地彼此冲突)。解决这个问题的一些之前的方法涉及把更新计数器的操作移动到事务之外,由此改变程序的语义,或者实现对“事务提升”的复杂并且昂贵的支持,这不是在所有语境下都适用。
出于这些和其它原因,应用设计者面对困难的折中,涉及强加于轻争用计数器之上的等待时间、可扩展性和(在一些情况下)重争用计数器的准确性,以及各种探针效应。
发明内容
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于甲骨文国际公司,未经甲骨文国际公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201380072254.8/2.html,转载请声明来源钻瓜专利网。