CN101470669B - 多缓存数据一致性的处理方法及主存处理机 - Google Patents
多缓存数据一致性的处理方法及主存处理机 Download PDFInfo
- Publication number
- CN101470669B CN101470669B CN2007103056920A CN200710305692A CN101470669B CN 101470669 B CN101470669 B CN 101470669B CN 2007103056920 A CN2007103056920 A CN 2007103056920A CN 200710305692 A CN200710305692 A CN 200710305692A CN 101470669 B CN101470669 B CN 101470669B
- Authority
- CN
- China
- Prior art keywords
- data
- main memory
- request
- processor
- data block
- 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.)
- Expired - Fee Related
Links
Images
Landscapes
- Memory System Of A Hierarchy Structure (AREA)
Abstract
一种多缓存数据一致性的处理方法及主存处理机。所述多缓存数据一致性的处理方法包括:请求处理机在获取数据块操作指令后,若对应的缓存中所述数据块的数据副本状态显示无所述数据块的数据副本时,向主存处理机发出相应的获取数据副本操作请求;若所述数据块状态显示主存无所述数据块的最新数据副本,主存处理机向所述数据块当前状态记载的具有最新数据副本的缓存对应的响应处理机转发所述操作请求,并将所述数据块状态更新为所述操作请求成功后的状态,所述主存处理机通过具有保序传送特性的虚通道向所述响应处理机转发所述操作请求。所述多缓存数据一致性的处理方法及主存处理机解决了系统活锁、饥饿,减少冲突时传输消息数量,提高系统性能。
Description
技术领域
本发明涉及一种多处理机及多运算节点系统中的多缓存数据一致性的处理方法及主存处理机。
背景技术
缓存(Cache)作为提高系统性能的一种常用手段在计算机系统中得到普遍的使用。但是,在具有多处理机的计算机系统中,不仅各个处理机的缓存同共享主存中同一数据块的数据副本可能不一致,而且由于多个处理机各自独立操作,也使多个处理机的缓存中同一数据块的数据副本可能不一致,这就是多缓存数据不一致的问题。所述多缓存数据不一致的问题一般通过多缓存一致性协议解决。
目前,有两种基本的方法来实现多缓存一致性协议:监听法和目录法。
监听法:通过总线监听机制实现缓存和共享主存之间的数据一致性。监听法包括两种策略:写更新策略和写无效策略。写更新策略是在本地缓存中的数据块的数据副本修改时,通过总线把修改的数据副本广播,使得其他含有所述数据块的数据副本的缓存也能获取修改的数据副本;写无效策略是在本地缓存的数据块的数据副本修改时,使所有其他缓存中的相应数据副本都无效。在例如申请号为200710066929.4的中国专利申请中还能发现更多与监听法相关的信息。
监听法实现起来比较简单,适用于多个处理机通过总线互相连接的计算机系统,这是因为总线是一种方便而快捷的广播媒介。但由于它需要广播因而可伸缩性差,而且不管是写无效还是写更新,都要占用总线不少时间,所以只能用于处理机数量不多的计算机系统中。在一般情况下,总线上能连接的处理机不能超过4-8台。
目录法:为每个数据块建立一个目录,该目录记录所有当前拥有所述数据块的数据副本的缓存对应的处理机号以及用于记载所述数据块状态的目录,所述数据块状态包括,例如共享副本,表示当前所有拥有所述数据块的数据副本的缓存的数据一致;独占副本,表示当前只有一个缓存拥有所述数据块的数据副本。所述目录通常由主存处理机(Home)进行管理。主存处理机根据目录的内容只向拥有所述数据块的数据副本的缓存对应的处理机发出写无效消息或是写更新消息,从而避免了向所有处理机广播。其中,所述写无效是指在获得最新数据副本的处理机向缓存中写入最新数据副本时,由主存处理机根据目录指示其他具有所述数据块的数据副本的缓存的处理机将缓存中所述数据块的数据副本置为无效。而所述写更新是指在获得最新数据副本的处理机向缓存中写入最新数据副本时,由主存处理机指示其他缓存处理机也将各自的缓存中的数据副本更新为最新数据副本。
然而,由于网络延时的不同,目录处理一致性需要时间,这样会导致对于数据块的操作请求在管理目录的主存处理机处存在冲突,即主存处理机来不及处理请求或是无法处理请求。
对于上述问题,有的是通过重发机制来解决此问题的:例如,主存处理机在面临所述操作请求冲突时,根据目录将所述操作请求转发给具有最新数据副本的缓存对应的响应处理机(Owner),如果转发请求在所述响应处理机处依然得不到处理,则所述响应处理机返回给发出操作请求的请求处理机(Local)一个失败响应,让请求处理机重发此请求。这种方法通过失败响应和请求重发机制可以解决潜在的死锁问题,即请求由于得不到任何反馈而使处理停滞不动的问题。但所述的失败响应和请求重发机制又可能带来系统活锁、饥饿等问题。
所述系统活锁是指请求处理机每一次发出的请求可能都会被主存处理机转发给不同的响应处理机,而所述响应处理机可能每次都暂时无法处理所述转发请求而要求所述请求处理机重发请求,这样就导致请求处理机陷入了一个流动的死循环中。
而所述饥饿概括来说,就是指请求处理机发出的请求始终得不到响应,所述系统活锁及饥饿问题增大了额外的网络通信量,使系统性能在请求冲突时受到较大影响,这类系统以Stanford大学研究的CC-NUMA多处理器系统DASH最为典型。
而为了解决所述系统活锁和饥饿的问题,目前是通过主存处理机设置忙状态来减少转发请求的数量:主存处理机在向响应处理机发出转发请求后,会设置忙状态来等待响应处理机处理完转发请求后的反馈,若响应处理机不反馈,主存处理机就一直维持忙状态,从而相当于主存处理机暂停处理后续的请求。主存处理机只有当获得响应处理机处理完转发请求后的反馈,才会解除忙状态,并继续处理后续的请求。然而,这种减少转发请求并不能从根本上解决系统的活锁、饥饿的问题,当冲突频发的时候,由于忙状态的长时间封锁和占用,当系统规模扩大时,这种影响越发突出,直接影响到系统可用性和系统效率。
发明内容
本发明提供一种多缓存数据一致性的处理及主存处理机,解决现有技术系统处理数据一致性时由于系统活锁、饥饿而使得系统性能较低的问题。
为解决上述问题,本发明提供一种多缓存数据一致性的处理方法,包括:
请求处理机在获取数据块操作指令后,若对应的缓存中所述数据块的数据副本状态显示所述缓存无所述数据块的数据副本时,向主存处理机发出相应的获取数据副本操作请求;
若所述数据块当前状态显示主存无所述数据块的最新数据副本时,主存处理机向所述数据块当前状态记载的具有最新数据副本的缓存对应的响应处理机转发所述操作请求,并将所述数据块状态更新为所述转发操作请求成功后的状态,其中,所述主存处理机通过具有保序传送特性的虚通道向所述响应处理机转发所述操作请求。
可选的,所述数据块的数据副本状态由缓存状态记载,所述数据副本状态包括:无效,表示缓存中没有所述数据块的数据副本;清洁共享,表示缓存中有所述数据块的只读数据副本,淘汰所述只读数据副本不必回写主存;共享脏,表示缓存中有所述数据块的只读数据副本,且比主存数据新,淘汰所述数据副本需回写主存;脏,表示缓存中有所述数据块的可读可写数据副本,且比主存数据新,淘汰所述数据副本需回写主存。
可选的,所述数据块状态由目录记载,所述数据块状态包括:无副本,表示除主存外任何一个缓存中均无所述数据块的数据副本;清洁共享,表示至少有一个缓存中有所述数据块的数据副本,且与主存数据一致;脏,表示只有一个缓存中有所述数据块的数据副本,且比主存数据新,对所述数据块的操作需包括一致性操作;共享脏,表示至少有一个缓存中有所述数据块的数据副本,且比主存数据新,对所述数据块的操作需包括一致性操作。
可选的,所述主存处理机在获得所述操作请求后,向所述请求处理机发送通知请求处理机操作请求已转发的响应。
可选的,所述多缓存数据一致性的处理方法还包括:所述响应处理机在获得转发操作请求后,向所述请求处理机发出数据响应,并将缓存中所述数据块的数据副本状态更改为清洁共享。
可选的,所述请求处理机根据所述数据响应,更新缓存中的数据副本,并将缓存中所述数据块的数据副本状态更改为共享脏。
可选的,所述多缓存数据一致性的处理方法还包括:所述响应处理机在获得转发操作请求后,向所述请求处理机发出数据响应,向所述主存处理机发出回写回答请求,并将缓存中所述数据块的数据副本状态更改为清洁共享。
可选的,所述主存处理机根据所述回写回答请求,更新主存中的数据副本,并将目录中所述数据块的状态更改为清洁共享。
可选的,所述请求处理机根据所述数据响应,更新缓存中的数据副本,并将缓存中所述数据块的数据副本状态更改为共享脏。
可选的,所述主存处理机按所获取操作请求的顺序对所获取操作请求进行处理。
可选的,若所记载的具有最新数据副本的缓存对应的响应处理机在获得转发操作请求之前,向主存处理机发送过回写请求,则在获得主存处理机发送的写结束响应后才清除缓存中的数据副本,并将缓存中所述数据块的数据副本状态更改为无效。
可选的,若所记载的具有最新数据副本的缓存在对应的响应处理机获得转发操作请求时还不具有最新数据副本,则所述响应处理机暂停所述转发请求直到获得最新数据副本才执行所述转发操作请求。
可选的,所述多缓存数据一致性的处理方法还包括:所述主存处理机在目录中所述数据块状态为无副本或清洁共享时,通过具有保序传送特性的虚通道向所述请求处理机返回数据响应,将目录中所述数据块状态更改为清洁共享,。
可选的,所述请求处理机根据所述数据响应,更新缓存中的数据副本,并将缓存的数据副本状态更改为清洁共享。
本发明还提供一种主存处理机,包括:
用于获取操作请求的获取单元,所述操作请求用于获取数据块的数据副本;
用于在获取单元获取操作请求后,查询所述数据块当前状态的状态查询单元;
用于在所述状态查询单元查询的所述数据块当前状态显示主存无所述数据块的数据副本时,向所述数据块当前状态记载的具有最新数据副本的缓存对应的响应处理机转发所述获取单元获取的操作请求的转发单元,所述转发单元通过具有保序传送特性的虚通道向所述响应处理机转发所述操作请求;
用于在所述转发单元转发操作请求时,将所述数据块的状态更新为转发操作请求成功后的状态的更新单元。
可选的,所述主存处理机按所获取操作请求的顺序对所获取操作请求进行处理。
与现有技术相比,上述方案具有以下优点:上述所公开的多缓存数据一致性的处理方法及主存处理机,当主存无数据块的最新数据副本时,由主存处理机向所述数据块状态记载的具有最新数据副本的缓存对应的响应处理机转发获取数据块的数据副本的操作请求,并将所述数据块状态更新为所述转发操作请求成功后的状态,其中,所述主存处理机通过具有保序传送特性的虚通道向所述响应处理机转发所述操作请求,这样就保证了所述操作请求能够按序得到处理,而以所述转发操作请求成功后的数据块状态对所述数据块状态进行更新则保证了后续操作请求能够继续得到处理,这样就避免了某一个操作请求因为迟迟得不到处理响应或处理失败,而使系统产生活锁、饥饿的问题,减少冲突时传输消息的数量,从而提高系统性能。
附图说明
图1是本发明多缓存数据一致性的处理方法的第一种实施例示意图;
图2是本发明多缓存数据一致性的处理方法的第二种实施例示意图;
图3是本发明多缓存数据一致性的处理方法的第三种实施例示意图;
图4是本发明多缓存数据一致性的处理方法的第四种实施例示意图;
图5是本发明多缓存数据一致性的处理方法的第五种实施例示意图;
图6是本发明多缓存数据一致性的处理方法的第六种实施例示意图;
图7是本发明多缓存数据一致性的处理方法的一种实施方式流程图。
具体实施方式
本发明所公开的多缓存数据一致性的处理方法及主存处理机,当主存无数据块的最新数据副本时,由主存处理机向所述数据块状态记载的具有最新数据副本的缓存对应的响应处理机转发获取数据块的数据副本的操作请求,并将所述数据块状态更新为所述转发操作请求成功后的状态,其中,所述主存处理机通过具有保序传送特性的虚通道向所述响应处理机转发所述操作请求。
本发明主存处理机的一种实施方式包括,用于获取操作请求的获取单元,所述操作请求用于获取数据块的数据副本;用于在获取单元获取操作请求后,查询所述数据块当前状态的状态查询单元;用于在所述状态查询单元查询的所述数据块当前状态显示主存无所述数据块的数据副本时,向所述数据块当前状态记载的具有最新数据副本的缓存对应的响应处理机转发所述获取单元获取的操作请求的转发单元,所述转发单元通过具有保序传送特性的虚通道向所述响应处理机转发所述操作请求;用于在所述转发单元转发操作请求时,将所述数据块的状态更新为转发操作请求成功后的状态的更新单元。
对应上述实施方式,举例如下:参照图2所示,当请求处理机20获得读取数据块的指令时,假定此时请求处理机20对应的Cache中没有所述数据块的数据副本。所述请求处理机20会向主存处理机10发出共享读请求的消息,表示希望从主存中获取所需的数据副本。当主存处理机10中的获取单元(图未示)获得请求处理机20发出的共享读请求消息时,查询单元(图未示)就会查询所述数据块的当前状态,若所述数据块的当前状态显示此时主存中没有所述数据块的最新数据副本,所述转发单元(图未示)会向所述数据块状态记载的具有最新数据副本的缓存对应的响应处理机转发获取数据块的数据副本的操作请求。假定所述具有最新数据副本的缓存对应的响应处理机是响应处理机21,那么所述转发单元会通过与响应处理机21间的虚通道向响应处理机21转发所述请求处理机20的共享读请求消息。由于若所述转发请求被响应处理机21成功处理后,请求处理机20也将获得最新数据副本,那时所述数据块的状态将是请求处理机20和响应处理机21都具有最新数据副本。因此,为了避免后续请求因为不知道所述转发请求的处理结果而无法处理,所述更新单元(图未示)先将所述数据块的状态更改为所述转发操作请求成功处理后的数据块状态,因而保证了后续请求能够继续得到主存处理机10的处理。所述转发单元通过具有保序传送特性的虚通道向所述响应处理机转发所述操作请求,也保证了所述操作请求能够按序得到处理。
参照图7所示,本发明多缓存数据一致性的处理方法的一种实施方式,包括:
步骤s1,请求处理机在获取数据块操作指令后,若对应的缓存中所述数据块的数据副本状态显示所述缓存无所述数据块的数据副本时,向主存处理机发出相应的获取数据副本操作请求;
步骤s2,若所述数据块当前状态显示主存无所述数据块的最新数据副本时,主存处理机向所述数据块当前状态记载的具有最新数据副本的缓存对应的响应处理机转发所述操作请求,并将所述数据块状态更新为所述转发操作请求成功后的状态。
其中,所述主存处理机通过具有保序传送特性的虚通道向所述响应处理机转发所述操作请求。
下面对于上述的多缓存数据一致性的处理方法进行进一步说明。
首先对于多缓存数据一致性的处理方法中涉及的各个处理机、各种缓存状态和目录以及各种请求和响应进行定义:
请求处理机(Local):具有Cache,根据数据块操作指令发出操作请求的处理机;
响应处理机(Owner):具有包含所述数据块的最新数据副本的Cache的处理机,有义务与主存保持数据一致,包括向别的处理机提供最新数据副本及淘汰所述数据块的数据副本需回写主存;
共享处理机(Sharer):具有包含所述数据块的最新数据副本的Cache的处理机,没有义务与主存保持数据一致,淘汰所述数据块的数据副本无需回写主存;
主存处理机(Home):所述主存始终存有所述数据块的数据副本,所述主存处理机存有记载所述数据块状态的目录。
所述数据块的数据副本状态由缓存状态记载,所述数据副本状态包括:
无效,表示缓存中没有所述数据块的数据副本;
清洁共享,表示缓存中有所述数据块的只读数据副本,淘汰所述只读数据副本不必回写主存,即所述Cache中的数据块的数据副本与主存中一致,因此所述数据副本可有可无,清除所述数据副本不需要额外在主存中备份了;
共享脏,表示缓存中有所述数据块的只读数据副本,且比主存数据新,淘汰所述数据副本需回写主存,即所述Cache中的数据块的数据副本比主存新,若清除所述数据副本,需要先在主存中作备份,即回写主存,才能避免数据丢失或错误;
脏,表示缓存中有所述数据块的可读可写数据副本,且比主存数据新,淘汰所述数据副本需回写主存(与共享脏类似,只是还可用于写操作)。
所述数据块状态由目录记载,所述数据块状态包括:
无副本,表示除主存外任何一个缓存中均无所述数据块的数据副本;
清洁共享,表示至少有一个缓存中有所述数据块的数据副本,且与主存数据一致;
脏,表示只有一个缓存中有所述数据块的数据副本,且比主存数据新,对所述数据块的操作需包括一致性操作;
共享脏,表示至少有一个缓存中有所述数据块的数据副本,且比主存数据新,对所述数据块的操作需包括一致性操作,
所述一致性操作是指至少对于一个Cache,在淘汰所述Cache中所述数据块的数据副本时,需要回写主存,以防止数据丢失或错误。
一次请求消息
以下消息来自请求处理机:
共享读请求:共享数据读指令不命中Cache产生的主存访问请求,请求中无数据;
独占读请求:共享数据写指令不命中Cache产生的主存访问请求,请求中无数据;
回写请求:淘汰脏或共享脏Cache或装填Cache置换一个脏(或共享脏)Cache产生的主存访问请求,且带有数据;
共享置脏请求:共享数据写指令命中Cache中的只读副本时产生的主存访问请求,请求中无数据。
一次响应消息
以下消息是主存处理机对请求处理机的一次请求消息的响应。
读响应:用响应所带的数据装填cache;
一致性标记响应:返回此响应说明正在进行一致性操作,需要来自响应处理机的数据响应来完成一次请求;
写结束响应:返回此响应说明回写操作已经完成。
二次请求消息
以下消息是主存处理机将一次请求转发给响应处理机的消息:
查询置共享一致性请求:此请求是由共享读请求在目录中数据块状态为脏或共享脏的情况下引起的;
查询置无效请求:此请求是由独占读请求在目录中数据块状态为脏或共享脏的情况下引起的;
无效广播一致性请求:此二次请求是由独占读请求或共享置脏请求在目录中数据块状态为清洁共享或共享脏的情况下引起的。
二次响应消息
以下消息是响应处理机处理二次请求后形成的响应,此类消息将发向请求处理机以协助完成一次请求,或是发向主存处理机以将最新数据副本回写主存储器。
数据响应:响应处理机在cache状态为脏或共享脏时收到查询置共享、查询置无效请求时产生的带数据响应;
无效响应:响应处理机在cache状态为清洁共享或共享脏时收到无效广播一致性请求时产生的不带数据的响应。
回写回答:响应处理机在Cache状态为脏时收到查询置共享一致性请求时产生的带数据的回答。此回答发向主存处理机,主存处理机在接收到此回答后将数据写入主存的同时将对应的目录中所述数据块状态更改为清洁共享。
上述不同类型的消息是通过不同的虚通道进行传输的,例如一次请求消息通过VC0虚通道传输,一次响应和二次请求消息通过VC1虚通道传输,二次响应消息通过VC2虚通道传输。
定义所有对数据块的操作请求都是首先由缓存处理机向主存处理机发出请求消息。
实施例一
图1所示是本发明多缓存数据一致性的处理方法的第一种实施例,为一个两方间的共享读事务实例。参照图1所示,出现消息传输关系的处理机为请求处理机20(Local)以及主存处理机10(Home)。
当请求处理机20获得读取数据块的指令时,假定此时请求处理机20的Cache中所述数据块的数据副本状态此时为“无效”,表示所述请求处理机20对应的Cache中没有所述数据块的数据副本。所述请求处理机20会通过与主存处理机10间的VC0虚通道向主存处理机10发出共享读请求的消息,表示希望从主存中获取所需的数据副本。当主存处理机10获得请求处理机20发出的共享读请求消息时,会先根据目录获得所述数据块状态,即主存以及各个Cache中存储所述数据块的数据副本的信息,若所述数据块状态为“无副本”,则表示除了主存外,其他Cache中都没有所述数据块的数据副本;若数据块状态为“清洁共享”,则表示除了主存之外,其他Cache中也存有所述数据块的数据副本,且与主存一致。无论是以上哪一种数据块状态,主存处理机10都可以从主存中调取所述数据块的数据副本(当然,也可以从其他Cache中调取,但效率没有这样做高),并通过与请求处理机20间的VC1虚通道向缓存处理机10发送带有所述数据副本的读响应消息,并且将数据块状态标记为“清洁共享”,表示当读响应操作完成时,所有拥有所述数据块的数据副本的Cache与主存数据副本一致。
请求处理机20在获得读响应之后,用所获得的响应数据装填对应的Cache。由于请求处理机20对应的Cache拥有了所述数据块的数据副本,并且与主存中的数据副本一致,因此所述Cache的状态就被请求处理机20标记为“清洁共享”。
实施例二
图2所示是本发明多缓存数据一致性的处理方法的第二种实施例,为一个三方间的共享读事务实例。参照图2所示,出现消息传输关系的处理机为请求处理机20(Local)、主存处理机10(Home)、响应处理机21(Owner)。
当请求处理机20获得读取数据块的指令时,假定此时请求处理机20的Cache中所述数据块的数据副本状态此时为“无效”,表示所述请求处理机20对应的Cache中没有所述数据块的数据副本。所述请求处理机20会通过与主存处理机10间的VC0虚通道向主存处理机10发出共享读请求的消息,表示希望从主存中获取所需的数据副本。当主存处理机10获得请求处理机20发出的共享读请求消息时,会先根据目录获得所述数据块状态,即主存以及各个Cache中存储所述数据块的数据副本的信息,若数据块状态为“脏”,并且指示脏副本存储在响应处理机21(Owner)所对应的Cache中,则表示只有响应处理机21对应的Cache中有最新的数据副本;而响应处理机21(Owner)对应的Cache的状态也为脏,表示所述Cache有最新的数据副本。
并且,在主存处理机10(Home)获得数据块状态后,通过与请求处理机20间的VC1虚通道向请求处理机20发出一致性标记响应消息,表示通知请求处理机20主存中无所述数据块的最新数据副本,将由其他具有最新数据副本的缓存向所述请求处理机20提供最新数据副本;通过与响应处理机21间的VC1虚通道向响应处理机21(Owner)发出查询置共享一致性请求消息,表示将请求处理机20发送的共享读请求转发给具有最新数据副本的Cache对应的响应处理机21处理,并且将目录的状态标记为“共享脏”,表示在向响应处理机21发出查询置共享一致性请求后,请求处理机20对应的Cache会获得响应处理机21提供的最新数据副本,从而将会有不止一个Cache中有最新数据副本。
在响应处理机21(Owner)获得主存处理机10发送的查询置共享一致性请求消息后,就会通过与请求处理机20之间的VC2虚通道向请求处理机20发送带有最新数据副本的数据响应。
由于已获得过一致性标记响应消息,在获得响应处理机21发送的数据响应后,请求处理机20就用所获得的最新数据副本装填对应的Cache。由于请求处理机20对应的Cache获得了最新数据副本,因而请求处理机20就将对应的Cache状态标记为“共享脏”。
当然,由于对于数据块的操作请求都会先发向主存处理机10,因而为了提高效率,使得后续的共享读请求就可以直接通过主存处理机10从主存中取得数据,也可以将主存中的数据进行更新。即在响应处理机21向请求处理机20发送数据响应时或之后,也通过与主存处理机10之间的VC2虚通道向主存处理机10发送带最新数据副本的回写回答消息,并将对应的Cache状态标记为“清洁共享”,表示在向主存处理机10发出回写回答后,主存也将获得最新数据副本,从而Cache中数据副本与主存一致。主存处理机10在获得回写回答消息后,就用所获得的最新数据副本来更新主存,由于主存中也同样拥有了最新数据副本,并且其他拥有最新数据副本的Cache(例如请求处理机20以及响应处理机21对应的Cache)中的数据副本与主存一致,因而主存处理机10将数据块状态标记为“清洁共享”。
实施例三
图3所示是本发明多缓存数据一致性的处理方法的第三种实施例,为一个处理共享读与回写竞争冲突事务的实例。参照图3所示,出现消息传输关系的处理机为请求处理机20(Local)、主存处理机10(Home)、响应处理机21(Owner)。
所述共享读与回写竞争冲突是指主存处理机10同时收到请求处理机20发出的共享读请求和响应处理机21发出的带最新数据副本的回写请求,或者更恶劣的情况,共享读请求先于回写请求到达主存处理机10。由于主存处理机10在处理共享读请求时会向响应处理机21转发请求,在处理回写请求时也会给予响应处理机21响应,当出现所述的共享读与回写竞争冲突时,对响应处理机21来说,由于发出回写请求是将所述最新数据副本转移至缓冲中暂存,并等待获得写结束响应后将缓冲释放。而处理主存处理机10的转发请求,向请求处理机20发送数据响应,是从所述缓冲中读取最新数据副本的。若响应处理机21先收到写结束响应,就会将缓冲释放。而后收到查询置共享一致性请求的时候,由于响应处理机21已经无法从缓冲中获得最新数据副本,而其对应的Cache中也已经没有最新数据副本,就会造成处理出错,所以在解决读写冲突时要避免这种情形的发生。
下面对本例的情况作详细阐述。
当请求处理机20获得读取数据块的指令时,假定此时请求处理机20对应的Cache中所述数据块的数据副本状态此时为“无效”,表示所述请求处理机20对应的Cache中没有所述数据块的数据副本。所述请求处理机20会通过与主存处理机10间的VC0虚通道向主存处理机10发出共享读请求的消息,表示希望从主存中获取所需的数据副本。由于假定的共享读请求先到达主存处理机10,主存处理机10就先处理共享读请求,当主存处理机10获得请求处理机20发出的共享读请求消息时,会先根据目录获得所述数据块状态,即主存以及各个Cache中存储所述数据块的数据副本的信息,若数据块状态为“脏”,并且指示脏副本存储在响应处理机21(Owner)所对应的Cache中,则表示只有响应处理机21对应的Cache中有最新的数据副本;而响应处理机21(Owner)对应的Cache的状态也为脏,表示所述Cache有最新的数据副本。
并且,在主存处理机10(Home)获得数据块状态后,通过与请求处理机20间的VC1虚通道向请求处理机20发出一致性标记响应消息,表示通知请求处理机20主存中无所述数据块的最新数据副本,将由其他具有最新数据副本的缓存向所述请求处理机20提供最新数据副本;通过与响应处理机21间的VC1虚通道向响应处理机21(Owner)发出查询置共享一致性请求消息,表示将请求处理机20发送的共享读请求转发给具有最新数据副本的Cache对应的响应处理机21处理,并且主存处理机10将目录的状态标记为“共享脏”,表示在向响应处理机21发出查询置共享一致性请求后,请求处理机20对应的Cache会获得响应处理机21提供的最新数据副本,从而将会有不止一个Cache中有最新数据副本。
由于对主存处理机10来说,响应处理机21发出的回写请求也是一次请求,通过主存处理机10和响应处理机21之间的VC0虚通道传送。而主存处理机10响应回写请求的写结束响应是一次响应,通过主存处理机10和响应处理机21之间的VC1虚通道传送。由于上述的查询置共享一致性请求也是通过主存处理机10和响应处理机21之间的VC1虚通道传送的,造成了查询置共享一致性请求和写结束响应都需要使用主存处理机10和响应处理机21之间的VC1虚通道。此时,由于VC1虚通道具有保序传送的特性,即先到的消息先传送,而由假定的共享读请求先于回写请求到达主存处理机10,主存处理机10也是先发查询置共享一致性请求,再发写结束响应,因而写结束响应只有等查询置共享一致性请求到达响应处理机21后,才可以使用VC1虚通道继续传送。因而,VC1虚通道相当于对查询置共享一致性请求和写结束响应到达响应处理机21时间进行了排序,从而保证了查询置共享一致性请求先到达响应处理机21,而写结束响应后到达响应处理机21,确保了在查询置共享一致性请求到达响应处理机21时,暂存所述最新数据副本的缓冲还没有释放,响应处理机21依然能够处理主存处理机10转发的请求。
由前述的,响应处理机21在发出回写请求时,将其对应的Cache中的最新数据副本转移至缓冲中,在响应处理机21(Owner)获得主存处理机10发送的查询置共享一致性请求消息后,响应处理机21会将查询置共享一致性请求与缓冲中的数据副本进行比较,当查询置共享一致性请求所指定的数据副本与缓冲中的最新数据副本对应时,响应处理机21会读取缓冲中的所述最新数据副本,通过响应处理机21和请求处理机20之间的VC2虚通道向请求处理机20发送带有最新数据副本的数据响应。
如前所述,请求处理机20在获得一致性标记响应后,知道将接收到其他缓存处理机发送的最新数据副本,因而在获得响应处理机21发送的数据响应后,就用所获得的最新数据副本装填对应的Cache。由于请求处理机20对应的Cache获得了最新数据副本,因而请求处理机20就将对应的Cache状态标记为“共享脏”。
根据前述的,当主存处理机10通过VC0虚通道向响应处理机21发出查询置共享一致性请求后,主存处理机10就可以继续通过VC0向响应处理机21发出的写结束响应。并且,主存处理机10发出写结束响应,就表示主存中的数据副本也已更新为最新数据副本,而其他拥有最新数据副本的Cache中的数据与主存中的数据一致,因而主存处理机10将数据块状态标记为“清洁”。
而响应处理机21在获得写结束响应后,就如前述的释放所述缓冲中的最新数据副本,并且将所对应的Cache的状态标记为“无效”。
通过上述描述可以看到,本例中主存处理机10并不需要处理共享读和回写的竞争冲突,而是由响应处理机21来处理。由于有了主存处理机10和响应处理机21间的VC1虚通道的保序传送特性,主存处理机10只需按照获得请求的先后顺序作出相应的响应即可,即先获得共享读请求,就向请求处理机20发出一致性标记响应,并向响应处理机21发出查询置共享一致性请求。后获得回写请求,就向响应处理机21发出写结束响应。而响应处理机21也根据获得消息的先后顺序,先处理查询置共享一致性请求,后处理写结束响应,从而解决了共享读请求和回写请求的竞争冲突问题。
实施例四
图4所示是本发明多缓存数据一致性的处理方法的第四种实施例,为处理共享读竞争冲突事务的实例。参照图4所示,所述共享读竞争冲突是指请求处理机20(Local_A)与请求处理机22(Local_B)基本上同时向主存处理机10(Home)发送了对同一块数据的共享读请求,这两个共享读请求到Home的时序是任意的,假定数据块状态为“脏”,且请求处理机20(Local_A)的共享读请求先到达主存处理机10,下面将本例的情况作详细阐述。
当请求处理机20获得读取数据块的指令时,假定此时请求处理机20对应的Cache中所述数据块的数据副本状态此时为“无效”,表示所述请求处理机20对应的Cache中没有所述数据块的数据副本。所述请求处理机20会通过与主存处理机10间的VC0虚通道向主存处理机10发出共享读请求的消息,表示希望从主存中获取所需的数据副本。由于假定的请求处理机20的共享读请求先到达主存处理机10,主存处理机10就先处理请求处理机20的共享读请求,当主存处理机10获得请求处理机20发出的共享读请求消息时,会先根据目录获得所述数据块状态,即主存以及各个Cache中存储所述数据块的数据副本的信息,如前假定的数据块状态为“脏”,并且指示脏副本存储在响应处理机21(Owner)所对应的Cache中,则表示只有响应处理机21对应的Cache中有最新的数据副本;而响应处理机21(Owner)对应的Cache的状态也为脏,表示所述Cache有最新的数据副本。
并且,在主存处理机10(Home)获得数据块状态后,通过与请求处理机20间的VC1虚通道向请求处理机20发出一致性标记响应消息,表示通知请求处理机20主存中无所述数据块的最新数据副本,将由其他具有最新数据副本的缓存向所述请求处理机20提供最新数据副本;通过与响应处理机21间的VC1虚通道向响应处理机21(Owner)发出查询置共享一致性请求消息,表示将请求处理机20发送的共享读请求转发给具有最新数据副本的Cache对应的响应处理机21处理。
由实施例2中描述可知,请求处理机20对应的Cache在获得最新数据副本后,将成为下一个具有最新数据副本的Cache,即将有不止一个Cache有最新数据副本。因此,主存处理机10在发出查询置共享一致性请求时,将数据块状态标记为“共享脏”,表示在向响应处理机21发出查询置共享一致性请求后,请求处理机20对应的Cache会获得响应处理机21提供的最新数据副本,从而将会有不止一个Cache中有最新数据副本。
由于请求处理机22发出的共享读请求后到主存处理机10,此时请求处理机20对应的Cache可能已经具有最新数据副本。主存处理机10就会在获得请求处理机22发出的共享读请求后,向请求处理机22发出一致性标记响应,向请求处理机20发送查询置共享一致性请求。
根据上述描述,由于主存处理机10向请求处理机20发出的一致性标记响应和查询置共享一致性请求都是通过请求处理机20和主存处理机10之间的VC1虚通道传送的,而VC1虚通道是保序传送的。参照实施例3的关于虚通道传送的相关描述,所述一致性标记响应先到达请求处理机20,查询置共享一致性请求后到达请求处理机20。而若请求处理机20在接收到查询置共享一致性请求时,还未获得最新数据,则请求处理机20就不能对于查询置共享一致性请求作出处理,此时请求处理机20会先暂停查询置共享一致性请求,待请求处理机20获得最新数据副本并对于所对应的Cache进行更新后,才重新激活查询置共享一致性请求进行处理。
对于所述暂停请求以及激活请求举例如下:将未完成的读请求,例如共享读请求的相关信息,如地址,类型码等保存在一个读请求悬挂缓冲(SMAF,System Miss Address File)中;处理机将从VC1虚通道中取出的一致性请求与SMAF中所有未完成的读请求进行比较,若所述一致性请求的目的地址与SMAF中未完成的读请求的发送方地址一致或对应,则将一致性请求暂停操作,并可以启动VC1通道内其它消息的传送;而当所述读请求完成后,SMAF就重新形成所述一致性请求并发送给Cache对应的处理机,来完成所述一致性请求的激活操作。
而本例中,对于请求处理机20来说,最新数据副本在响应处理机21对应的Cache中,所述请求处理机20获得最新数据副本的过程与实施例2完全相同。即响应处理机21在获得主存处理机10发送的查询置共享一致性请求后,向请求处理机20发出带最新数据的数据响应,向主存处理机10发出带最新数据的回写回答,并且将对应Cache的状态标记为“清洁”。
而请求处理机20在获得响应处理机21发送的带最新数据副本的数据响应后,对所对应的Cache进行更新,并在更新后将Cache状态标记为共享脏。并且,请求处理机20会激活查询置共享一致性请求,其对于查询置共享一致性请求的处理与上述响应处理机21对于查询置共享一致性请求的处理完全相同,这里就不再赘述了。在完成之后,请求处理机22由于获得了最新数据副本,就将其所对应的Cache的状态标记为“共享脏”。而由于主存处理机10已经获得了响应处理机21的回写回答,对于主存进行了更新。请求处理机20和响应处理机21对应的Cache的状态都标记为“清洁共享”,目录的状态标记为“清洁共享”。
对于上述描述简单概括,由于所述的VC1虚通道的保序传送特性,确保了请求处理机20先处理一致性标记响应,后处理查询置共享一致性请求。使得请求处理机20和请求处理机22也按其共享读请求到达主存处理机10的先后顺序而获得最新数据副本,因而解决了共享读请求竞争冲突的问题。
另外,对于本例中的消息传输进行进一步分析,请求处理机20获得来自响应处理机21的数据响应通过请求处理机20与响应处理机21之间的VC2虚通道传送,请求处理机20获得来自主存处理机10的两个消息(一致性标记响应和查询置共享一致性请求)是通过请求处理机20和主存处理机10之间的VC1虚通道传送,由于所述的三条消息分别从不同的虚通道到达请求处理机20,所以对于所述三条消息到达请求处理机20的顺序并没有什么要求。即使是数据响应晚于查询置共享一致性请求到达请求处理机20,本例中也已对于这种情况进行了说明。而对于数据响应先于查询置共享一致性请求到达请求处理机20的情况,接下来也就是请求处理机20对应的Cache作为具有最新数据副本的Cache的情况,相关的处理情况可参照实施例2所述。
而对于主存处理机10,除了收到通过还存处理机20与主存处理机10间的VC0虚通道传送的来自请求处理机20的共享读请求外,还收到通过请求处理机22和主存处理机10间的VC0虚通道传送的来自请求处理机22的共享读请求和通过响应处理机21和主存处理机10间的VC2虚通道传送的来自响应处理机21的回写回答,由于所述三条消息也是分别从不同的虚通道到达主存处理机10的,所以对于所述三条消息到达主存处理机10的顺序并没有什么要求。本例已经解决了可能产生的共享读请求。而如果主存处理机10先收到回写回答,后收到来自请求处理机22的共享读请求,这其实就是实施例1所述的情况,参照实施例1的描述,直接由主存处理机10返回请求处理机22带数据的读响应就可以了。
实施例五
图5所示是本发明多缓存数据一致性的处理方法的第五种实施例,为一个独占读事务的实例。参照图5所示,除前面各实例中所提到的请求处理机(Local)、主存处理机(Home)、响应处理机(Owner)外,还有共享处理机(Sharer)。
当请求处理机20获得写数据块的指令,假定此时请求处理机20对应的Cache中所述数据块的数据副本状态此时为“无效”,表示所述请求处理机20对应的Cache中没有所述数据块的数据副本。所述请求处理机20会通过与主存处理机10间的VC0虚通道向主存处理机10发出独占读请求的消息,表示希望从主存中获取可写的数据副本。当主存处理机10获得请求处理机20发出的独占读请求消息时,会先根据目录获得所述数据块状态,即主存以及各个Cache中存储所述数据块的数据副本的信息,若数据块状态为“共享脏”,并且指示脏副本存储在响应处理机21(Owner)所对应的Cache中,则表示响应处理机21对应的Cache中有最新的数据副本;而响应处理机21(Owner)对应的Cache的状态也为“共享脏”,表示所述Cache有最新的数据副本。
并且,在主存处理机10(Home)获得数据块状态后,通过与请求处理机20间的VC1虚通道向请求处理机20发出一致性标记响应消息,表示通知请求处理机20主存中无所述数据块的最新数据副本,将由其他具有最新数据副本的缓存向所述请求处理机20提供最新数据副本;通过与响应处理机21间的VC1虚通道向响应处理机21(Owner)发出查询置无效一致性请求消息,表示将请求处理机20发送的独占读请求转发给具有最新数据副本的Cache对应的响应处理机21处理,指示响应处理机21在提供完最新数据副本后,将对应的Cache置为无效;通过与共享处理机23间的VC1虚通道向缓存处理机发送无效广播一致性请求,表示指示所述共享处理机23将对应的Cache置为无效,并且将数据块状态标记为“脏”,表示所述操作完成后,仅有一个Cache中有最新数据副本。
本例中响应处理机21获得查询置无效一致性请求后的操作与获得查询置共享一致性请求后的操作大致相同,区别之处仅在于最后会将对应的Cache置为无效,因此可参照实施例2的相关描述,这里就不赘述了。
所述共享处理机23(Sharer)对应的Cache虽然也拥有最新数据副本,但由于没有必要回写主存,其对应的Cache状态可以被定义为“清洁共享”。当共享处理机23获得无效广播一致性请求后,就将其对应的Cache状态置为“无效”,例如通过清除Cache中的数据使得Cache状态为“无效”。
由于请求处理机20对应的Cache在响应处理机21提供数据响应后,具有了最新数据副本,并且其他Cache中都没有最新数据副本,请求处理机20将对应的Cache的状态标记为“脏”,表示数据副本可读可写。
所述的共享处理机23可以是多个,并且,为了提高消息传输的效率,还可增加共享处理机23在将对应的Cache状态置为无效后,通过请求处理机20和共享处理机23间的VC2虚通道向请求处理机20发送无效响应。由于请求处理机20在获得一致性标记响应时,已经获得了有多少个Cache是具有最新数据副本的信息,由于响应处理机21向请求处理机20发送完数据响应后将对应Cache置无效其实相当于将响应处理机21对应的Cache中的最新数据转移到了请求处理机20对应的Cache中,因而请求处理机20根据共享处理机23发送的无效响应,就能知道是不是其他所有具有最新数据副本的Cache都被置无效了。例如,在请求处理机20发出独占读请求前,除了响应处理机21对应的Cache中有最新数据副本外,还有5个缓存处理机对应的Cache有最新数据副本,当请求处理机20完成本例中的独占读操作后,由于响应处理机21对应的Cache中的数据已经转移给了请求处理机20对应的Cache,当请求处理机20获得5个无效响应之后,就知道包括响应处理机21对应的Cache以及其他5个原先有最新数据副本的Cache都被置无效了。
实施例六
图6所示是本发明多缓存数据一致性的处理方法的第六种实施例,为一个共享置脏事务的实例。所述共享置脏请求的定义:只允许获得操作数据块指令的缓存处理机对应的Cache获得可写数据副本,所述获得可写数据副本是指所述Cache已经拥有此数据的最新只读副本,而不允许其他具有最新数据副本的Cache再拥有数据副本,从而所述Cache获得写权限,其所具有的数据副本也是唯一可以用于后续写操作的数据副本。
参照图6所示,当请求处理机20获得写数据块的指令时,假定此时请求处理机20对应的Cache的状态此时为“清洁共享”,表示所述请求处理机20对应的Cache中拥有所述数据块的数据的只读副本。所述请求处理机20会通过与主存处理机10间的VC0虚通道向主存处理机10发出共享置脏请求的消息,表示希望将其它Cache中副本置为无效,使自己拥有唯一的可写数据副本。当主存处理机10获得请求处理机20发出的共享置脏请求消息时,会先根据目录获得所述数据块状态,即主存以及各个Cache中存储所述数据块的数据副本的信息,若数据块状态为“清洁共享”,则表示还有其他缓存处理机对应的Cache中也有只读数据副本,例如响应处理机24对应的Cache中也有只读副本;而响应处理机24对应的Cache的状态也为“清洁共享”,表示所述Cache有只读数据副本。
并且,在主存处理机10(Home)获得数据块状态后,通过与请求处理机20间的VC1虚通道向请求处理机20发出一致性标记响应消息,表示共享置脏请求已经被处理;通过与响应处理机24间的VC1虚通道向响应处理机24发出无效广播一致性请求消息,表示通知所述响应处理机24将对应的Cache置为无效,并且将数据块状态标记为“脏”,表示无效广播一致性请求操作完成后,将只有请求处理机20对应的Cache中有最新数据副本。而请求处理机20在获得一致性标记响应之后,将所对应的Cache状态标记为“脏”,表示Cache中含有数据块的可读可写副本。
而响应处理机24在获得无效广播一致性请求消息后,就将其对应的Cache状态置为“无效”,例如通过清除Cache中的数据使得Cache状态为“无效”。
综上所述,上述所公开的多缓存数据一致性的处理方法及主存处理机,当主存无数据块的最新数据副本时,由主存处理机向所述数据块状态记载的具有最新数据副本的缓存对应的响应处理机转发获取数据块的数据副本的操作请求,并将所述数据块状态更新为所述转发操作请求成功后的状态,其中,所述主存处理机通过具有保序传送特性的虚通道向所述响应处理机转发所述操作请求,这样就保证了所述操作请求能够按序得到处理,而以所述转发操作请求成功后的数据块状态对所述数据块状态进行更新则保证了后续操作请求能够继续得到处理,这样就避免了某一个操作请求因为迟迟得不到处理响应或处理失败,而使系统产生活锁、饥饿的问题,减少冲突时传输消息的数量,从而提高系统性能。
虽然本发明己以较佳实施例披露如上,但本发明并非限定于此。任何本领域技术人员,在不脱离本发明的精神和范围内,均可作各种更动与修改,因此本发明的保护范围应当以权利要求所限定的范围为准。
Claims (15)
1.一种多缓存数据一致性的处理方法,其特征在于,包括:
请求处理机在获取数据块操作指令后,若对应的缓存中所述数据块的数据副本状态显示所述缓存无所述数据块的数据副本时,向主存处理机发出相应的获取数据副本操作请求;
若所述数据块当前状态显示主存无所述数据块的最新数据副本时,主存处理机向所述数据块当前状态记载的具有最新数据副本的缓存对应的响应处理机转发所述操作请求,并将所述数据块状态更新为所述转发操作请求成功后的状态,其中,所述主存处理机通过具有保序传送特性的虚通道向所述响应处理机转发所述操作请求;
其中,所述数据块的数据副本状态由缓存状态记载,所述数据副本状态包括:无效,表示缓存中没有所述数据块的数据副本;清洁共享,表示缓存中有所述数据块的只读数据副本,淘汰所述只读数据副本不必回写主存;共享脏,表示缓存中有所述数据块的只读数据副本,且比主存数据新,淘汰所述数据副本需回写主存;脏,表示缓存中有所述数据块的可读可写数据副本,且比主存数据新,淘汰所述数据副本需回写主存。
2.如权利要求1所述的多缓存数据一致性的处理方法,其特征在于,所述数据块状态由目录记载,所述数据块状态包括:无副本,表示除主存外任何一个缓存中均无所述数据块的数据副本;清洁共享,表示至少有一个缓存中有所述数据块的数据副本,且与主存数据一致;脏,表示只有一个缓存中有所述数据块的数据副本,且比主存数据新,对所述数据块的操作需包括一致性操作;共享脏,表示至少有一个缓存中有所述数据块的数据副本,且比主存数据新,对所述数据块的操作需包括一致性操作。
3.如权利要求1或2所述的多缓存数据一致性的处理方法,其特征在于,还包括:
所述响应处理机在获得转发操作请求后,向所述请求处理机发出数据响应,并将缓存中所述数据块的数据副本状态更改为清洁共享。
4.如权利要求3所述的多缓存数据一致性的处理方法,其特征在于,所述请求处理机根据所述数据响应,更新缓存中的数据副本,并将缓存中所述数据块的数据副本状态更改为共享脏。
5.如权利要求1或2所述的多缓存数据一致性的处理方法,其特征在于,还包括:
所述响应处理机在获得转发操作请求后,向所述请求处理机发出数据响应,向所述主存处理机发出回写回答请求,并将缓存中所述数据块的数据副本状态更改为清洁共享。
6.如权利要求5所述的多缓存数据一致性的处理方法,其特征在于,所述主存处理机根据所述回写回答请求,更新主存中的数据副本,并将目录中所述数据块的状态更改为清洁共享。
7.如权利要求5所述的多缓存数据一致性的处理方法,其特征在于,所述请求处理机根据所述数据响应,更新缓存中的数据副本,并将缓存中所述数据块的数据副本状态更改为共享脏。
8.如权利要求1或2所述的多缓存数据一致性的处理方法,其特征在于,所述主存处理机按所获取操作请求的顺序对所获取操作请求进行处理。
9.如权利要求8所述的多缓存数据一致性的处理方法,其特征在于,若所记载的具有最新数据副本的缓存对应的响应处理机在获得转发操作请求之前,向主存处理机发送过回写请求,则在获得主存处理机发送的写结束响应后才清除缓存中的数据副本,并将缓存中所述数据块的数据副本状态更改为无效。
10.如权利要求8所述的多缓存数据一致性的处理方法,其特征在于,若所记载的具有最新数据副本的缓存在对应的响应处理机获得转发操作请求时还不具有最新数据副本,则所述响应处理机暂停所述转发请求直到获得最新数据副本才执行所述转发操作请求。
11.如权利要求1或2所述的多缓存数据一致性的处理方法,其特征在于,还包括:
所述主存处理机在目录中所述数据块状态为无副本或清洁共享时,通过具有保序传送特性的虚通道向所述请求处理机返回数据响应,将目录中所述数据块状态更改为清洁共享。
12.如权利要求11所述的多缓存数据一致性的处理方法,其特征在于,所述请求处理机根据所述数据响应,更新缓存中的数据副本,并将缓存的数据副本状态更改为清洁共享。
13.如权利要求1或2所述的多缓存数据一致性的处理方法,其特征在于,还包括:所述主存处理机在获得所述操作请求后,向所述请求处理机发送通知请求处理机操作请求已转发的响应。
14.一种多缓存数据一致性的处理机,其特征在于,包括:
获取单元,用于请求处理机在获取数据块操作指令后,若对应的缓存中所述数据块的数据副本状态显示所述缓存无所述数据块的数据副本时,向主存处理机发出相应的获取数据副本操作请求;
转发单元,用于若所述数据块当前状态显示主存无所述数据块的最新数据副本时,主存处理机向所述数据块当前状态记载的具有最新数据副本的缓存对应的响应处理机转发所述操作请求;
更新单元,用于将所述数据块状态更新为所述转发操作请求成功后的状态;
其中,所述主存处理机通过具有保序传送特性的虚通道向所述响应处理机转发所述操作请求;
其中,所述数据块的数据副本状态由缓存状态记载,所述数据副本状态包括:无效,表示缓存中没有所述数据块的数据副本;清洁共享,表示缓存中有所述数据块的只读数据副本,淘汰所述只读数据副本不必回写主存;共享脏,表示缓存中有所述数据块的只读数据副本,且比主存数据新,淘汰所述数据副本需回写主存;脏,表示缓存中有所述数据块的可读可写数据副本,且比主存数据新,淘汰所述数据副本需回写主存。
15.如权利要求14所述的多缓存数据一致性的处理机,其特征在于,所述处理机按所获取操作请求的顺序对所获取操作请求进行处理。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2007103056920A CN101470669B (zh) | 2007-12-28 | 2007-12-28 | 多缓存数据一致性的处理方法及主存处理机 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2007103056920A CN101470669B (zh) | 2007-12-28 | 2007-12-28 | 多缓存数据一致性的处理方法及主存处理机 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101470669A CN101470669A (zh) | 2009-07-01 |
CN101470669B true CN101470669B (zh) | 2011-02-16 |
Family
ID=40828150
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2007103056920A Expired - Fee Related CN101470669B (zh) | 2007-12-28 | 2007-12-28 | 多缓存数据一致性的处理方法及主存处理机 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101470669B (zh) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8949547B2 (en) * | 2011-08-08 | 2015-02-03 | Arm Limited | Coherency controller and method for data hazard handling for copending data access requests |
CN102929800B (zh) * | 2012-10-17 | 2015-07-08 | 无锡江南计算技术研究所 | Cache一致性协议派生处理方法 |
CN106649145B (zh) * | 2016-12-15 | 2021-02-19 | Tcl科技集团股份有限公司 | 一种自适应更新缓存策略的方法及系统 |
US10621103B2 (en) * | 2017-12-05 | 2020-04-14 | Arm Limited | Apparatus and method for handling write operations |
CN110232030B (zh) * | 2019-06-12 | 2021-08-10 | 上海兆芯集成电路有限公司 | 多芯片系统及缓存处理方法 |
CN115373877A (zh) * | 2022-10-24 | 2022-11-22 | 北京智芯微电子科技有限公司 | 异构多核处理器保证共享缓存一致性的控制方法和装置 |
CN116962259B (zh) * | 2023-09-21 | 2024-02-13 | 中电科申泰信息科技有限公司 | 一种基于监听-目录两层协议的一致性处理方法及系统 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030196047A1 (en) * | 2000-08-31 | 2003-10-16 | Kessler Richard E. | Scalable directory based cache coherence protocol |
US6839810B2 (en) * | 1998-03-06 | 2005-01-04 | Sharp Kabushiki Kaisha | Consistency control device merging updated memory blocks |
CN1664795A (zh) * | 2005-03-30 | 2005-09-07 | 中国人民解放军国防科学技术大学 | 目录协议对多处理器结点内脏数据共享的支持方法 |
CN1991794A (zh) * | 2005-12-30 | 2007-07-04 | 国际商业机器公司 | 多处理器系统中维持数据一致性的方法和系统 |
-
2007
- 2007-12-28 CN CN2007103056920A patent/CN101470669B/zh not_active Expired - Fee Related
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6839810B2 (en) * | 1998-03-06 | 2005-01-04 | Sharp Kabushiki Kaisha | Consistency control device merging updated memory blocks |
US20030196047A1 (en) * | 2000-08-31 | 2003-10-16 | Kessler Richard E. | Scalable directory based cache coherence protocol |
CN1664795A (zh) * | 2005-03-30 | 2005-09-07 | 中国人民解放军国防科学技术大学 | 目录协议对多处理器结点内脏数据共享的支持方法 |
CN1991794A (zh) * | 2005-12-30 | 2007-07-04 | 国际商业机器公司 | 多处理器系统中维持数据一致性的方法和系统 |
Also Published As
Publication number | Publication date |
---|---|
CN101470669A (zh) | 2009-07-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101470669B (zh) | 多缓存数据一致性的处理方法及主存处理机 | |
CN1157659C (zh) | 非均匀存储器访问数据处理系统及其通信方法 | |
CN100428195C (zh) | 数据处理系统和方法 | |
CN100520738C (zh) | 更新无效一致状态的方法、数据处理系统和高速缓存系统 | |
CN101115054B (zh) | 用于网络接口控制器的存储器映射的缓冲器 | |
CN1729458B (zh) | 状态转发方法 | |
CN101625663B (zh) | 满足部分读取和非监听访问之间的访存顺序要求 | |
US5900020A (en) | Method and apparatus for maintaining an order of write operations by processors in a multiprocessor computer to maintain memory consistency | |
TW576975B (en) | Decentralized global coherency management in a multi-node computer system | |
CN100468365C (zh) | 高速缓存相干协议的推测分布式冲突解决方法和装置 | |
JP3748774B2 (ja) | キャッシュコヒーレンス共用ディスクコンピュータシステムにおけるi/o転送 | |
CN101577716B (zh) | 基于InfiniBand网络的分布式存储方法和系统 | |
EP1443404A2 (en) | Non-speculative distributed conflict resolution for a cache coherency protocol | |
EP1255201A1 (en) | Shared memory multiprocessing system employing mixed broadcast snooping and directory based coherency protocols | |
CN1573715A (zh) | 在非对称异构多处理器环境中提供原子更新原语的方法 | |
CN100570584C (zh) | 数据处理系统中初始化存储块的方法和装置 | |
JP5505516B2 (ja) | 情報処理システムおよび情報送信方法 | |
CN102339283A (zh) | 集群文件系统访问控制方法及集群节点 | |
TWI386810B (zh) | 多處理器系統以目錄為主之資料傳輸協定 | |
US9442781B2 (en) | Optimistic processing of messages in a messaging system | |
US20050160240A1 (en) | System and method for blocking data responses | |
EP1895413A2 (en) | Access monitoring method and device for shared memory | |
CN102959529A (zh) | 用于缓存的网络的广播协议 | |
JP3791742B2 (ja) | Pciバス制御システム | |
US20050154840A1 (en) | Cache line ownership transfer in multi-processor computer systems |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20110216 Termination date: 20181228 |
|
CF01 | Termination of patent right due to non-payment of annual fee |