CN102063407B - 用于多核处理器的网络牺牲Cache及基于该Cache的数据请求方法 - Google Patents

用于多核处理器的网络牺牲Cache及基于该Cache的数据请求方法 Download PDF

Info

Publication number
CN102063407B
CN102063407B CN2010106210698A CN201010621069A CN102063407B CN 102063407 B CN102063407 B CN 102063407B CN 2010106210698 A CN2010106210698 A CN 2010106210698A CN 201010621069 A CN201010621069 A CN 201010621069A CN 102063407 B CN102063407 B CN 102063407B
Authority
CN
China
Prior art keywords
cache
request
catalogue
node
data block
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.)
Active
Application number
CN2010106210698A
Other languages
English (en)
Other versions
CN102063407A (zh
Inventor
王惊雷
汪东升
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Tsinghua University
Original Assignee
Tsinghua University
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Tsinghua University filed Critical Tsinghua University
Priority to CN2010106210698A priority Critical patent/CN102063407B/zh
Publication of CN102063407A publication Critical patent/CN102063407A/zh
Application granted granted Critical
Publication of CN102063407B publication Critical patent/CN102063407B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Memory System Of A Hierarchy Structure (AREA)

Abstract

本发明公开了一种用于多核处理器的网络牺牲Cache及基于该网络牺牲Cache的数据请求方法,该网络牺牲Cache设置于网络接口部件中,包括:牺牲Cache,用于存放从L1 Cache替换出来的数据块;活跃目录Cache,用于保存以及维护目录信息。本发明的网络牺牲Cache及数据请求方法能够加快L1 Cache缺失访问的速度,提高多核处理器的性能。

Description

用于多核处理器的网络牺牲Cache及基于该Cache的数据请求方法
技术领域
本发明涉及计算机系统结构技术领域,尤其涉及一种用于多核处理器的网络牺牲高速缓冲存储器(Cache)及基于该网络牺牲Cache的数据请求方法。
背景技术
商业和科学计算应用对大数据量的需求使共享L2 Cache结构在多核处理器(CMP)中得到了广泛应用,共享L2 Cache结构可以最大限度的利用片上Cache的容量并减少对片外存储器的访问,Piranha、Niagara、XLR和Power 5等商用处理器都采用共享L2 Cache结构。出于物理布局以及芯片制造的考虑,未来大规模多核处理器通常采用分片的结构,每片包含一个处理器内核、一个私有的L1 Cache、一个L2Cache Bank和一个路由器,这些片通过路由器连接到片上网络,其中物理分布的L2 Cache Bank通过地址交叉组成一个大容量的共享L2Cache。共享L2 Cache的多核处理器中一般采用基于目录的一致性协议来维护私有L1 Cache的一致性。
在共享L2 Cache的多核处理器中,目录分布在每个片的L2 CacheBank中,且通常包含在L2 Cache Bank的标签(Tag)阵列中。通过这种方式,L2 Cache为其每一个数据块保存一个目录向量,用以跟踪缓存该数据块的L1 Cache的位置,L1 Cache的缺失会引起对宿主节点L2Cache Bank的访问,查找目录信息,并执行相应的一致性操作。在共享L2 Cache的多核处理器中,目录访问延迟与L2 Cache Bank的访问延迟相同。
随着多核处理器规模的扩大,目录的存储开销会随着处理器核的数目和L2 Cache的大小线性增加,将消耗宝贵的片上资源,严重影响多核处理器的扩展性。以全目录为例,当L2 Cache中数据块的大小为64字节时,16核多核处理器的目录存储开销占L2 Cache的3%;当多核处理器的核数增加到64核时,目录存储开销增加到12.5%;进一步增加多核处理器的核数到512核时,目录存储开销增加到100%。目录会消耗大量的片上Cache资源,严重影响多核处理器的可用性。
实际上,在多核处理器运行过程时,L2 Cache中只有很小一部分数据被缓存在L1 Cache中,只有这部分数据的目录向量中记录着L1Cache的位置信息,其他数据的目录向量是空的。在最坏的情况下,L2 Cache中使用的目录向量的数目等于L1 Cache所能容纳的数据块的数目。由于L1 Cache的容量远小于L2 Cache的容量,大部分的目录向量处于空闲状态,目录的利用率很低,大量目录存储空间被浪费了。
活跃目录结构取消了L2 Cache中的目录结构,减小了目录存储空间,提高了目录访问速度,也能满足绝大部分的目录访问请求,加快一部分L1 Cache缺失访问的速度。随着处理器规模的扩大,L1 Cache缺失访问的延迟越来越大,而活跃目录Cache结构节省的L2 Cache访问延迟占L1 Cache缺失访问延迟的比例会越来越小,其性能优势会降低,性能的扩展性不好。如果减少L1 Cache到宿主节点的缺失访问请求的数目,则可以降低L1 Cache缺失访问的延迟,提高系统的性能,且扩展性比单纯降低单次L1 Cache缺失访问延迟更具优势。
发明内容
(一)要解决的技术问题
本发明所要解决的技术问题是:如何加快L1 Cache缺失访问的速度,提高多核处理器的性能。
(二)技术方案
为解决上述问题,本发明提供了一种用于多核处理器的网络牺牲Cache,设置于网络接口部件中,该网络牺牲Cache包括:牺牲Cache,用于存放从L1 Cache替换出来的数据块;活跃目录Cache,用于保存以及维护目录信息。
其中,所述活跃目录Cache进一步包括:目录存储部件,为Cache结构,Cache行由地址标签、目录状态、以及目录向量组成;目录控制器,用于维护所述目录存储部件中每一个Cache行的目录状态以及目录向量;L2 Cache接口,为所述活跃目录Cache与L2 Cache的接口。
本发明还提供了一种基于上述用于多核处理器的网络牺牲Cache的数据请求方法,其特征在于,该方法包括步骤:
当接收到L1 Cache的替换请求时,牺牲Cache为请求的地址分配一个Cache行,保存要替换的数据块,将分配的Cache行的目录状态设为共享状态,并向L1 Cache返回替换回应信号;
当接收到L1 Cache的写回请求时,牺牲Cache为请求的地址分配一个Cache行,保存要写回的数据块,将分配的Cache行的目录状态设为修改状态,并向L1 Cache返回写回回应信号;
当接收到L1 Cache的读请求时,查找牺牲Cache,若请求的地址存在且其所在Cache行的目录状态为共享状态,则向L1 Cache返回请求的数据块,并把该地址从牺牲Cache中删除;若请求的地址存在且其所在的Cache行的目录状态为修改状态,则向L1 Cache返回请求的数据块,标识该数据块为脏数据,并将该地址从牺牲Cache中删除;若请求的地址不存在或处于无效状态,则把所述读请求转发给宿主节点;
当接收到L1 Cache的写请求时,查找牺牲Cache,若请求的地址存在且其所在的Cache行的目录状态为共享状态,则把该地址从牺牲Cache中删除,把所述写请求转发给宿主节点;若请求的地址存在且其所在的Cache行的目录状态为修改状态,则向L1 Cache返回写授权以及请求的数据块,并把该地址从牺牲Cache中删除;若该请求的地址不存在或处于无效状态,则把所述写请求转发给宿主节点;
当接收到来自宿主节点的无效请求时,查找牺牲Cache,若请求的地址所在的Cache行的目录状态为共享状态,则把该Cache行从牺牲Cache中删除,并向宿主节点返回无效回应消息;若请求的地址所在的Cache行的目录状态为修改状态,则把该Cache行从牺牲Cache中删除,并向宿主节点返回相应的数据块;若请求的地址不存在或处于无效状态,则把所述无效请求转发给处理器;
当牺牲Cache由于容量冲突必须进行替换时,若要替换的Cache行的目录状态为共享状态,则向宿主节点发出替换请求,接收到宿主节点的替换回应信号后,将所述Cache行从牺牲Cache中删除;若要替换的Cache行的目录状态为修改状态,则向宿主节点发出写回请求,接收到宿主节点的写回回应信号后,将所述Cache行从牺牲Cache中删除。
其中,所有处理器的读写缺失请求都引发对宿主节点L2 Cache的访问,这些访问由目录控制器捕获,所述目录控制器首先查找活跃目录Cache中的目录信息,然后根据请求的类型决定是否向本地L2Cache发送读写请求。
其中,当请求为读请求时:
如果活跃目录Cache命中,在目录向量中加入请求节点的位置,如果命中的Cache行的目录状态为共享状态,则向本地L2 Cache发出读数据请求,得到L2 Cache的数据回应后,将请求的数据块转发给请求节点,完成读操作;如果命中的Cache行的目录状态为修改状态,则向拥有该数据块的共享节点发出降级写回请求,目录控制器接收到写回的数据时,将写回的数据块转发给请求节点,并把该数据块写回本地L2 Cache,目录状态变为修改状态;如果活跃目录Cache缺失,则在活跃目录Cache中添加目录项,然后向本地L2 Cache发出读请求,得到L2 Cache的数据回应后,把请求的数据块转发给请求节点,目录状态变为共享状态。
其中,当请求为写请求时:
如果活跃目录Cache命中且命中的Cache行的目录状态为共享状态,则向所有共享节点发出无效信号,并向本地L2 Cache发出读请求,目录控制器收集到所有的无效回应消息后,将相应的节点位置从目录向量中删除,把从本地L2 Cache返回的数据块回应转发给请求节点,把目录状态改变为修改状态,在目录向量中加入请求节点的位置;如果命中的Cache的目录状态为修改状态,则向共享节点发出无效并写回请求,目录控制器收到写回的数据块时,相应的节点位置从目录向量中删除,把数据块转发给请求节点,在目录向量中加入请求节点的位置;如果活跃目录Cache未命中,则在活跃目录Cache中添加目录项,向本地L2 Cache发出读请求,得到本地L2 Cache的数据回应后,把请求的数据块转发给请求节点,目录状态变为修改状态,在目录向量中加入请求节点的位置。
其中,当请求为替换请求时:
将相应的节点位置从目录向量中删除,并向请求节点返回替换回应信号;如果请求的地址是唯一的共享节点,则把该目录向量从活跃目录Cache中删除。
其中,当请求为写回请求时:
将相应的节点位置从目录向量中删除,把要写回的数据块写回到本地L2 Cache,并向请求节点返回写回回应信号,把该目录向量从活跃目录Cache中删除。
其中,当活跃目录Cache由于容量冲突而发生替换时,进行替换操作:向所有共享节点发出无效请求,如果目录状态为共享状态,则目录控制器收集到所有的无效回应后,把该目录向量从活跃目录Cache中删除;如果目录状态为修改状态,则目录控制器收到写回的数据块后,把该数据块写回到本地L2 Cache中,然后删除该目录向量。
其中,当接收到本地L2 Cache的无效请求时,如果活跃目录Cache不命中,则直接向本地L2 Cache返回无效回应信号;如果活跃目录Cache命中,则进行活跃目录Cache的替换操作,替换操作完成后,向本地L2 Cache返回无效回应信号或写回信号,把目录向量从活跃目录Cache中删除。
(三)有益效果
本发明的用于多核处理器的网络牺牲Cache结构是在网络接口部件中增加一个牺牲Cache,存放从L1 Cache替换出来的数据。根据数据的局部性原理,从L1 Cache替换出来的数据通常会被再次访问。后续对该地址的访问可以在牺牲Cache中得到满足,从而减少到宿主节点的缺失访问请求的数目,降低了L1 Cache缺失访问延迟。在网络牺牲Cache结构中,目录信息由网络接口部件中的活跃目录Cache维护,L2 Cache中不保存和维护目录信息,提高了目录的使用效率,减少了目录的浪费。实验结果表明,在采用网络牺牲Cache结构的16核处理器中,系统的性能平均提高了24%,系统的存储开销降低了1%。网络牺牲Cache通过减少远程访问来提高系统的性能,随着处理器规模的扩大,其性能优势会更加显著。。
附图说明
图1为依照本发明一种实施方式的用于多核处理器的网络牺牲Cache结构示意图;
图2为依照本发明一种实施方式的基于图1的网络牺牲Cache的数据请求方法示意图。
具体实施方式
对于本发明所提出的用于多核处理器的网络牺牲Cache及基于该网络牺牲Cache的数据请求方法,结合附图和实施例详细说明。
本发明提供了一种用于多核处理器的网络牺牲Cache结构,在网络接口部件中增加一个牺牲Cache(Victim Cache),存放从L1 Cache替换出来的数据。根据数据的局部性原理,从L1 Cache替换出来的数据通常会被再次访问。后续对该地址的访问可以在牺牲Cache中得到满足,从而减少到宿主节点的缺失访问请求的数目,降低L1 Cache缺失访问的延迟,提高多核处理器的性能。目录信息由网络接口中的活跃目录Cache维护,L2 Cache中不再保存和维护目录信息,目的是降低片上目录存储开销。
如图1所示,依照本发明一种实施方式的用于多核处理器的网络牺牲Cache,该网络牺牲Cache设置于网络接口部件中,包括:
牺牲Cache,用于存放从L1 Cache替换出来的数据块;L1 Cache的缺失访问请求经过网络接口部件时,首先查找牺牲Cache,如果请求能够满足,则把数据返回给处理器,并把数据块从牺牲Cache中删除。
活跃目录Cache,用于保存以及维护目录信息,进一步包括:目录存储部件、目录控制器、以及L2 Cache接口。
目录存储部件,为Cache结构,Cache行由地址标签、目录状态、以及目录向量组成;目录向量的目的是跟踪缓存该地址的私有Cache的位置。目录向量中为每一个包含私有L1 Cache的处理器核保留一个共享位。
目录控制器的作用是维护目录存储部件中每一个Cache行的目录状态和目录向量。处理器的读写缺失请求都会引发对宿主节点L2Cache的访问,这些访问被网络接口上的目录控制器捕获。目录控制器首先查找活跃目录Cache中的目录信息,然后根据请求的类型决定是否向本地L2 Cache发送读写请求。
L2 Cache接口,为所述活跃目录Cache与L2 Cache的接口。处理器的读写缺失请求在访问活跃目录Cache后,把必要的L2 Cache读写请求通过L2 Cache接口发送给L2 Cache,把L2 Cache的回应信号返回给活跃目录Cache。
本发明还提供了一种基于上述用于多核处理器的网络牺牲Cache的路由方法,如图2所示,该方法包括步骤:
当接收到L1 Cache的替换请求时,牺牲Cache为请求的地址分配一个Cache行,保存要替换的数据块,将分配的Cache行的目录状态设为共享(S)状态,并向L1 Cache返回替换回应信号;
当接收到L1 Cache的写回请求时,牺牲Cache为请求的地址分配一个Cache行,保存要写回的数据块,将分配的Cache行的目录状态设为修改(M)状态,并向L1 Cache返回写回回应信号;
当接收到L1 Cache的读请求时,查找牺牲Cache,若请求的地址存在且其所在Cache行的目录状态为S,则向L1 Cache返回请求的数据块,并把该地址从牺牲Cache中删除,L1 Cache接收到该数据后把状态修改为修改(M)状态;若请求的地址存在且其所在的Cache行的目录状态为M,则向L1 Cache返回请求的数据块,标识该数据块为脏数据,并将该地址从牺牲Cache中删除;若请求的地址不存在或处于无效状态,则把所述读请求转发给宿主节点;
当接收到L1 Cache的写请求时,查找牺牲Cache,若请求的地址存在且其所在的Cache行的目录状态为S,则把该地址从牺牲Cache中删除,把所述写请求转发给宿主节点;若请求的地址存在且其所在的Cache行的目录状态为M,则向L1 Cache返回写授权以及请求的数据块,并把该地址从牺牲Cache中删除;若该请求的地址不存在或处于无效状态,则把所述写请求转发给宿主节点;
当接收到来自宿主节点的无效请求时,查找牺牲Cache,若请求的地址所在的Cache行的目录状态为S,则把该Cache行从牺牲Cache中删除,并向宿主节点返回无效回应消息;若请求的地址所在的Cache行的目录状态为M,则把该Cache行从牺牲Cache中删除,并向宿主节点返回相应的数据块;若请求的地址不存在或处于无效状态,则把所述无效请求转发给处理器;
当牺牲Cache由于容量冲突必须进行替换时,若要替换的Cache行的目录状态为S,则向宿主节点发出替换请求,接收到宿主节点的替换回应信号后,将所述Cache行从牺牲Cache中删除;若要替换的Cache行的目录状态为M,则向宿主节点发出写回请求,接收到宿主节点的写回回应信号后,将所述Cache行从牺牲Cache中删除。
所有处理器的读写缺失请求都引发对宿主节点L2 Cache的访问,这些访问由目录控制器捕获,所述目录控制器首先查找活跃目录Cache中的目录信息,然后根据请求的类型决定是否向本地L2 Cache发送读写请求。
当请求为读请求时:
如果活跃目录Cache命中,在目录向量中加入请求节点的位置,如果命中的Cache行的目录状态为S,则向本地L2 Cache发出读数据请求,得到L2 Cache的数据回应后,将请求的数据块转发给请求节点,完成读操作;如果命中的Cache行的目录状态为M,则向拥有该数据块的共享节点发出降级写回请求,目录控制器接收到写回的数据时,将写回的数据块转发给请求节点,并把该数据块写回本地L2 Cache,目录状态变为M;如果活跃目录Cache缺失,则在活跃目录Cache中添加目录项,然后向本地L2 Cache发出读请求,得到L2 Cache的数据回应后,把请求的数据块转发给请求节点,目录状态变为S。
当请求为写请求时:
如果活跃目录Cache命中且命中的Cache行的目录状态为共享状态,则向所有共享节点发出无效信号,并向本地L2 Cache发出读请求,目录控制器收集到所有的无效回应消息后,将相应的节点位置从目录向量中删除,把从本地L2 Cache返回的数据块回应转发给请求节点,把目录状态改变为M,在目录向量中加入请求节点的位置;如果命中的Cache的目录状态为M,则向共享节点发出无效并写回请求,目录控制器收到写回的数据块时,相应的节点位置从目录向量中删除,把数据块转发给请求节点,在目录向量中加入请求节点的位置;如果活跃目录Cache未命中,则在活跃目录Cache中添加目录项,向本地L2Cache发出读请求,得到L2 Cache的数据回应后,把请求的数据块转发给请求节点,目录状态变为M,在目录向量中加入请求节点的位置。
当请求为替换请求时:
将相应的节点位置从目录向量中删除,并向请求节点返回替换回应信号;如果请求的地址是唯一的共享节点,则把该目录向量从活跃目录Cache中删除。
当请求为写回请求时:
将相应的节点位置从目录向量中删除,把要写回的数据块写回到本地L2 Cache,并向请求节点返回写回回应信号,把该目录向量从活跃目录Cache中删除。
当活跃目录Cache由于容量冲突而发生替换时,进行替换操作:向所有共享节点发出无效请求,如果目录状态为S,则目录控制器收集到所有的无效回应后,把该目录向量从活跃目录Cache中删除;如果目录状态为M,则目录控制器收到写回的数据块后,把该数据块写回到本地L2 Cache中,然后删除该目录向量。
当接收到本地L2 Cache的无效请求时,如果活跃目录Cache不命中,则直接向本地L2 Cache返回无效回应信号;如果活跃目录Cache命中,则进行活跃目录Cache的替换操作,替换操作完成后,向本地L2 Cache返回无效回应信号或写回信号,把目录向量从活跃目录Cache中删除。
以上实施方式仅用于说明本发明,而并非对本发明的限制,有关技术领域的普通技术人员,在不脱离本发明的精神和范围的情况下,还可以做出各种变化和变型,因此所有等同的技术方案也属于本发明的范畴,本发明的专利保护范围应由权利要求限定。

Claims (8)

1.一种用于多核处理器的网络牺牲Cache的数据请求方法,其特征在于,该方法包括步骤:
当接收到L1 Cache的替换请求时,牺牲Cache为请求的地址分配一个Cache行,保存要替换的数据块,将分配的Cache行的目录状态设为共享状态,并向L1 Cache返回替换回应信号;
当接收到L1 Cache的写回请求时,牺牲Cache为请求的地址分配一个Cache行,保存要写回的数据块,将分配的Cache行的目录状态设为修改状态,并向L1 Cache返回写回回应信号;
当接收到L1Cache的读请求时,查找牺牲Cache,若请求的地址存在且其所在Cache行的目录状态为共享状态,则向L1 Cache返回请求的数据块,并把该地址从牺牲Cache中删除;若请求的地址存在且其所在的Cache行的目录状态为修改状态,则向L1 Cache返回请求的数据块,标识该数据块为脏数据,并将该地址从牺牲Cache中删除;若请求的地址不存在或处于无效状态,则把所述读请求转发给宿主节点;
当接收到L1 Cache的写请求时,查找牺牲Cache,若请求的地址存在且其所在的Cache行的目录状态为共享状态,则把该地址从牺牲Cache中删除,把所述写请求转发给宿主节点;若请求的地址存在且其所在的Cache行的目录状态为修改状态,则向L1 Cache返回写授权以及请求的数据块,并把该地址从牺牲Cache中删除;若该请求的地址不存在或处于无效状态,则把所述写请求转发给宿主节点;
当接收到来自宿主节点的无效请求时,查找牺牲Cache,若请求的地址所在的Cache行的目录状态为共享状态,则把该Cache行从牺牲Cache中删除,并向宿主节点返回无效回应消息;若请求的地址所在的Cache行的目录状态为修改状态,则把该Cache行从牺牲Cache中删除,并向宿主节点返回相应的数据块;若请求的地址不存在或处于无效状态,则把所述无效请求转发给处理器;
当牺牲Cache由于容量冲突必须进行替换时,若要替换的Cache行的目录状态为共享状态,则向宿主节点发出替换请求,接收到宿主节点的替换回应信号后,将所述Cache行从牺牲Cache中删除;若要替换的Cache行的目录状态为修改状态,则向宿主节点发出写回请求,接收到宿主节点的写回回应信号后,将所述Cache行从牺牲Cache中删除。
2.如权利要求1所述的数据请求方法,其特征在于,所有处理器的读写缺失请求都引发对宿主节点L2 Cache的访问,这些访问由目录控制器捕获,所述目录控制器首先查找活跃目录Cache中的目录信息,然后根据请求的类型决定是否向本地L2 Cache发送读写请求。
3.如权利要求2所述的数据请求方法,其特征在于,当请求为读请求时:
如果活跃目录Cache命中,在目录向量中加入请求节点的位置,如果命中的Cache行的目录状态为共享状态,则向本地L2 Cache发出读数据请求,得到L2 Cache的数据回应后,将请求的数据块转发给请求节点,完成读操作;如果命中的Cache行的目录状态为修改状态,则向拥有该数据块的共享节点发出降级写回请求,目录控制器接收到写回的数据时,将写回的数据块转发给请求节点,并把该数据块写回本地L2 Cache,目录状态变为修改状态;如果活跃目录Cache缺失,则在活跃目录Cache中添加目录项,然后向本地L2 Cache发出读请求,得到L2 Cache的数据回应后,把请求的数据块转发给请求节点,目录状态变为共享状态。
4.如权利要求2所述的数据请求方法,其特征在于,当请求为写请求时:
如果活跃目录Cache命中且命中的Cache行的目录状态为共享状态,则向所有共享节点发出无效信号,并向本地L2 Cache发出读请求,目录控制器收集到所有的无效回应消息后,将相应的节点位置从目录向量中删除,把从本地L2 Cache返回的数据块回应转发给请求节点,把目录状态改变为修改状态,在目录向量中加入请求节点的位置;如果命中的Cache的目录状态为修改状态,则向共享节点发出无效并写回请求,目录控制器收到写回的数据块时,相应的节点位置从目录向量中删除,把数据块转发给请求节点,在目录向量中加入请求节点的位置;如果活跃目录Cache未命中,则在活跃目录Cache中添加目录项,向本地L2 Cache发出读请求,得到本地L2 Cache的数据回应后,把请求的数据块转发给请求节点,目录状态变为修改状态,在目录向量中加入请求节点的位置。
5.如权利要求2所述的数据请求方法,其特征在于,当请求为替换请求时:
将相应的节点位置从目录向量中删除,并向请求节点返回替换回应信号;如果请求的地址是唯一的共享节点,则把该目录向量从活跃目录Cache中删除。
6.如权利要求2所述的数据请求方法,其特征在于,当请求为写回请求时:
将相应的节点位置从目录向量中删除,把要写回的数据块写回到本地L2 Cache,并向请求节点返回写回回应信号,把该目录向量从活跃目录Cache中删除。
7.如权利要求2所述的数据请求方法,其特征在于,当活跃目录Cache由于容量冲突而发生替换时,进行替换操作:向所有共享节点发出无效请求,如果目录状态为共享状态,则目录控制器收集到所有的无效回应后,把该目录向量从活跃目录Cache中删除;如果目录状态为修改状态,则目录控制器收到写回的数据块后,把该数据块写回到本地L2 Cache中,然后删除该目录向量。
8.如权利要求7所述的数据请求方法,其特征在于,当接收到本地L2 Cache的无效请求时,如果活跃目录Cache不命中,则直接向本地L2 Cache返回无效回应信号;如果活跃目录Cache命中,则进行活跃目录Cache的替换操作,替换操作完成后,向本地L2 Cache返回无效回应信号或写回信号,把目录向量从活跃目录Cache中删除。
CN2010106210698A 2010-12-24 2010-12-24 用于多核处理器的网络牺牲Cache及基于该Cache的数据请求方法 Active CN102063407B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN2010106210698A CN102063407B (zh) 2010-12-24 2010-12-24 用于多核处理器的网络牺牲Cache及基于该Cache的数据请求方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN2010106210698A CN102063407B (zh) 2010-12-24 2010-12-24 用于多核处理器的网络牺牲Cache及基于该Cache的数据请求方法

Publications (2)

Publication Number Publication Date
CN102063407A CN102063407A (zh) 2011-05-18
CN102063407B true CN102063407B (zh) 2012-12-26

Family

ID=43998688

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2010106210698A Active CN102063407B (zh) 2010-12-24 2010-12-24 用于多核处理器的网络牺牲Cache及基于该Cache的数据请求方法

Country Status (1)

Country Link
CN (1) CN102063407B (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103729309B (zh) * 2014-01-15 2017-06-30 浪潮电子信息产业股份有限公司 一种目录Cache一致性方法
CN104360982B (zh) * 2014-11-21 2017-11-10 浪潮(北京)电子信息产业有限公司 一种基于可重构芯片技术的主机系统目录结构实现方法和系统
WO2017147851A1 (zh) * 2016-03-03 2017-09-08 华为技术有限公司 一种配置装置及方法
US10657056B2 (en) 2018-06-30 2020-05-19 Intel Corporation Technologies for demoting cache lines to shared cache

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101859281A (zh) * 2009-04-13 2010-10-13 廖鑫 基于集中式目录的嵌入式多核缓存一致性方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6912623B2 (en) * 2002-06-04 2005-06-28 Sandbridge Technologies, Inc. Method and apparatus for multithreaded cache with simplified implementation of cache replacement policy

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101859281A (zh) * 2009-04-13 2010-10-13 廖鑫 基于集中式目录的嵌入式多核缓存一致性方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
Jinglei Wang etc..Network Caching for Chip Multiprocessors.《IPCCC of IEEE 28th》.2009,第341-348页. *

Also Published As

Publication number Publication date
CN102063407A (zh) 2011-05-18

Similar Documents

Publication Publication Date Title
CN102063406B (zh) 用于多核处理器的网络共享Cache及其目录控制方法
JP6314355B2 (ja) メモリ管理方法およびデバイス
CN102804152B (zh) 对存储器层次结构中的闪存的高速缓存一致性支持
US9575889B2 (en) Memory server
US5434993A (en) Methods and apparatus for creating a pending write-back controller for a cache controller on a packet switched memory bus employing dual directories
CN101382953B (zh) 在用户空间访问文件系统的接口系统与文件读、写方法
CN100373353C (zh) 具有储存远程快取存在信息的处理器高速缓存的计算机系统
CN101593160B (zh) 减少来自侦听过滤器的后无效事务
US20080270708A1 (en) System and Method for Achieving Cache Coherency Within Multiprocessor Computer System
US6408362B1 (en) Data processing system, cache, and method that select a castout victim in response to the latencies of memory copies of cached data
US8539164B2 (en) Cache coherency within multiprocessor computer system
US20120290786A1 (en) Selective caching in a storage system
KR20160143619A (ko) 클러스터 레벨에서의 데이터 일관성 모델 및 프로토콜
WO2009140631A2 (en) Distributed computing system with universal address system and method
CN102262512A (zh) 一种实现磁盘阵列缓存分区管理的系统、装置及方法
CN102063407B (zh) 用于多核处理器的网络牺牲Cache及基于该Cache的数据请求方法
CN103294611A (zh) 一种基于有限数据一致性状态的服务器节点数据缓存方法
US8930640B2 (en) Multiprocessor computer system with reduced directory requirement
CN109478164B (zh) 用于存储用于高速缓存条目传输的高速缓存位置信息的系统和方法
CN101377788B (zh) 一种机群文件系统中缓存管理的方法及系统
JP6343722B2 (ja) マルチコアシステムにおいてデータ訪問者ディレクトリにアクセスするための方法及びデバイス
JPH11143779A (ja) 仮想記憶装置におけるページング処理システム
US9164904B2 (en) Accessing remote memory on a memory blade
WO2017196495A1 (en) Interleaved cache controllers with shared metadata and related devices and systems
US20080104333A1 (en) Tracking of higher-level cache contents in a lower-level cache

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