System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本公开涉及计算机领域,特别地涉及一种缓存一致性目录表项的自适应联合方法和计算机程序产品。
技术介绍
1、现代众核cpu上的每个处理器核都具有cache(即高速缓存),以提高数据的访问速度并确保程序编写的便捷性。在运行一个并行程序时,多个处理器核上运行的多个进程或多个线程可能会读写同一段共享内存区域内的数据。为了确保并行程序运行的正确性,需要在同一cpu的不同处理器核之间、以及同一计算节点内的不同cpu之间具备cache一致性(缓存一致性,cache coherence),以让同一cache块(cache line)的数据在同一计算节点内多个处理器核的私有cache之间保持一致。
2、现有技术下,主要包括两种cache一致性协议:基于侦听形式的一致性协议(简称侦听协议)和基于目录结构的一致性协议(简称目录协议);具体的:
3、侦听协议的实现依赖于总线或类总线形式的网络连接(包括mesh网络等);基于此网络连接,单个处理器核的私有cache所发出的请求会被广播到系统中所有其它处理器核的私有cache中,而所有处理器核的访问请求也可以在此总线上进行定序操作,以实现缓存一致性模型及存储同一性模型中对访存序的要求,并处理好对同一数据块的多个冲突请求。
4、目录协议则是采用一个目录结构来实现对各cache块(cache line)的共享访问情况进行管理。在该协议中,处理器核的私有缓存发出的访存请求,会首先发送到拥有相应cache块的目录结构中,此目录结构中记录了cache块的当前共享情况,控制器会根据该当
5、侦听协议与目录协议互有优缺点。其中,侦听协议的硬件实现开销小且运行功耗小,但因所有处理器核对总线的竞争性访问和有序应答,容易成为并行性能瓶颈。目录协议能使得能并行不同地址cache块的一致性维护,因此能高效实现cache一致性;但是,一方面,因需要记录大量cache块的共享访问状态而造成硬件与功耗开销,另一方面,从目录中找出一个cache块对应记录的过程也会引入较大的延迟。
6、当前一片cpu中的核数已经达到上百(其中amd公司已发布192核的商用cpu),而超级计算机的一个计算节点通常会有至少两片cpu,使得需要支持近400甚至更多处理器核之间的cache一致性。无论是侦听协议还是目录协议,都难以支撑这么大数量的处理器核之间的cache一致性。因此,众核cpu大多使用目录与侦听混合的方法,可表现为侦听过滤(snoopfilter)。这种侦听过滤方法一方面可以让一个目录表项管理地址连续的多个cache块的共享情况,另一方面可以不精确记录cache块的共享情况:例如记录cache块的一个或少量几个副本的所有者的处理器核编号、当前被有效共享次数等。在不精确记录cache块的共享情况时,可能出现一个缓存一致性操作需要对所有处理器核进行侦听的现象。例如,当一个目录表项至多只能记录cache块的两个所有核的编号时,如果有一个cache块正被3个或以上核读共享,而有一个核马上要修改这个cache块,则需要对cpu上的几乎所有处理器核进行侦听。
7、无论是目录协议还是混合方法,通常都需要让目录中表项的数量与所有处理器核中的私有cache的总数量相匹配。例如,当各目录表项负责记录一个cache块的共享情况时,目录表项的数量应该不小于所有处理器核中私有cache的cache块总数,否则可能出现因目录表项不够而导致私有cache中cache块被换出的情况。让各目录表项负责记录多个地址连续的cache块的共享情况的方法是为了减少目录表项的数量和硬件开销,但当并行程序的访存行为很随机时,很可能出现目录表项远不够用的情况。因此,cpu上的目录表项很少能出现富余的情况。
8、现有技术下,并行程序中各线程的数据访问以私有变量居多,虽然当前已公开了一些能避免冗余cache一致性操作的方法。但是,这些方法会使得对私有变量的访问不经过cache一致性协议,导致原来本不太够用的目录表项变得有空余,而且当冗余cache一致性操作减少得越多,空余的目录表项则会越多。
9、进一步地,未来很可能出现这样一种矛盾:目录表项有较多空余而每个目录表项又不能精确记录cache块的共享情况,这就使得经常需要对被共享的cache块进行几乎所有处理器核的侦听,但又无法充分利用目录的容量。
技术实现思路
1、为了解决如
技术介绍
中所述的缺陷并减少对所有处理器核的侦听操作,本专利技术提出了一种缓存一致性目录表项的自适应联合方法、缓存一致性目录表项的自适应联合系统和计算机程序产品。
2、本申请的至少一个实施例提供了一种缓存一致性目录表项的自适应联合方法,所述方法包括:
3、响应于当前处理器核对当前cache块的读入所有权的请求,从预设目录中获取所述当前cache块的地址对应的第一目标目录表项集合;
4、在所述第一目标目录表项集合中存在满足预设空闲空间条件的目标表项的情况下,将所述当前处理器核的编号信息保存在所述目标表项中;
5、在所述第一目标目录表项集合中不存在表项,或所述第一目标目录表项集合中不存在用于保存所述当前处理器核的编号信息的空闲空间的目标表项的情况下,向所述预设目录申请新表项,在成功申请到所述新表项的情况下,将所述当前处理器核的编号信息保存在所述新表项中,并将所述新表项保存在所述第一目标目录表项集合中。
6、本申请的至少一个实施例还提供了一种缓存一致性目录表项的自适应联合系统,其特征在于,包括:
7、第一目标目录表项集合确定模块,用于响应于当前处理器核对当前cache块的读入所有权的请求,从预设目录中获取所述当前cache块的地址对应的第一目标目录表项集合;
8、第一保存模块,用于在所述第一目标目录表项集合中存在满足预设空闲空间条件的目标表项的情况下,将所述当前处理器核的编号信息保存在所述目标表项中;
9、第二保存模块,用于在所述第一目标目录表项集合中不存在表项,或所述第一目标目录表项集合中不存在用于保存所述当前处理器核的编号信息的空闲空间的目标表项的情况下,向所述预设目录申请新表项,在成功申请到所述新表项的情况下,将所述当前处理器核的编号信息保存在所述新表项中,并将所述新表项保存在所述第一目标目录表项集合中。
10、本申请的至少一个实施例还提供了一种电子设备,包括存储器、处理器及存储在存储器上的计算机程序,所述处理器执行所述计算机程序以实现如上所述方法的步骤。
11、本申请的至少一个实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如上所述方法的步骤。
12、本申请的至少一个实施例还提供了一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现如上所述光纤探测方法的步骤。
13、本申请实施例提供的缓存一致性目录表项的自适应联合方法、缓本文档来自技高网...
【技术保护点】
1.一种缓存一致性目录表项的自适应联合方法,其特征在于,所述方法包括:
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
3.根据权利要求1所述的方法,其特征在于,所述方法还包括:
4.根据权利要求3所述的方法,其特征在于,在所述从所述目标目录表项中删除所述当前处理器核的编号信息之后,所述方法还包括:
5.根据权利要求1所述的方法,其特征在于,所述方法还包括:
6.根据权利要求1~5中任一项所述的方法,其特征在于,所述目标目录表项集合包括:
7.根据权利要求6所述的方法,其特征在于,所述表项的内容格式包括:位图枚举方式或编号枚举方式;其中:
8.根据权利要求2所述的方法,其特征在于,在所述第一目标目录表项集合和所述第二目标目录表项集合中,各表项均按照预设保存策略有序排列。
9.根据权利要求8所述的方法,其特征在于,所述预设保存策略包括:
10.一种缓存一致性目录表项的自适应联合系统,其特征在于,包括:
11.根据权利要求10所述的统,其特征在于,还包括
12.一种计算机程序产品,包括计算机程序,其特征在于,该计算机程序被处理器执行时实现权利要求1至9中任一项所述方法的步骤。
...【技术特征摘要】
1.一种缓存一致性目录表项的自适应联合方法,其特征在于,所述方法包括:
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
3.根据权利要求1所述的方法,其特征在于,所述方法还包括:
4.根据权利要求3所述的方法,其特征在于,在所述从所述目标目录表项中删除所述当前处理器核的编号信息之后,所述方法还包括:
5.根据权利要求1所述的方法,其特征在于,所述方法还包括:
6.根据权利要求1~5中任一项所述的方法,其特征在于,所述目标目录表项集合包括:
7.根据权利要求6所述的方法,其特征在...
【专利技术属性】
技术研发人员:张诚,李锐喆,孙超,赵彤,
申请(专利权)人:北京卡普拉科技有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。