[发明专利]一种目录维护方法及装置有效
申请号: | 201410076650.4 | 申请日: | 2014-03-04 |
公开(公告)号: | CN103870395B | 公开(公告)日: | 2017-08-04 |
发明(设计)人: | 贺成洪;程永波;兰可嘉 | 申请(专利权)人: | 华为技术有限公司 |
主分类号: | G06F12/0806 | 分类号: | G06F12/0806 |
代理公司: | 北京路浩知识产权代理有限公司11002 | 代理人: | 李迪 |
地址: | 518129 广东*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 目录 维护 方法 装置 | ||
技术领域
本发明涉及计算机技术领域,尤其涉及一种目录维护方法及装置。
背景技术
在多处理器系统中,每个处理器都有一或两级缓存(cache)。同一个数据的多个副本可能同时存于不同的缓存中。若处理器自由地修改的本地副本,则会导致不同处理器观察到的结果不一致。另外IO对主存的修改也可能引起不一致性问题。为了解决缓存一致性问题而引入了MESI协议。缓存中包括多个缓存行,在MESI中规定,每个缓存行中的数据有四种状态:M(Modified,修改)态、E(Exclusive,专有)态、S(Shared,共享)态、I(Invalid,无效)态,其中,M态是指该缓存行被修改,并仅存在与本缓存中;E态是指该缓存行与主存相同,并仅存在于本缓存中;S态是指该缓存行与主存相同,有可能也存在于其他缓存中;I态是指该缓存行无效,本缓存中无此数据。
一般计算机系统的主存请求以一个缓存行为单位进行访问。当前的目录设计为每一个缓存行提供了一个目录项来记录远端节点占用该缓存行的信息。当前计算机系统的缓存一致性协议通常基于目录的一致性协议。主存与缓存之间采用包含策略,当主存的存储空间不够时就需要产生替换,将原有的一个目录条目进行无效侦听,然后将该条目回写或者丢弃。对于M态数据,因为整个系统的唯一副本在缓存中,当M态数据被替换时会产生回写命令,将数据写入缓存中,而对于E态或S态的数据,在缓存中并没有修改过,主存中也有相同的副本,如果被替换的是S态或E态数据,则按照协议要求丢弃或者产生驱除命令,将空间空出来存储新请求所需要的数据。
目前不少系统采用了直接丢弃的策略,会导致主存的目录信息不准确。主存目录满之后也会导致替换。不论采用何种替换策略,都有可能将缓存正在使用的数据替换出去,从而影响整个系统的性能。
主存的目录的存储空间都是有限的,仅存储缓存中存在过的数据。由于主存的目录信息不准确,主存存储了一些在缓存已经失效的内容,从而导致主存目录的空间浪费。当存储空间不够时,会发生替换。不论采用何种替换算法,被替换的缓存行总有可能是处理器内部正在使用的数据,当这个数据被替换时,就会打断处理器的正常工作,从而影响到系统性能。
发明内容
本发明实施例提供了一种目录维护方法,能够降低替换产生的侦听对处理器正常处理的影响,减少系统性能的下降。
为了解决上述技术问题,本发明实施例公开了如下技术方案:
第一方面,本发明提供了一种目录维护方法,所述方法包括:
主存根据目录中缓存行与缓存的对应关系按照预先设定的频度向缓存行对应的每一个缓存发送侦听信息;
所述缓存行对应的每一个缓存接收所述侦听信息,根据所述侦听信息发送侦听响应;
所述主存接收所述侦听响应,根据所述侦听响应更新所述目录;
所述侦听响应包括:发送所述侦听响应的缓存中的所述缓存行的状态。
在第一方面的第一种可能的实现方式中,所述主存为下级缓存,所述缓存为上级缓存。
结合第一方面或第一方面的第一种可能的实现方式,在第一方面的第二种可能的实现方式中,所述根据所述侦听响应更新所述目录,包括:
根据接收到所述侦听响应更新所述目录中的所述缓存行对应的缓存中的所述缓存行的状态。
结合第一方面或第一方面的第一种可能的实现方式,在第一方面的第三种可能的实现方式中,所述根据所述侦听响应更新所述目录,包括:
当接收到的所述缓存行在所有侦听响应中的状态为无效态时,则所述主存删除所述目录中的所述缓存行的记录。
结合第一方面或第一方面的第一种可能的实现方式,在第一方面的第四种可能的实现方式中,所述目录中缓存行与缓存的对应关系,包括:每一个缓存行对应至少一个缓存,所述至少一个缓存中的每一个缓存对应该缓存中的所述缓存行的状态。
第二方面,本发明提供了一种目录维护装置,所述装置包括:
主存,至少一个缓存;
所述主存,用于根据目录中缓存行与缓存的对应关系按照预先设定的频度向缓存行对应的每一个缓存发送侦听信息,并接收缓存发来的侦听响应,根据所述侦听响应更新所述目录;
所述缓存行对应的每一个缓存,用于接收主存发来的所述侦听信息,根据所述侦听信息发送侦听响应;
所述侦听响应包括:发送所述侦听响应的缓存中的所述缓存行的状态。
在第二方面的第一种可能的实现方式中,所述主存为下级缓存,所述缓存为上级缓存。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于华为技术有限公司,未经华为技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201410076650.4/2.html,转载请声明来源钻瓜专利网。