[发明专利]一种多核处理器系统和缓存一致性处理方法有效
申请号: | 201510314083.6 | 申请日: | 2015-06-09 |
公开(公告)号: | CN104991868B | 公开(公告)日: | 2018-02-02 |
发明(设计)人: | 王恩东;倪璠;陈继承 | 申请(专利权)人: | 浪潮(北京)电子信息产业有限公司 |
主分类号: | G06F12/0806 | 分类号: | G06F12/0806;G06F12/0815 |
代理公司: | 北京安信方达知识产权代理有限公司11262 | 代理人: | 林桐苒,曲鹏 |
地址: | 100085 北京市海*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 多核 处理器 系统 缓存 一致性 处理 方法 | ||
技术领域
本发明涉及计算机技术,尤指一种多核处理器系统和缓存一致性处理方法。
背景技术
多核处理器系统的各处理器内核通常依据缓存一致性协议进行缓存一致性的维护,缓存一致性协议直接影响多核处理器系统的数据访问性能,进而影响多核处理器的整体性能。
目前通常使用的缓存一致性协议包括MESIF协议和MOESI协议。一方面,MESIF协议通过在MESI协议中引入转发(Forwarding,简称为:F)态,在多核处理器系统中存在多个共享(Shared,简称为:S)态cache行,并且此时有一处理器内核请求读取该些S态高速缓冲存储器(cache)行中的数据时,可以将其中一个S态cache行的状态更改为F态,并转发该F态cache行中的数据,解决了MESI协议中S态的cache行中的数据不能转发的问题,从而减少了对内存的访问次数;然而,当修改(Modified,简称为:M)态的cache行变更为S态时,仍然需要即刻将cache行中的数据写入到内存中。另一方面,MOESI协议通过引入拥有(Owned,简称为:O)态,在读取M态cache行的数据时,将该M态cache行的状态变更为O态,用于记录并延迟该cache行将数据写入内存的操作,从而避免了M态cache行变更为S态时非必要的写回操作,然而,当某一处理器内核请求读取多个S态cache行中相同的共享数据时,通常的处理方式为:所有的S态cache行都向该处理器内核发送数据,或者通过访问内存来获取数据。
然而,现有技术中的多核处理器系统在执行缓存一致性处理的过程中,由于内存参与处理的可能性较大,从而导致多核处理器系统的性能较差的问题。
发明内容
为了解决上述技术问题,本发明提供了一种多核处理器系统和缓存一致性处理方法,以解决现有技术中的多核处理器系统在执行缓存一致性处理时,由于内存参与处理的可能性较大,从而导致多核处理器系统的性能较差的问题。
第一方面,本发明提供一种多核处理器系统,所述多核处理器系统用于执行缓存一致性处理,所述多核处理器系统包括第一处理器内核和第二处理器内核,所述多核处理器系统中的cache行具有修改M态、独占E态、保持K态、无效I态和转发F态;
所述第一处理器内核,用于向所述第二处理器内核发送第一请求消息,所述第一请求消息用于请求对所述第二处理器内核中的第一cache行进行读操作,所述第一cache行处于M态或E态;
所述第二处理器内核,用于当接收到所述第一请求消息后,将所述第一cache行中的数据携带在第一响应消息中发送给所述第一处理器内核,并将所述第一cache行的状态更改为K态,其中,所述第二处理器内核,还用于在将所述第一cache行的状态由M态更改为K态后,忽略将所述第一cache行中的数据写入所述内存的操作;
所述第一处理器内核,还用于当接收到所述第一响应消息后,将所述第一cache行中的数据读入所述第一处理器内核中与所述第一cache行地址相同的第二cache行中,并将所述第二cache行的状态由I态更改为F态。
在第一方面的第一种可能的实现方式中,所述第一处理器内核,还用于在向所述第二处理器内核发送第一请求消息之前,向第二cache发送第二请求消息,所述第二请求消息用于请求对所述第二cache行进行读操作;
所述第一处理器内核,还用于当所述第二cache行为K态、F态、E态或M态时,接收所述第二cache发送的第二响应消息,并保持所述第二cache行的当前状态,其中,所述第二响应消息中包括所述第二cache行中的数据,当所述第二cache行为I态时,向所述第二处理器内核发送第一请求消息。
在第一方面的第二种可能的实现方式中,所述多核处理器系统还包括第三处理器内核,所述第三处理器内核中的第三cache行与所述第二cache行和所述第一cache行的地址相同;
所述第三处理器内核,用于在所述第三cache行为I态时,向所述第一处理器内核和所述第二处理器内核发送第三请求消息,所述第三请求消息用于请求对与所述第三cache行地址相同的cache行进行读操作;
所述第一处理器内核,还用于当接收到所述第三请求消息后,且所述第二cache行处于F态时,将所述第二cache行中的数据携带在第三响应消息中发送给所述第三处理器内核,并将所述第二cache行的状态由F态更改为K态;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于浪潮(北京)电子信息产业有限公司,未经浪潮(北京)电子信息产业有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201510314083.6/2.html,转载请声明来源钻瓜专利网。
- 上一篇:云终端USB重定向方法与系统
- 下一篇:JS程序的调试方法及装置