数据移动、将数据设置为无效的方法、处理器及系统技术方案

技术编号:14383533 阅读:61 留言:0更新日期:2017-01-10 10:54
本发明专利技术公开了一种数据移动方法,用于解决在多处理器系统中存在的资源浪费的技术问题。所述方法包括:当第一处理器的缓存中存储的第一数据待被移动到所述第一处理器的内存中时,所述第一处理器确定第二数据在第二处理器中的地址;所述第一处理器生成第一替换更新消息,所述第一替换更新消息中携带所述第二数据在所述第二处理器中的地址;所述第一处理器将所述第一替换更新消息发送给所述第二处理器。本发明专利技术还公开了一种将数据设置为无效的方法,及相应的处理器和多处理器系统。

【技术实现步骤摘要】

本专利技术涉及计算机
,特别涉及一种数据移动、将数据设置为无效的方法、处理器及系统
技术介绍
当今的计算机系统经常由多个处理器组成,并且一个处理器中也存在多个处理器核。在多处理器系统中,要让处理器协同工作,则各个处理器处理的正确性成为了首要的问题。这个问题可细分为两个子问题,即:存储一致性(memoryconsistency)和缓存一致性(cachecoherence)。其中,缓存一致性要求一个计算机系统内的多个缓存满足“单写者多读者”的要求,即在任何时间,若要对一个数据进行写操作,只有具有权限的处理器可以将该数据写到该具有权限的处理器的缓存中,但是若要对任一个数据进行读操作,多个处理器都可以同时将该数据读到各自的缓存中。在通用计算机系统中,正确高效的缓存一致性设计非常重要。随着系统内集成的处理器核数的增加,如何更高效地维护各个处理器核之间的缓存一致性成为了学术界和工业界共同关心的一个课题。维护缓存一致性有两种基本的协议方式—侦听(snoop)协议和目录(directory)协议。由于目录协议在扩展性方面优于侦听协议,因此经常被使用在大规模/超大规模系统中。在目录协议下,可能多个处理器共用一个目录,或者也可能每个处理器有自己单独的目录。在目录协议下,可能会存在问题,具体介绍场景如下:例如,处理器1的缓存中的数据1要被移动到处理器1的内存中,数据1是副本,数据1对应的原始数据2存储在处理器2的缓存中。例如,在数据1被移走之后,处理器2中的数据2也要被移动到处理器2的内存中,则处理器2会向存储有数据2对应的副本的其他处理器发送无效(invalidate)信息,相应的处理器接收到无效信息后,会将本地存储的数据2的副本设置为无效,以保持缓存一致性。在这种情况下,如果数据1已被移走的消息没有通知处理器2,处理器2也会向处理器1发送无效信息,而此时处理器1的缓存中已经没有数据1了,即,处理器2向处理器1发送无效信息是多余的开销,造成了资源的浪费。
技术实现思路
本专利技术实施例提供一种数据移动、将数据设置为无效的方法、处理器及系统,用于解决在多处理器系统中存在的资源浪费的技术问题。第一方面,提供一种数据移动方法,包括:当第一处理器的缓存中存储的第一数据待被移动到所述第一处理器的内存中时,所述第一处理器确定第二数据在第二处理器中的地址;所述第一处理器生成第一替换更新消息,所述第一替换更新消息中携带所述第二数据在所述第二处理器中的地址;所述第一处理器将所述第一替换更新消息发送给所述第二处理器;其中,所述第一处理器和所述第二处理器属于同一多处理器系统,所述第一替换更新消息用于将所述第一数据已移动的信息通知所述第二处理器,所述第二处理器中存储有所述第二数据,所述第一数据为副本,所述第二数据为与所述第一数据对应的原始数据。结合第一方面,在第一方面的第一种可能的实现方式中,在所述第一处理器生成第一替换更新消息之后,还包括:所述第一处理器将所述第一替换更新消息添加到第一消息队列,所述第一消息队列为与所述第二处理器对应的消息队列;所述消息队列用于存放替换更新消息。结合第一方面的第一种可能的实现方式,在第一方面的第二种可能的实现方式中,所述第一处理器将所述第一替换更新消息添加到第一消息队列,包括:所述第一处理器根据所述第二处理器的标识,查询与所述第二处理器对应的消息队列;所述第一处理器确定所述第一消息队列为与所述第二处理器对应的消息队列,将所述第一替换更新消息添加到所述第一消息队列。结合第一方面的第二种可能的实现方式,在第一方面的第三种可能的实现方式中,在将所述第一替换更新消息添加到所述第一消息队列之前,还包括:若所述第一消息队列中的剩余空间不够存储所述第一替换更新消息,则所述第一处理器将所述第一消息队列中的部分或全部替换更新消息合并为第二替换更新消息,并将所述第二替换更新消息发送给所述第二处理器。结合第一方面的第二种可能的实现方式,在第一方面的第四种可能的实现方式中,所述第一处理器确定所述第一消息队列为与所述第二处理器对应的消息队列,包括:若所述第一处理器确定没有与所述第二处理器对应的消息队列,则所述第一处理器查询存在的空消息队列;所述第一处理器将查询到的一个空消息队列作为与所述第二处理器对应的第一消息队列。结合第一方面的第二种可能的实现方式,在第一方面的第五种可能的实现方式中,所述第一处理器确定所述第一消息队列为与所述第二处理器对应的消息队列,包括:若所述第一处理器确定没有与所述第二处理器对应的消息队列,则所述第一处理器查询存在的空消息队列;若所述第一处理器确定没有空消息队列,则所述第一处理器将存在时长最长的消息队列中的全部替换更新消息合并为第三替换更新消息,将所述第三替换更新消息发送给所述存在时长最长的消息队列对应的处理器;所述第一处理器将所述存在时长最长的消息队列作为与所述第二处理器对应的所述第一消息队列。结合第一方面的第二种可能的实现方式,在第一方面的第六种可能的实现方式中,所述第一处理器确定所述第一消息队列为与所述第二处理器对应的消息队列,包括:若所述第一处理器确定没有与所述第二处理器对应的消息队列,则所述第一处理器查询存在的空消息队列;若所述第一处理器确定没有空消息队列,则所述第一处理器将包括的替换更新消息最多的消息队列中的全部替换更新消息合并为第四替换更新消息,并将所述第四替换更新消息发送给所述包括的替换更新消息最多的消息队列对应的处理器;所述第一处理器将所述包括的替换更新消息最多的消息队列作为与所述第二处理器对应的所述第一消息队列。结合第一方面或第一方面的第一种可能的实现方式至第六种可能的实现方式中的任一种可能的实现方式,在第一方面的第七种可能的实现方式中,所述第一处理器将所述第一替换更新消息发送给所述第二处理器,包括:所述第一处理器将所述第一消息队列中包括的部分或全部替换更新消息合并为第五替换更新消息,并将所述第五替换更新消息发送给所述第二处理器;其中,所述第一替换更新消息参与了合并。结合第一方面的第七种可能的实现方式,在第一方面的第八种可能的实现方式中,所述第一处理器将所述第一消息队列中包括的部分或全部替换更新消息合并为第五替换更新消息,包括:在所述第一消息队列中没有剩余空间用于存储新的替换更新消息时,所述第一处理器将所述第一消息队列中包括的部分或全部替换更新消息合并为所述第五替换更新消息;或在所述第一消息队列中没有剩余空间用于存储新的替换更新消息,且有新的替换更新消息需要添加到所述第一消息队列中时,所述第一处理器将所述第一消息队列中包括的部分或全部替换更新消息合并为所述第五替换更新消息;或在所述第一处理器接收到对应于所述第一消息队列的无效信息时,所述第一处理器将所述第一消息队列中包括的部分或全部替换更新消息合并为所述第五替换更新消息;所述无效信息用于指示将所述第一消息队列中的一个替换更新消息对应的数据设置为无效;或在所述第一消息队列存在的时长已达到预设时长阈值时,所述第一处理器将所述第一消息队列中包括的部分或全部替换更新消息合并为所述第五替换更新消息。结合第一方面或第一方面的第一种可能的实现方式至第八种可能的实现方式中的任一种可能的实现方式,在第一方面的第九种可本文档来自技高网
...
数据移动、将数据设置为无效的方法、处理器及系统

