一种一致性目录构建方法、系统及多处理器计算机系统的制作方法

文档序号:10724854阅读:333来源:国知局
一种一致性目录构建方法、系统及多处理器计算机系统的制作方法
【专利摘要】本申请公开了一种一致性目录构建方法、系统及多处理器计算机系统,该方法应用于包含N个处理器的多处理器计算机系统;该方法包括:对上述N个处理器进行分组,得到T组处理器,其中,每组处理器均包括n个处理器;利用布隆过滤器,将T组处理器对数据共享情况一对一地映射至T组位向量,得到相应的共享目录向量,其中,每组位向量均包括m位,m小于n。可见,一方面本申请是基于布隆过滤器进行映射处理的,这样确保了一致性目录所占空间较低;另一方面,本申请将不同组的处理器与不同组的位向量进行映射对应,这样相当于使得每组位向量之间处于割裂状态,避免了它们之间产生互相的影响,从而使得不同组位向量之间不会产生映射冲突。
【专利说明】
一种一致性目录构建方法、系统及多处理器计算机系统
技术领域
[0001]本发明涉及多处理器计算机技术领域,特别涉及一种一致性目录构建方法、系统及多处理器计算机系统。
【背景技术】
[0002]当前,在多处理器计算机系统中,为了维护不同处理器私有Cache(即高速缓冲存储器)中数据的一致性,需要使用Cache—致性协议。基于目录的Cache—致性由于其良好的扩展性,在现代大型计算机系统中得到普遍应用。
[0003]目前,多处理器计算机系统中的一致性目录的实现形式有全映射目录和通过布隆过滤器产生的一致性目录。其中,全映射目录的实现方式简单,但目录本身所占用的存储空间较大。而通过布隆过滤器产生的一致性目录可以显著地压缩目录所占空间,但不同处理器在目录上的映射位之间可能会产生映射冲突,从而导致伪共享,也即导致某些不具有数据副本的处理器被误判为包含相应的数据副本,这种情况下,被误判的处理器就不得不被迫与外界进行通讯,由此产生了冗余消息。
[0004]综上所述可以看出,如何在保证一致性目录所占空间较低的前提下,减少由于映射冲突所产生的冗余消息是目前有待解决的问题。

【发明内容】

