一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种压缩多核处理器目录面积的双粒度目录及其使用方法

2023-02-01 22:45:43 来源:中国专利 TAG:


1.本发明属于多核处理器技术领域,具体涉及一种可压缩多核处理器目录面积的双粒度目录及其使用方法。


背景技术:

2.由于相比基于监听的一致性协议网络带宽更小,现代的大规模多核处理器芯片(cmp)中,基于目录的一致性协议得到广泛应用。过去的研究中,人们已经发现在多线程程序中,大多数缓存块都是由单个内核访问的。在此基础上,双粒度目录协议进一步观察到连续的内存块经常被单个内核访问,于是提出了使用更大粒度的条目跟踪一个区域的缓存块的方法。但是由于在区域条目中使用位向量,区域条目的长度无法压缩,导致旧的双粒度目录与最新的可扩展目录协议不兼容。为此,本发明提出一种短条目的双粒度目录,使用分离的私有目录和共享目录,可以进一步压缩目录面积且具备可扩展性。


技术实现要素:

3.本发明的目的是提出一种可以压缩多核处理器目录面积的双粒度目录,以有效地提升双粒度目录协议的面积压缩效果。
4.本发明另一目的还提供所述双粒度目录的使用方法,包括收到新目录请求以及目录条目由于冲突发生逐出时的处理。
5.本发明提供的可以压缩多核处理器目录面积的双粒度目录,以16核系统,4kb区域大小为例来说明,如图1所示,所述双粒度目录包括共享目录和私有目录;所述共享目录(参见图1a)只包括块条目,每个条目由块标签以及16位的共享者位向量组成;所述私有目录(参见图1b)包括块条目和区域条目,其中块条目由块标签和指针向量组成,区域条目由区域标签、计数器向量以及拥有者向量组成;私有目录中的块条目和共享条目的长度是自然相同的,并由第一位标志位作为区分。
6.本发明中,所述区域条目统计使用计数器计数,但不详细记录区域中具体有哪些块被拥有者缓存,但这种粗略的统计不会影响条目分配和访问逻辑。本发明根据最后一级缓存中的状态和目录信息共同判断该缓存块是否被区域条目跟踪。由于来自最后一级私有缓存的请求会并行访问最后一级缓存和目录,因此这种协同判断不会增加额外的延迟。
7.本发明还包括双粒度目录的使用方法,包括收到新请求的处理方法,以及目录条目由于冲突发生逐出时的处理方法;其中:收到新请求的处理方法,具体步骤为:(1)并行查询私有目录和共享目录,若发现该缓存块有对应块条目,直接使用块条目。若该缓存块没有块条目,而有区域条目,且区域拥有者是请求者,则直接使用区域条目。若该缓存块没有块条目,而有区域条目,但区域拥有者不是请求者,执行步骤(2)、步骤(3);(2)为该缓存块分配一个新的块条目,若目录中无空闲空间,先进行目录条目的替换逐出;
(3)若根据缓存块状态判断出该缓存块此前已在目录中被跟踪,区域条目的计数器计数减一,若原本计数器显示为零,取消分配该区域条目,分配新块条目时,将请求者和区域条目的拥有者都设置为块条目的共享者;否则,区域条目的计数器数值不变,块条目的共享者仅设置请求者。
8.目录条目由于冲突发生逐出时的处理方法,具体做法为:在目录条目逐出的场景下,此前使用粗向量编码共享者向量的方法往往需要多播无效信息,造成额外的流量开销。然而,对于使用计数器的区域条目,区域拥有者是确定的。由于我们使用包含性的目录结构,只需要查询区域中每个块条目在最后一级缓存里的状态,就能判断它是否被目录跟踪。在访问目录时,块条目的优先级高于区域条目,因此还需要查询目录以确保该块没有被其他块条目跟踪。具体来讲,如果通过查询最后一级缓存中的状态知道该缓存块被目录跟踪,且目录中没有对应的块条目,那么就可以判断该块是由这个将要被逐出的区域条目跟踪的。之后将对区域拥有者发出针对该块的无效请求。
9.本发明提出的短条目的双粒度目录,使用分离的私有目录和共享目录,可以有效地提升双粒度目录协议的面积压缩效果,且具备可扩展性。
10.目前最新的可扩展目录协议提议将每个条目的长度刚好能够存储标签位和一个指针,例如池目录。本发明方法能够将区域条目的长度缩短,使得区域条目也能应用于这些可扩展目录。以池目录为例,本发明方法中的区域条目可以直接用于池目录中的稀疏目录部分,只需要添加一位旗帜位指示是块条目还是区域条目。对于共享条目仍然使用池原本的指针指向共享向量池的方法来记录。与本发明方法提出的双粒度目录结合,能够减少池目录中私有块条目的数量,进一步压缩目录面积。
附图说明
11.图1本发明方法示意图。
具体实施方式
12.本发明使用gem5模拟器,在全系统模式下对具有16个以及64个内核的单芯片多处理器进行建模。该系统具有三级包含性缓存层级结构,每个内核具有一个私有的l1和l2缓存,一致性目录与共享的l3缓存位于同一位置。使用mesi一致性协议以及包含性的缓存结构。使用多线程负载中具有代表性的 parsec以及splash套件进行测试。
13.本发明还对旧的双粒度目录协议作为基线进行对比。基线协议中的区域条目使用位向量格式跟踪区域中的缓存块,在16核系统中需要16位,跟踪1kb的区域大小,在64核系统中需要64位,跟踪4kb的区域大小。
14.除了修改模拟器中对于缓存一致性协议的建模,本发明还添加了用于统计缓存未命中次数、网络流量以及区域条目占比等的数据统计接口。在16核和64核cmp中的仿真结果表明,本发明提出的双粒度目和原先的双粒度目录在执行时间,mpkis和网络流量上的差异均在1%以内。当使用独立的短条目的私有目录时,面积开销相对原先的双粒度目录分别下降10.1%和32.0%。平均而言,在16核和64核cmp中区域条目分别只占据18.6%和25.4%的目录条目数,但是能跟踪67.5%和71.0%的缓存块,具有较高的面积效率。