【技术保护点】
一种数据移动方法,其特征在于,包括:当第一处理器的缓存中存储的第一数据待被移动到所述第一处理器的内存中时,所述第一处理器确定第二数据在第二处理器中的地址;所述第一处理器生成第一替换更新消息,所述第一替换更新消息中携带所述第二数据在所述第二处理器中的地址;所述第一处理器将所述第一替换更新消息发送给所述第二处理器;其中,所述第一处理器和所述第二处理器属于同一多处理器系统,所述第一替换更新消息用于将所述第一数据已移动的信息通知所述第二处理器,所述第二处理器中存储有所述第二数据,所述第一数据为副本,所述第二数据为与所述第一数据对应的原始数据。

【技术特征摘要】
1.一种数据移动方法,其特征在于,包括:当第一处理器的缓存中存储的第一数据待被移动到所述第一处理器的内存中时,所述第一处理器确定第二数据在第二处理器中的地址;所述第一处理器生成第一替换更新消息,所述第一替换更新消息中携带所述第二数据在所述第二处理器中的地址;所述第一处理器将所述第一替换更新消息发送给所述第二处理器;其中,所述第一处理器和所述第二处理器属于同一多处理器系统,所述第一替换更新消息用于将所述第一数据已移动的信息通知所述第二处理器,所述第二处理器中存储有所述第二数据,所述第一数据为副本,所述第二数据为与所述第一数据对应的原始数据。2.如权利要求1所述的方法,其特征在于,在所述第一处理器生成第一替换更新消息之后,还包括:所述第一处理器将所述第一替换更新消息添加到第一消息队列,所述第一消息队列为与所述第二处理器对应的消息队列;所述消息队列用于存放替换更新消息。3.如权利要求2所述的方法,其特征在于,所述第一处理器将所述第一替换更新消息添加到第一消息队列,包括:所述第一处理器根据所述第二处理器的标识,查询与所述第二处理器对应的消息队列;所述第一处理器确定所述第一消息队列为与所述第二处理器对应的消息队列,将所述第一替换更新消息添加到所述第一消息队列。4.如权利要求3所述的方法,其特征在于,在将所述第一替换更新消息添加到所述第一消息队列之前,还包括:若所述第一消息队列中的剩余空间不够存储所述第一替换更新消息,则所述第一处理器将所述第一消息队列中的部分或全部替换更新消息合并为第二
\t替换更新消息,并将所述第二替换更新消息发送给所述第二处理器。5.如权利要求3所述的方法,其特征在于,所述第一处理器确定所述第一消息队列为与所述第二处理器对应的消息队列,包括:若所述第一处理器确定没有与所述第二处理器对应的消息队列,则所述第一处理器查询存在的空消息队列;所述第一处理器将查询到的一个空消息队列作为与所述第二处理器对应的第一消息队列。6.如权利要求3所述的方法,其特征在于,所述第一处理器确定所述第一消息队列为与所述第二处理器对应的消息队列,包括:若所述第一处理器确定没有与所述第二处理器对应的消息队列,则所述第一处理器查询存在的空消息队列;若所述第一处理器确定没有空消息队列,则所述第一处理器将存在时长最长的消息队列中的全部替换更新消息合并为第三替换更新消息,将所述第三替换更新消息发送给所述存在时长最长的消息队列对应的处理器;所述第一处理器将所述存在时长最长的消息队列作为与所述第二处理器对应的所述第一消息队列。7.如权利要求3所述的方法,其特征在于,所述第一处理器确定所述第一消息队列为与所述第二处理器对应的消息队列,包括:若所述第一处理器确定没有与所述第二处理器对应的消息队列,则所述第一处理器查询存在的空消息队列;若所述第一处理器确定没有空消息队列,则所述第一处理器将包括的替换更新消息最多的消息队列中的全部替换更新消息合并为第四替换更新消息,并将所述第四替换更新消息发送给所述包括的替换更新消息最多的消息队列对应的处理器;所述第一处理器将所述包括的替换更新消息最多的消息队列作为与所述第二处理器对应的所述第一消息队列。8.如权利要求1-7任一所述的方法,其特征在于,所述第一处理器将所述第一替换更新消息发送给所述第二处理器,包括:所述第一处理器将所述第一消息队列中包括的部分或全部替换更新消息合并为第五替换更新消息,并将所述第五替换更新消息发送给所述第二处理器;其中,所述第一替换更新消息参与了合并。9.如权利要求8所述的方法,其特征在于,所述第一处理器将所述第一消息队列中包括的部分或全部替换更新消息合并为第五替换更新消息,包括:在所述第一消息队列中没有剩余空间用于存储新的替换更新消息时,所述第一处理器将所述第一消息队列中包括的部分或全部替换更新消息合并为所述第五替换更新消息;或在所述第一消息队列中没有剩余空间用于存储新的替换更新消息,且有新的替换更新消息需要添加到所述第一消息队列中时,所述第一处理器将所述第一消息队列中包括的部分或全部替换更新消息合并为所述第五替换更新消息;或在所述第一处理器接收到对应于所述第一消息队列的无效信息时,所述第一处理器将所述第一消息队列中包括的部分或全部替换更新消息合并为所述第五替换更新消息;所述无效信息用于指示将所述第一消息队列中的一个替换更新消息对应的数据设置为无效;或在所述第一消息队列存在的时长已达到预设时长阈值时,所述第一处理器将所述第一消息队列中包括的部分或全部替换更新消息合并为所述第五替换更新消息。10.如权利要求1-9任一所述的方法,其特征在于,还包括:所述第一处理器设定第一预设时长阈值作为至少一个消息队列中的每个的最大存在时长;所述消息队列用于存放替换更新消息。11.如权利要求10所述的方法,其特征在于,在所述第一处理器设定第一预设时长阈值作为所述至少一个消息队列中的每个的最大存在时长之后,还
\t包括:若所述第一处理器在还未到达所述第一预设时长阈值时接收到对应于第二消息队列的无效信息,则所述第一处理器将所述第二消息队列的最大存在时长由所述第一预设时长阈值更新为第二预设时长阈值;其中,所述第二消息队列为所述至少一个消息队列中的任意一个,所述无效信息用于指示将所述第二消息队列中的一个替换更新消息对应的数据设置为无效,所述第一预设时长阈值大于所述第二预设时长阈值;或若所述第一处理器在到达所述第一预设时长阈值时还未接收到对应于第二消息队列的无效信息,则所述第一处理器将所述第二消息队列的最大存在时长由所述第一预设时长阈值更新为第三预设时长阈值;其中,所述第二消息队列为所述至少一个消息队列中的任意一个,所述无效信息用于指示将所述第二消息队列中的一个替换更新消息对应的数据设置为无效,所述第一预设时长阈值小于所述第三预设时长阈值。12.一种将数据设置为无效的方法,其特征在于,包括:第二处理器接收第一处理器发送的第一替换更新消息,所述第一替换更新消息用于将第一数据已从所述第一处理器的缓存移动到所述第一处理器的内存的信息通知所述第二处理器,所述第一替换更新消息中携带所述第二处理器中存储的第二数据在所述第二处理器中的地址;所述第二处理器根据所述第二数据在所述第二处理器中的地址,将所述第一数据对应的信息设置为无效;其中,所述第一处理器和所述第二处理器属于同一多处理器系统,所述第一数据为副本,所述第二数据为与所述第一数据对应的原始数据。13.如权利要求12所述的方法,其特征在于,第二处理器接收第一处理器发送的第一替换更新消息,包括:所述第二处理器接收所述第一处理器发送的第五替换更新消息,所述第五替换更新消息为将第一消息队列中包括的部分或全部替换更新消息合并得到
\t的,所述第一替换更新消息参与了合并;所述第一消息队列为用于存放替换更新消息的消息队列。14.如权利要求13所述的方法,其特征在于,在所述第二处理器接收所述第一处理器发送的第五替换更新消息之后,还包括:所述第二处理器解析所述第五替换更新消息,以获取所述部分或全部替换更新消息的内容。15.一种处理器,其特征在于,包括:确定模块,用于当所述处理器的缓存中存储的第一数据待被移动到所述处理器的内存中时,确定第二数据在第二处理器中的地址;生成模块,用于生成第一替换更新消息,所述第一替换更新消息中携带所述第二数据在所述第二处理器中的地址;发送模块,用于将所述第一替换更新消息发送给所述第二处理器;其中,所述处理器和所述第二处理器属于同一多处理器系统,所述第一替换更新消息用于将所述第一数据已移动的信息通知所述第二处理器,所述第二处理器中存储有所述第二数据,所述第一数据为副本,所述第二数据为与所述第一数据对应的原始数据。16.如权利要求15所述的处理器,其特征在于,所述处理器还包括添加模块,用于:在所述生成模块生成第一替换更新消息之后,将所述第一替换更新消息添加到第一消息队列,所述第一消息队列为与所述第二处理器对应的消息队列;所述消息队列用于存放替换更新消息。17.如权利要求16所述的处理器,其特征在于,所述添加模块具体用于:根据所述第二处理器的标识,查询与所述第二处理器对应的消息队列;确定所述第一消息队列为与所述第二处理器对应的消息队列,将所述第一替换更新消息添加到所述第一消息队列。18.如权利要求17所述的处理器,其特征在于,所述发送模块还用于:在所述添加模块将所述第一替换更新消息添加到所述第一消息队列之前,若所述第一消息队列中的剩余空间不够存储所述第一替换更新消息,则将所述第一消息队列中的部分或全部替换更新消息合并为第二替换更新消息,并将所述第二替换更新消息发送给所述第二处理器。19.如权利要求17所述的处理器,其特征在于,所述添加模块具体用于:若确定没有与所述第二处理器对应的消息队列,则查询存在的空消息队列;将查询到的一个空消息队列作为与所述第二处理器对应的第一消息队列。20.如权利要求17所述的处理器,其特征在于,所述添加模块具体用于:若确定没有与所述第二处理器对应的消息队列,则查询存在的空消息队列;所述发送模块还用于:若所述添加模块确定没有空消息队列,则将存在时长最长的消息队列中的全部替换更新消息合并为第三替换更新消息,将所述第三替换更新消息发送给所述存在时长最长的消息队列对应的处理器;所述添加模块具体用于:将所述存在时长最长的消息队列作为与所述第二处理器对应的所述第一消息队列。21.如权利要求17所述的处理器,其特征在于,所述添加模块具体用于:若确定没有与所述第二处理器对应的消息队列,则查询存在的空消息队列;所述发送模块还用于:若所述添加模块确定没有空消息队列,则将包括的替换更新消息最多的消息队列中的全部...

【专利技术属性】
技术研发人员:张广飞蔡卫光张惠敏
申请(专利权)人:华为技术有限公司
类型:发明
国别省市:广东;44

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

1