保持多处理器共享内存数据一致性的方法和多处理器系统技术方案

技术编号:26762232 阅读:83 留言:0更新日期:2020-12-18 23:08
本发明专利技术的实施例公开一种保持多处理器共享内存数据一致性的方法和多处理器系统,属于计算机技术领域,用于解决现有多处理器系统中处理器访问共享内存数据不一致的问题。所述方法用于包括至少一个主处理器和至少一个从处理器的多处理器系统,所述主处理器具有共享内存写入权限,所述从处理器无共享内存写入权限,各处理器通过系统总线彼此相连,且共用系统内存中预先划分的共享内存,所述方法包括:主处理器更新自身缓存中与共享内存对应的缓存数据,并将更新后的与共享内存对应的缓存数据写入共享内存;主处理器通知从处理器更新缓存;从处理器将自身缓存中与所述共享内存对应的缓存数据更新为当前所述共享内存中的数据。

【技术实现步骤摘要】
保持多处理器共享内存数据一致性的方法和多处理器系统
本专利技术计算机
,尤其涉及一种保持多处理器共享内存数据一致性的方法和多处理器系统。
技术介绍
在多处理器系统中,系统总线将多个处理器连接在一起,系统内存可以被各个处理器访问。各个处理器独立运行,但有时需要相互协作来完成特定任务,为此,多个处理器可以通过访问系统内存中一块公共的内存块作为共享内存,以实现数据共享。各个处理器的缓存中都存在一份共享内存数据的副本。然而,不同的处理器读写各自的缓存会导致缓存中的数据与系统内存出现差异,系统运行会由于共享内存数据不一致而出错。为解决这个问题,现有的办法是针对共享内存块禁用处理器的缓存,各处理器直接读写系统内存完成对共享内存的操作,但是这样会导致处理器读写共享内存的速度严重下降。
技术实现思路
有鉴于此,本专利技术实施例提供一种保持多处理器共享内存数据一致性的方法和多处理器系统,用于解决现有多处理器系统中处理器访问共享内存数据不一致的问题,以及禁用缓存来实现读写内存会造成处理器性能下降的问题。为达到上述目的,本专利技术的实施例采用如下技术方案:第一方面,本专利技术实施例提供一种保持多处理器共享内存数据一致性的方法,用于多处理器系统,所述多处理器系统中包括至少一个主处理器和至少一个从处理器,所述主处理器具有共享内存写入权限,所述从处理器无共享内存写入权限,各处理器通过系统总线彼此相连,且共用系统内存中预先划分的共享内存,所述方法包括:所述主处理器更新自身缓存中与所述共享内存对应的缓存数据,并将更新后的与所述共享内存对应的缓存数据写入所述共享内存;所述主处理器通知所述从处理器更新缓存;所述从处理器清除自身缓存中与所述共享内存对应的缓存数据,并读取当前所述共享内存中的数据写入自身与所述共享内存对应的缓存中。结合第一方面,在第一方面的第一种实施方式中,所述主处理器通知所述从处理器更新缓存,包括:所述主处理器向所述从处理器对应的同步寄存器写入预设控制字;所述从处理器清除自身缓存中与所述共享内存对应的缓存数据,包括:所述从处理器对应的同步寄存器根据所述预设控制字,触发所述从处理器清除自身缓存中与所述共享内存对应的缓存数据。结合第一方面的第一种实施方式,在第一方面的第二种实施方式中,多个所述从处理器各自对应一个所述同步寄存器,或者多个所述从处理器对应同一个所述同步寄存器。结合第一方面,在第一方面的第三种实施方式中,在所述主处理器更新自身缓存中与所述共享内存对应的缓存数据之前,还包括:确定当前多处理器系统中的主处理器和从处理器;打开所述主处理器对所述共享内存的写入权限,关闭所述从处理器对所述共享内存的写入权限。结合第一方面的第三种实施方式,在第一方面的第四种实施方式中,所述确定当前多处理器系统中的主处理器,包括:在当前多处理器系统中指定多个主处理器;所述主处理器更新自身缓存中与所述共享内存对应的缓存数据,并将更新后的与所述共享内存对应的缓存数据写入所述共享内存,包括:多个主处理器各自更新自身缓存中与所述共享内存对应的缓存数据;根据预先设置的同步机制,控制本次更新缓存的多个主处理器将更新后的与所述共享内存对应的缓存数据先后写入系统的共享内存中。结合第一方面,在第一方面的第五种可能的实现方式中,在所述主处理器更新自身缓存中与所述共享内存对应的缓存数据之前,还包括:在系统内存中为所述主处理器和从处理器分配共享内存;其中,设置共享内存的大小为主处理器和从处理器缓存行大小的公倍数,且共享内存的起始地址按照所述共享内存的大小与主处理器和从处理器的缓存行对齐。第二方面,本专利技术实施例提供一种一种多处理器系统,包括至少一个主处理器和至少一个从处理器,所述主处理器具有共享内存写入权限,所述从处理器无共享内存写入权限,各处理器通过系统总线彼此相连,且共用系统内存中预先划分的共享内存;所述主处理器,用于更新自身缓存中与所述共享内存对应的缓存数据,并将更新后的与所述共享内存对应的缓存数据写入所述共享内存;还用于在将缓存数据写入所述共享内存后,通知所述从处理器更新缓存;所述从处理器,用于在所述共享内存更新后,清除自身缓存中与所述共享内存对应的缓存数据,并读取当前所述共享内存中的数据写入自身与所述共享内存对应的缓存中。结合第二方面,在第二方面的第一种实施方式中,所述系统还包括与所述从处理器对应的同步寄存器;所述主处理器,具体用于通过向所述从处理器对应的同步寄存器写入预设控制字来通知所述从处理器更新缓存;所述同步寄存器,用于根据所述预设控制字,触发对应的从处理器清除自身缓存中与所述共享内存对应的缓存数据。结合第二方面的第一种实施方式,在第二方面的第二种实施方式中,多个所述从处理器各自对应连接一个所述同步寄存器,或者多个所述从处理器对应连接同一个所述同步寄存器。结合第二方面,在第二方面的第三种实施方式中,所述系统还包括:主从设置单元,用于确定当前多处理器系统中的主处理器和从处理器:权限设置单元,用于打开所述主从设置单元确定的主处理器对所述共享内存的写入权限,关闭所述从处理器对所述共享内存的写入权限。结合第二方面的第三种实施方式,在第二方面的第四种实施方式中,所述系统还包括写入控制单元;所述主从设置单元,具体用于在当前多处理器系统中指定多个主处理器;所述写入控制单元,用于在多个主处理器各自更新自身缓存中与所述共享内存对应的缓存数据后,根据预先设置的同步机制,控制本次更新缓存的多个主处理器将更新后的与所述共享内存对应的缓存数据先后写入系统的共享内存中。结合第二方面,在第二方面的第五种实施方式中,所述系统还包括:共享内存设置单元,用于在系统内存中为所述主处理器和从处理器分配共享内存;其中,设置共享内存的大小为主处理器和从处理器缓存行大小的公倍数,且共享内存的起始地址按照所述共享内存的大小与主处理器和从处理器的缓存行对齐。本专利技术实施例提供的一种保持多处理器共享内存数据一致性的方法及多处理器系统,通过在多处理器系统中设置主、从处理器,在主处理器更新自身缓存中与所述共享内存对应的缓存数据后,通过主处理器更新共享内存中的数据,随后主处理器通知从处理器更新缓存,从处理器根据主处理器的通知将共享内存中的数据更新到自身缓存中,本专利技术能够在主处理器缓存有更新时及时更新共享内存并通知从处理器更新缓存的共享内存数据,能够在不禁用处理器缓存的情况下实现共享内存数据的一致性。附图说明为了更清楚地说明本专利技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。图1为本专利技术实施例提供的一种保持多处理器共享内存数据一致性的方法本文档来自技高网...

