CN108170544A - 面向数据无冲突程序的共享数据动态更新方法 - Google Patents
面向数据无冲突程序的共享数据动态更新方法 Download PDFInfo
- Publication number
- CN108170544A CN108170544A CN201711473691.7A CN201711473691A CN108170544A CN 108170544 A CN108170544 A CN 108170544A CN 201711473691 A CN201711473691 A CN 201711473691A CN 108170544 A CN108170544 A CN 108170544A
- Authority
- CN
- China
- Prior art keywords
- data
- shared data
- shared
- page
- cache
- 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.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/544—Buffers; Shared memory; Pipes
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开一种面向数据无冲突程序的共享数据动态更新方法,该方法包括:执行数据无冲突的并行程序过程中,CPU执行访存指令时,识别共享数据请求并收集共享数据被访问的历史信息,当在同步点时,根据收集的所述共享数据被访问的历史信息对过期的共享数据执行动态更新或失效操作,其中对判定为第一类的共享数据执行动态更新操作,对判定为第二类的共享数据进行失效操作。本发明能够自动实现共享数据的动态更新与失效操作,且具有实现方法简单、网络面积以及cache一致性协议开销小、cache命中率高以及cache一致性协议的性能好等优点。
Description
技术领域
本发明涉及共享存储多核处理器(Shared-memory Multiprocessors)cache一致性协议技术领域,尤其涉及一种面向数据无冲突程序的共享数据动态更新方法。
背景技术
共享存储多处理器是一种并行编程模型,提供了一个单一的地址空间来简化并行编程。使用大容量、多级cache可以充分降低处理器对存储器带宽的需求,显著的提高处理器性能,但是这必然造成多个缓存中同时备份一个共享值,这种共享数据的缓存就引入了缓存一致性的问题。Cache一致性问题即为两个或者多个处理器通过各自的cache备份数据,如果不加以防范,它们就可能看到不同的值,为多处理器保持cache一致性的协议称为cache一致性协议,即多处理器是采用了一种硬件的解决方案,通过引入协议来保持cache的一致性。
目前多核处理器系统的软件和硬件在高效地利用并行上面临巨大的挑战,随着多核的发展,对于高性能的共享存储的多核处理器的需求不断的增加。Cache一致性协议主要包括两种类型:监听协议和目录协议,其中监听协议通过有序网络广播一致性请求,保证所有节点以相同顺序处理这些请求,目录协议的一致性请求先在目录进行排序,之后发往共享节点。但是目前的共享内存系统体系结构中由于是采用不能感知软件的硬件设计,上述两种类型协议存在以下问题:
基于目录的一致性协议关键问题在于目录开销和间接的cache到cache的通信开销:①目录存储开销在保证共享资源的信息准确的同时要保证开销最小。由完整的位向量目录编码特定地址的共享信息,需要的存储空间是随核心数线性增加,核心数目造成的存储开销会限制它的应用,而粗粒度的共享信息方案包含不准确的共享信息,本质上是牺牲性能以换取可扩展性;②目录协议来源于延时和通信的开销造成了很大的性能和功耗问题,目录协议要求失效消息,回复消息和间接的cache到cache的事务(通过中间目录);③由于要处理数据访问之间的竞争和许多的瞬间状态,目录协议正确性问题复杂且难以验证。虽然有从业者提出许多种优化目录组织结构,但是这些协议增加了实现的复杂性或者造成了性能、功耗上的开销,还需要大量的一致性状态。
监听一致性不受目录存储开销的限制,而监听协议关键在于使用总线或者其他广播方式来有序广播协议事务,确保处理器在写入一个数据之前,获取对该数据项的独占访问,这样直接广播消息的方式相对于目录协议具有低延时高性能的优势,但监听协议本质上是要有序的互连网络,以确保所有核心都保持相同的顺序来实现访存请求一致性的原语,这有序的广播网络往往造成很大的开销,并且对于可扩展的系统,监听协议可能失去它的低延时高效的优势。同时监听协议兼容的互连网络主要包括总线或crossbar(利用仲裁进行排序)或无缓冲环(保证从一个有序节点按顺序传递到所有节点),然而现有的片上系统互连规模的有序性很差,总线的互连受带宽的限制,环形网络存在延时问题,交叉开关的面积开销会很大,而网格网络本质是一种无序网络,无法原生性的支持监听协议。
目前的cache一致性协议复杂而低效,硬件优化方式受到不同程度的制约,而为了满足一致性的定义,一致性协议必须对写操作立即响应,失效共享数据的其它核cache备份,返回最新的数据,目录协议通过目录进行间接失效操作,这种cache到cache的失效操作增加了协议的事务延时,降低了协议的性能,同时增加了目录存储开销,如上述监听协议通过有序网络广播作废请求,该类广播方式即增加了整个协议的通信开销。
传统的cache一致性协议用复杂的硬件设计来保证其最强的存储一致性模型,这种严格的存储一致性模型使cache一致性完全对程序员透明,随着并行软件的发展,规范性的软件模型和硬件的协同设计成为研究cache一致性的一种重要方向。由于规范性的编程模型禁止同步的任意读取和写入,消除程序可能出现的任意数据竞争同时保证整个程序结果的确定性,并且当前的一系列的应用程序还有很多其他信息,这些信息可以被硬件利用来提高整个一致性协议的效率,例如使用CUDA和OpenCL编程模型的异构系统应用就具有附加信息,这些附加信息明确了在CPU和加速器之间传送哪些数据,主存储器的哪些部分被明确地分配给本地暂存器,哪些数据是只读的等等,这样的信息(如果可用于硬件)可以被利用来设计高效的通信协议,进而实现低功耗、低复杂度、可扩展的一致性协议。
发明内容
本发明要解决的技术问题就在于:针对现有技术存在的技术问题,本发明提供一种实现方法简单、网络面积以及cache一致性协议开销小、cache命中率高以及cache一致性协议的性能好的面向数据无冲突程序的共享数据动态更新方法。
为解决上述技术问题,本发明提出的技术方案为:
一种面向数据无冲突程序的共享数据动态更新方法,该方法包括:执行数据无冲突的并行程序过程中,CPU执行访存指令时,识别共享数据请求并收集共享数据被访问的历史信息,当在同步点时,根据收集的所述共享数据被访问的历史信息对过期的共享数据执行动态更新或失效操作,其中对判定为第一类的共享数据执行动态更新操作,对判定为第二类的共享数据进行失效操作。
作为本发明的进一步改进:具体配置一个DSUL(Dynamic Self-updating Logic,共享数据动态自更新逻辑)模块,由所述DSUL模块识别共享数据请求,并在识别到共享数据时进行记录以收集共享数据的历史访问信息,以及在同步点时暂停本地cache控制器的访存请求,并触发cache控制器对共享数据进行动态更新或失效操作。
作为本发明的进一步改进:所述cache控制器对共享数据进行动态更新时,具体由cache控制器发送更新请求到下一级的cache以获取最新的数据;所述cache控制器对共享数据进行失效操作时,具体直接作废干净的数据块,并把脏的数据块写入到下一级cache中。
作为本发明的进一步改进:当所有的共享数据被更新或失效掉后,cache控制器发送通知信号给所述DUSL模块,所述DUSL模块重新发送暂停的访存指令给cache控制器,使访存指令开始正常执行。
作为本发明的进一步改进:所述DUSL模块中配置一个共享数据阈值,当记录的共享数据量超过所述共享数据阈值时,触发cache控制器对共享数据进行失效操作。
作为本发明的进一步改进:所述DUSL模块每次执行在动态更新操作后,清空共享数据的历史信息,以收集两个同步点之间的共享数据的历史信息。
作为本发明的进一步改进:所述识别共享数据请求具体包括:在访存请求携带的TLB(Translation Lookaside Buffer,转换检测缓冲区)表中添加一个P域以标志当前页面数据为私有数据或共享数据,当CPU执行访存指令时,通过访问所述TLB表进行虚实地址转换,根据所述TLB表中P域的信息识别共享数据请求。
作为本发明的进一步改进:所述TLB表中还添加一个keeper域,通过所述keeper域标记当前页面数据的共享者,即第一个访问对应页面的核。
作为本发明的进一步改进:当所述TLB表缺失时,由CPU访问页表,若所述页表缺失,则由操作系统分配新的页面并设置页面为私有页面,其中如果页面不是首次访问且所述keeper域和当前访问的CPU不一致,进行页面的切换使变成共享页面;将更新的共享信息的页表项插入到所述TLB表中,完成页面粒度的私有共享数据的划分。
作为本发明的进一步改进,该方法的具体步骤包括:
S1.CPU执行访存指令时,CPU通过TLB表进行虚实地址的转换后生成带有私有和共享标识信息的访存请求;
S2.CPU向cache发送访存请求,由DSUL模块对识别各个所述访存请求的类型进行识别,如果为同步请求,转入执行步骤S3;否则判断请求数据是否为共享数据,如果为共享数据,DUSL模块更新对应共享数据块的CPU访问次数;转入执行步骤S4;
S3.DSUL模块暂停当前同步请求,触发L1cache更新判定为最常被访问的共享数据,以及失效L1cache中判定为不常访问的共享数据,更新与失效操作完成之后,DSUL模块重新向cache发送暂停的访存请求;
S4.读取数据后返回数据,结束当前访存操作。
与现有技术相比,本发明的优点在于:
1)本发明面向数据无冲突程序的共享数据动态更新方法,利用并行程序的数据无竞争特性,当处理器执行访存指令时,识别共享数据请求并收集共享数据被访问的历史信息,当执行同步指令时控制自动更新和失效过期共享数据,能够简化一致性协议对过期备份的处理,高效的实现数据无冲突程序中共享数据的自动动态更新与失效,从而基于cache一致性协议实现数据无冲突程序中共享数据的动态处理。
2)本发明面向数据无冲突程序的共享数据动态更新方法,通过在同步点处进行共享数据的动态自更新操作,能够动态实时地更新需要失效的过期备份,相比于传统的采用软件或者编译器的静态插入失效操作等失效方式,能够有效减轻程序的负担,降低共享数据cache的失效率、提高cache的命中率,且能够有效的处理过期的备份,确保数据的一致性;同时由自动的更新操作能够消除传统协议中针对过期备份的失效或者作废消息,消除了目录协议中用来记录共享者的目录开销,同时降低了监听协议中采用无区分的广播机制造成的网络开销,从而有效降低网络和面积开销以及cache一致性协议的开销。
3)本发明面向数据无冲突程序的共享数据动态更新方法,能够保证两个不同的线程同时访问一个数据时,且当有一个为写操作时,该两个访存操作之间必然会有同步语句,当第一个访存操作执行完成后且在第二个访存指令执行之前,同步语句会被识别并且cache控制器会进行共享数据的动态自我更新,使得第二个访存指令能读最新的数据或者写命中,相比传统的写失效协议中的失效操作或自失效操作,能够有效提高cache的命中率。
附图说明
图1是本实施例中采用的共享存储系统及DSUL模块在的原理示意图。
图2是本实施例采用的TLB中缓存页面项的组成结构示意图。
图3是本实施例中TLB缺失后进行私有共享页面划分的实现流程示意图。
图4是本实施例面向数据无冲突程序的共享数据动态更新执行共享数据动态更新的实现流程示意图。
具体实施方式
以下结合说明书附图和具体优选的实施例对本发明作进一步描述,但并不因此而限制本发明的保护范围。
如图1~4所示,本实施例面向数据无冲突程序的共享数据动态更新方法包括:在执行数据无冲突的并行程序的过程中,CPU执行访存指令时,识别共享数据请求并收集共享数据被访问的历史信息,当在同步点时,cache控制器根据收集的共享数据被访问的历史信息对本地cache中过期的共享数据执行动态更新或失效操作,其中对判定为第一类的共享数据执行动态更新操作,对判定为第二类的共享数据进行失效操作。第一类的共享数据具体为最常访问的共享数据,第二类的共享数据具体为不常访问的共享数据,即对最常访问的共享数据执行动态更新操作,对不常访问的共享数据执行失效操作。
本实施例上述方法利用并行程序的数据无竞争(Data race free,DRF)特性,当处理器执行访存指令时,识别共享数据请求并收集共享数据被访问的历史信息,当执行同步指令时控制自动更新和失效过期共享数据,能够简化一致性协议对过期备份的处理,高效的实现数据无冲突程序中共享数据的自动动态更新与失效,从而基于cache一致性协议实现数据无冲突程序中共享数据的动态处理。
如果请求的数据是共享数据且被多次访问(经常访问的数据),这些共享数据就很可能再一次的访问,因此同步点根据共享数据的访问信息自更新这些共享数据,可以提高处理器对共享数据的读写命中率,提高整个处理器的性能,且动态的更新操作能够在其他处理器发送失效操作之前,提前更新或者失效共享数据。
本实施例上述方法通过在同步点处进行共享数据的动态自更新操作,能够动态实时地更新需要失效的过期备份,相比于传统的采用软件或者编译器的静态插入失效操作等失效方式,能够有效减轻程序的负担,降低共享数据cache的失效率、提高cache的命中率,从而提高性能,且能够有效的处理过期的备份,确保数据的一致性;同时由自动的更新操作能够消除传统协议中针对过期备份的失效或者作废消息,消除了目录协议中用来记录共享者(sharers)的目录开销,同时降低了监听协议中采用无区分的广播机制造成的网络开销,从而有效降低网络和面积开销以及cache一致性协议的开销。虽然对所有的共享数据进行动态的更新与失效操作会增加开销,但是整个并行程序中共享数据的占比小、私有数据占比大,且在整个并行程序中同步操作出现的次数少,因而本实施例通过在同步点处进行共享数据的动态自更新操作,能够有效的降低当前目录和监听式协议的开销,同时保证相应的协议性能。
本实施例中执行动态的自更新操作之前,协议需要确保能够记录共享数据最新的位置,使得保证当执行自更新操作时,能到指定的位置获取最新的数据,自更新操作能应用在目录协议或者其他能够确定数据最新位置的其他协议之中,相比于典型的目录协议需要通过目录确定最新数据所在的位置,动态的自更新操作不依赖程序的介入,不需要在程序中插入失效或者更新的额外指令,只需要利用程序本身存在的同步指令;相比于传统的一致性协议通过目录节点识别需要失效的共享数据,然后给拥有过期备份的cache发送失效消息,目录式的协议往往还需要相应的cache返回确认消息,而本实施例动态自我更新能够有效的消除上述消息。
本实施例通过上述方法针对数据无冲突程序实现共享数据的动态更新与失效,能够保证两个不同的线程同时访问一个数据时,且当有一个为写操作时,该两个访存操作之间必然会有同步语句,当第一个访存操作执行完成后且在第二个访存指令执行之前,同步语句会被识别并且cache控制器会进行共享数据的动态自我更新,使得第二个访存指令能读最新的数据或者写命中,相比传统的写失效协议中的失效操作或自失效操作,能够有效提高cache的命中率。
本实施例中,具体配置一个DSUL模块,由DSUL模块识别共享数据请求,并在识别到共享数据时进行记录以收集共享数据的历史访问信息,以及在同步点时暂停本地cache控制器的访存请求,并触发cache控制器对共享数据进行动态更新或失效操作。即在共享存储的系统结构中设置了一个DSUL模块来控制共享数据动态自更新逻辑,由该模块收集当前节点中CPU对本地cache的过期共享数据块访存的次数,根据这些共享数据的访问次数在同步点到来时,暂停本地cache控制器的访存请求,然后触发cache控制器对经常访问的过期的数据块进行自更新,对不常访问的过期数据块进行自失效。上述自更新和自失效请求可以重叠的执行,以降低动态更新与失效的执行时间。
本实施例中所采用的共享存储系统以及配置的DSUL模块如图1所示,该共享存储系统采用两级的cache结构,L1cache作为私有cache,L2cache作为共享cache,每个节点含有一个CPU和一个L1cache,L1cache通过片上互连网络与L2cache,Memory相连接构成一个共享存储结构。在系统中为收集的历史信息配置一块小的存储空间,由该存储空间用来记录共享数据块被访问的历史信息。
本实施例具体当检测到程序的同步点时,cache控制器并行地完成一系列共享数据从LLC到L1cache的动态更新,实现主动的更新和失效操作,相比于传统被动地等待其它核的作废和失效消息,能够有效降低协议的开销,且对于数据无冲突的程序,同步点把存在数据竞争的不同线程的访存请求分开,则在同步点处对共享数据进行自更新,能够保证同步点之后cache中没有过期的备份,两次同步点之间经常被访问的过期共享数据被自更新到本地的cache中,不经常访问的过期数据被cache控制器失效。
本实施例具体cache控制器对共享数据进行动态更新时,具体由cache控制器发送更新请求到下一级的cache以获取最新的数据;cache控制器对共享数据进行失效操作时,具体直接作废干净的数据块,并把脏的数据块写入到下一级cache中。
本实施例中,当所有的共享数据被更新或失效掉后,cache控制器发送通知信号给DUSL模块,DUSL模块重新发送暂停的访存指令给cache控制器,使访存指令开始正常执行。
考虑到随着程序的运行,共享数据的数量会不断地增加,本实施例中DUSL模块中配置一个共享数据阈值,当记录的共享数据量超过共享数据阈值时,触发cache控制器对共享数据进行失效操作,具体由L1cache中采用自失效操作失效共享数据以防止共享数据的累增。
本实施例中,具体在DUSL模块每次执行在动态更新操作后,清空共享数据的历史信息,以收集两个同步点之间的共享数据的历史信息。
为了识别需要动态自更新的共享数据块,本实施例先进行数据的私有和共享划分,以识别共享数据提供给后续执行共享数据的动态更新。本实施例识别共享数据请求具体包括:在访存请求携带的TLB表中添加一个P域以标志当前页面数据为私有数据或共享数据,当CPU执行访存指令时,通过访问TLB表进行虚实地址转换,根据TLB表中P域的信息识别共享数据请求;TLB表中还添加一个keeper域,通过keeper域标记当前页面数据的共享者,即第一个访问对应页面的核。即数据的私有和共享的划分方法是基于操作系统辅助的页面粒度划分方法,利用TLB表项和页表项进行数据的页面粒度私有和共享划分,在页表项里添加两个域,第一个域为P域,P用来标记当前页面是私有还是共享;第二个域为keeper域,keeper域用来标记首次访问这个页面的CPU。当CPU发送访存请求时,访存请求会附带着当前数据私有或者共享的标记信息的标志位P,标志当前数据的私有或者共享,通过查询TLB中缓存的页表项,进行虚实地址转换后通过TLB中的私有共享标志位,即可区分不同的私有共享的数据请求。
本实施例采用的TLB entry和页表项的组成结构如图2所示,当一个页面共享时,这个页面标记为共享,对于每一个访存请求,处理器会先查找TLB表项,进行虚实地址转换;每一个TLB表项主要由虚拟地址和物理地址两部分组成,再加上一些页面属性的标记位,由于在TLB表项中预留有标志位没有被使用,因而允许在TLB表项中添加一个私有共享的标记位P,而不需要额外的硬件开销;同理在页表项中添加P域和keeper域,分别标记页面是否共享和页面的共享者(第一次访问这个页面的CPU)。
如图3所示,本实施例中当TLB表项缺失时,TLB表项和页表项中的域需要进行处理,具体为:访存请求因TLB表项缺失进行页表的访问,如果发生缺页会造成系统异常,由操作系统进行相应的缺页错误处理并分配新的页面;如果页面被首次访问并且没有缓存在其他TLB中,操作系统设置新分配的页面为私有(P=1)页面且记录第一个访问的核为keeper,否则判断页面的私有和共享状态,若页面为私有页面且其被不同的核访问,触发私有到共享的切换,切换完成后将页面置为共享(P=0);如果页面为私有且被相同的核访问或者页面为共享,则不需要更新标志位;最后将设置好标志位的表项添加到TLB中,完成了TLB缺失的处理以及页面私有共享的划分。后续CPU执行访存指令时再通过访问TLB进行虚实地址转换,并取出相应的私有共享信息,最后生成相应的访存请求。
本实施例具体首先利用TLB进行动态的私有共享数据划分,CPU执行访存指令时先访问TLB进行虚实地址转换,然后发送访存请求,访存请求附带有P的标志位以标志当前数据的私有或者共享,DSUL模块收集本地cache共享数据被访问次数的信息,在同步点时根据收集的共享数据被访问次数信息进行数据的自更新和自失效,在此过程中当访问TLB缺失时,操作系统会辅助硬件进行页面粒度的私有共享划分。
如图4所示,本实施例中实现面向数据无冲突程序的共享数据动态更新的具体步骤包括:
S1.CPU执行访存指令时,CPU通过TLB表进行虚实地址的转换后生成带有私有和共享标识信息的访存请求;
S2.CPU向cache发送访存请求,由DSUL模块对识别各个访存请求的类型进行识别,如果为同步请求,转入执行步骤S3;否则判断请求数据是否为共享数据,如果为共享数据,DUSL模块更新对应共享数据块的CPU访问次数;转入执行步骤S4;
S3.DSUL模块暂停当前同步请求,触发L1cache更新判定为最常被访问的共享数据,以及失效L1cache中判定为不常访问的共享数据,更新与失效操作完成之后,DSUL模块重新向cache发送暂停的访存请求;
S4.读取数据后返回数据,结束当前访存操作。
上述只是本发明的较佳实施例,并非对本发明作任何形式上的限制。虽然本发明已以较佳实施例揭露如上,然而并非用以限定本发明。因此,凡是未脱离本发明技术方案的内容,依据本发明技术实质对以上实施例所做的任何简单修改、等同变化及修饰,均应落在本发明技术方案保护的范围内。
Claims (10)
1.一种面向数据无冲突程序的共享数据动态更新方法,其特征在于,该方法包括:执行数据无冲突的并行程序过程中,CPU执行访存指令时,识别共享数据请求并收集共享数据被访问的历史信息,当在同步点时,根据收集的所述共享数据被访问的历史信息对过期的共享数据执行动态更新或失效操作,其中对判定为第一类的共享数据执行动态更新操作,对判定为第二类的共享数据进行失效操作。
2.根据权利要求1所述的面向数据无冲突程序的共享数据动态更新方法,其特征在于:具体配置一个DSUL模块,由所述DSUL模块识别共享数据请求,并在识别到共享数据时进行记录以收集共享数据的历史访问信息,以及在同步点时暂停本地cache控制器的访存请求,并触发cache控制器对共享数据进行动态更新或失效操作。
3.根据权利要求2所述的面向数据无冲突程序的共享数据动态更新方法,其特征在于:所述cache控制器对共享数据进行动态更新时,具体由cache控制器发送更新请求到下一级的cache以获取最新的数据;所述cache控制器对共享数据进行失效操作时,具体直接作废干净的数据块,并把脏的数据块写入到下一级cache中。
4.根据权利要求3所述的面向数据无冲突程序的共享数据动态更新方法,其特征在于:当所有的共享数据被更新或失效掉后,cache控制器发送通知信号给所述DUSL模块,所述DUSL模块重新发送暂停的访存指令给cache控制器,使访存指令开始正常执行。
5.根据权利要求2或3或4所述的面向数据无冲突程序的共享数据动态更新方法,其特征在于:所述DUSL模块中配置一个共享数据阈值,当记录的共享数据量超过所述共享数据阈值时,触发cache控制器对共享数据进行失效操作。
6.根据权利要求5所述的面向数据无冲突程序的共享数据动态更新方法,其特征在于:所述DUSL模块每次执行在动态更新操作后,清空共享数据的历史信息,以收集两个同步点之间的共享数据的历史信息。
7.根据权利要求1~4中任意一项所述的面向数据无冲突程序的共享数据动态更新方法,其特征在于,所述识别共享数据请求具体包括:在访存请求携带的TLB表中添加一个P域以标志当前页面数据为私有数据或共享数据,当CPU执行访存指令时,通过访问所述TLB表进行虚实地址转换,根据所述TLB表中P域的信息识别共享数据请求。
8.根据权利要求7所述的面向数据无冲突程序的共享数据动态更新方法,其特征在于:所述TLB表中还添加一个keeper域,通过所述keeper域标记当前页面数据的共享者,即第一个访问对应页面的核。
9.根据权利要求8所述的面向数据无冲突程序的共享数据动态更新方法,其特征在于,当所述TLB表缺失时,由CPU访问页表,若所述页表缺失,则由操作系统分配新的页面并设置页面为私有页面,其中如果页面不是首次访问且所述keeper域和当前访问的CPU不一致,进行页面的切换使变成共享页面,将更新的共享信息的页表项插入到所述TLB表中,完成页面粒度的私有共享数据的划分。
10.根据权利要求1~4中任意一项所述的面向数据无冲突程序的共享数据动态更新方法,其特征在于,该方法的具体步骤包括:
S1.CPU执行访存指令时,CPU通过TLB表进行虚实地址的转换后生成带有私有和共享标识信息的访存请求;
S2.CPU向cache发送访存请求,由DSUL模块对识别各个所述访存请求的类型进行识别,如果为同步请求,转入执行步骤S3;否则判断请求数据是否为共享数据,如果为共享数据,DUSL模块更新对应共享数据块的CPU访问次数;转入执行步骤S4;
S3.DSUL模块暂停当前同步请求,触发L1cache更新判定为最常被访问的共享数据,以及失效L1cache中判定为不常访问的共享数据,更新与失效操作完成之后,DSUL模块重新向cache发送暂停的访存请求;
S4.读取数据后返回数据,结束当前访存操作。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711473691.7A CN108170544B (zh) | 2017-12-29 | 2017-12-29 | 面向数据无冲突程序的共享数据动态更新方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711473691.7A CN108170544B (zh) | 2017-12-29 | 2017-12-29 | 面向数据无冲突程序的共享数据动态更新方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108170544A true CN108170544A (zh) | 2018-06-15 |
CN108170544B CN108170544B (zh) | 2020-08-28 |
Family
ID=62519722
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201711473691.7A Active CN108170544B (zh) | 2017-12-29 | 2017-12-29 | 面向数据无冲突程序的共享数据动态更新方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108170544B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111274573A (zh) * | 2019-09-19 | 2020-06-12 | 中国科学院信息工程研究所 | 一种基于访存请求序列的处理器芯片假安全依赖冲突的识别方法 |
CN112395220A (zh) * | 2020-11-18 | 2021-02-23 | 海光信息技术股份有限公司 | 共享存储控制器的处理方法、装置、系统及存储控制器 |
CN115080158A (zh) * | 2021-03-12 | 2022-09-20 | Oppo广东移动通信有限公司 | 界面显示方法、装置、终端设备及计算机可读存储介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1545033A (zh) * | 2003-11-14 | 2004-11-10 | 清华大学 | Fc-san存储子系统的lun cache方法 |
CN102346714A (zh) * | 2011-10-09 | 2012-02-08 | 西安交通大学 | 用于多核处理器的一致性维护装置及一致性交互方法 |
CN102436366A (zh) * | 2011-08-22 | 2012-05-02 | 华为技术有限公司 | 数据同步方法和装置 |
CN102521163A (zh) * | 2011-12-08 | 2012-06-27 | 华为技术有限公司 | 目录替换方法及设备 |
CN104699631A (zh) * | 2015-03-26 | 2015-06-10 | 中国人民解放军国防科学技术大学 | Gpdsp中多层次协同与共享的存储装置和访存方法 |
CN106815174A (zh) * | 2015-11-30 | 2017-06-09 | 大唐移动通信设备有限公司 | 数据访问控制方法及节点控制器 |
-
2017
- 2017-12-29 CN CN201711473691.7A patent/CN108170544B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1545033A (zh) * | 2003-11-14 | 2004-11-10 | 清华大学 | Fc-san存储子系统的lun cache方法 |
CN102436366A (zh) * | 2011-08-22 | 2012-05-02 | 华为技术有限公司 | 数据同步方法和装置 |
CN102346714A (zh) * | 2011-10-09 | 2012-02-08 | 西安交通大学 | 用于多核处理器的一致性维护装置及一致性交互方法 |
CN102521163A (zh) * | 2011-12-08 | 2012-06-27 | 华为技术有限公司 | 目录替换方法及设备 |
CN104699631A (zh) * | 2015-03-26 | 2015-06-10 | 中国人民解放军国防科学技术大学 | Gpdsp中多层次协同与共享的存储装置和访存方法 |
CN106815174A (zh) * | 2015-11-30 | 2017-06-09 | 大唐移动通信设备有限公司 | 数据访问控制方法及节点控制器 |
Non-Patent Citations (1)
Title |
---|
孙荪: "提高多核处理器片上Cache利用率的关键技术研究", 《中国博士学位论文全文数据库 信息科技辑》 * |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111274573A (zh) * | 2019-09-19 | 2020-06-12 | 中国科学院信息工程研究所 | 一种基于访存请求序列的处理器芯片假安全依赖冲突的识别方法 |
CN112395220A (zh) * | 2020-11-18 | 2021-02-23 | 海光信息技术股份有限公司 | 共享存储控制器的处理方法、装置、系统及存储控制器 |
CN112395220B (zh) * | 2020-11-18 | 2023-02-28 | 海光信息技术股份有限公司 | 共享存储控制器的处理方法、装置、系统及存储控制器 |
CN115080158A (zh) * | 2021-03-12 | 2022-09-20 | Oppo广东移动通信有限公司 | 界面显示方法、装置、终端设备及计算机可读存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN108170544B (zh) | 2020-08-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6286090B1 (en) | Mechanism for selectively imposing interference order between page-table fetches and corresponding data fetches | |
US20160140047A1 (en) | Translation lookaside buffer management | |
US8321634B2 (en) | System and method for performing memory operations in a computing system | |
US20150006821A1 (en) | Evict on write, a management strategy for a prefetch unit and/or first level cache in a multiprocessor system with speculative execution | |
US7003635B2 (en) | Generalized active inheritance consistency mechanism having linked writes | |
KR20170069149A (ko) | 데이터 처리 시스템의 캐시 일관성을 위한 스누프 필터 | |
US7502893B2 (en) | System and method for reporting cache coherency state retained within a cache hierarchy of a processing node | |
KR101529036B1 (ko) | 데이터 없이 추론적 소유권에 대한 지원 | |
CN103076992B (zh) | 一种内存数据缓冲方法及装置 | |
CN108170544A (zh) | 面向数据无冲突程序的共享数据动态更新方法 | |
CN112955876B (zh) | 用于在数据处理网络中传输数据的方法和装置 | |
US20140229678A1 (en) | Method and apparatus for accelerated shared data migration | |
JPH0950400A (ja) | マルチプロセッサシステム | |
US7024520B2 (en) | System and method enabling efficient cache line reuse in a computer system | |
US10740233B2 (en) | Managing cache operations using epochs | |
US11263137B2 (en) | Core-to-core cache stashing and target discovery | |
US11188464B2 (en) | System and method for self-invalidation, self-downgrade cachecoherence protocols | |
CN102117262A (zh) | 用于多核处理器的Cache的主动复制方法及系统 | |
JP4286857B2 (ja) | ノード間共用ファイル制御方法 | |
US6349368B1 (en) | High performance mechanism to support O state horizontal cache-to-cache transfers | |
Fernández-Pascual et al. | Are distributed sharing codes a solution to the scalability problem of coherence directories in manycores? An evaluation study | |
US9009412B2 (en) | Information processing apparatus and control method of information processing apparatus | |
Kokolis | New architectures for non-volatile memory technologies | |
WO2023247025A1 (en) | Node device and method of accessing resource in distributed database architecture | |
CN118519923A (zh) | 缓存一致性处理方法、装置、电子设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |