CN102591800A - 一种弱一致性存储模型的数据访存系统和方法 - Google Patents
一种弱一致性存储模型的数据访存系统和方法 Download PDFInfo
- Publication number
- CN102591800A CN102591800A CN2011104605796A CN201110460579A CN102591800A CN 102591800 A CN102591800 A CN 102591800A CN 2011104605796 A CN2011104605796 A CN 2011104605796A CN 201110460579 A CN201110460579 A CN 201110460579A CN 102591800 A CN102591800 A CN 102591800A
- Authority
- CN
- China
- Prior art keywords
- cache
- processor
- cache layer
- state
- data
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Landscapes
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本发明公开一种弱一致性存储模型的数据访存系统和方法。该数据访存系统包括至少两个处理器,与所述每个处理器连接的包括至少一作为私有缓存的第一缓存层,以及至少一作为共享缓存的第二缓存层,所述第一缓存层通过片上网络与所述第二缓存层连接;所述片上网络包括一致性访存控制模块,用于在处理器间进行访存操作时,控制所述私有缓存和共享缓存在不同访存请求下的状态转换;请求应答模块,用于通过片上网络在所述私有缓存和共享缓存之间传递状态转换的请求和应答数据包。其有效避免了侦听方法只能基于共享总线结构的缺陷,同时减少了目录方法中庞大的片上网络(NOC)通信开销,防止了目录方法所带来的存储空间的浪费,增强了系统的可扩展性。
Description
技术领域
本发明涉及共享存储系统数据存取技术领域,特别是涉及片上网络(Network onChip,NOC)共享存储中的存储一致性模型(Memory consistent model)和缓存(cache)一致性协议(Cache coherent protocol)的数据存取技术领域,尤其是涉及一种针对无数据竞争(Data Race Free,DRF)程序的基于弱一致性模型的无目录缓存(cache)一致性协议的数据访存系统和方法。
背景技术
随着现代多核共享存储系统的研究发展,现有技术中存在多种存储一致性模型(Memory consistent model)共享存储系统,包括顺序一致性模型(SequentialConsistency)共享存储系统等。
存储一致性模型描述的是程序在执行过程中存储操作正确性的问题。存储操作包括读操作和写操作,每一操作又可以用两个时间点界定:发出(Invoke)和响应(Response)。在假定没有流水线的情况下(即单个处理器内指令的执行是按顺序执行的),设系统内共有N个处理器,每个处理器可发出sn(0<n≤N)个存储操作(读或写),那么总共有:种可能的执行顺序。存储一致性模型描述的就是这些操作可能的执行顺序中那些是正确的。
存储一致性通过限制访存事件的次序来保证并行程序在共享存储系统中的正确执行,即读操作应该获得该次操作之前最近一次对数据的写更新,写操作对数据的修改能被随后的读操作看到。
顺序一致性模型共享存储系统被普遍认为是判断一个并行执行是否正确的标准,在该模型中,任一处理器都严格按照访存指令在进程中出现的次序执行访存指令,且在当前访存指令彻底完成之前不能开始执行下条访存指令。
但是顺序一致性对于程序的限制过于严格,导致系统性能不好,在实际系统中很少用到,为了放松对访存事件发生次序的限制,人们提出很多限制更弱的一致性,其中最为常用的一种是弱一致性(Weak Consistency)模型共享存储系统。该模型共享存储系统要求用同步操作把对于共享数据的访问保护起来。弱一致性保证:同步操作的执行满足顺序一致性条件;普通访存不能越过同处理器中先于该访存的同步操作执行;同步操作的执行需要等待所有在同处理器中先于该同步操作的普通访存操作完成。弱一致性模型共享存储系统允许同步访存之间的普通访存操作以任意次序执行。
缓存(Cache)用于降低系统的访存延迟,在共享存储系统中占有重要地位。在多处理器中存在缓存(cache)一致性问题,为了保证同一地址在不同私有缓存(cache)以及共享缓存(cache)中的多个备份保持数据一致,人们提出了若干缓存(cache)一致性方法(Cache-coherent protocol)。
缓存(Cache)一致性方法的本质是把某个处理器新写的值传播给其他处理器以确保处理器看到一致的共享存储内容,是对某种存储一致性模型的具体实现。广泛使用的一致性方法包括基于目录的缓存(cache)一致性方法(目录方法)和基于侦听总线的无目录方法(侦听方法)。
在基本的缓存(cache)一致性方法中,缓存(cache)的每一行都有四种状态,即无效状态(INV)、共享状态(SHD)、独占状态(EXC)及修改状态(MOD)。
缓存(Cache)的无效状态(INV)表示该行数据无效,处理器的读写操作都不命中;
缓存(cache)行处于共享状态(SHD)表明可能有多个处理器拥有该行数据的有效备份;
缓存(cache)行处于独占状态(EXC)说明这是该缓存(cache)行唯一的有效备份;
处于修改状态(MOD)的缓存(cache)行表明该数据行已被某个处理器改写。
基于目录的缓存(cache)一致性方法在共享缓存(cache)的每行都保存一个目录项,该目录项记录所有当前持有此行备份的处理器号以及此行是否已被改写等信息。当一个处理器想要对一缓存(cache)行进行写操作且可能引起数据不一致时,它会主动根据目录的内客立即通过片上网络(Network on Chip,NOC)向持有此行数据备份的处理器发出无效或更新信号,从而防止其他想要读写该数据的处理器访问到旧的备份数据,引起数据不一致的问题。
基于侦听总线的无目录方法在一个处理器对共享数据的访存失效或可能引起数据不一致时,通过总线广播该事件给系统中的所有处理器,当其他处理器中的缓存(cache)包含该共享数据备份时,则根据侦听到的广播采取相应的维护一致性的行动,对本缓存(cache)中的备份无效或者向总线更新数据。
在程序中主要包括私有数据和共享数据。私有数据只有一个线程能对其进行访存操作,因而保持该数据的目录是无意义的,浪费了存储空间;共享数据可以由多个处理器进行访存操作,并且可能存在多个备份。
两个来自不同处理器的对同一共享数据进行的访存操作同时发生,并且其中至少有一个是写操作的情况称之为数据竞争(data race)。存在数据竞争的程序其执行常常具有不确定性,可能无法按照期望正确运行。因而一种方法是并行程序中不允许数据竞争的存在,其通过在两个对于同一共享数据的访存操作之间加上同步操作使其互斥来消除潜在的数据竞争,从而实现无数据竞争(DRF)程序的数据访存。
但是,基于目录的缓存(cache)一致性方法所需的目录存储器容量随着系统中处理器数目的增大而迅速提升,当处理器很多时,实现目录方法的开销变得很大,导致缓存(cache)的利用率降低;其次,该方法会随着每次写操作通过片上网络(NOC)向所有拥有该数据备份的处理器发出无效或更新操作,而其中大量操作并非必要的,这些额外的通信开销增加了片上网络(NOC)的负担,影响系统性能;此外,维护目录信息的复杂性也严重限制了系统的可扩展性。
而基于侦听总线的无目录方法虽然简单有效,避免了目录的存储开销,但是由于它需要广播,因而只适用于可扩展性差的共享总线结构;并且同样存在通信开销过大,严重影响系统性能的问题。
发明内容
本发明的目的在于针对无数据竞争(DRF)程序的数据访存而提供一种弱一致性存储模型的数据访存系统和方法,其有效避免了侦听方法只能基于共享总线结构的缺陷,同时减少了目录方法中庞大的片上网络(NOC)通信开销,防止了目录方法所带来的存储空间的浪费,增强了系统的可扩展性。
为实现本发明目的而提供的一种弱一致性存储模型的数据访存系统,包括至少两个处理器,与所述每个处理器连接的包括至少一作为私有缓存的第一缓存层,以及至少一作为共享缓存的第二缓存层,所述第一缓存层通过片上网络与所述第二缓存层连接;
所述片上网络,包括一致性访存控制模块、请求应答模块,其中:
所述一致性访存控制模块,用于在处理器间进行访存操作时,控制所述私有缓存和共享缓存在不同访存请求下的状态转换;
所述请求应答模块,用于通过片上网络在所述私有缓存和共享缓存之间传递状态转换的请求和应答数据包。
较优地,所述第一缓存层的数据结构包括数据域、标签域和状态位;
所述第二缓存层的数据结构包括数据域、标签域、状态位和独占域;
所述独占域,用于标记独占该缓存行数据的处理器号。
较优地,所述第一缓存层或第二缓存层的状态位的状态为:无效状态,或者共享状态,或者私有状态。
较优地,所述状态转换的请求和应答数据包,包括读失效、写失效、替换、共享读、独占写、应答、同步请求和应答数据包中的一种。
较优地,所述一致性访存控制模块包括初始化模块,用于在系统初始化时,对多个处理器第一缓存层和第二缓存层的各行状态进行复位,全部设置为无效状态;并且所有第二缓存层行的独占域值都为表示无独占处理器的预设值。
为实现本发明目的还提供一种弱一致性存储模型数据访存方法,在由多个处理器连接的包括至少一作为私有缓存的第一缓存层,通过片上网络与至少一作为共享缓存的第二缓存层之间进行缓存一致性访存操作,包括如下步骤:
在多个处理器间进行访存操作时,控制所述私有缓存和共享缓存在不同访存请求下的状态转换的步骤;
以及;
通过片上网络(NOC)在所述私有缓存和共享缓存之间传递状态转换的请求和应答数据包的步骤。
较优地,所述的弱一致性存储模型数据访存方法,还包括初始化步骤:
系统初始化时,对多个处理器第一缓存层和第二缓存层的各行状态进行复位,全部设置为无效状态,并且所有第二缓存层行的独占域值都为表示无独占处理器的预设值。
较优地,所述状态转换的请求和应答数据包,包括读失效、写失效、替换、共享读、独占写、应答、同步请求和应答数据包中的一种,其中:
所述读失效请求:是由第一缓存层发给第二缓存层的请求,表示在该处理器的第一缓存层发生了读失效,需要从第二缓存层读数据;
所述写失效请求:是由第一缓存层发给第二缓存层的请求,表示在该处理器的第一缓存层发生了写失效,包括对处于无效状态或共享状态缓存行的写操作;
替换请求:当处理器向第二缓存层发出替换请求时,用于替换第二缓存层中的一缓存行,若该缓存行处于私有状态,则先根据独占域从独占者处理器的第一缓存层取回该缓存行的最新备份,并将独占者处理器置为无效状态,然后把第二缓存层中的最新数据写回处理器的主存,把第二缓存层的缓存行置为无效状态;或者,当处理器只对第一缓存层中的缓存行进行替换时,若该缓存行处于私有状态,则先把最新备份写回第二缓存层,并将第二缓存层的相应行由私有状态置为共享状态,独占域值改为所述表示无独占处理器的预设值,然后将第一缓存层相应行状态位置为无效状态;当对第一缓存层或第二缓存层中处于无效状态或者共享状态的缓存行进行替换时,只需将其状态位统一置为无效即可,无其他特别操作;
共享读请求:是由第二缓存层发向独占域中处理器号所标记的处理器的请求,表示此时有其他处理器要对该数据进行读操作;
独占写请求:是由第二缓存层发给独占域中处理器号所标记的处理器的请求,表示此时有其他处理器要对该数据进行写操作,其中包含需要改写的数据包;
应答:是对于请求的应答,其中包含缓存行中的数据;
同步:同步操作。
较优地,所述状态转换,包括如下步骤:
当第一缓存层设置处于无效状态时,表明该行数据无效,对其的访存操作产生第一缓存层失效,处理器转发该访存操作到第二缓存层;
当第一缓存层设置处于共享状态时,表明该行数据在其他处理器的第一缓存层中还存在备份,对其的读操作产生第一缓存层命中,对其的写操作产生第一缓存层失效并转发该访存操作到第二缓存层,到同步信号点时,该缓存行状态由共享状态变为无效状态;
当第一缓存层设置处于私有状态时,表明该行数据由本处理器第一缓存层独占,对其的读写访存操作都会产生第一缓存层命中;当收到独占写请求时,根据请求中的数据包更新缓存行,发送应答并修改状态位为共享状态;当收到共享读请求时,只发送应答不改变状态;当收到替换请求时,发送应答给第二缓存层并置状态位为无效状态,并且第二缓存层相应缓存行状态由私有状态变为共享状态,独占域值改为所述表示无独占处理器的预设值;
当第二缓存层设置处于无效状态时,表明该行数据无效,对其的访存操作产生第二缓存层失效,转发该操作到处理器的主存的访存队列,此时独占域值为所述表示无独占处理器的预设值;如果访存为读操作,从处理器的主存中取回数据后状态位变为共享状态,独占域值保持为所述表示无独占处理器的预设值不变;如果访存为写操作,从主存中取回数据并根据写操作做相应修改后,状态位变为私有状态,独占域值改为发送该写操作的处理器号;
当第二缓存层设置处于共享状态时,表明该行数据可能在多个处理器的第一缓存层中存在备份,不被任何第一缓存层独占,此时独占域值为所述表示无独占处理器的预设值;如果访存为读操作,产生第二缓存层命中,状态位及独占域值都保持不变;如果访存为写操作,产生第二缓存层命中,状态位变为私有状态,独占域值改为发送该写请求的处理器号;
当第二缓存层设置处于私有状态,表明有且仅有一个处理器的第一缓存层独占该行数据,独占域值为该处理器号,对其的读写访存操作都会产生第二缓存层命中;如果访存为读操作,第二缓存层发送共享读请求给独占者处理器,并且转发独占者处理器返回的应答给发送读操作的请求者处理器;如果访存为写操作,第二缓存层发送独占写请求给独占者处理器,其中包含新的数据包,并且转发独占者处理器返回的应答给发送写操作的请求者处理器,然后独占域值更新为该请求者处理器的处理器号;如果第二缓存层收到替换请求,第二缓存层发送替换请求给相应独占者处理器,等待随后由独占者处理器发送的应答并更新相应数据,将数据写回处理器的主存,状态位设置为失效,独占域值置为所述表示无独占处理器的预设值;如果第二缓存层收到独占者处理器第一缓存层被替换时发来的应答数据包,根据数据包更新数据,状态位设置为共享状态,独占域值置为所述表示无独占处理器的预设值。
本发明的有益效果是:本发明的一种弱一致性存储模型的数据访存系统和方法,避免了基于侦听总线的无目录方法(侦听方法)只能基于共享总线结构的缺陷,适用于可扩展性更高的基于片上网络(NOC)的分布式系统;消除了基于目录的缓存(cache)一致性方法(目录方法)所带来的存储空间的浪费,提高了缓存(cache)利用率;并且由于其不需要发出大量对数据备份的无效请求或者向总线发出广播,减少了片上网络(NOC)的通信开销,有效提升了系统性能。其实现起来简单有效,更有利于系统的扩展。
附图说明
图1为本发明实施例的弱一致性存储模型的数据访存系统结构示意图;
图2为本发明实施例的一级缓存(L1 cache)行结构示意图;
图3为本发明实施例的二级缓存(L2 cache)行结构示意图;
图4为本发明实施例的一级缓存(L1 cache)状态转化示意图;
图5为本发明实施例的二级缓存(L2 cache)状态转化示意图;
图6为本发明实施例以无数据竞争(DRF)程序段为例实现弱一致性存储模型的数据访存过程示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚透彻,以下结合附图及实施例,对本发明的一种弱一致性存储模型的数据访存系统和方法进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
如图1所示,本发明实施例的一种弱一致性存储模型数据访存系统,包括至少两个处理器1,与所述每个处理器1连接的包括至少一作为私有缓存的第一缓存层2,以及至少一作为共享缓存的第二缓存层4,所述第一缓存层2通过片上网络(NOC)3与所述第二缓存层4连接。
所述片上网络3,包括一致性访存控制模块31、请求应答模块32,其中:
所述一致性访存控制模块31,用于在处理器1间进行访存操作时,控制所述私有缓存和共享缓存在不同访存请求下的状态转换;
请求应答模块32,用于在所述私有缓存和共享缓存之间传递状态转换的请求和应答数据包。
所述一致性访存控制模块31设置或者改写所述作为私有缓存的第一缓存层2和/或作为共享缓存的第二缓存层4的状态,并通过请求应答模块32将请求和应答数据包传递给其他缓存层或者其他处理器的其他缓存层,并由所述一致性访存控制模块31控制根据所述请求和应答数据包设置或者改写所述私有缓存或者共享缓存的状态从而实现缓存一致性;
较佳地,其中,如图2所示,所述第一缓存层的数据结构保持不变,同现有技术中一样,其仍然包括数据域(Data)、标签域(Tag)和状态位(State);
如图3所示,所述第二缓存层的数据结构除包括数据域(Data),标签域(Tag)和状态位(State)外,还包括一独占域(owner);
所述独占域(owner),用于标记独占该缓存行数据的处理器号(reqid);
本发明的实施例中,预先设置了一个与各处理器号不同的数值表示没有独占缓存行数据的处理器。较佳地,在本发明实施例中,预设“-1”表示无独占处理器。
较佳地,在本发明实施例中,作为一种可实施方式,所述第一缓存层或第二缓存层的状态位(State)的状态为:无效状态(INV),或共享状态(SHD),或私有状态(OWN)。
所述状态转换的请求和应答数据包,包括读失效(RD)、写失效(WR)、替换(REPL)、共享读(RD_SHD)、独占写(WR_OWN)、应答(ACK_DATA)、同步(SYNC)请求和应答数据包中的一种。
较佳地,本发明实施例的弱一致性存储模型数据访存系统,所述一致性访存控制模块31还包括初始化模块33,用于在系统初始化时,对多个处理器第一缓存层和第二缓存层的各行状态进行复位,全部设置为无效状态;并且所有第二缓存层行的独占域(owner)值都为“-1”,表示无独占处理器。
下面详细说明本发明实施例的弱一致性存储模型数据访存系统工作过程。
在本发明实施例中,作为一种可实施方式,将第一缓存层设为一级缓存(Level 1Cache,L1 Cache);将第二缓存层设为二级缓存((Level 2 Cache,L2 cache)进行说明。
作为一种可实施方式,本发明实施例的弱一致性存储模型数据访存系统,其共享数据缓存一致性访存包括请求和应答数据包的传递以及私有缓存(cache)和共享缓存(cache)在不同访存请求下的状态转换。为方便描述说明,本发明实施例以P0,P1两个处理器,且包含一级缓存(L1 cache)和二级缓存(L2 cache)两级结构对本发明具体实施方式进行描述,但是其并不是对本发明保护范围的限制。显然,本发明也可以扩展到包含更多处理器以及更多缓存(cache)层次结构的系统里,例如在一个包含三层缓存(cache)结构的系统中一般一级缓存(L1 cache)和二级缓存(L2 cache)都为各处理器的私有缓存(cache),三级缓存(L3 cache)为共享缓存(cache),在这种情况下二级缓存(L2 cache)实际上是一级缓存(L1 cache)的扩展,其实现方式与本发明实施例中的一级缓存作为第一缓存层的结构没有太大差别,因此不在此具体说明,但是都应该视为包含在本发明保护范畴里。
在本发明实施例中,作为一种可实施方式,以两层缓存(cache)结构作为例子来说明本发明实施例无数据竞争程序的共享数据缓存一致性访存系统,其中一级缓存(L1cache)为私有缓存(cache),二级(Level 2,L2)缓存(cache)为共享缓存(cache)。显然,本发明也可以扩展到更多层次的缓存(cache)结构中。
对于由同步操作保证的无数据竞争(DRF)程序,在两个同步点间对同一共享数据的访存操作包括两种情况:
1)只有一个处理器读写该数据(至少一个写操作),则在此期间该数据实际上可视为只被本处理器占有的私有数据,称这个处理器为独占者(owner)处理器,用reqid表示其处理器号;
2)两个同步点间没有处理器对该数据进行写操作,但是有多个处理器会对此数据进行读操作,则该数据视为共享数据。
本发明在二级缓存(L2 cache)行中取消了用于保存目录的数据域,增加独占域(owner)作为一标记位,用于标记独占该缓存行数据的处理器号(reqid)。其相比于传统的基于目录的缓存(cache)一致性方法,由于每个缓存(cache)行只需要保存一个拥有者,从而大大降低了存储开销,提高了缓存(cache)利用率。同时由于当存在对共享数据的写操作时,可以确信在下个同步点之前没有其他处理器会访问该数据,因此,没必要像目录方法一样在每次写操作时都主动向其他拥有该数据备份的处理器发送无效或更新请求,或者如侦听方法一样在每次可能引起数据不一致时都向总线广播该事件,从而大大降低了片上网络(NOC)的通信开销。由于写操作不再发送无效或更新请求,各处理器无法知道一级缓存(L1 cache)中处于共享状态(SHD)的数据在同步期间是否被其他处理器修改,为了保证正确性,作为一种可实施方式,本发明实施例中,处理器在每个同步点将一级缓存(L1 cache)中的处于共享状态(SHD)缓存(cache)行改为无效状态(INV),由于各处理器可以主动采取措施来维护一致性,避免了侦听方法需要时刻侦听总线广播并采取相应行动的缺点。
在本发明中,一级缓存(L1 cache)的结构保持不变,仍然包含数据域(Data),标签域(Tag)和状态位(State);二级缓存(L2 cache)的结构比一级缓存(L1 cache)多一个独占域(owner)标记位。一级缓存(L1 cache)和二级缓存(L2 cache)的结构分别如图2,图3所示。
本发明实施例中还提供一种弱一致性存储模型数据访存方法,其由多个处理器连接的包括至少一作为私有缓存的第一缓存层,通过片上网络与至少一作为共享缓存的第二缓存层之间进行缓存一致性访存操作。包括如下步骤:
在多个处理器间进行访存操作时,控制所述私有缓存和共享缓存在不同访存请求下的状态转换的步骤;
以及;
通过片上网络(NOC)在所述私有缓存和共享缓存之间传递状态转换的请求和应答数据包的步骤。
较佳地,本发明实施例的弱一致性存储模型数据访存方法,还包括初始化步骤:系统初始化时,对多个处理器第一缓存层和第二缓存层的各行状态进行复位,全部设置为无效状态,并且所有第二缓存层行的独占域(owner)值都为“-1”,表示无独占处理器。
系统初始化时,对处理器P0,处理器P1的一级缓存(L1 cache)和二级缓存(L2cache)的各行状态进行复位,全部设置为无效状态(INV),并且所有二级缓存(L2 cache)行的独占(owner)域值都为“-1”。
较佳地,作为一种可实施方式,本发明实施例中,通过请求和应答数据包通过片上网络(NOC)在一级缓存(L1 cache)和二级缓存(L2 cache)间传递状态转换数据。
所述状态转换的请求和应答数据包,包括读失效(RD)、写失效(WR)、替换(REPL)、共享读(RD_SHD)、独占写(WR_OWN)、应答(ACK_DATA)、同步(SYNC)请求和应答数据包,其中:
读失效(RD)请求:由一级缓存(L1 cache)发给二级缓存(L2 cache)的请求,表示在该处理器的一级缓存(L1 cache)发生了读失效,需要从二级缓存(L2 cache)读数据;
写失效(WR)请求:由一级缓存(L1 cache)发给二级缓存(L2 cache)的请求,表示在该处理器的一级缓存(L1 cache)发生了写失效,包括对处于无效状态(INV)或共享状态(SHD)缓存行的写操作;
替换(REPL)请求:当处理器向二级缓存(L2 cache)发出替换请求(replace)时,用于替换二级缓存(L2 cache)中的一缓存(cache)行,若该缓存(cache)行处于私有状态(OWN),则先根据独占域(owner)从独占者处理器的一级缓存(L1 cache)取回该缓存(cache)行的最新备份,并将独占者处理器置为无效状态(INV),然后把二级缓存(L2 cache)中的最新数据写回处理器的主存(未示出),把二级缓存(L2 cache)行置为无效状态(INV);或者,当处理器只对一级缓存(L1 cache)的缓存(cache)行进行替换(replace)时,若该缓存(cache)行处于私有状态,则先把最新数据备份写回二级缓存(L2 cache),并将二级缓存(L2 cache)的相应行由私有状态(OWN)置为共享状态(SHD),独占域值改为“-1”,然后将一级缓存(L1 cache)相应行状态位置为无效状态(INV);当对一级缓存(L1 cache)或二级缓存(L2 cache)中处于无效状态(INV)或者共享状态(SHD)的缓存(cache)行进行替换(replace)时,只需将其状态位统一置为无效(INV)即可,无其他特别操作;
共享读(RD_SHD)请求:由二级缓存(L2 cache)发向独占域(owner)中处理器号(reqid)所标记的处理器的请求,表示此时有其他处理器要对该数据进行读操作;
独占写(WR_OWN)请求:由二级缓存(L2 cache)发给独占域(owner)中处理器号(reqid)所标记的处理器的请求,表示此时有其他处理器要对该数据进行写操作,其中包含需要改写的数据包(Data);
应答(ACK_DATA):对于请求的应答,其中包含缓存(cache)行中的数据;
同步(SYNC):同步操作。
在本发明实施例中,作为一种可实施方式,所述缓存(cache)的状态位(State)的状态为:无效状态(INV),共享状态(SHD),私有状态(OWN)。
所述状态转换,包括如下步骤:
当一级缓存(L1 cache)设置处于无效状态(INV)时,表明该行数据无效,对其的访存操作产生一级缓存(L1 cache)失效,处理器转发该访存操作到二级缓存(L2 cache);
当一级缓存(L1 cache)设置处于共享状态(SHD)时,表明该行数据在其他处理器的一级缓存(L1 cache)中还存在备份,对其的读操作产生一级缓存(L1 cache)命中,对其的写操作产生一级缓存(L1 cache)失效并转发该访存操作到二级缓存(L2 cache),到同步信号点时,该缓存(cache)行状态由共享状态(SHD)变为无效状态(INV);
当一级缓存(L1 cache)设置处于私有状态(OWN)时,表明该行数据由本处理器一级缓存(L1 cache)独占,对其的读写访存操作都会产生一级缓存(L1 cache)命中。当收到独占写(WR_OWN)请求时,根据请求中的数据包更新缓存(cache)行,发送应答(ACK_DATA)并修改状态位为共享状态(SHD);当收到共享读(RD_SHD)请求时,只发送应答(ACK_DATA)不改变状态;当收到替换(REPL)请求时,发送应答(ACK_DATA)给二级缓存(L2 cache)并置状态位为无效状态(INV),并且二级缓存(L2 cache)相应缓存(cache)行状态由私有状态(OWN)变为共享状态(SHD),独占域(owner)值改为“-1”;
当二级缓存(L2 cache)设置处于无效(INV)状态时,表明该行数据无效,对其的访存操作产生二级缓存(L2 cache)失效,转发该操作到处理器的主存(未示出)的访存队列,此时独占(owner)域值为“-1”。如果访存为读操作,从处理器的主存中取回数据后状态位变为共享状态(SHD),独占域(owner)值保持为“-1”不变;如果访存为写操作,从主存中取回数据并根据写操作做相应修改后,状态位变为私有状态(OWN),独占域(owner)值改为发送该写操作的处理器号(reqid);
当二级缓存(L2 cache)设置处于共享(SHD)状态时,表明该行数据可能在多个处理器的一级缓存(L1 cache)中存在备份,不被任何一级缓存(L1 cache)独占,此时独占域(owner)值为“-1”。如果访存为读操作,产生二级缓存(L2 cache)命中,状态位及独占域(owner)值都保持不变;如果访存为写操作,产生二级缓存(L2 cache)命中,状态位变为私有状态(OWN),独占域(owner)值改为发送该写请求的处理器号(reqid);
当二级缓存(L2 cache)设置处于私有状态(OWN),表明有且仅有一个处理器的一级缓存(L1 cache)独占该行数据,独占域(owner)值为该处理器号(reqid),对其的读写访存操作都会产生二级缓存(L2 cache)命中。如果访存为读操作,二级缓存(L2cache)发送共享读(RD_SHD)请求给独占者处理器,并且转发独占者处理器返回的应答(ACK_DATA)给发送读操作的请求者处理器;如果访存为写操作,二级缓存(L2 cache)发送独占写(WR_OWN)请求给独占者处理器,其中包含新的数据包,并且转发独占者处理器返回的应答(ACK_DATA)给发送写操作的请求者处理器,然后独占域(owner)值更新为该请求者处理器的处理器号(reqid);如果二级缓存(L2 cache)收到替换请求(REPL),二级缓存(L2 cache)发送替换请求(REPL)给相应独占者处理器,等待随后由独占者处理器发送的应答(ACK_DATA)并更新相应数据,将数据写回处理器主存,状态位设置为失效(INV),独占域值置为“-1”;如果二级缓存(L2 cache)收到独占者处理器一级缓存L1 cache)被替换时发来的应答(ACK_DATA)数据包,根据数据包更新数据,状态位设置为共享状态(SHD),独占(owner)域值置为“-1”。
一级缓存(L1 cache)和二级缓存(L2 cache)在本发明中的状态转换分别如图4,图5所示。
作为一种可实施方式,在写数据假共享时,由于一个缓存(cache)行往往包含多个数据,因此可能存在多个处理器同时对同一个缓存(cache)行的不同数据进行并不冲突的访存操作。该情况在本发明实施例中已经考虑到并且已经得到解决。在一个同步区间,如果一个处理器对一个缓存(cache)行进行写操作,发现此时二级缓存(L2 cache)已经处于私有状态(OWN),并且独占者(owner)是另一个处理器,由于程序已经保证无数据竞争(DRF),在一个同步区间里不可能有多个处理器对同一数据进行写操作,可以判定此时发生了写数据假共享。
本发明实施例中,所述二级缓存(L2 cache)把新写的数据合并到之前处理器号(reqid)所指的处理器的一级缓存(L1 cache)中,并在其一级缓存(L1 cache)中将状态修改为共享状态(SHD),然后在二级缓存(L2 cache)中将独占者(owner)域改为新的处理器号(reqid),并返回从前一个独占者(owner)处理器处带回的数据给新的独占者(owner)处理器。
数据假共享是指两个或多个被不同处理器访问的内容恰好是在存储器的同一块,使得几个处理器虽没有真正共享数据,却共享同一存储块。
下面以图6所示无数据竞争(DRF)程序段为例,进一步详细说明本发明的一种无数据竞争程序的共享数据缓存一致性访存系统和方法的实现。
在弱一致性模型数据访存系统中,允许同步操作之间的普通访存操作以任意次序执行,作为一种可实施方式,本发明实施例以无数据竞争(DRF)程序的缓存(Cache)一致性访存实现本发明实施例的弱一致性存储模型数据访存系统,保证无数据竞争(DRF)程序的正确执行。
在弱一致性存储模型数据访存系统中,通过区分同步操作和普通访存操作,用同步操作把对于共享数据的访问保护起来,以保证多个处理器对于写共享数据的访问是互斥的,实现无数据竞争(DRF)程序的共享数据的访存。
系统初始化时,对处理器P0,处理器P1的一级缓存(L1 cache)和二级缓存(L2cache)的各行状态进行复位,全部设置为无效状态(INV),并且所有二级缓存(L2 cache)行的独占(owner)域值都为“-1”。
无数据竞争程序运行一段时间后,缓存(cache)各行中存储着处于各种状态的数据。
设地址a在图6所示程序段之前由处理器P1独占,则地址a在处理器P0的一级缓存(L1 cache)的状态位是无效状态(INV);在处理器P1的一级缓存(L1 cache)的状态位是私有状态(OMN),在二级缓存(L2 cache)中的状态位为私有状态(OMN),独占域(owner)值为“1”,表示独占者为处理器P1。
设处理器P0在同步点SYNC1后对地址a进行写操作(store),在此期间处理器P1不会对地址a进行任何访存;由于在处理器P0中此时地址a处于无效状态(INV),发生处理器P0的一级缓存(L1 cache)写失效(WR),则转发写失效请求(WR)到二级缓存(L2 cache);二级缓存(L2 cache)处于私有状态(OMN),写操作命中,二级缓存(L2 cache)根据独占域(owner)值(reqid)转发独占写(WR_OWN)请求给处理器P1,其中包括处理器P0对地址a所写的数据;处理器P1收到独占写(WR_OWN)请求,将独占写(WR_OWN)中的数据包与自己之前所写数据进行合并后返回应答(ACK_DATA),并将状态由私有状态(OWN)改为共享状态(SHD);二级缓存(L2 cache)收到处理器P1的应答(ACK_DATA)后转发该应答给处理器P0,把独占域(owner)中的处理器号(reqid)改为“0”,表示现在独占者为处理器P0,状态位保持私有状态(OWN)不变;处理器P0收到应答(ACK_DATA)后,发生一级缓存(L1 cache)写命中,将地址a的数据更新,状态变为私有状态(OWN),处理器P0对地址a的写(store)操作完成。
设地址b在图6所示无数据竞争程序段处于共享状态(SHD),则地址b在处理器P0,处理器P1以及二级缓存(L2 cache)中的状态位都处于共享状态(SHD),且二级缓存(L2 cache)的独占域(owner)值为“-1”,没有独占者。
在同步点SYNC1和SYNC2之间没有处理器对地址b进行写操作,可以有多个处理器对其进行读操作(load)。由于在处理器P0,处理器P1中地址b处于共享状态(SHD),都发生读命中,状态位不变,二级缓存(L2 cache)的独占域(owner)值保持“-1”,处理器P0,处理器P1对地址b的读操作(load)完成。
设地址c在同步点SYNC2之前处于共享状态(SHD),按现有技术,由于在每个同步点处理器会无效各自一级缓存(L1 cache)中处于共享状态(SHD)的数据,则在同步点SYNC2后地址c在处理器P0、处理器P1的一级缓存(L1 cache)中都处于无效状态(INV),在二级缓存(L2 cache)中地址c的状态位为共享状态(SHD),独占域(owner)值为“-1”,表示没有独占者。
由于在处理器P0,处理器P1中地址c处于无效状态(INV),发生一级缓存(L1)读失效(RD),转发读失效(RD)请求给二级缓存(L2 cache);二级缓存(L2 cache)中地址b处于共享状态(SHD),发生读命中,返回应答(ACK_DATA)给处理器P0和处理器P1,状态位和独占域(owner)保持不变;处理器P0,处理器P1收到应答(ACK_DATA),读命中,地址c的状态由无效状态(INV)变为共享状态(SHD),处理器P0,处理器P1对地址c的读操作(load)完成。
同步点SYNC2之后处理器P0对地址b进行了写操作,此时在处理器P0的一级缓存(L1 cache)中,地址b由于处理器自身在同步点对处于共享状态(SHD)数据的无效操作,处于无效状态(INV),发生一级缓存(L1 cache)写失效(WR)请求,转发写失效(WR)请求给二级缓存(L2 cache);二级缓存(L2 cache)中地址b处于共享状态(SHD),发生写命中,按照写失效(WR)请求中的数据包修改数据,状态变为私有状态(OWN),并根据发送写失效(WR)请求的处理器号(reqid)修改独占域(owner)值为0;处理器P0修改一级缓存(L1 cache)中地址b的数据,状态位变为私有状态(OWN),处理器P0对地址b的写操作(store)完成。
同步点SYNC2之后处理器P1对地址a进行了读操作,此时地址a在处理器P1中处于无效状态(INV),发生一级缓存(L1 cache)读失效请求(RD),转发读失效请求(RD)给二级缓存(L2 cache);二级缓存(L2 cache)中地址a处于私有状态(OWN),独占域(owner)值为“0”,发生读命中,二级缓存(L2 cache)发送共享读(RD_SHD)请求给独占者处理器P0;处理器P0收到共享读(RD_SHD)请求,返回包含最新数据的应答(ACK_DATA),状态位保持私有状态(OWN)不变;二级缓存(L2 cache)收到处理器P0发送的应答(ACK_DATA),转发给处理器P1,不修改状态位和独占域(owner)值;处理器P1收到应答(ACK_DATA),由于无数据竞争(DRF)的保证,在下个同步点之前不会有其他处理器对地址a进行写操作,状态位置为共享状态(SHD),可以多次读写,处理器P1对地址a的读操作(load)完成。
以上只是本发明的部分实例,实际还有很多情况没有在此一一列举,但是都应视为本发明的一部分。
本发明的实施例的弱一致性存储模型的数据访存系统和方法,避免了基于侦听总线的无目录方法(侦听方法)只能基于共享总线结构的缺陷,适用于可扩展性更高的基于片上网络(NOC)的分布式系统;消除了基于目录的缓存(cache)一致性方法(目录方法)所带来的存储空间的浪费,提高了缓存(cache)利用率;并且由于其不需要发出大量对数据备份的无效请求或者向总线发出广播,减少了片上网络(NOC)的通信开销,有效提升了系统性能。
最后应当说明的是,很显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型。
Claims (9)
1.一种弱一致性存储模型的数据访存系统,包括至少两个处理器,与所述每个处理器连接的包括至少一作为私有缓存的第一缓存层,以及至少一作为共享缓存的第二缓存层,所述第一缓存层通过片上网络与所述第二缓存层连接;
其特征在于:
所述片上网络,包括一致性访存控制模块、请求应答模块,其中:
所述一致性访存控制模块,用于在处理器间进行访存操作时,控制所述私有缓存和共享缓存在不同访存请求下的状态转换;
所述请求应答模块,用于在所述私有缓存和共享缓存之间传递状态转换的请求和应答数据包。
2.根据权利要求1所述的弱一致性存储模型的数据访存系统,其特征在于,所述第一缓存层的数据结构包括数据域、标签域和状态位;
所述第二缓存层的数据结构包括数据域、标签域、状态位和独占域;
所述独占域,用于标记独占该缓存行数据的处理器号。
3.根据权利要求2所述的弱一致性存储模型的数据访存系统,其特征在于,所述第一缓存层或第二缓存层的状态位的状态为:无效状态,或者共享状态,或者私有状态。
4.根据权利要求3所述的弱一致性存储模型的数据访存系统,其特征在于,所述状态转换的请求和应答数据包,包括读失效、写失效、替换、共享读、独占写、应答、同步请求和应答数据包中的一种。
5.根据权利要求3或4所述的弱一致性存储模型的数据访存系统,其特征在于,所述一致性访存控制模块还包括初始化模块,用于在系统初始化时,对多个处理器第一缓存层和第二缓存层的各行状态进行复位,全部设置为无效状态;并且所有第二缓存层行的独占域值都为表示无独占处理器的预设值。
6.一种弱一致性存储模型数据访存方法,在由多个处理器连接的包括至少一作为私有缓存的第一缓存层,通过片上网络与至少一作为共享缓存的第二缓存层之间进行缓存一致性访存操作,其特征在于,包括如下步骤:
在多个处理器间进行访存操作时,控制所述私有缓存和共享缓存在不同访存请求下的状态转换的步骤;
以及;
在所述私有缓存和共享缓存之间传递状态转换的请求和应答数据包的步骤。
7.根据权利要求6所述的弱一致性存储模型数据访存方法,其特征在于,还包括初始化步骤:
系统初始化时,对多个处理器第一缓存层和第二缓存层的各行状态进行复位,全部设置为无效状态,并且所有第二缓存层行的独占域值都为表示无独占处理器的预设值。
8.根据权利要求6或7所述的弱一致性存储模型数据访存方法,其特征在于,所述状态转换的请求和应答数据包,包括读失效、写失效、替换、共享读、独占写、应答、同步请求和应答数据包中的一种,其中:
所述读失效请求:是由第一缓存层发给第二缓存层的请求,表示在该处理器的第一缓存层发生了读失效,需要从第二缓存层读数据;
所述写失效请求:是由第一缓存层发给第二缓存层的请求,表示在该处理器的第一缓存层发生了写失效,包括对处于无效状态或共享状态缓存行的写操作;
所述替换请求:当处理器向第二缓存层发出所述替换请求时,用于替换第二缓存层中的一缓存行,若该缓存行处于私有状态,则先根据独占域从独占者处理器的第一缓存层取回该缓存行的最新备份,并将独占者处理器置为无效状态,然后把第二缓存层中的最新数据写回处理器的主存,把第二缓存层的缓存行置为无效状态;或者,当处理器只对第一缓存层中的缓存行进行替换时,若该缓存行处于私有状态,则先把最新备份写回第二缓存层,并将第二缓存层的相应行由私有状态置为共享状态,独占域值改为所述表示无独占处理器的预设值,然后将第一缓存层相应行状态位置为无效状态;当对第一缓存层或第二缓存层中处于无效状态或者共享状态的缓存行进行替换时,只需将其状态位统一置为无效即可,无其他特别操作;
所述共享读请求:是由第二缓存层发向独占域中处理器号所标记的处理器的请求,表示此时有其他处理器要对该数据进行读操作;
所述独占写请求:是由第二缓存层发给独占域中处理器号所标记的处理器的请求,表示此时有其他处理器要对该数据进行写操作,其中包含需要改写的数据包;
所述应答:是对于请求的应答,其中包含缓存行中的数据;
所述同步:同步操作。
9.根据权利要求8所述的弱一致性存储模型数据访存方法,其特征在于,所述状态转换,包括如下步骤:
当第一缓存层设置处于无效状态时,表明该行数据无效,对其的访存操作产生第一缓存层失效,处理器转发该访存操作到第二缓存层;
当第一缓存层设置处于共享状态时,表明该行数据在其他处理器的第一缓存层中还存在备份,对其的读操作产生第一缓存层命中,对其的写操作产生第一缓存层失效并转发该访存操作到第二缓存层,到同步信号点时,该缓存行状态由共享状态变为无效状态;
当第一缓存层设置处于私有状态时,表明该行数据由本处理器第一缓存层独占,对其的读写访存操作都会产生第一缓存层命中;当收到独占写请求时,根据请求中的数据包更新缓存行,发送应答并修改状态位为共享状态;当收到共享读请求时,只发送应答不改变状态;当收到替换请求时,发送应答给第二缓存层并置状态位为无效状态,并且第二缓存层相应缓存行状态由私有状态变为共享状态,独占域值改为所述表示无独占处理器的预设值;
当第二缓存层设置处于无效状态时,表明该行数据无效,对其的访存操作产生第二缓存层失效,转发该操作到处理器的主存的访存队列,此时独占域值为所述表示无独占处理器的预设值;如果访存为读操作,从处理器的主存中取回数据后状态位变为共享状态,独占域值保持为所述表示无独占处理器的预设值不变;如果访存为写操作,从主存中取回数据并根据写操作做相应修改后,状态位变为私有状态,独占域值改为发送该写操作的处理器号;
当第二缓存层设置处于共享状态时,表明该行数据可能在多个处理器的第一缓存层中存在备份,不被任何第一缓存层独占,此时独占域值为所述表示无独占处理器的预设值;如果访存为读操作,产生第二缓存层命中,状态位及独占域值都保持不变;如果访存为写操作,产生第二缓存层命中,状态位变为私有状态,独占域值改为发送该写请求的处理器号;
当第二缓存层设置处于私有状态时,表明有且仅有一个处理器的第一缓存层独占该行数据,独占域值为该处理器号,对其的读写访存操作都会产生第二缓存层命中;如果访存为读操作,第二缓存层发送共享读请求给独占者处理器,并且转发独占者处理器返回的应答给发送读操作的请求者处理器;如果访存为写操作,第二缓存层发送独占写请求给独占者处理器,其中包含新的数据包,并且转发独占者处理器返回的应答给发送写操作的请求者处理器,然后独占域值更新为该请求者处理器的处理器号;如果第二缓存层收到替换请求,第二缓存层发送替换请求给相应独占者处理器,等待随后由独占者处理器发送的应答并更新相应数据,将数据写回处理器的主存,状态位设置为失效,独占域值置为“-1”;如果第二缓存层收到独占者处理器第一缓存层被替换时发来的应答数据包,根据数据包更新数据,状态位设置为共享状态,独占域值置为所述表示无独占处理器的预设值。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201110460579.6A CN102591800B (zh) | 2011-12-31 | 2011-12-31 | 一种弱一致性存储模型的数据访存系统和方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201110460579.6A CN102591800B (zh) | 2011-12-31 | 2011-12-31 | 一种弱一致性存储模型的数据访存系统和方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102591800A true CN102591800A (zh) | 2012-07-18 |
CN102591800B CN102591800B (zh) | 2015-01-07 |
Family
ID=46480487
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201110460579.6A Active CN102591800B (zh) | 2011-12-31 | 2011-12-31 | 一种弱一致性存储模型的数据访存系统和方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102591800B (zh) |
Cited By (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103294611A (zh) * | 2013-03-22 | 2013-09-11 | 浪潮电子信息产业股份有限公司 | 一种基于有限数据一致性状态的服务器节点数据缓存方法 |
CN103365776A (zh) * | 2013-06-28 | 2013-10-23 | 中国科学院计算技术研究所 | 基于确定性重放的并行系统弱一致性的验证方法和系统 |
CN103870395A (zh) * | 2014-03-04 | 2014-06-18 | 华为技术有限公司 | 一种目录维护方法及装置 |
WO2014187259A1 (zh) * | 2013-09-22 | 2014-11-27 | 中兴通讯股份有限公司 | 实现多核间缓存一致性的方法及装置 |
CN104679669A (zh) * | 2014-11-27 | 2015-06-03 | 华为技术有限公司 | 高速缓存cache存储器系统及访问缓存行cache line的方法 |
CN104778132A (zh) * | 2015-04-08 | 2015-07-15 | 浪潮电子信息产业股份有限公司 | 一种多核处理器目录缓存替换方法 |
CN105740164A (zh) * | 2014-12-10 | 2016-07-06 | 阿里巴巴集团控股有限公司 | 支持缓存一致性的多核处理器、读写方法、装置及设备 |
CN106326183A (zh) * | 2015-06-30 | 2017-01-11 | 龙芯中科技术有限公司 | 基于目录的缓存一致性的实现方法及装置 |
WO2017162192A1 (zh) * | 2016-03-25 | 2017-09-28 | 华为技术有限公司 | 多片多核处理器的缓存一致性操作方法及多片多核处理器 |
CN107688545A (zh) * | 2016-12-23 | 2018-02-13 | 北京国睿中数科技股份有限公司 | 高速缓存的一致性状态预置方法及系统 |
CN109840216A (zh) * | 2017-11-28 | 2019-06-04 | 华为技术有限公司 | 针对高速缓存的数据处理方法及相关元件、设备、系统 |
CN111788562A (zh) * | 2018-07-11 | 2020-10-16 | 华为技术有限公司 | 原子操作的执行方法及装置 |
CN112416259A (zh) * | 2020-12-04 | 2021-02-26 | 海光信息技术股份有限公司 | 数据访存方法和数据访存装置 |
CN113495854A (zh) * | 2020-04-03 | 2021-10-12 | 阿里巴巴集团控股有限公司 | 主机-设备系统中实现或管理缓存一致性的方法和系统 |
CN114238171A (zh) * | 2021-12-21 | 2022-03-25 | 海光信息技术股份有限公司 | 电子设备、数据处理方法和装置、计算机系统 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050021914A1 (en) * | 2003-07-22 | 2005-01-27 | Sung-Woo Chung | Multiprocessor system and method to maintain cache coherence |
JP2005189928A (ja) * | 2003-12-24 | 2005-07-14 | Nec Corp | マルチプロセッサシステム、マルチプロセッサシステムにおける一貫性制御装置及び一貫性制御方法 |
CN101523361A (zh) * | 2006-10-17 | 2009-09-02 | Arm有限公司 | 数据处理设备中对共享存储器的写访问请求的处理 |
CN101958834A (zh) * | 2010-09-27 | 2011-01-26 | 清华大学 | 支持高速缓存一致的片上网络系统及数据请求方法 |
-
2011
- 2011-12-31 CN CN201110460579.6A patent/CN102591800B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050021914A1 (en) * | 2003-07-22 | 2005-01-27 | Sung-Woo Chung | Multiprocessor system and method to maintain cache coherence |
JP2005189928A (ja) * | 2003-12-24 | 2005-07-14 | Nec Corp | マルチプロセッサシステム、マルチプロセッサシステムにおける一貫性制御装置及び一貫性制御方法 |
CN101523361A (zh) * | 2006-10-17 | 2009-09-02 | Arm有限公司 | 数据处理设备中对共享存储器的写访问请求的处理 |
CN101958834A (zh) * | 2010-09-27 | 2011-01-26 | 清华大学 | 支持高速缓存一致的片上网络系统及数据请求方法 |
Cited By (30)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103294611B (zh) * | 2013-03-22 | 2015-06-17 | 浪潮电子信息产业股份有限公司 | 一种基于有限数据一致性状态的服务器节点数据缓存方法 |
CN103294611A (zh) * | 2013-03-22 | 2013-09-11 | 浪潮电子信息产业股份有限公司 | 一种基于有限数据一致性状态的服务器节点数据缓存方法 |
CN103365776A (zh) * | 2013-06-28 | 2013-10-23 | 中国科学院计算技术研究所 | 基于确定性重放的并行系统弱一致性的验证方法和系统 |
CN103365776B (zh) * | 2013-06-28 | 2016-04-13 | 中国科学院计算技术研究所 | 基于确定性重放的并行系统弱一致性的验证方法和系统 |
CN104462007A (zh) * | 2013-09-22 | 2015-03-25 | 中兴通讯股份有限公司 | 实现多核间缓存一致性的方法及装置 |
CN104462007B (zh) * | 2013-09-22 | 2018-10-02 | 南京中兴新软件有限责任公司 | 实现多核间缓存一致性的方法及装置 |
WO2014187259A1 (zh) * | 2013-09-22 | 2014-11-27 | 中兴通讯股份有限公司 | 实现多核间缓存一致性的方法及装置 |
CN103870395A (zh) * | 2014-03-04 | 2014-06-18 | 华为技术有限公司 | 一种目录维护方法及装置 |
CN103870395B (zh) * | 2014-03-04 | 2017-08-04 | 华为技术有限公司 | 一种目录维护方法及装置 |
US10204052B2 (en) | 2014-03-04 | 2019-02-12 | Huawei Technologies Co., Ltd. | Directory maintenance method and apparatus |
CN104679669A (zh) * | 2014-11-27 | 2015-06-03 | 华为技术有限公司 | 高速缓存cache存储器系统及访问缓存行cache line的方法 |
US10114749B2 (en) | 2014-11-27 | 2018-10-30 | Huawei Technologies Co., Ltd. | Cache memory system and method for accessing cache line |
CN104679669B (zh) * | 2014-11-27 | 2018-04-27 | 华为技术有限公司 | 高速缓存cache存储器系统及访问缓存行cache line的方法 |
CN105740164A (zh) * | 2014-12-10 | 2016-07-06 | 阿里巴巴集团控股有限公司 | 支持缓存一致性的多核处理器、读写方法、装置及设备 |
CN105740164B (zh) * | 2014-12-10 | 2020-03-17 | 阿里巴巴集团控股有限公司 | 支持缓存一致性的多核处理器、读写方法、装置及设备 |
US10409723B2 (en) | 2014-12-10 | 2019-09-10 | Alibaba Group Holding Limited | Multi-core processor supporting cache consistency, method, apparatus and system for data reading and writing by use thereof |
CN104778132A (zh) * | 2015-04-08 | 2015-07-15 | 浪潮电子信息产业股份有限公司 | 一种多核处理器目录缓存替换方法 |
CN104778132B (zh) * | 2015-04-08 | 2018-02-23 | 浪潮电子信息产业股份有限公司 | 一种多核处理器目录缓存替换方法 |
CN106326183B (zh) * | 2015-06-30 | 2019-03-15 | 龙芯中科技术有限公司 | 基于目录的缓存一致性的实现方法及装置 |
CN106326183A (zh) * | 2015-06-30 | 2017-01-11 | 龙芯中科技术有限公司 | 基于目录的缓存一致性的实现方法及装置 |
WO2017162192A1 (zh) * | 2016-03-25 | 2017-09-28 | 华为技术有限公司 | 多片多核处理器的缓存一致性操作方法及多片多核处理器 |
CN107688545A (zh) * | 2016-12-23 | 2018-02-13 | 北京国睿中数科技股份有限公司 | 高速缓存的一致性状态预置方法及系统 |
CN107688545B (zh) * | 2016-12-23 | 2021-01-19 | 北京国睿中数科技股份有限公司 | 高速缓存的一致性状态预置方法及系统 |
CN109840216B (zh) * | 2017-11-28 | 2023-05-09 | 华为技术有限公司 | 针对高速缓存的数据处理方法及相关元件、设备、系统 |
CN109840216A (zh) * | 2017-11-28 | 2019-06-04 | 华为技术有限公司 | 针对高速缓存的数据处理方法及相关元件、设备、系统 |
CN111788562A (zh) * | 2018-07-11 | 2020-10-16 | 华为技术有限公司 | 原子操作的执行方法及装置 |
CN113495854A (zh) * | 2020-04-03 | 2021-10-12 | 阿里巴巴集团控股有限公司 | 主机-设备系统中实现或管理缓存一致性的方法和系统 |
CN112416259B (zh) * | 2020-12-04 | 2022-09-13 | 海光信息技术股份有限公司 | 数据访存方法和数据访存装置 |
CN112416259A (zh) * | 2020-12-04 | 2021-02-26 | 海光信息技术股份有限公司 | 数据访存方法和数据访存装置 |
CN114238171A (zh) * | 2021-12-21 | 2022-03-25 | 海光信息技术股份有限公司 | 电子设备、数据处理方法和装置、计算机系统 |
Also Published As
Publication number | Publication date |
---|---|
CN102591800B (zh) | 2015-01-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102591800A (zh) | 一种弱一致性存储模型的数据访存系统和方法 | |
US20170168939A1 (en) | Snoop filter for cache coherency in a data processing system | |
US8281079B2 (en) | Multi-processor system receiving input from a pre-fetch buffer | |
KR100641988B1 (ko) | 비대칭형 단일 칩 이종 멀티프로세서 컴퓨터 시스템, 공유 메모리의 직접 메모리 액세스를 아토믹 업데이트하는 방법, 및 아토믹 업데이트 장치 | |
TWI463318B (zh) | 快取一致性處理系統、快取記憶體,及其方法 | |
US9223717B2 (en) | Computer cache system providing multi-line invalidation messages | |
US8176259B2 (en) | System and method for resolving transactions in a cache coherency protocol | |
CN102929832B (zh) | 基于非写分配的高速缓存一致性的多核处理器数据传输系统 | |
US20050160238A1 (en) | System and method for conflict responses in a cache coherency protocol with ordering point migration | |
US20170192886A1 (en) | Cache management for nonvolatile main memory | |
TW200821832A (en) | Low-cost cache coherency for accelerators | |
IL232812A (en) | Enhance CPU operation for instruction sequences including checkpoint instructions | |
CN109240945A (zh) | 一种数据处理方法及处理器 | |
US20120137080A1 (en) | System and method for creating ordering points | |
JPH0950400A (ja) | マルチプロセッサシステム | |
KR101284969B1 (ko) | 정보 처리 장치, 메모리 제어 방법 및 메모리 제어 장치 | |
CN112955876A (zh) | 具有对写入操作的改进处理的用于数据处理网络的i/o相干请求节点 | |
US7143245B2 (en) | System and method for read migratory optimization in a cache coherency protocol | |
US20090292881A1 (en) | Distributed home-node hub | |
US10740233B2 (en) | Managing cache operations using epochs | |
US8145847B2 (en) | Cache coherency protocol with ordering points | |
CN108170544B (zh) | 面向数据无冲突程序的共享数据动态更新方法 | |
US6298419B1 (en) | Protocol for software distributed shared memory with memory scaling | |
US7620696B2 (en) | System and method for conflict responses in a cache coherency protocol | |
CN112416259B (zh) | 数据访存方法和数据访存装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CP03 | Change of name, title or address |
Address after: 100095 Building 2, Longxin Industrial Park, Zhongguancun environmental protection technology demonstration park, Haidian District, Beijing Patentee after: Loongson Zhongke Technology Co.,Ltd. Address before: 100190 No. 10 South Road, Zhongguancun Academy of Sciences, Haidian District, Beijing Patentee before: LOONGSON TECHNOLOGY Corp.,Ltd. |
|
CP03 | Change of name, title or address |