一种不需要硬件支持实现基于程序同步点高速缓存一致性的方法

文档序号:6629686阅读:174来源:国知局
一种不需要硬件支持实现基于程序同步点高速缓存一致性的方法
【专利摘要】本发明提供一种不需要硬件支持实现基于程序同步点高速缓存一致性的方法,具体步骤如下:首先对已有的多线程程序进行分析,得到需要进行缓存同步的同步点;然后,在每个同步点,记录有效缓存与无效缓存集合;最后,无效掉无效缓存集合,同步有效缓存。本发明的方法与现有的基于目录的高速缓存一致性协议相比,可以降低目录协议的实现、验证复杂度。
【专利说明】一种不需要硬件支持实现基于程序同步点高速缓存一致性的方法

【技术领域】
[0001]本发明涉及计算机存储服务器设计【技术领域】,具体地说是一种不需要硬件支持实现基于程序同步点高速缓存一致性的方法。

【背景技术】
[0002](I)高速缓存一致性
在计算机科学中,高速缓存一致性(Cache coherence)是指保留在高速缓存中的共享资源,保持数据一致性的机制。在一个系统中,当许多不同的设备共享一个共同存储器资源,在高速缓存中的数据不一致,就会产生一致性问题。这个问题在有多个CPU的多处理机系统中特别各易出现。
[0003]缓存一致性可以分为三个层次:
1)在进行每个写入运算时都立刻采取措施保证数据一致性;
2)每个独立的运算,假如它造成数据值的改变,所有进程都可以看到一致的改变结果;
3 )在每次运算之后,不同的进程可能会看到不同的值(没有一致性的行为)。
[0004](2)临界区和程序同步点
在共享存储并行程序中,程序员使用锁等原语界定临界区以同步对共享数据的访问。例如,锁用来实现对共享数据的互斥访问,栅障用来同步并行程序的各个执行阶段。除了同步语义本身以外,同步原语还表达了对其作用的共享数据的一致性需求。
[0005]在软件DSM系统中通常是以操作系统管理的页面为单位在同步点维护高速缓存一致性。具体的做法是在临界区内记录线程修改过哪些页面,这些修改过的页面号集合记作write-notice,将修改过的页面的数据部分与初始页面数据的差异记作块差diff。在应用程序的同步点,释放锁的线程将write-notice传递给锁管理器,将页差diff传送到各个被修改过的页面所在的home节点,并且将diff合并到内存中。当另外的线程获得锁时,该线程同时获得write-notice,并根据write-notice将本节点缓存的旧数据无效掉,当要访问前一个线程更新过的数据时,由于在本节点的缓存中不命中,所以到该页面所在的home节点取得新数据。直接将软件DSM系统硬件结构化是非常困难的,一方面以页面为粒度维护一致性由于假共享等问题不利于系统的性能,另一方面难于用硬件记录write-notice, diff等复杂的软件数据结构。


【发明内容】

[0006]本发明的目的是提供一种不需要硬件支持实现基于程序同步点高速缓存一致性的方法。
[0007]本发明的目的是按以下方式实现的,针对共享存储系统中高速缓存一致性的实现,本发明提出一种不需要硬件结构支持的基于程序同步点的高速缓存一致性实现方法。具体步骤如下:
1)首先对已有的多线程程序进行分析,得到需要进行缓存同步的同步点;
2)然后,在每个同步点,记录有效缓存与无效缓存集合;
3)最后,无效掉无效缓存集合,同步有效缓存。
[0008]本发明的目的有益效果是:本发明在应用程序的同步点维护高速缓存的一致性,而不是基于目录的协议以高速缓存行为单位维护一致性,与现有的基于目录的高速缓存一致性协议相比,可以降低目录协议的实现、验证复杂度。

【专利附图】

【附图说明】
[0009]图1是系统结构拓扑图。

【具体实施方式】
[0010]参照说明书附图对本发明的一种不需要硬件支持实现基于程序同步点高速缓存一致性的方法作以下详细地说明。
[0011]具体步骤如下:
(1)首先对已有的多线程程序进行分析,得到需要进行缓存同步的同步点;
(2)然后,在每个同步点,记录有效缓存与无效缓存集合;
(3)最后,无效掉无效缓存集合,同步有效缓存。
[0012]除说明书所述的技术特征外,均为本专业技术人员的已知技术。
【权利要求】
1.一种不需要硬件支持实现基于程序同步点高速缓存一致性的方法,其特征在于具体步骤如下:首先对已有的多线程程序进行分析,得到需要进行缓存同步的同步点;然后,在每个同步点,记录有效缓存与无效缓存集合;最后,无效掉无效缓存集合,同步有效缓存。
【文档编号】G06F12/08GK104317737SQ201410529625
【公开日】2015年1月28日 申请日期:2014年10月10日 优先权日:2014年10月10日
【发明者】王闯, 赵庶林, 戴鸿君, 于治楼 申请人:浪潮集团有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1