[发明专利]高速缓存存储器管理事务性存储器访问请求在审
申请号: | 201410400738.7 | 申请日: | 2014-08-14 |
公开(公告)号: | CN104375958A | 公开(公告)日: | 2015-02-25 |
发明(设计)人: | S·格海;G·L·格思里;J·R·杰克逊;D·E·威廉斯 | 申请(专利权)人: | 国际商业机器公司 |
主分类号: | G06F12/14 | 分类号: | G06F12/14 |
代理公司: | 北京市金杜律师事务所 11256 | 代理人: | 酆迅;陈颖 |
地址: | 美国纽*** | 国省代码: | 美国;US |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 高速缓存 存储器 管理 事务性 访问 请求 | ||
技术领域
本发明总体涉及数据处理,并且具体地涉及对数据处理系统的分布式共享存储器系统的存储访问。
背景技术
常规多处理器(MP)计算机系统、比如服务器计算机系统包括都耦合到通常包括一个或者多个地址、数据和控制总线的系统互连的多个处理单元。系统存储器耦合到系统互连,该系统存储器代表在多处理器计算机系统中的最低级易失性存储器并且一般可访问用于由所有处理单元读取和写入访问。为了减少对在系统存储器中驻留的指令和数据的访问延时,每个处理单元通常还由相应多级高速缓存分级支持,该多级高速缓存分级的更低级可以由一个或者多个处理器核共享。
高速缓存存储器普遍用来暂时缓冲可以由处理器访问的存储器块以便通过减少由于必须从系统存储器加载需要的数据和指令而引入的访问延时来加速处理。在一些MP系统中,高速缓存分级包括至少两级。第一级(L1)或者更高级高速缓存通常是与特定处理器核关联的专用高速缓存并且不能由在MP系统中的其它核访问。通常,响应于存储器访问指令、比如加载或者存储指令,处理器核先访问更高级高速缓存的目录。如果在更高级高速缓存中未找到请求的存储器块,则处理器核然后访问针对所请求的存储器块的更低级高速缓存(例如第二级(L2)或者第三级(L3)高速缓存)或者系统存储器。最低级高速缓存(例如L3高速缓存)经常在若干处理器核之中共享。
在这样的系统中,微处理器软件从多个软件线程并行访问共享的数据结构。在并行访问共享的数据时,通常有必要防止所谓“无约束竞赛”或者“冲突”。冲突在两个存储器访问是对相同存储器位置并且它们中的至少一个存储器访问是写入而且没有保证那些访问出现的排序时在它们之间出现。
多处理器软件通常利用锁定变量以用有序无冲突方式协调在存储器中的位置的并行读取和修改。锁定变量是以原子方式读取、然后可能基于读取的值设置成某个值的在存储器中的位置。经常利用原子-读取-修改-写入(ARMW)指令或者通过如下指令的序列来实现对锁定变量的读取-修改-写入操作,这些指令提供与原子地读取和修改锁定变量的单个指令相同的效果。
以这一方式,经由ARMW指令读取初始“未锁定”值的软件线程称为已经“获取”锁定并且将是保持锁定的仅有软件线程直至它释放锁定。保持锁定的线程可以安全地更新该锁定保护的共享存储器位置而无与其它线程的冲突,因为其它线程直至当前锁定释放锁定才能获得锁定。在已经适当读取和/或修改共享的位置时,保持锁定的线程释放锁定(例如通过将锁定变量写成“未锁定”值)以允许其它线程访问在存储装置中的共享位置。
尽管锁定协调竞争线程对共享数据的访问,但是锁定面临多个熟知的缺点。这些包括(1)在给定的线程保持多于一个锁定并且防止其它线程的向前进度时的死锁可能性和(2)在由于没有对共享数据的冲突访问出现而锁定可以未严格地必需时的锁定获取的性能成本以及其它缺点。
为了克服这些限制,可以运用事务性存储器概念。在事务性存储器中,加载和/或存储指令的集合被视为“事务”。事务在组成加载和存储操作可以原子地出现而无与另一线程的冲突时成功。事务在存在与另一线程的冲突时失败、然后可以被重新尝试。如果事务连续失败,则软件可以回滚到使用锁定以保证共享数据的有序访问。
为了支持事务性存储器,下层硬件针对冲突在事务执行时跟踪参与事务的存储位置——事务印记(footprint)。如果冲突在事务印记中出现,则中止并且可能重启事务。使用事务性存储器减少由于线程保持多个锁定而有可能死锁,因为在典型情况下未保持锁定(事务简单地尝试进行一个或者多个存储访问并且如果冲突出现则重启)。另外,一般避免获取锁定的处理开销。
发明内容
在至少一个实施例中,一种数据处理系统具有处理器核和包括支持该处理器核的高速缓存存储器的共享存储器系统。处理器核响应于在正在经历处理器核的执行的存储器事务中执行存储器访问指令来发布事务性存储器访问请求。响应于接收到事务性存储器访问请求,高速缓存存储器的分派逻辑评估用于分派的事务性存储器访问请求,其中该评估包括确定存储器事务是否具有失败事务状态。响应于确定存储器事务具有失败事务状态,分派逻辑限制分派该存储器访问请求用于高速缓存存储器的服务,并且限制响应于该事务性存储器访问请求而至少更新高速缓存存储器的更换顺序信息。
附图说明
图1是根据一个实施例的示例数据处理系统的高级框图;
图2是根据一个实施例的示例处理单元的更具体框图;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于国际商业机器公司,未经国际商业机器公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201410400738.7/2.html,转载请声明来源钻瓜专利网。