【技术保护点】
1.一种保持多处理器共享内存数据一致性的方法,其特征在于,用于多处理器系统,所述多处理器系统中包括至少一个主处理器和至少一个从处理器,所述主处理器具有共享内存写入权限,所述从处理器无共享内存写入权限,各处理器通过系统总线彼此相连,且共用系统内存中预先划分的共享内存,所述方法包括:/n所述主处理器更新自身缓存中与所述共享内存对应的缓存数据,并将更新后的与所述共享内存对应的缓存数据写入所述共享内存;/n所述主处理器通知所述从处理器更新缓存;/n所述从处理器清除自身缓存中与所述共享内存对应的缓存数据,并读取当前所述共享内存中的数据写入自身与所述共享内存对应的缓存中。/n

【技术特征摘要】
1.一种保持多处理器共享内存数据一致性的方法,其特征在于,用于多处理器系统,所述多处理器系统中包括至少一个主处理器和至少一个从处理器,所述主处理器具有共享内存写入权限,所述从处理器无共享内存写入权限,各处理器通过系统总线彼此相连,且共用系统内存中预先划分的共享内存,所述方法包括:
所述主处理器更新自身缓存中与所述共享内存对应的缓存数据,并将更新后的与所述共享内存对应的缓存数据写入所述共享内存;
所述主处理器通知所述从处理器更新缓存;
所述从处理器清除自身缓存中与所述共享内存对应的缓存数据,并读取当前所述共享内存中的数据写入自身与所述共享内存对应的缓存中。


2.根据权利要求1所述的保持多处理器共享内存数据一致性的方法,其特征在于,所述主处理器通知所述从处理器更新缓存,包括:
所述主处理器向所述从处理器对应的同步寄存器写入预设控制字;
所述从处理器清除自身缓存中与所述共享内存对应的缓存数据,包括:
所述从处理器对应的同步寄存器根据所述预设控制字,触发所述从处理器清除自身缓存中与所述共享内存对应的缓存数据。


3.根据权利要求2所述的保持多处理器共享内存数据一致性的方法,其特征在于,多个所述从处理器各自对应一个所述同步寄存器,或者多个所述从处理器对应同一个所述同步寄存器。


4.根据权利要求1所述的保持多处理器共享内存数据一致性的方法,其特征在于,在所述主处理器更新自身缓存中与所述共享内存对应的缓存数据之前,还包括:
确定当前多处理器系统中的主处理器和从处理器;
打开所述主处理器对所述共享内存的写入权限,关闭所述从处理器对所述共享内存的写入权限。


5.根据权利要求4所述的保持多处理器共享内存数据一致性的方法,其特征在于,所述确定当前多处理器系统中的主处理器,包括:
在当前多处理器系统中指定多个主处理器;
所述主处理器更新自身缓存中与所述共享内存对应的缓存数据,并将更新后的与所述共享内存对应的缓存数据写入所述共享内存,包括:
多个主处理器各自更新自身缓存中与所述共享内存对应的缓存数据;
根据预先设置的同步机制,控制本次更新缓存的多个主处理器将更新后的与所述共享内存对应的缓存数据先后写入系统的共享内存中。


6.根据权利要求1所述的保持多处理器共享内存数据一致性的方法,其特征在于,在所述主处理器更新自身缓存中与所述共享内存对应的缓存数据之前,还包括:
在系统内存中为所述主处理器和从处理器分配共享内存;...

【专利技术属性】
技术研发人员:冯浩应志伟
申请(专利权)人:海光信息技术有限公司
类型:发明
国别省市:天津;12

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

1