一种基于布隆过滤器思想的一致性目录设计方法技术

技术编号:11131685 阅读:65 留言:0更新日期:2015-03-12 01:25
本发明专利技术公开了一种基于布隆过滤器思想的一致性目录设计方法,属于布隆过滤器技术领域,本发明专利技术所述的方法使用布隆过滤器思想设计目录项的共享列表,对于具有n个处理器的系统,目录项的共享列表向量压缩为m位,通过多个Hash运算的方式实现N个处理器到M位的共享列表位向量的映射,其中N>M;当directorycache收到某个处理器的请求需要向其它具有目标cache行副本的处理器发送消息时,执行多次hash运算,仅当所有Hash运算结果指示的共享列表的对应位均被置位时,才向对应的处理器发送同步消息。本发明专利技术能够显著减小目录中用于记录Cache行共享信息的位向量的长度,降低目录项开销,提升目录空间的利用效率。

【技术实现步骤摘要】

本专利技术涉及一种布隆过滤器
,具体地说是一种基于布隆过滤器思想的一 致性目录设计方法。
技术介绍
在多核、多处理器系统中,为了维护不同处理器(核)私有Cache (高速缓冲存储器) 中数据的一致性,需要使用Cache -致性协议。基于目录的Cache -致性由于其良好的扩展 性,在现代大型计算机系统中得到普遍的应用。其基本思想是以目录的形式记录所有高速 缓存行的副本位置以及状态。当某一处理器(核)对某个缓存行进行操作时,根据该行对应 的目录项进行相应的一致性操作。这种片上用于存储高速缓存行状态及副本共享信息的结 构被称为高速缓存目录(directory Cache)(注:以下说明中,除非特别指定,否则目录均指 代高速缓存目录)。Directory cache中的每一项称为一个目录项,其除了需要记录对应 cache行的标签(tag)、状态外,还需要记录哪些处理器(核)具有该行的副本。高速缓存目 录的一种典型实现方式是全映射目录。在全映射目录中,使用位向量(称为共享列表:Share list)记录位于同一同步域内各个Cache中是否拥有该Cache行的副本。Share list中的 每位对应一个处理器(核),其置为1表示相应的处理器(核)私有Cache具有对应行的副本, 否则没有。当需要给其它处理器(核)发送无效消息时,仅对share list中置为1的对应处 理器(核)发送。 由于处理器片上资源极其宝贵,因此必须控制directory Cache的容量。一种典 型的做法是使用有限高速缓存目录。在有限高速缓存目录实现中,每个目录项仅使用特定 数量(记为Q)的位记录数据共享情况,当系统中的数据共享副本数大于Q时,向系统中所有 的处理器(核)广播同步消息。这种做法虽然有助于减小目录项的大小,但是当数据共享副 本较多时,同步消息频繁,系统通信性能不佳。
技术实现思路
本专利技术的技术任务是提供一种能够显著减小目录中用于记录Cache行共享信息 的位向量的长度,降低目录项开销,提升目录空间的利用效率的一种基于布隆过滤器思想 的一致性目录设计方法。 本专利技术的技术任务是按以下方式实现的: ,使用布隆过滤器(bloom filter)思 想设计目录项的共享列表(Share List),对于具有n个处理器(核)的系统,目录项的共享 列表向量压缩为m位,通过多个Hash运算的方式实现N个处理器(核)到M位的共享列表 (Share List)位向量的映射,其中N>M ;当directory cache收到某个处理器(核)的请求需 要向其它具有目标cache行副本的处理器(核)发送消息时,执行多次hash运算,仅当所有 Hash运算结果指示的共享列表(Share List)的对应位均被置位时,才向对应的处理器(核) 发送同步消息。 hash次数随系统规模变化而变化,系统处理器(核)数n与目录项的共享列表向量 长度m应该满足关系:;当n=m时,为全目录共享列表设计方法,一位表示一个处理器(核)。 具有n个处理器(核)的系统,为具有单极或多级Cache -致性协议域的计算机系 统。 需要给所有包含数据副本的处理器(核)发送消息时,多次Hash运算确定需要发送 消息的处理器(核)集合,该集合包含所有包含数据副本的处理器(核)及所有其它不包含数 据副本但被命中判定方法判定为包含副本的处理器(核);命中判定方法为包含副本的处理 器(核)为多次Hash运算确定处理器(核)是否具有数据的共享副本,仅当所有hash结果都 在共享列表中命中时确定该处理器(核)具有数据共享副本;命中判定方法判定为包含副本 的处理器(核)收到一致性同步消息时,直接返回应答消息。 当使用k个Hash函数时,一个m位的共享列表(Share List)位向量最多可映射 个处理器。 使用3个hash函数时,6位的位向量最多可映射20个处理器。与全目录实现方式 相比,share list的长度不到1/3。假设处理器(核)数为n,则使用本专利技术方法的共享列表 的长度m满足条件:,其中k为映射函数个数。满足上述条件的最小m值为,称为最小可 映射长度。 处理器(核)不包含数据副本但被命中判定方法判定为包含副本,这种情况为伪共 享;当伪共享发生时,向所有被多次Hash运算判定为包含共享副本的处理器(核)发送一致 性同步消息,当不具有数据副本的处理器(核)收到一致性同步消息后,直接返回响应,协议 正确性不受影响。为了减少伪共享情况的发生,在实际使用过程中,可在最小可映射长度基 础上适当增加共享列表位数;为了减小伪共享情况及降低多次Hash运算的时间及空间开 销,在满足的情况下,选择最小的k值。伪共享现象仅存在于当一个以上的处理器(核)具 有数据副本的情况,因此,处于E或者M状态的Cache行不会因为伪共享导致额外的同步消 肩、。 多个Hash映射功能的实现使用如下方式的任意一种: (1) 、使用多个运算逻辑单元,每个运算逻辑单元的输入为处理器编号,输出为一位置1 的m位向量或一个指示特定位编号的数字;例如,假设share list为4位,输入为0,要求 映射share list的最低位,则输出可为4位位向量0001,或者0 (指示检查最右边1位); (2) 、使用查找表实现Hash映射,每个处理器(核)对应一个表项,并使用处理器(核)编 号定位表项;例如编号为5的处理器(核)对应第五个表项。每个表项具有与share list相 同的位长度,k个位被置I, k为定义的hash函数个数; (3) 、使用寄存器组实现hash函数,每个寄存器可记录一个或多个处理器(核)对应的映 射结果。与使用逻辑单元实现方式相比,后两种方式可动态更改Hash映射关系,因此更为 灵活。 一致性目录同步过程如下: (1) 、初始阶段:在数据块被引用前,Directory Cache中无对应的目录项或对应目录项 的有效位(V位)为0,此时共享列表对应的5位向量为0 ; (2) 、数据读阶段:处理器(核)CO读数据块,返回数据的同时更新对应目录项,将位向量 中其对应的两位(第1及2位)置1 ; (3) 、处理器(核)C4读数据块,返回数据的同时更新对应目录项,将处理器(核)C4对 应的两位(第2及5位)置1,第2位已经为1,将第5位置1 ; (4) 、数据写阶段:处理器(核)C2写数据块,在执行写操作之前,向具有该数据块副本的 处理器发送无效命令,Directory Cache控制器根据Hash运算结果,向对应处理器(核)发 送无效命令;此时共享列表的第1、2、5位被置为1,参照表1的hash运算结果,需要向处理 器(核)CO、C3及C4发送无效消息; (5) 、CO及C4接收到该无效消息后,将本地数据副本无效,返回应答消息;C3并不存在 数据的副本,在收到该无效消息后,其检查本地Cache,发现无对应数据副本后直接返回应 答消息; (6) 、当directory Cache接收到所有无效消息应答后,从相应位置返回数据行给C2, 同时更新对应的目录项。 在上述过程中,尽管C3没有数据副本,但是Directory本文档来自技高网
...

