一种无横向一致性的众核精简Cache协议实现方法技术

技术编号:32753064 阅读:9 留言:0更新日期:2022-03-23 18:48
本发明专利技术公开一种无横向一致性的众核精简Cache协议实现方法,包括以下步骤:S1、对Cache行内数据更新情况进行分析,标记出被更新的数据;S2、如果Cache行内所有数据都没有被更新,或者Cache行内所有数据都被更新,跳转至S5,如果Cache行内只有部分数据被更新,跳转至S3;S3、当一个Cache行内的数据只有部分内容需要写回时,其他位掩码置0;S4、根据掩码粒度大小与置位情况,更新主存中对应掩码位为1的数据;S5、直接对Cache行进行写回操作。本发明专利技术有效解决共享主存Cache结构的假共享问题,还可以提高写回效率、有效降低处理器在Cache数据管理方面的硬件开销。方面的硬件开销。方面的硬件开销。

【技术实现步骤摘要】
一种无横向一致性的众核精简Cache协议实现方法


[0001]本专利技术涉及一种无横向一致性的众核精简Cache协议实现方法,属于高性能计算


技术介绍

[0002]计算机系统中为了缓解从主存取数据速度与处理器处理数据速度之间的差距,在处理器与主存之间添加了一级或者多级高速缓冲存储器(Cache),Cache行是Cache与主存之间传输数据的基本单位,一个Cache行内包含多个数据单元。当一个Cache行数据被从主存里拷入Cache后,存储控制部件会为该Cache行数据创建一个条目,这个条目既包含了内存数据,又包含了这行数据在内存中的位置信息。
[0003]在共享主存架构并且每个处理器内核包含独立Cache结构的情况下,每个处理器内的计算任务对同一段内存空间中的不同数据进行更新,如果这些数据在内存中紧密排布,并处于一个Cache行映射空间。那么,由于Cache写回主存以行为单位进行,会导致主存与各个Cache中数据的一致性遭到破坏,导致主存中数据出错,此现象为假共享。完整Cache一致性协议能够保证共享内存情况下,各个处理器内核中Cache数据的一致,但在众核处理器的架构下,其实现难度和硬件开销都非常大。部分(单边)Cache一致性协议能够大幅降低处理器相关部件的硬件开销,为其它高性能部件节省物理空间,却缺乏有效的方法和机制来规避或解决假共享问题。
[0004]“异构众核+共享内存”是目前处理器体系结构发展的一个重要趋势。在该结构下,完整Cache一致性协议实现难度和硬件开销都很大,需要引入大量的硬件部件以及线路来保证各个内核Cache中数据和主存数据的相一致。在工程实践中,从处理器整体设计和实际应用出发,经常采用部分(单边)Cache一致性协议,从而大幅降低处理器相关部件的硬件开销,为其他高性能部件节省出硬件空间,提高处理器的整体性能。但是,目前的技术缺乏对Cache写回数据的细粒度管理,从而导致假共享问题,对程序逻辑正确性造成影响。

技术实现思路

