CN104317737A - 一种不需要硬件支持实现基于程序同步点高速缓存一致性的方法 - Google Patents
一种不需要硬件支持实现基于程序同步点高速缓存一致性的方法 Download PDFInfo
- Publication number
- CN104317737A CN104317737A CN201410529625.7A CN201410529625A CN104317737A CN 104317737 A CN104317737 A CN 104317737A CN 201410529625 A CN201410529625 A CN 201410529625A CN 104317737 A CN104317737 A CN 104317737A
- Authority
- CN
- China
- Prior art keywords
- cache
- program
- synchronization
- caches
- consistency
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Landscapes
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本发明提供一种不需要硬件支持实现基于程序同步点高速缓存一致性的方法,具体步骤如下:首先对已有的多线程程序进行分析,得到需要进行缓存同步的同步点;然后,在每个同步点,记录有效缓存与无效缓存集合;最后,无效掉无效缓存集合,同步有效缓存。本发明的方法与现有的基于目录的高速缓存一致性协议相比,可以降低目录协议的实现、验证复杂度。
Description
技术领域
本发明涉及计算机存储服务器设计技术领域, 具体地说是一种不需要硬件支持实现基于程序同步点高速缓存一致性的方法。
背景技术
(1)高速缓存一致性
在计算机科学中,高速缓存一致性 (Cache coherence) 是指保留在高速缓存中的共享资源,保持数据一致性的机制。在一个系统中,当许多不同的设备共享一个共同存储器资源,在高速缓存中的数据不一致,就会产生一致性问题。这个问题在有多个CPU的多处理机系统中特别容易出现。
缓存一致性可以分为三个层次:
1)在进行每个写入运算时都立刻采取措施保证数据一致性;
2)每个独立的运算,假如它造成数据值的改变,所有进程都可以看到一致的改变结果;
3)在每次运算之后,不同的进程可能会看到不同的值(没有一致性的行为)。
(2)临界区和程序同步点
在共享存储并行程序中,程序员使用锁等原语界定临界区以同步对共享数据的访问。例如,锁用来实现对共享数据的互斥访问,栅障用来同步并行程序的各个执行阶段。除了同步语义本身以外,同步原语还表达了对其作用的共享数据的一致性需求。
在软件DSM 系统中通常是以操作系统管理的页面为单位在同步点维护高速缓存一致性。具体的做法是在临界区内记录线程修改过哪些页面, 这些修改过的页面号集合记作write-notice,将修改过的页面的数据部分与初始页面数据的差异记作块差diff。在应用程序的同步点, 释放锁的线程将write-notice 传递给锁管理器,将页差diff 传送到各个被修改过的页面所在的home 节点,并且将diff 合并到内存中。当另外的线程获得锁时, 该线程同时获得write-notice,并根据write-notice 将本节点缓存的旧数据无效掉, 当要访问前一个线程更新过的数据时,由于在本节点的缓存中不命中, 所以到该页面所在的home 节点取得新数据。直接将软件DSM 系统硬件结构化是非常困难的,一方面以页面为粒度维护一致性由于假共享等问题不利于系统的性能,另一方面难于用硬件记录write-notice, diff等复杂的软件数据结构。
发明内容
本发明的目的是提供一种不需要硬件支持实现基于程序同步点高速缓存一致性的方法。
本发明的目的是按以下方式实现的,针对共享存储系统中高速缓存一致性的实现,本发明提出一种不需要硬件结构支持的基于程序同步点的高速缓存一致性实现方法。具体步骤如下:
1)首先对已有的多线程程序进行分析,得到需要进行缓存同步的同步点;
2)然后,在每个同步点,记录有效缓存与无效缓存集合;
3)最后,无效掉无效缓存集合,同步有效缓存。
本发明的目的有益效果是:本发明在应用程序的同步点维护高速缓存的一致性,而不是基于目录的协议以高速缓存行为单位维护一致性,与现有的基于目录的高速缓存一致性协议相比,可以降低目录协议的实现、验证复杂度。
附图说明
图1是系统结构拓扑图。
具体实施方式
参照说明书附图对本发明的一种不需要硬件支持实现基于程序同步点高速缓存一致性的方法作以下详细地说明。
具体步骤如下:
(1)首先对已有的多线程程序进行分析,得到需要进行缓存同步的同步点;
(2)然后,在每个同步点,记录有效缓存与无效缓存集合;
(3)最后,无效掉无效缓存集合,同步有效缓存。
除说明书所述的技术特征外,均为本专业技术人员的已知技术。
Claims (1)
1.一种不需要硬件支持实现基于程序同步点高速缓存一致性的方法, 其特征在于具体步骤如下:首先对已有的多线程程序进行分析,得到需要进行缓存同步的同步点;然后,在每个同步点,记录有效缓存与无效缓存集合;最后,无效掉无效缓存集合,同步有效缓存。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410529625.7A CN104317737A (zh) | 2014-10-10 | 2014-10-10 | 一种不需要硬件支持实现基于程序同步点高速缓存一致性的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410529625.7A CN104317737A (zh) | 2014-10-10 | 2014-10-10 | 一种不需要硬件支持实现基于程序同步点高速缓存一致性的方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN104317737A true CN104317737A (zh) | 2015-01-28 |
Family
ID=52372972
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410529625.7A Pending CN104317737A (zh) | 2014-10-10 | 2014-10-10 | 一种不需要硬件支持实现基于程序同步点高速缓存一致性的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104317737A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106202082A (zh) * | 2015-04-30 | 2016-12-07 | 阿里巴巴集团控股有限公司 | 组装基础数据缓存的方法及装置 |
CN108780432A (zh) * | 2016-03-10 | 2018-11-09 | 美光科技公司 | 用于高速缓存无效的设备及方法 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110264865A1 (en) * | 2010-04-27 | 2011-10-27 | Symantec Corporation | Techniques for directory server integration |
CN102982087A (zh) * | 2012-11-01 | 2013-03-20 | 华为技术有限公司 | 一种检测数据库数据一致性的方法、装置及数据库系统 |
-
2014
- 2014-10-10 CN CN201410529625.7A patent/CN104317737A/zh active Pending
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110264865A1 (en) * | 2010-04-27 | 2011-10-27 | Symantec Corporation | Techniques for directory server integration |
CN102982087A (zh) * | 2012-11-01 | 2013-03-20 | 华为技术有限公司 | 一种检测数据库数据一致性的方法、装置及数据库系统 |
Non-Patent Citations (1)
Title |
---|
黄河等: ""硬件结构支持的基于同步的高速缓存一致性协议"", 《计算机学报》 * |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106202082A (zh) * | 2015-04-30 | 2016-12-07 | 阿里巴巴集团控股有限公司 | 组装基础数据缓存的方法及装置 |
CN106202082B (zh) * | 2015-04-30 | 2020-01-14 | 菜鸟智能物流控股有限公司 | 组装基础数据缓存的方法及装置 |
CN108780432A (zh) * | 2016-03-10 | 2018-11-09 | 美光科技公司 | 用于高速缓存无效的设备及方法 |
CN108780432B (zh) * | 2016-03-10 | 2021-11-02 | 美光科技公司 | 用于高速缓存无效的设备及方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101814577B1 (ko) | 프로세싱-인-메모리를 이용한 명령어 처리 방법 및 그 장치 | |
WO2019127916A1 (zh) | 基于分布式一致性协议实现的数据读写方法及装置 | |
US8712961B2 (en) | Database caching utilizing asynchronous log-based replication | |
US9348752B1 (en) | Cached data replication for cache recovery | |
US9367251B2 (en) | System and method of a shared memory hash table with notifications | |
Zhang et al. | Sub-millisecond stateful stream querying over fast-evolving linked data | |
KR102398912B1 (ko) | 데이터를 프로세싱하기 위한 방법 및 프로세서 | |
US9996394B2 (en) | Scheduling accelerator tasks on accelerators using graphs | |
US10579525B2 (en) | Reducing cache transfer overhead in a system | |
US9304920B2 (en) | System and method for providing cache-aware lightweight producer consumer queues | |
US9229869B1 (en) | Multi-lock caches | |
TW201220197A (en) | for improving the safety and reliability of data storage in a virtual machine based on cloud calculation and distributed storage environment | |
US8479055B2 (en) | Detecting and optimizing false sharing | |
JP2016517102A (ja) | データベースにおいて再実行データを処理するための方法および装置 | |
US20160335199A1 (en) | Extending a cache of a storage system | |
Zhang et al. | Scalable adaptive NUMA-aware lock | |
US20170039143A1 (en) | System and method of a shared memory hash table with notifications and reduced memory utilization | |
JP2019537097A (ja) | Iノードのアクセスパターンの追跡及びiノードの先取り | |
Chen et al. | Concurrent hash tables on multicore machines: Comparison, evaluation and implications | |
CN104317737A (zh) | 一种不需要硬件支持实现基于程序同步点高速缓存一致性的方法 | |
US9330005B2 (en) | Interface and method for inter-thread communication | |
US20150160968A1 (en) | Freezing a call stack | |
KR101303079B1 (ko) | 멀티-코어 기반의 가상화 환경에서 캐쉬 일관성을 제어하는 장치 및 방법 | |
TWI779338B (zh) | 用於記憶體管理機會與記憶體交換任務之運算系統及管理其之方法 | |
US20150039940A1 (en) | Processor design verification |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
WD01 | Invention patent application deemed withdrawn after publication | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20150128 |