技术特征:
1.一种压缩多核处理器目录面积的双粒度目录,其特征在于,所述双粒度目录包括共享目录和私有目录;所述共享目录只包括块条目,每个条目由块标签以及16位的共享者位向量组成;所述私有目录包括块条目和区域条目,其中块条目由块标签和指针向量组成,区域条目由区域标签、计数器向量以及拥有者向量组成;私有目录中的块条目和共享条目的长度相同,并由第一位标志位作为区分。2.根据权利要求1所述的双粒度目录,其特征在于,所述区域条目统计使用计数器,其不详细记录区域条目中具体有哪些块被拥有者缓存;根据最后一级缓存中的状态和目录信息共同判断该缓存块是否被区域条目跟踪;由于来自最后一级私有缓存的请求会并行访问最后一级缓存和目录,这种协同判断不增加额外的延迟。3.如权利要求1所述的双粒度目录的使用方法,其特征在于,包括收到新请求的处理方法,具体步骤为:(1)并行查询私有目录和共享目录:若发现该缓存块有对应块条目,直接使用块条目;若该缓存块没有块条目,而有区域条目,且区域拥有者是请求者,则直接使用区域条目;若该缓存块没有块条目,而有区域条目,但区域拥有者不是请求者,执行步骤(2)、步骤(3);(2)为该缓存块分配一个新的块条目,若目录中无空闲空间,先进行目录条目的替换逐出;(3)若根据缓存块状态判断出该缓存块此前已在目录中被跟踪,区域条目的计数器计数减一,若原本计数器显示为零,取消分配该区域条目,分配新块条目时,将请求者和区域条目的拥有者都设置为块条目的共享者;否则,区域条目的计数器数值不变,块条目的共享者仅设置请求者。4.根据权利要求3所述的双粒度目录的使用方法,其特征在于,还包括目录条目由于冲突发生逐出时的处理方法,具体做法为:在目录条目逐出的场景下,由于使用计数器的区域条目,区域拥有者是确定的,只需要查询区域中每个块条目在最后一级缓存里的状态,就能判断它是否被目录跟踪;在访问目录时,块条目的优先级高于区域条目,还需要查询目录以确保该块没有被其他块条目跟踪;具体来讲,如果通过查询最后一级缓存中的状态知道该缓存块被目录跟踪,且目录中没有对应的块条目,那么就判断该块是由这个将要被逐出的区域条目跟踪的;之后将对区域拥有者发出针对该块的无效请求。

技术总结
本发明属于多核处理器技术领域,具体为一种可压缩多核处理器目录面积的双粒度目录及其使用方法。本发明设计的双粒度目录包括共享目录和私有目录;所述共享目录只包括块条目,每个条目由块标签以及16位的共享者位向量组成;所述私有目录包括块条目和区域条目,其中块条目由块标签和指针向量组成,区域条目由区域标签、计数器向量以及拥有者向量组成;私有目录中的块条目和共享条目的长度相同,并由第一位标志位作为区分。使用方法包括收到新请求的处理方法,以及目录条目由于冲突发生逐出时的处理方法等。本发明可以有效提升双粒度目录协议的面积压缩效果,且具备可扩展性。且具备可扩展性。且具备可扩展性。


技术研发人员:范益波 唐雨心
受保护的技术使用者:复旦大学
技术研发日:2022.10.30
技术公布日:2023/1/31
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献