[0005]本专利技术的目的是提供一种无横向一致性的众核精简Cache协议实现方法,以克服众核处理器中共享主存Cache结构存在的假共享问题。
[0006]为达到上述目的,本专利技术采用的技术方案是:提供一种无横向一致性的众核精简Cache协议实现方法,包括以下步骤:S1、获取硬件Cache的Cache行状态位信息,对Cache行内数据更新情况进行分析,标记出被更新的数据;S2、如果Cache行内所有数据都没有被更新,或者Cache行内所有数据都被更新,跳转至S5,如果Cache行内只有部分数据被更新,跳转至S3;S3、当一个Cache行内的数据只有部分内容需要写回时,确定该部分数据的单元大小以及数据个数,将对应该部分数据的位的掩码置1,其他位掩码置0;
S4、根据掩码粒度大小与置位情况,更新主存中对应掩码位为1的数据,具体如下:S4.1 根据S3所述的该Cache行中的物理地址标记,取出主存中对应地址的数据,记为M;S4.2 设掩码的粒度大小为X字节,针对M的每个X字节内容,查询S3中所述的对应数据位的掩码,若该掩码位为0,则不更改该X字节的内容;若该掩码位为1,则将该Cache行对应位置的X字节内容写入M,覆盖M中原本的该X字节内容;S4.3将修改后的M写回主存,退出;S5、忽略掩码机制,直接对Cache行进行写回操作。
[0007]上述技术方案中进一步改进的方案如下:1. 上述方案中,S1中,若Cache行状态位信息为每一位均全0的二进制数,则该Cache行内所有数据都没有被更新;若Cache行状态位信息为每一位均全1的二进制数,则该Cache行内所有数据都被更新。
[0008]由于上述技术方案的运用,本专利技术与现有技术相比具有下列优点:本专利技术通过掩码的方式调整Cache行写回主存的数据粒度,保证Cache行内被实际更新过的数据写回到主存,避免了Cache行数据整行写回导致的旧数据覆盖新数据的现象,有效解决共享主存Cache结构的假共享问题,还可以提高写回效率、有效降低处理器在Cache数据管理方面的硬件开销。
附图说明
[0009]附图1为本专利技术方法的示意图。
具体实施方式
[0010]实施例:本专利技术提供一种无横向一致性的众核精简Cache协议实现方法,具体包括以下步骤:S1、获取硬件Cache的Cache行状态位信息,对Cache行内数据更新情况进行分析,标记出被更新的数据;S2、如果Cache行内所有数据都没有被更新,或者Cache行内所有数据都被更新,跳转至S5,如果Cache行内只有部分数据被更新,跳转至S3;S3、当一个Cache行内的数据只有部分内容需要写回时,确定该部分数据的单元大小以及数据个数,将对应该部分数据的位的掩码置1,其他位掩码置0;S4、根据掩码粒度大小与置位情况,更新主存中对应掩码位为1的数据,具体如下:S4.1 根据S3所述的该Cache行中的物理地址标记,取出主存中对应地址的数据,记为M;S4.2 设掩码的粒度大小为X字节,针对M的每个X字节内容,查询S3中所述的对应数据位的掩码,若该掩码位为0,则不更改该X字节的内容;若该掩码位为1,则将该Cache行对应位置的X字节内容写入M,覆盖M中原本的该X字节内容;S4.3将修改后的M写回主存,退出;S5、忽略掩码机制,直接对Cache行进行写回操作。
[0011]S1中,若Cache行状态位信息为每一位均全0的二进制数,则该Cache行内所有数据
都没有被更新;若Cache行状态位信息为每一位均全1的二进制数,则该Cache行内所有数据都被更新。
[0012]对上述实施例的进一步解释如下:本专利技术通过掩码的方式调整Cache行写回主存的数据粒度,保证Cache行内被实际更新过的数据写回到主存,避免了Cache行数据整行写回导致的旧数据覆盖新数据的现象,有效解决共享主存Cache结构的假共享问题。
[0013]在Cache行数据写回主存空间之前,方法的具体流程如下:1、对Cache行内数据更新情况进行分析,标记出被更新的数据。
[0014]2、如果Cache行内所有数据都没有被更新,或者Cache行内所有数据都被更新,跳转至5;如果Cache行内只有部分数据被更新,跳转至3。
[0015]3、当一个Cache行内的数据只有部分内容需要写回时,确定该部分数据的单元大小以及数据个数,将对应该部分数据的位的掩码置1,其他位掩码置0。
[0016]4、采用原子读改写的主存访问方式进行处理,根据掩码粒度大小与置位情况,更新主存中对应掩码位为1的数据,方法结束。
[0017]5、忽略掩码机制,直接对Cache行进行写回操作,提高Cache写回主存效率,方法结束。
[0018]采用上述一种无横向一致性的众核精简Cache协议实现方法时,其通过掩码的方式调整Cache行写回主存的数据粒度,保证Cache行内被实际更新过的数据写回到主存,避免了Cache行数据整行写回导致的旧数据本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种无横向一致性的众核精简Cache协议实现方法,其特征在于,包括以下步骤:S1、获取硬件Cache的Cache行状态位信息,对Cache行内数据更新情况进行分析,标记出被更新的数据;S2、如果Cache行内所有数据都没有被更新,或者Cache行内所有数据都被更新,跳转至S5,如果Cache行内只有部分数据被更新,跳转至S3;S3、当一个Cache行内的数据只有部分内容需要写回时,确定该部分数据的单元大小以及数据个数,将对应该部分数据的位的掩码置1,其他位掩码置0;S4、根据掩码粒度大小与置位情况,更新主存中对应掩码位为1的数据,具体如下:S4.1 根据S3所述的该Cache行中的物理地址标记,取出主存中对...

【专利技术属性】
技术研发人员:何王全郑方王飞过锋吴伟陈芳园朱琪钱宏管茂林
申请(专利权)人:无锡江南计算技术研究所
类型:发明
国别省市:

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

1