【技术保护点】
一种基于布隆过滤器思想的一致性目录设计方法,其特征在于使用布隆过滤器思想设计目录项的共享列表,对于具有n个处理器的系统,目录项的共享列表向量压缩为m位,通过多个Hash运算的方式实现N个处理器到M位的共享列表位向量的映射,其中N>M;当directory cache收到某个处理器的请求需要向其它具有目标cache行副本的处理器发送消息时,执行多次hash运算,仅当所有Hash运算结果指示的共享列表的对应位均被置位时,才向对应的处理器发送同步消息。

【技术特征摘要】
1. 一种基于布隆过滤器思想的一致性目录设计方法,其特征在于使用布隆过滤器思想 设计目录项的共享列表,对于具有n个处理器的系统,目录项的共享列表向量压缩为m位, 通过多个Hash运算的方式实现N个处理器到M位的共享列表位向量的映射,其中N>M ;当 directory cache收到某个处理器的请求需要向其它具有目标cache行副本的处理器发送 消息时,执行多次hash运算,仅当所有Hash运算结果指示的共享列表的对应位均被置位 时,才向对应的处理器发送同步消息。2. 根据权利要求1所述的一种基于布隆过滤器思想的一致性目录设计方法,其特征在 于hash次数随系统规模变化而变化,系统处理器数n与目录项的共享列表向量长度m应该 满足关系:;当n=m时,为全目录共享列表设计方法,一位表示一个处理器。3. 根据权利要求1所述的一种基于布隆过滤器思想的一致性目录设计方法,其特征在 于具有n个处理器的系统,为具有单极或多级Cache -致性协议域的计算机系统。4. 根据权利要求1所述的一种基于布隆过滤器思想的一致性目录设计方法,其特征在 于需要给所有包含数据副本的处理器发送消息时,多次Hash运算确定需要发送消息的处 理器集合,该集合包含所有包含数据副本的处理器及所有其它不包含数据副本但被命中判 定方法判定为包含副本的处理器;命中判定方法为包含副本的处理器为多次Hash运算确 定处理器是否具有数据的共享副本,仅当所有hash结果都在共享列表中命中时确定该处 理器具有数据共享副本;命中判定方法判定为包含副本的处理器收到一致性同步消息时, 直接返回应答消息。5. 根据权利要求1所述的一种基于布隆过滤器思想的一致性目录设计方法,其特征在 于当使用k个Hash函数时,一个m位的共享列表位向量最多可映射个处理器。6. 根据权利要求5所述的一种基于布隆过滤器思想的一致性目录设计方法,其特征在 于使用3个hash函数时,6位的位向量最多可映射20个处理器。7. 根据权利要求4所述的一种基于布隆过滤器思想的一致性目录设计方法,其特...

【专利技术属性】
技术研发人员:王恩东倪璠陈继承唐士斌王洪伟赵雅倩
申请(专利权)人:浪潮电子信息产业股份有限公司
类型:发明
国别省市:山东;37

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

1