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

将经修改的高速缓存数据写入后备存储器同时保留写权限的方法及装置制造方法及图纸

技术编号:13029288 阅读:136 留言:0更新日期:2016-03-17 00:42
描述了一种方法,该方法包括响应于来自处理单元的被指引到高速缓存的标识高速缓存行的请求为事务性操作执行以下内容。读取该高速缓存行,并且如果该高速缓存行处于经修改高速缓存一致性协议状态下,将该高速缓存行转发到将致使将该高速缓存行写入更深的存储设备的电路,以及将该高速缓存行的可由该处理单元用于该事务性操作的另一个实例改变到专用高速缓存一致性状态。

【技术实现步骤摘要】
【国外来华专利技术】【专利说明】将经修改的高速缓存数据写入后备存储器同时保留写权限的方法及装置专利
本专利技术的领域总体上涉及计算系统并且更确切地涉及用于将经修改的高速缓存数据写入后备存储器(backing store)同时保留写权限的方法和装置。背景图1示出具有多个处理单元101_1至101_N的计算系统100。处理单元101_1至101_N可对应于其中系统100对应于处理器的指令执行流水线,或者处理单元101_1至101_N可对应于其中系统100对应于多处理器计算系统的处理器。这些处理单元各自具有其自身的对应的内部一个或多个高速缓存级别102_1至102_N。这些处理单元还共享一个或多个公用高速缓存级别103和更深的系统存储器104。高速缓存级别102_1至102_N、103的总体目标是通过将倾向于由处理单元101_1至101_N调用的数据项和指令保持在高速缓存内来最小化对共享存储器104的访问。然而,因为非常可能的是在不同的处理单元101_1至101_N上运行的对应的程序代码可能希望同时使用同一个数据项,实现“一致性”协议以便确保该数据项在计算处理器/系统100内作为整体保持“一致”。常用的一致性协议是MESI协议。MESI协议向任何高速缓存数据项分配四种不同状态中的一种:1)修改(M) ;2)专用(E) ;3)共享⑶;以及4)无效。处于Μ状态下的高速缓存行对应于具有尚未被更新到更深的高速缓存级别(即,朝向共享存储器104)或直接更新到存储器104的最近更新的数据的“脏”高速缓存行。在此,值得指出的是在典型的实现方式中,每个高速缓存级别可支持针对特定高速缓存行地址的Μ状态。也就是,相同的高速缓存行地址可在每个高速缓存级别下处于Μ状态下。在这种情况下,每个更高的级别(即,朝向处理单元)表示对高速缓存行的数据的更新近改变。处于Ε状态下的高速缓存行对应于“干净的”数据。也就是,其数据内容与共享存储器104内的其相应的条目(即,相同的地址)相同。当将新数据写入处于Ε状态下的高速缓存行(例如,通过处理器器直接在最高的高速缓存级别,或者当在中间高速缓存级别接收到从下一更高的级别逐出的高速缓存时)时,高速缓存行的状态改变为Μ状态。当高速缓存行处于Μ状态下并且该高速缓存行被逐出时,该高速缓存行的数据必须被写回下一更深的高速缓存级别或写回共享存储器104。如果被写回下一更深的高速缓存级别,其在下一更深的高速缓存级别保持在Μ状态下。如果被写回共享存储器,其可转变到Ε状态。当高速缓存行处于Μ状态下时,处理单元被允许访问该高速缓存行(例如,通过高速缓存监听)并且甚至更新它(将新值写入该高速缓存行)。根据一种MESI实现方式,处于Μ状态下的高速缓存行对简单读取的监听致使高速缓存行状态从Μ状态转变到S状态。以对其进行写回(“读拥有”)为目的的对该高速缓存行的读取致使该高速缓存行从Μ状态转变到I状态。处于S状态下的高速缓存行通常对应于具有跨各个高速缓存102_1至102_Ν、103的多个副本的高速缓存行。在典型的情况下,高速缓存行的单个实例在特定处理器的高速缓存中驻留在E状态下。如果另一个处理器期望相同的高速缓存行,该高速缓存行的第二副本被发送到请求处理器。该高速缓存行的状态因此从Ε改变到S,因为现在在系统中存在该尚速缓存彳丁的两个副本,每个副本针对相关联的地址具有与共孚系统存储器104内驻留的数据相同的数据。然而,存在MESI协议的其他方面,这种特征是公知的并且无需在此讨论。图2示出访问来自(例如,最高级别的)共享高速缓存203的经修改高速缓存行的处理单元201_1的示例。如图2所示,在第一周期内,该处理单元向共享高速缓存203发布1对该高速缓存行的请求。在第二周期期间,作为响应,高速缓存203从高速缓存203读取2该高速缓存行。在第三周期内,该高速缓存行被呈现3给请求处理单元201_1。值得注意的是,该高速缓存行保持在Μ状态下。附图通过举例而非通过限制在附图的图示中展示本专利技术,在附图中,类似的参考标记表示类似的元素,并且在附图中:图1示出多个处理单元和共享高速缓存;图2示出访问高速缓存行的处理单元的示例;图3示出用于执行加载操作的改进方法;图4示出用于执行存储操作的改进方法;图5a、图5b示出涉及图3和图4的改进方法的流程图;图6示出另一种改进方法;图7示出示例性处理器。详细描述设计人员日益寻求扩展特定处理器或系统内的处理单元的能力。这样,设计人员经常向处理单元添加“推测”。因为处理单元包括可执行一个或多个程序代码线程的逻辑电路,推测对应于处理单元“猜测”程序代码将采取哪个方向(例如,在条件分支指令时)的能力。在处理单元猜测到程序代码将采取哪个方向之后,处理单元继续沿着“猜测”路径执行指令。最终,处理单元确定猜测是否正确。如果猜测正确,处理单元继续沿着猜测路径执行程序代码。如果猜测不正确,处理单元将其内部状态信息“回退”到猜测点。处理单元继续从不正确的猜测点沿着正确的路径执行程序代码。图3示出用于推测性地执行代码的改进进程。如图3所示,改进进程将两个进程集成到在读(也称为“加载”)情况下处于Μ状态下的高速缓存行的访问中。当从高速缓存303读取2该高速缓存行并且识别到该高速缓存行处于Μ状态下时,存在逻辑电路310:i)在将其提供给请求处理单元3a之前将该高速缓存行从Μ状态转变到E状态;以及ii)自动地将该高速缓存行输入3b到写缓冲器305中。在此,值得注意的是一旦进入推测范围的执行已经开始并且推测性代码访问处于Μ状态下的高速缓存行且可能改变该高速缓存行的数据,必须保存该高速缓存行的数据。如果该高速缓存行的数据未被保存并且推测性代码改变了该高速缓存行内的数据,机器将不能在猜测点回退到其内部状态(因为在那点处该数据的针对高速缓存行的地址的唯一副本(如由其处于Μ状态下所指示的)稍后由推测性代码修改)。在实施例中,将该高速缓存行输入3a到写缓冲器305中致使将该高速缓存行保存在更深的高速缓存级别306或系统存储器304中。以此方式保存该高速缓存行本质上在非推测性操作结束的时刻为该高速缓存行的相关联系统存储器地址保存该数据的状态。如果机器稍后确定其猜测错误,机器可通过引用已经刚刚被保存的数据返回在针对该系统存储器地址的不正确猜测点处的其状态。值得注意的是,认为图3的方法在可并发(同时)执行将该高速缓存行的数据输入3b到写缓冲器305中并且将其保存到更深的存储设备306/304的过程的意义上增强性能,其中将该高速缓存行提供3a给请求处理单元301_1和/或处理单元使用该高速缓存行内的数据。例如,在一个实施例中,该数据在与该数据被输入写缓冲器305内的相同周期内呈现给请求处理单元301_1。该数据随后可由请求处理单元301_1操作,包括由请求处理单元(或者甚至随后可访问该高速缓存行的其他处理单元)改变同时该高速缓存行的原始数据处于迀移通过写缓冲器305到其在更深高速缓存306或系统存储器304内的存储位置的过程中。这样,从请求处理单元301_1的角度而言,高速缓存行访问进程内部不存在明显延迟,即使该高速缓存行内的数据需要被保存到更深存储306/304,因为处理单元301_1正在执行推测性代码。推测性代码因此可在访问时间方面与非推测性代码基本上本文档来自技高网...

【技术保护点】
一种处理器,包括:a)多个处理核;b)通信地耦合到所述处理核的高速缓存,所述高速缓存用于存储高速缓存行;c)与所述高速缓存相关联的逻辑电路,用于响应于来自所述处理核中的一个处理核的被指引到所述高速缓存的标识高速缓存行的请求,为事务性操作执行以下内容:读取所述高速缓存行,并且如果所述高速缓存行处于经修改高速缓存一致性协议状态下,将所述高速缓存行转发到将致使将所述高速缓存行写入更深的存储设备的电路,以及将所述高速缓存行的可由所述处理核用于所述事务性操作的另一个实例改变到专用高速缓存一致性状态。

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

【专利技术属性】
技术研发人员:R·拉吉瓦尔R·查普尔张忠英J·贝赛特
申请(专利权)人:英特尔公司
类型:发明
国别省市:美国;US

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

1
相关领域技术
  • 暂无相关专利