[0005]有鉴于此,本发明的目的在于提供一种一致性目录构建方法、系统及多处理器计算机系统,在保证一致性目录所占空间较低的前提下,减少了由于映射冲突所产生的冗余消息。其具体方案如下:
[0006]—种一致性目录构建方法,应用于包含N个处理器的多处理器计算机系统,其中,N为不小于2的整数;所述方法包括:
[0007]对所述N个处理器进行分组,得到T组处理器,其中,每组处理器均包括η个处理器;
[0008]利用布隆过滤器,将所述T组处理器对数据共享情况一对一地映射至T组位向量,得到相应的共享目录向量,其中,每组位向量均包括m位,m小于η。
[0009]优选的,所述利用布隆过滤器,将所述T组处理器对数据共享情况一对一地映射至T组位向量的过程,包括:
[0010]预先对所述T组位向量进行初始化,以将所述T组位向量中的每一位均置为O;
[0011]分别在每组处理器中均执行k次哈希运算,以将每组处理器对所述数据共享情况均映射至与该组处理器对应的一组位向量,其中,k小于m。
[0012]优选的,每组处理器之间所采用的哈希运算为相同的哈希运算或不相同的哈希运笪并ο
[0013]优选的,将任一处理器对数据共享情况映射至对应的一组位向量上过程,包括:
[0014]若该处理器需要读取目标数据块,则将相应的数据块副本发送至该处理器,并将该处理器对应的一组位向量上的映射位置为I;
[0015]若该处理器需要对目标数据块进行写入操作,则查找出所有具有对应的数据块副本的处理器,向查找出的所有处理器发送用于指示该数据块副本无效的无效命令,并对相应的映射位进行更新,然后允许该需要进行写入操作的处理器进行相应的写入操作。
[0016]优选的,所述查找出所有具有对应的数据块副本的处理器的过程,包括:
[0017]通过结合当前每一处理器在自身对应的位向量上的映射情况以及当前所述共享目录向量上每一位的具体数值,查找出所有具有对应的数据块副本的处理器。
[0018]本发明还公开了一种一致性目录构建系统,应用于包含N个处理器的多处理器计算机系统,其中,N为不小于2的整数;所述构建系统包括:
[0019]处理器分组模块,用于对所述N个处理器进行分组,得到T组处理器,其中,每组处理器均包括η个处理器;
[0020]共享情况映射模块,用于利用布隆过滤器,将所述T组处理器对数据共享情况一对一地映射至T组位向量,得到相应的共享目录向量,其中,每组位向量均包括m位,m小于η。[0021 ]优选的,所述共享情况映射模块,包括:
[0022]初始化单元,用于预先对所述T组位向量进行初始化,以将所述T组位向量中的每一位均置为O;
[0023]映射子模块,用于分别在每组处理器中均执行k次哈希运算,以将每组处理器对所述数据共享情况均映射至与该组处理器对应的一组位向量,其中,k小于m。
[0024]优选的,所述映射子模块包括:
[0025]第一映射子模块,用于当所述N个处理器中的任一处理器需要读取目标数据块,则将相应的数据块副本发送至该处理器,并将该处理器对应的一组位向量上的映射位置为I;
[0026]第二映射子模块,用于当所述N个处理器中的任一处理器需要对目标数据块进行写入操作,则查找出所有具有对应的数据块副本的处理器,向查找出的所有处理器发送用于指示该数据块副本无效的无效命令,并对相应的映射位进行更新,然后允许该需要进行写入操作的处理器进行相应的写入操作。
[0027]优选的,所述第二映射子模块包括:
[0028]处理器查找单元,用于当所述N个处理器中的任一处理器需要对目标数据块进行写入操作,则通过结合当前每一处理器在自身对应的位向量上的映射情况以及当前所述共享目录向量上每一位的具体数值,查找出所有具有对应的数据块副本的处理器。
[0029]本发明进一步公开了一种多处理器计算机系统,包括前述的一致性目录构建系统。
[0030]本发明中,一致性目录构建方法,应用于包含N个处理器的多处理器计算机系统;该方法包括:对上述N个处理器进行分组,得到T组处理器,其中,每组处理器均包括η个处理器;利用布隆过滤器,将T组处理器对数据共享情况一对一地映射至T组位向量,得到相应的共享目录向量,其中,每组位向量均包括m位,m小于η。可见,本发明在利用布隆过滤器对数据共享情况进行映射之前,先对多处理器计算机系统中的所有处理器进行了分组,然后再利用布隆过滤器,将T组处理器对数据共享情况一对一地映射至T组位向量,也即,一方面本发明是基于布隆过滤器进行映射处理的,这样确保了一致性目录所占空间较低;另一方面,本发明将不同组的处理器与不同组的位向量进行映射对应,这样相当于使得每组位向量之间处于割裂状态,避免了它们之间产生互相的影响,从而使得不同组位向量之间不会产生映射冲突,由此减少了由于映射冲突所产生的冗余消息。
【附图说明】
[0031]为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
[0032]图1为本发明实施例公开的一种一致性目录构建方法流程图;
[0033]图2为本发明实施例公开的一种一致性目录构建系统结构示意图。
【具体实施方式】
[0034]下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0035]本发明实施例公开了一种一致性目录构建方法,应用于包含N个处理器的多处理器计算机系统,其中4为不小于2的整数;参见图1所示,该方法包括:
[0036]步骤Sll:对N个处理器进行分组,得到T组处理器,其中,每组处理器均包括η个处理器。
[0037]需要指出的是,上述分组过程是一种不重复且不遗漏的分组过程,也即,基于不重复且不遗漏的分组原则,对上述N个处理器进行分组,相应地得到T组处理器,其中每组处理器均包括η个处理器,由此可见,Ν = ΤΧη。另外,可根据N值的具体数值以及用户的实际需要,对T值进行设定,在此不对T值进行具体数值上的限定。
[0038]步骤S12:利用布隆过滤器,将T组处理器对数据共享情况一对一地映射至T组位向量,得到相应的共享目录向量,其中,每组位向量均包括m位,m小于η。
[0039]需要说明的是,上述每组位向量均包括m位,也即是指m位二进制。上述m值需要小于每组处理器中的处理器个数,也即,m需要小于η。
[0040]另外,上述所谓的数据共享情况是指处理器对Cache数据的共享情况。
[0041]本发明实施例中,一致性目录构建方法,应用于包含N个处理器的多处理器计算机系统;该方法包括:对上述N个处理器进行分组,得到T组处理器,其中,每组处理器均包括η个处理器;利用布隆过滤器,将T组处理器对数据共享情况一对一地映射至T组位向量,得到相应的共享目录向量,其中,每组位向量均包括m位,m小于η。可见,本发明实施例在利用布隆过滤器对数据共享情况进行映射之前,先对多处理器计算机系统中的所有处理器进行了分组,然后再利用布隆过滤器,将T组处理器对数据共享情况一对一地映射至T组位向量,也即,一方面本发明实施例是基于布隆过滤器进行映射处理的,这样确保了一致性目录所占空间较低;另一方面,本发明实施例将不同组的处理器与不同组的位向量进行映射对应,这样相当于使得每组位向量之间处于割裂状态,避免了它们之间产生互相的影响,从而使得不同组位向量之间不会产生映射冲突,由此减少了由于映射冲突所产生的冗余消息。
[0042]本发明实施例公开了一种具体的一致性目录构建方法,相对于上一实施例,本实施例对技术方案作了进一步的说明和优化。具体的:
[0043]上一实施例步骤S12中,利用布隆过滤器,将T组处理器对数据共享情况一对一地映射至T组位向量的过程,包括:
[0044]步骤S121:预先对T组位向量进行初始化,以将T组位向量中的每一位均置为O;
[0045]步骤S122:分别在每组处理器中均执行k次哈希运算,以将每组处理器对数据共享情况均映射至与该组处理器对应的一组位向量,其中,k小于m。
[0046]其中,每组处理器之间所采用的哈希运算为相同的哈希运算或不相同的哈希运算,也即,每组处理器之间所采用的哈希函数可以是相同的哈希函数,也可以是不同的哈希函数。
[0047]进一步的,在上述步骤S122中,将任一处理器对数据共享情况映射至对应的一组位向量上过程,包括:
[0048]若该处理器需要读取目标数据块,则将相应的数据块副本发送至该处理器,并将该处理器对应的一组位向量上的映射位置为I;若该处理器需要对目标数据块进行写入操作,则查找出所有具有对应的数据块副本的处理器,向查找出的所有处理器发送用于指示该数据块副本无效的无效命令,并对相应的映射位进行更新,然后允许该需要进行写入操作的处理器进行相应的写入操作。也即,在对目标数据块进行写入操作(即更改数据)之前,先通过无效命令来对相应处理器中的数据块副本进行无效处理,然后才进行数据写入操作。可以理解的是,上述数据块副本是指存储在Cache缓存器中的目标数据块的数据副本。
[0049]另外,上述查找出所有具有对应的数据块副本的处理器的过程,具体包括:通过结合当前每一处理器在自身对应的位向量上的映射情况以及当前共享目录向量上每一位的具体数值,查找出所有具有对应的数据块副本的处理器。也即,通过将当前每一处理器在自身对应的位向量上的具体数值与当前共享目录向量上每一位的具体数据值进行数值比对,来查找出存储有对应的数据块副本的处理器。
[0050]相应的,本发明实施例公开了一种一致性目录构建系统,应用于包含N个处理器的多处理器计算机系统,其中,N为不小于2的整数;参见图2所示,上述构建系统包括:
[0051 ] 处理器分组模块21,用于对N个处理器进行分组,得到T组处理器,其中,每组处理器均包括η个处理器;
[0052]共享情况映射模块22,用于利用布隆过滤器,将T组处理器对数据共享情况一对一地映射至T组位向量,得到相应的共享目录向量,其中,每组位向量均包括m位,m小于η。
[0053]需要指出的是,上述分组过程是一种不重复且不遗漏的分组过程,也即,基于不重复且不遗漏的分组原则,对上述N个处理器进行分组,相应地得到T组处理器,其中每组处理器均包括η个处理器,由此可见,Ν = ΤΧη。另外,可根据N值的具体数值以及用户的实际需要,对T值进行设定,在此不对T值进行具体数值上的限定。
[0054]可见,本发明实施例在利用布隆过滤器对数据共享情况进行映射之前,先对多处理器计算机系统中的所有处理器进行了分组,然后再利用布隆过滤器,将T组处理器对数据共享情况一对一地映射至T组位向量,也即,一方面本发明实施例是基于布隆过滤器进行映射处理的,这样确保了一致性目录所占空间较低;另一方面,本发明实施例将不同组的处理器与不同组的位向量进行映射对应,这样相当于使得每组位向量之间处于割裂状态,避免了它们之间产生互相的影响,从而使得不同组位向量之间不会产生映射冲突,由此减少了由于映射冲突所产生的冗余消息。
[0055]本发明实施例公开了一种具体的一致性目录构建系统,相对于上一实施例,本实施例对技术方案作了进一步的说明和优化。具体的:
[0056]上一实施例中的共享情况映射模块,具体可以包括初始化单元和映射子模块;其中,
[0057]初始化单元,用于预先对T组位向量进行初始化,以将T组位向量中的每一位均置为O;
[0058]映射子模块,用于分别在每组处理器中均执行k次哈希运算,以将每组处理器对数据共享情况均映射至与该组处理器对应的一组位向量,其中,k小于m。
[0059]具体的,上述映射子模块包括第一映射子模块和第二映射子模块;其中,
[0060]第一映射子模块,用于当N个处理器中的任一处理器需要读取目标数据块,则将相应的数据块副本发送至该处理器,并将该处理器对应的一组位向量上的映射位置为I;
[0061 ]第二映射子模块,用于当N个处理器中的任一处理器需要对目标数据块进行写入操作,则查找出所有具有对应的数据块副本的处理器,向查找出的所有处理器发送用于指示该数据块副本无效的无效命令,并对相应的映射位进行更新,然后允许该需要进行写入操作的处理器进行相应的写入操作。
[0062]其中,第二映射子模块包括:处理器查找单元,用于当N个处理器中的任一处理器需要对目标数据块进行写入操作,则通过结合当前每一处理器在自身对应的位向量上的映射情况以及当前共享目录向量上每一位的具体数值,查找出所有具有对应的数据块副本的处理器。
[0063]进一步的,本发明实施例还公开了一种多处理器计算机系统,包括前述实施例中公开的一致性目录构建系统,关于该构建系统的具体内容可参考前述实施例中的相应部分,在此不再赘述。
[0064]最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
[0065]以上对本发明所提供的一种一致性目录构建方法、系统及多处理器计算机系统进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在【具体实施方式】及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
【主权项】
1.一种一致性目录构建方法,其特征在于,应用于包含N个处理器的多处理器计算机系统,其中,N为不小于2的整数;所述方法包括: 对所述N个处理器进行分组,得到T组处理器,其中,每组处理器均包括η个处理器; 利用布隆过滤器,将所述T组处理器对数据共享情况一对一地映射至T组位向量,得到相应的共享目录向量,其中,每组位向量均包括m位,m小于η。2.根据权利要求1所述的一致性目录构建方法,其特征在于,所述利用布隆过滤器,将所述T组处理器对数据共享情况一对一地映射至T组位向量的过程,包括: 预先对所述T组位向量进行初始化,以将所述T组位向量中的每一位均置为O; 分别在每组处理器中均执行k次哈希运算,以将每组处理器对所述数据共享情况均映射至与该组处理器对应的一组位向量,其中,k小于m。3.根据权利要求2所述的一致性目录构建方法,其特征在于,每组处理器之间所采用的哈希运算为相同的哈希运算或不相同的哈希运算。4.根据权利要求2所述的一致性目录构建方法,其特征在于,将任一处理器对数据共享情况映射至对应的一组位向量上过程,包括: 若该处理器需要读取目标数据块,则将相应的数据块副本发送至该处理器,并将该处理器对应的一组位向量上的映射位置为I; 若该处理器需要对目标数据块进行写入操作,则查找出所有具有对应的数据块副本的处理器,向查找出的所有处理器发送用于指示该数据块副本无效的无效命令,并对相应的映射位进行更新,然后允许该需要进行写入操作的处理器进行相应的写入操作。5.根据权利要求4所述的一致性目录构建方法,其特征在于,所述查找出所有具有对应的数据块副本的处理器的过程,包括: 通过结合当前每一处理器在自身对应的位向量上的映射情况以及当前所述共享目录向量上每一位的具体数值,查找出所有具有对应的数据块副本的处理器。6.一种一致性目录构建系统,其特征在于,应用于包含N个处理器的多处理器计算机系统,其中,N为不小于2的整数;所述构建系统包括: 处理器分组模块,用于对所述N个处理器进行分组,得到T组处理器,其中,每组处理器均包括η个处理器; 共享情况映射模块,用于利用布隆过滤器,将所述T组处理器对数据共享情况一对一地映射至T组位向量,得到相应的共享目录向量,其中,每组位向量均包括m位,m小于η。7.根据权利要求6所述的一致性目录构建系统,其特征在于,所述共享情况映射模块,包括: 初始化单元,用于预先对所述T组位向量进行初始化,以将所述T组位向量中的每一位均置为O; 映射子模块,用于分别在每组处理器中均执行k次哈希运算,以将每组处理器对所述数据共享情况均映射至与该组处理器对应的一组位向量,其中,k小于m。8.根据权利要求7所述的一致性目录构建系统,其特征在于,所述映射子模块包括: 第一映射子模块,用于当所述N个处理器中的任一处理器需要读取目标数据块,则将相应的数据块副本发送至该处理器,并将该处理器对应的一组位向量上的映射位置为I; 第二映射子模块,用于当所述N个处理器中的任一处理器需要对目标数据块进行写入操作,则查找出所有具有对应的数据块副本的处理器,向查找出的所有处理器发送用于指示该数据块副本无效的无效命令,并对相应的映射位进行更新,然后允许该需要进行写入操作的处理器进行相应的写入操作。9.根据权利要求8所述的一致性目录构建系统,其特征在于,所述第二映射子模块包括: 处理器查找单元,用于当所述N个处理器中的任一处理器需要对目标数据块进行写入操作,则通过结合当前每一处理器在自身对应的位向量上的映射情况以及当前所述共享目录向量上每一位的具体数值,查找出所有具有对应的数据块副本的处理器。10.—种多处理器计算机系统,其特征在于,包括如权利要求6至9任一项所述的一致性目录构建系统。
【文档编号】G06F15/177GK106095725SQ201610375476
【公开日】2016年11月9日
【申请日】2016年5月31日
【发明人】赵雅倩, 史宏志
【申请人】浪潮(北京)电子信息产业有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1