CN104035888B - 一种缓存数据的方法及存储设备 - Google Patents

一种缓存数据的方法及存储设备 Download PDF

Info

Publication number
CN104035888B
CN104035888B CN201410258859.2A CN201410258859A CN104035888B CN 104035888 B CN104035888 B CN 104035888B CN 201410258859 A CN201410258859 A CN 201410258859A CN 104035888 B CN104035888 B CN 104035888B
Authority
CN
China
Prior art keywords
data
target
request
target data
agency
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.)
Active
Application number
CN201410258859.2A
Other languages
English (en)
Other versions
CN104035888A (zh
Inventor
兰可嘉
程永波
贺成洪
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Priority to CN201410258859.2A priority Critical patent/CN104035888B/zh
Publication of CN104035888A publication Critical patent/CN104035888A/zh
Priority to PCT/CN2015/078964 priority patent/WO2015188676A1/zh
Priority to US14/732,172 priority patent/US9594684B2/en
Application granted granted Critical
Publication of CN104035888B publication Critical patent/CN104035888B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0815Cache consistency protocols
    • G06F12/0831Cache consistency protocols using a bus scheme, e.g. with bus monitoring or watching means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1016Performance improvement

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

本发明实施例提供了一种缓存数据的方法及存储设备,缓存数据的方法应用于存储设备,存储设备包括源代理及目标代理,方法包括:源代理向目标代理发送数据获取请求;源代理接收目标代理返回的与数据获取请求对应的目标数据;源代理确定在发送数据获取请求与接收目标数据之间是否接收到了目标代理发送的针对目标数据的侦听请求,所述侦听请求表明目标代理同时正在处理其他源代理对所述目标数据的获取请求;若接收到所述侦听请求,则源代理丢弃目标数据,若未接收到所述侦听请求,则源代理保存目标数据。本发明实施例能够在不严格控制报文接收顺序或额外增加ACK报文的情况下,解决缓存一致性冲突的问题,提高了数据的处理效率。

Description

一种缓存数据的方法及存储设备
技术领域
本发明实施例涉及电子技术领域,尤其涉及一种缓存数据的方法及存储设备。
背景技术
在多处理器系统中,每个处理器都有一或两级缓存,同一个数据的多个副本可能同时存于不同的缓存中。若处理器自由地修改它们的本地副本,则会导致对于同一数据不同的处理器在不同的缓存中观察到的结果不一致。另外IO(Input Output,输入输出)对主存的修改也可能引起不一致性问题。为了解决缓存一致性问题,引入了MESI(Modified、Exclusive、Shared、Invalid,修改、排除、共享、废弃)协议。
MESI协议中缓存的每行数据有四种状态:
M(modified)修改态:此行已被修改(不同于主存)并在这个缓存中可用;
E(exclusive)专有态:此行与主存相同,但不同于其他缓存;
S(shared)共享态:此行与主存相同,并可能出现在其他的缓存中;
I(invalid)无效态:此行不含有效数据。
在一致性系统中主要包含了源代理CA和目标代理HA两种代理,CA代理了缓存和IO,往HA发起请求处理响应,每一条缓存行都有一个Home,当没有缓存拥有该缓存行时,该缓存行的数据都在HA管理的存储器中。Home监听模式下HA上管理了缓存行对应的目录,所有CA发起的请求都发往HA,HA根据目录对其他CA进行监听并响应请求者CA。CA和HA都是管理缓存一致性的模块,可以用软件或硬件实现。
CA发起的请求类型包括:
READE:请求E态数据;
READS:请求共享态数据;
WBI:CA往HA发起的回写请求,回写后CA处于I态。
HA发起的监听类型包括:
SNPE:侦听CA,被侦听后CA处于I态;
SNPS:侦听CA,被侦听后CA处于I或S态。
CA侦听响应类型包括:
RSPI:CA返回侦听响应给HA,CA被侦听后处于I态;
RSPS:CA返回侦听响应给HA,CA被侦听后处于S态;
RSPIWB:CA返回带数据回写的侦听响应,CA被侦听后处于I态。
HA返回给请求者CA的请求响应类型包括:
DATAE:HA给请求者CA返回E态数据响应;
DATAS:HA给请求者CA返回S态数据响应。
下面举一个实际的例子说明缓存一致性冲突的产生过程,请参阅图11,当CA0与CA1向HA发起了对同一数据的独占请求时,HA先处理CA0的请求,向CA1发送侦听请求SNPE,待CA1返回响应帧RSPI后,HA向CA0返回的E态数据DATAE,然后处理CA1的请求,向CA0发送侦听请求SNPE,若返回的E态数据DATAE传输有时延,侦听请求SNPE在E态数据DATAE之前到达了CA0(此时CA0中的数据为无效态),则在CA0给HA返回响应帧RSPI之后,HA也向CA1发送E态数据DATAE,此时E态数据同时存在于两个CA中,CA0和CA1都认为在系统中只有自己独占了数据,所以可以对获取的数据进行修改(E→M),这样就会导致两个CA中保存的数据不一致,产生冲突。
为解决冲突,目前通常采用如下两种方法进行处理:
第一种:请参阅图12,CA0与CA1向HA发起了对同一数据的独占请求时,HA先处理CA0的请求,向CA1发送侦听请求SNPE,待CA1返回响应帧RSPI后,HA向CA0返回的E态数据DATAE,然后再处理CA1的请求,向CA0发送侦听请求SNPE,CA0接收到侦听请求SNPE后,将自身接收到的数据无效掉,然后向HA返回响应帧RSPI,HA接收到响应帧RSPI后向CA1返回E态数据DATAE。在整个处理的过程中,HA必须保证CA0先接收到E态数据DATAE,后接收到侦听请求SNPE,最终整个系统中只有CA1中保存的数据处于独占态。
第二种:请参阅图13,同样CA0与CA1向HA发起了对同一数据的独占请求,HA先处理CA0的请求,向CA0返回E态数据DATAE,然后需要等到接收到CA0发送的确认帧ACK之后,HA才开始处理CA1的请求,同样,CA1接收到HA返回的E态数据DATAE之后,也需要向HA返回确认帧ACK。
上面第一种方式中,为避免冲突,HA需要严格控制CA端数据响应DATAE与侦听请求SNPE的接收顺序,第二种方式中,CA的每一次请求中都需要多加一个ACK报文,增加了链路传输的负担,同时因为需要额外处理一个ACK报文,增加了整个请求的时延,降低了数据处理效率。因此,有必要提供一种新的方法解决上述问题。
发明内容
有鉴于此,本发明实施例提供了一种缓存数据的方法及存储设备,能够在不严格控制报文接收顺序或额外增加ACK报文的情况下,解决缓存一致性冲突的问题,提高了数据的处理效率。
本发明实施例第一方面提供了一种缓存数据的方法,所述缓存数据的方法应用于存储设备,所述存储设备包括源代理及目标代理,所述方法包括:
所述源代理向所述目标代理发送数据获取请求;
所述源代理接收所述目标代理返回的与所述数据获取请求对应的目标数据;
所述源代理确定在发送所述数据获取请求与接收所述目标数据之间是否接收到了所述目标代理发送的针对所述目标数据的侦听请求,所述侦听请求表明所述目标代理同时正在处理其他源代理对所述目标数据的获取请求;
若接收到所述侦听请求,则所述源代理丢弃所述目标数据,若未接收到所述侦听请求,则所述源代理保存所述目标数据。
结合本发明实施例的第一方面,在本发明实施例第一方面的第一种实施方式中,在所述源代理保存所述目标数据之后,所述方法还包括:
若所述源代理接收到了所述目标代理发送的针对所述目标数据的侦听请求,则所述源代理无效掉已保存的所述目标数据。
结合本发明实施例的第一方面,或第一方面的第一种实施方式,在本发明实施例第一方面的第二种实施方式中,在所述源代理丢弃所述目标数据之后,所述方法还包括:
所述源代理重复向所述目标代理发送所述数据获取请求,直至所述源代理确定在本次发送所述数据获取请求与接收所述目标数据之间没有接收到所述目标代理发送的针对所述目标数据的侦听请求,所述源代理保存所述目标数据。
结合本发明实施例的第一方面,或第一方面的第一种实施方式,在本发明实施例第一方面的第三种实施方式中,在所述源代理丢弃所述目标数据之后,所述方法还包括:
所述源代理重复向所述目标代理发送所述数据获取请求,若重复发送次数达到了预置的重复次数,且在预置的重复次数之内所述源代理每次在发送所述数据获取请求与接收所述目标数据之间都接收到了所述目标代理发送的针对所述目标数据的侦听请求,则所述源代理向所述目标代理发送升级版的所述数据获取请求,以阻止所述目标代理同时处理所述其他源代理对所述目标数据的获取请求;
所述源代理接收所述目标代理返回的所述目标数据并保存;
所述源代理向所述目标代理发送确认帧。
结合本发明实施例的第一方面,或第一方面的第一种实施方式,或第一方面的第二种实施方式,或第一方面的第三种实施方式,在本发明实施例第一方面的第四种实施方式中,所述数据获取请求包括请求专有态的目标数据及请求共享态的目标数据。
本发明实施例第二方面提供了另一种缓存数据的方法,所述缓存数据的方法应用于存储设备,所述存储设备包括源代理及目标代理,所述方法包括:
所述目标代理接收所述源代理发送的数据获取请求;
所述目标代理查找与所述数据获取请求对应的目标数据并将所述目标数据返回给所述源代理;
所述目标代理在所述源代理发送所述数据获取请求与接收所述目标数据之间,向所述源代理发送针对所述目标数据的侦听请求,以表明所述目标代理同时正在处理其他源代理对所述目标数据的获取请求;
所述目标代理接收所述源代理重复发送的所述数据获取请求;
所述目标代理响应于重复发送的所述数据获取请求,将所述目标数据重复发送给所述源代理。
结合本发明实施例的第二方面,在本发明实施例第二方面的第一种实施方式中,在所述目标代理返回给所述源代理与所述数据获取请求对应的目标数据之前,所述方法还包括:
所述目标代理向所述其他源代理发送针对所述目标数据的侦听请求,以表明所述目标代理正在处理所述源代理对所述目标数据的获取请求,所述其他源代理保存有非无效态数据;
所述目标代理接收所述其他源代理返回的侦听响应。
结合本发明实施例的第二方面,或第二方面的第一种实施方式,在本发明实施例第二方面的第二种实施方式中,所述方法还包括:
所述目标代理接收所述源代理发送的升级版的所述数据获取请求,所述升级版的所述数据获取请求用于阻止所述目标代理同时处理所述其他源代理对所述目标数据的获取请求;
所述目标代理停止处理所述其他源代理对所述目标数据的获取请求,向所述源代理发送所述目标数据;
所述目标代理接收所述源代理返回的确认帧;
所述目标代理重新开始处理所述其他源代理对所述目标数据的获取请求。
结合本发明实施例的第二方面,或第二方面的第一种实施方式,或第二方面的第二种实施方式,在本发明实施例第二方面的第三种实施方式中,所述数据获取请求包括请求专有态的目标数据及请求共享态的目标数据。
本发明实施例第三方面提供了一种存储设备,所述存储设备包括源代理及目标代理,所述源代理包括:
第一发送单元,用于向所述目标代理发送数据获取请求;
第一接收单元,用于接收所述目标代理返回的与所述数据获取请求对应的目标数据;
确定单元,用于确定在所述第一发送单元发送所述数据获取请求与第一接收单元接收所述目标数据之间所述第一接收单元是否接收到了所述目标代理发送的针对所述目标数据的侦听请求,所述侦听请求表明所述目标代理同时正在处理其他源代理对所述目标数据的获取请求;
第一处理单元,用于在所述确定单元确定所述第一接收单元接收到了所述目标代理发送的针对所述目标数据的侦听请求时,丢弃所述目标数据,在所述确定单元确定所述第一接收单元没有接收到所述目标代理发送的针对所述目标数据的侦听请求时,保存所述目标数据。
结合本发明实施例的第三方面,在本发明实施例第三方面的第一种实施方式中,所述第一接收单元还用于,在所述第一处理单元保存所述目标数据之后,接收所述目标代理发送的针对所述目标数据的侦听请求;
所述第一处理单元还用于,无效掉已保存的所述目标数据。
结合本发明实施例的第三方面,或第三方面的第一种实施方式,在本发明实施例第三方面的第二种实施方式中,所述第一发送单元还用于,在所述第一处理单元丢弃所述目标数据之后,重复向所述目标代理发送所述数据获取请求,直至所述确定单元确定在本次发送所述数据获取请求与接收所述目标数据之间第一接收单元没有接收到所述目标代理发送的针对所述目标数据的侦听请求。
结合本发明实施例的第三方面,或第三方面的第一种实施方式,在本发明实施例第三方面的第三种实施方式中,所述第一发送单元还用于,在所述处理单元丢弃所述目标数据之后,重复向所述目标代理发送所述数据获取请求;
所述确定单元还用于,确定在预置的重复次数之内所述第一接收单元是否每次在发送所述数据获取请求与接收所述目标数据之间都接收到了所述目标代理发送的针对所述目标数据的侦听请求,若是,则触发所述第一发送单元向所述目标代理发送升级版的所述数据获取请求,以阻止所述目标代理同时处理所述其他源代理对所述目标数据的获取请求;
所述第一发送单元还用于,在所述第一接收单元接收到所述目标数据之后,向所述目标代理发送确认帧。
结合本发明实施例的第三方面,或第三方面的第一种实施方式,或第三方面的第二种实施方式,或第三方面的第三种实施方式,在本发明实施例第三方面的第四种实施方式中,所述第一发送单元发送的数据获取请求包括请求专有态的目标数据及请求共享态的目标数据。
本发明实施例第四方面提供了另一种存储设备,所述存储设备包括源代理及目标代理,所述目标代理包括:
第二接收单元,用于接收所述源代理发送的数据获取请求;
第二处理单元,用于查找与所述数据获取请求对应的目标数据;
第二发送单元,用于在所述源代理发送所述数据获取请求与接收所述目标数据之间,向所述源代理发送针对所述目标数据的侦听请求,以表明所述目标代理同时正在处理其他源代理对所述目标数据的获取请求;
所述第二接收单元还用于,接收所述源代理重复发送的所述数据获取请求;
所述第二发送单元还用于,在所述第二处理单元响应于重复发送的所述数据获取请求后,将所述目标数据重复发送给所述源代理。
结合本发明实施例的第四方面,在本发明实施例第四方面的第一种实施方式中,所述第二发送单元还用于,在将所述目标数据发送给所述源代理之前,向所述其他源代理发送针对所述目标数据的侦听请求,以表明所述目标代理正在处理所述源代理对所述目标数据的获取请求,所述其他源代理保存有非无效态数据;
所述第二接收单元还用于,接收所述其他源代理返回的侦听响应。
结合本发明实施例的第四方面,或第四方面的第一种实施方式,在本发明实施例第四方面的第二种实施方式中,所述第二接收单元还用于,接收所述源代理发送的升级版的所述数据获取请求,所述升级版的所述数据获取请求用于阻止所述目标代理同时处理所述其他源代理对所述目标数据的获取请求;
所述第二处理单元还用于,在所述第二接收单元接收到升级版的所述数据获取请求之后,停止处理所述其他源代理对所述目标数据的获取请求,触发所述第二发送单元向所述源代理发送所述目标数据;
所述第二接收单元还用于,接收所述源代理返回的确认帧;
所述第二处理单元还用于,在所述第二接收单元接收到所述确认帧之后,重新开始处理所述其他源代理对所述目标数据的获取请求。
结合本发明实施例的第四方面,或第四方面的第一种实施方式,或第四方面的第二种实施方式,在本发明实施例第四方面的第三种实施方式中,所述第二接收单元接收到的数据获取请求包括请求专有态的目标数据及请求共享态的目标数据。
从以上技术方案可以看出,本发明实施例具有以下优点:
本发明实施例中,源代理在接收到目标代理返回的目标数据之后,会判断在发送数据获取请求与接收目标数据之间是否接收到了目标代理发送的针对所述目标数据的侦听请求,若接收到所述侦听请求,则表明此时其他源代理也在向目标代理请求目标数据,会引起一致性冲突的问题,则源代理丢弃所接收到的目标数据,以避免冲突;若未接收到所述侦听请求,则源代理保存所接收到的目标数据。本发明实施例中,源代理通过判断在发送数据获取请求与接收目标数据之间是否接收到目标代理发送的针对所述目标数据的侦听请求来决定对目标数据的处理方式,能够解决缓存一致性冲突的问题,且对报文的接收顺序没有要求,同时也不用额外增加ACK报文,减少了请求的处理时间,提高了数据的处理效率。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明缓存数据的方法一个实施例示意图;
图2为本发明缓存数据的方法另一实施例示意图;
图3为本发明缓存数据的方法另一实施例示意图;
图4为本发明缓存数据的方法另一实施例示意图;
图5为本发明缓存数据的方法另一实施例示意图;
图6为本发明缓存数据的方法另一实施例示意图;
图7为本发明缓存数据的方法另一实施例示意图;
图8为本发明缓存数据的方法另一实施例示意图;
图9为本发明存储设备一个实施例示意图;
图10为本发明存储设备另一实施例示意图;
图11为背景技术中缓存数据的方法一个实施例示意图;
图12为背景技术中缓存数据的方法另一实施例示意图;
图13为背景技术中缓存数据的方法另一实施例示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例提供了一种缓存数据的方法及存储设备,所述缓存数据的方法应用于存储设备,所述存储设备包括源代理及目标代理,源代理及目标代理的数量均可以为一个或多个。本发明实施例能够在不严格控制报文接收顺序或额外增加ACK报文的情况下,解决缓存一致性冲突的问题,提高了数据的处理效率。
下面请参阅图1,图1为本发明缓存数据的方法一个实施例示意图,本实施例主要从源代理侧对缓存数据的方法进行描述,本实施例的方法包括:
101、源代理向目标代理发送数据获取请求;
102、源代理接收目标代理返回的与数据获取请求对应的目标数据;
103、源代理确定在发送数据获取请求与接收目标数据之间是否接收到了目标代理发送的针对目标数据的侦听请求,若是,则执行步骤104,若否,则执行步骤105;
所述侦听请求表明目标代理同时正在处理其他源代理对目标数据的获取请求。
104、源代理丢弃目标数据;
105、源代理保存目标数据。
下面将从目标代理侧对缓存数据的方法进行描述,请参阅图2,本实施例的方法包括:
201、目标代理接收源代理发送的数据获取请求;
202、目标代理查找与数据获取请求对应的目标数据并将目标数据返回给源代理;
源代理重复向目标代理发送数据获取请求,用于通知目标代理源代理在发送数据获取请求与接收目标数据之间接收到了目标代理发送的针对目标数据的侦听请求,目标代理向源代理发送针对目标数据的侦听请求表明目标代理同时正在处理其他源代理对目标数据的获取请求。
203、目标代理在源代理发送数据获取请求与接收目标数据之间,向源代理发送针对目标数据的侦听请求;
发送侦听请求是为了表明目标代理同时正在处理其他源代理对目标数据的获取请求。
204、目标代理接收源代理重复发送的所述数据获取请求;
205、目标代理响应于重复发送的数据获取请求,将目标数据重复发送给源代理。
具体实现中,源代理发送的数据获取请求包括请求专有态E(exclusive)态的目标数据及请求共享态S(shared)态的目标数据。对E态的目标数据进行修改之后目标数据为修改态M(modified)态。E态目标数据、S态目标数据及M态目标数据均可以被无效掉,变成无效态I(invalid)态。不同的源代理可以向同一目标代理请求相同状态的目标数据,也可以请求不同状态的目标数据。目标代理中保存有目标数据及各个源代理对目标数据的请求状况,目标代理可以接收所有源代理发起的数据获取请求,根据自身保存的目标数据及各个源代理对目标数据的请求状况对所有源代理进行监听并响应请求。
为便于理解,下面举几个实例结合源代理及目标代理对本发明提供的缓存数据的方法进行描述,以下几个实例中均用CA表示源代理,HA表示目标代理。
首先,请参阅图3,图3中源代理有两个,分别为CA0与CA1,目标代理只有HA一个。初始时,CA0与CA1均不含有效数据,即CA0与CA1处于I态。CA0与CA1先后向HA发起了E态数据请求READE,HA先接收到CA0发送的E态数据请求READE,先处理CA0的请求,由于CA1中不含有效数据,因此HA直接为CA0返回E态数据DATAE;接下来处理CA1的请求,由于HA中记录了CA0请求了E态数据DATAE,因此HA向CA0发起针对E态数据DATAE的侦听请求SNPE,而此时由于HA返回给CA0的E态数据DATAE传输有时延,CA0还未接收到E态数据DATAE,CA0返回给HA侦听响应RSPI,HA接收到CA0返回的侦听响应RSPI后,为CA1返回E态数据DATAE,CA1保存接收到的E态数据DATAE;而此时,CA0才接收到HA返回的E态数据DATAE,对于CA0来说,在向HA发送E态数据请求READE与接收HA返回的E态数据DATAE之间,接收到了对E态数据DATAE的侦听请求SNPE,因此,CA0丢弃所接收到的E态数据DATAE,再次向HA发起E态数据请求READE,HA接收到CA0发起的E态数据请求READE之后,向CA1发起侦听请求SNPE,CA1接收到侦听请求SNPE之后,无效掉已保存的E态数据DATAE,向HA返回侦听响应RSPI,HA接收到CA1返回的侦听响应RSPI后,为CA0返回E态数据DATAE;对于CA0来说,在第二次向HA发送E态数据请求READE与接收到HA返回的E态数据DATAE之间,没有接收到侦听请求SNPE,因此,CA0保存所接收到的E态数据DATAE,此时只有CA0中保存有E态数据DATAE,即CA0独占了目标数据,CA0可以对E态数据DATAE进行修改或回写。
图3介绍了CA0与CA1初始状态均处于I态时解决缓存一致性冲突的方法,图4将介绍初始时,CA0处于I态,CA1处于S态解决缓存一致性冲突的方法,请参阅图4。同样CA0与CA1先后向HA发起了E态数据请求READE,HA先处理CA0的请求,由于HA中记录了CA1处于S态(即CA1中保存有非无效态数据),因此HA先向CA1发起针对CA0请求的E态数据DATAE的侦听请求SNPE,待CA1无效掉原本保存的S态数据并返回给HA侦听响应RSPI之后,HA将E态数据DATAE返回给CA0;接下来处理CA1的请求,同样,由于传输时延,CA0向HA发送E态数据请求READE与接收到HA返回的E态数据DATAE之间,接收到了侦听请求SNPE,CA0丢弃掉已接收到的E态数据DATAE,再次向HA发起E态数据请求READE;与此同时,CA1也接收到了HA返回的E态数据DATAE,同样对于CA1来说,也是在向HA发送E态数据请求READE与接收到HA返回的E态数据DATAE之间,接收到了侦听请求SNPE,CA1也会丢弃掉接收到的E态数据,此时CA1停止了再次请求,CA0再次向HA请求后,保存接收到的E态数据DATAE。
图3和图4介绍了CA0与CA1都向HA请求E态数据的处理方法,图5和图6将介绍两个CA分别向HA请求E态数据及S态数据的处理方法。
首先,请参阅图5,初始时,CA0与CA1均处于I态,HA先后接收到CA0发送的S态数据请求READS及CA1发送的E态数据请求READE,HA先处理先接收到的CA0发送的请求,为CA0返回S态数据DATAS;接下来处理CA1发送的请求,侦听CA0,待CA0返回侦听响应RSPI后,向CA1返回E态数据DATAE,CA1保存接收到的E态数据DATAE;由于数据传输时延,CA0在向HA发送S态数据请求READS与接收HA返回的S态数据DATAS之间接收到了侦听SNPE,CA0将丢弃接收到的S态数据DATAS;CA0再次向HA发送S态数据请求READS,HA向CA1发送针对CA0请求的S态数据DATAS的侦听请求SNPS,CA1接收到侦听请求SNPS后,将已保存的E态数据转变成S态,向HA返回侦听响应RSPS,HA为CA0返回S态数据DATAS;另外,CA1接收到侦听请求SNPS后,也可以将已保存的E态数据转变成I态,然后向HA返回侦听响应RSPI。
下面请参阅图6,初始时,CA0与CA1均处于I态,但是与图5相反,CA0向HA发送的是E态数据请求READE,CA1向HA发送的是S态数据请求READS。这种情况下,CA1中保存的是S态数据DATAS,当CA0再次向HA发起E态数据请求READE之后,CA1将已保存的S态数据DATAS无效掉,然后返回给HA侦听响应RSPI,HA为CA0返回E态数据DATAE。
图3至图6介绍了经过较少次数的重复请求之后,CA0和/或CA1得到了可以保存的目标数据,在极其悲观的情况下,还可能出现无论CA0或CA1重复请求多少次,每次向HA发送数据获取请求与接收到HA返回的目标数据之间都接收到了HA发送的针对目标数据的侦听请求,CA0和/或CA1无法得到可以保存的数据,在这种情况下,就需要发送升级版的数据获取请求,以阻止目标代理同时处理其他源代理对目标数据的获取请求。下面以图7和图8为例对这种情况下的处理方法进行说明。
首先,请参阅图7,CA0和CA1先后向HA发起相同的E态数据请求READE,经过多次重复请求,对于CA0,CA0在每次向HA发送E态数据请求READE与接收到HA返回的E态数据DATAE之间,都接收到了HA发送的侦听请求SNPE。在这种情况下,CA0端可预先设置一个重复次数,当重复向HA发送的请求的次数超过预置的重复次数时,CA0改向HA发送升级版的E态数据请求READEC,HA接收到READEC时,停止处理其他CA发送的针对E态数据的获取请求,向CA0返回E态数据,直至接收到CA0回复确认帧ACK之后,HA才重新开始处理其他CA的请求。
下面请参阅图8,图8中CA0向HA请求S态数据DATAS,CA1向HA请求E态数据DATAE,经过多次重复请求,对于CA0,CA0在每次向HA发送S态数据请求READS与接收到HA返回的S态数据DATAS之间,都接收到了HA发送的侦听请求SNPE。在这种情况下,CA0端也可预先设置一个重复次数,当重复向HA发送的请求的次数超过预置的重复次数时,CA0改向HA发送升级版的S态数据请求READES,HA接收到READES时,停止处理其他CA发送的针对E态数据的获取请求,向CA0返回S态数据,直至接收到CA0回复确认帧ACK之后,HA才重新开始处理其他CA的请求。
在上面几个实施例中,源代理在接收到目标数据之后,都会判断在发送数据获取请求与接收目标数据之间是否接收到目标代理发送的针对目标数据的侦听请求,并根据判断结果来决定对目标数据的处理方式,这样避免了缓存一致性冲突的问题;另外,若多次的判断结果均为是,源代理一直无法保存已获取的目标数据,则源代理改向目标代理发送升级版的数据获取请求,通过增加一个确认帧的方式来解决冲突的问题,由于需要通过增加确认帧解决冲突的情况出现的几率不会很高,因此,这种方法并不会过多的影响请求的处理时间,最终实现了在不对报文的接收顺序进行要求的前提下,解决了冲突的问题,总体来说,还是提高了数据的处理效率。
下面介绍本发明实施例提供的存储设备,请参阅图9,存储设备900包括源代理910及目标代理920,在一个具体的实施例中,源代理910包括:
第一发送单元911,用于向目标代理920发送数据获取请求;
第一接收单元912,用于接收目标代理920返回的与数据获取请求对应的目标数据;
确定单元913,用于确定在第一发送单元911发送数据获取请求与第一接收单元912接收目标数据之间第一接收单元912是否接收到了目标代理920发送的针对目标数据的侦听请求,所述侦听请求表明目标代理同时正在处理其他源代理对目标数据的获取请求;
第一处理单元914,用于在确定单元913确定第一接收单元912接收到了目标代理920发送的针对目标数据的侦听请求时,丢弃目标数据,在确定单元913确定第一接收单元912没有接收到目标代理920发送的针对目标数据的侦听请求时,保存目标数据。
另外,第一接收单元912还用于,在第一处理单元914保存目标数据之后,接收目标代理920发送的针对目标数据的侦听请求;
第一处理单元914还用于无效掉已保存的目标数据。
另外,第一发送单元911还用于,在第一处理单元914丢弃目标数据之后,重复向目标代理920发送数据获取请求,直至确定单元913确定在本次发送所述数据获取请求与接收所述目标数据之间第一接收单元912没有接收到目标代理920发送的针对所述目标数据的侦听请求;
或者确定单元913还用于,确定在预置的重复次数之内第一接收单元912是否每次在发送所述数据获取请求与接收所述目标数据之间都接收到了目标代理920发送的针对所述目标数据的侦听请求,若是,则触发第一发送单元911向目标代理920发送升级版的所述数据获取请求,以阻止目标代理920同时处理其他源代理对目标数据的获取请求;
第一发送单元911还用于,在第一接收单元912接收到目标数据之后,向目标代理920发送确认帧。
另外,第一发送单元911发送的数据获取请求包括请求专有态的目标数据及请求共享态的目标数据。
具体地,目标代理920包括:
第二接收单元921,用于接收源代理910发送的数据获取请求;
第二处理单元922,用于查找与数据获取请求对应的目标数据;
第二发送单元923,用于在源代理910发送数据获取请求与接收目标数据之间,向源代理910发送针对目标数据的侦听请求,以表明目标代理920同时正在处理其他源代理对目标数据的获取请求;
第二接收单元921还用于,接收源代理910重复发送的数据获取请求;第二发送单元923还用于,在第二处理单元922响应于重复发送的所述数据获取请求后,将目标数据重复发送给源代理。
另外,第二发送单元923还用于,在将目标数据发送给源代理910之前,向其他源代理发送针对目标数据的侦听请求,以表明目标代理920正在处理源代理910对目标数据的获取请求,其他源代理保存有非无效态数据;
第二接收单元921还用于,接收其他源代理返回的侦听响应。
另外,所述第二接收单元921还用于,接收源代理910发送的升级版的数据获取请求,所述升级版的数据获取请求用于阻止目标代理920同时处理其他源代理对目标数据的获取请求;
第二处理单元922还用于,在第二接收单元921接收到升级版的所述数据获取请求之后,停止处理其他源代理对所述目标数据的获取请求,触发第二发送单元923向源代理910发送目标数据;
第二接收单元921还用于,接收源代理910返回的确认帧;
第二处理单元922还用于,在第二接收单元921接收到确认帧之后,重新开始处理其他源代理对所述目标数据的获取请求。
第二接收单元921接收到的数据获取请求包括请求专有态的目标数据及请求共享态的目标数据。
具体实现中,源代理910与目标代理920的交互过程请参阅前述方法实施例对应的描述,此处不再赘述。
本实施例中,源代理通过判断在发送数据获取请求与接收目标数据之间是否接收到目标代理发送的针对目标数据的侦听请求来决定对目标数据的处理方式,能够解决缓存一致性冲突的问题,且对报文的接收顺序没有要求,同时也不用额外增加ACK报文,减少了请求的处理时间,提高了数据的处理效率。
下面请参阅图10,图10提供了本发明存储设备的另一实施例示意图,本实施例的存储设备1000可以用于实施上述实施例提供的缓存数据的方法,在实际应用中,存储设备1000可以集成到电子设备中,该电子设备可以计算机等。具体来讲:
存储设备1000可以包括RF(Radio Frequency,射频)电路1010、包括有一个或一个以上计算机可读存储介质的存储器1020、输入单元1030、显示单元1040、传感器1050、音频电路1060、WiFi(wireless fidelity,无线保真)模块1070、包括有一个或者一个以上处理核心的处理器1080、以及电源1090等部件。本领域技术人员可以理解,图10中示出的存储设备结构并不构成对存储设备1000的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。其中:
RF电路1010可用于收发消息或通话过程中,信号的接收和发送,特别地,将基站的下行信息接收后,交由一个或者一个以上处理器1080处理;另外,将涉及上行的数据发送给基站。通常,RF电路1010包括但不限于天线、至少一个放大器、调谐器、一个或多个振荡器、用户身份模块(SIM)卡、收发信机、耦合器、LNA(Low Noise Amplifier,低噪声放大器)、双工器等。此外,RF电路1010还可以通过无线通信与网络和其他设备通信。所述无线通信可以使用任一通信标准或协议,包括但不限于GSM(Global System of Mobile communication,全球移动通讯系统)、GPRS(General Packet Radio Service,通用分组无线服务)、CDMA(Code Division Multiple Access,码分多址)、WCDMA(Wideband Code DivisionMultiple Access,宽带码分多址)、LTE(Long Term Evolution,长期演进)、电子邮件、SMS(Short Messaging Service,短消息服务)等。
存储器1020可用于存储软件程序以及模块,处理器1080通过运行存储在存储器1020的软件程序以及模块,从而执行各种功能应用以及数据处理。存储器1020可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据存储设备的使用创建数据(比如音频数据、电话本等)。此外,存储器1020可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。相应地,存储器1020还可以包括存储器控制器,以提供处理器1080和输入单元1030对存储器1020的访问。
输入单元1030可用于接收输入的数字或字符信息,以及产生与用户设置以及功能控制有关的键盘、鼠标、操作杆、光学或者轨迹球信号输入。具体地,输入单元1030可包括触敏表面1031以及其他输入设备1032。触敏表面1031,也称为触摸显示屏或者触控板,可收集用户在其上或附近的触摸操作(比如用户使用手指、触笔等任何适合的物体或附件在触敏表面1031上或在触敏表面1031附近的操作),并根据预先设定的程式驱动相应的连接装置。可选的,触敏表面1031可包括触摸检测装置和触摸控制器两个部分。其中,触摸检测装置检测用户的触摸方位,并检测触摸操作带来的信号,将信号传送给触摸控制器;触摸控制器从触摸检测装置上接收触摸信息,并将它转换成触点坐标,再送给处理器1080,并能接收处理器1080发来的命令并加以执行。此外,可以采用电阻式、电容式、红外线以及表面声波等多种类型实现触敏表面1031。除了触敏表面1031,输入单元1030还可以包括其他输入设备1032。具体地,其他输入设备1032可以包括但不限于物理键盘、功能键(比如音量控制按键、开关按键等)、轨迹球、鼠标、操作杆等中的一种或多种。
显示单元1040可用于显示由用户输入的信息或提供给用户的信息以及装置的各种图形用户接口,这些图形用户接口可以由图形、文本、图标、视频和其任意组合来构成。显示单元1040可包括显示面板1041,可选的,可以采用LCD(Liquid Crystal Display,液晶显示器)、OLED(Organic Light-Emitting Diode,有机发光二极管)等形式来配置显示面板1041。进一步的,触敏表面1031可覆盖显示面板1041,当触敏表面1031检测到在其上或附近的触摸操作后,传送给处理器1080以确定触摸事件的类型,随后处理器1080根据触摸事件的类型在显示面板1041上提供相应的视觉输出。虽然在图10中,触敏表面1031与显示面板1041是作为两个独立的部件来实现输入和输入功能,但是在某些实施例中,可以将触敏表面1031与显示面板1041集成而实现输入和输出功能。
存储设备1000还可包括至少一种传感器1050,比如光传感器、运动传感器以及其他传感器。具体地,光传感器可包括环境光传感器及接近传感器,其中,环境光传感器可根据环境光线的明暗来调节显示面板1041的亮度,接近传感器可在存储设备1000移动到耳边时,关闭显示面板1041和/或背光。作为运动传感器的一种,重力加速度传感器可检测各个方向上(一般为三轴)加速度的大小,静止时可检测出重力的大小及方向,可用于识别装置姿态的应用(比如横竖屏切换、相关游戏、磁力计姿态校准)、振动识别相关功能(比如计步器、敲击)等;至于存储设备1000还可配置的陀螺仪、气压计、湿度计、温度计、红外线传感器等其他传感器,在此不再赘述。
音频电路1060、扬声器1061,传声器1062可提供用户与存储设备之间的音频接口。音频电路1060可将接收到的音频数据转换后的电信号,传输到扬声器1061,由扬声器1061转换为声音信号输出;另一方面,传声器1062将收集的声音信号转换为电信号,由音频电路1060接收后转换为音频数据,再将音频数据输出处理器1080处理后,经RF电路1010以发送给比如另一终端,或者将音频数据输出至存储器1020以便进一步处理。音频电路1060还可能包括耳塞插孔,以提供外设耳机与装置的通信。
WiFi属于短距离无线传输技术,存储设备1000通过WiFi模块1070可以帮助用户收发电子邮件、浏览网页和访问流式媒体等,它为用户提供了无线的宽带互联网访问。虽然图10示出了WiFi模块1070,但是可以理解的是,其并不属于装置的必须构成,完全可以根据需要在不改变发明的本质的范围内而省略。
处理器1080是曲面模型创建装置的控制中心,利用各种接口和线路连接整个装置的各个部分,通过运行或执行存储在存储器1020内的软件程序和/或模块,以及调用存储在存储器1020内的数据,执行存储设备的各种功能和处理数据,从而对存储设备进行整体监控。可选的,处理器1080可包括一个或多个处理核心;优选的,处理器1080可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器1080中。
存储设备1000还包括给各个部件供电的电源1090(比如电池),优选的,电源可以通过电源管理系统与处理器1080逻辑相连,从而通过电源管理系统实现管理充电、放电、以及功耗管理等功能。电源1090还可以包括一个或一个以上的直流或交流电源、再充电系统、电源故障检测电路、电源转换器或者逆变器、电源状态指示器等任意组件。
尽管未示出,存储设备1000还可以包括摄像头、蓝牙模块等,在此不再赘述。具体在本实施例中,存储设备1000包括有存储器1020,以及一个或者一个以上的程序,其中一个或者一个以上程序存储于存储器1020中,且经配置以由一个或者一个以上处理器1080执行述一个或者一个以上程序包含用于进行以下操作的指令:
向目标代理发送数据获取请求;
接收目标代理返回的与所述数据获取请求对应的目标数据;
确定在发送所述数据获取请求与接收所述目标数据之间是否接收到了目标代理发送的针对所述目标数据的侦听请求,所述侦听请求表明目标代理同时正在处理其他源代理对所述目标数据的获取请求;
若接收到所述侦听请求,则丢弃所述目标数据,若未接收到所述侦听请求,则保存所述目标数据。
以及:
接收源代理发送的数据获取请求;
查找与所述数据获取请求对应的目标数据并将所述目标数据返回给所述源代理;
在源代理发送所述数据获取请求与接收所述目标数据之间,向源代理发送针对所述目标数据的侦听请求,以表明同时正在处理其他源代理对所述目标数据的获取请求;
接收源代理重复发送的所述数据获取请求;
响应于重复发送的所述数据获取请求,将所述目标数据重复发送给源代理。
需要说明的是,本发明实施例提供的存储设备1000,还可以用于实现上述装置实施例中的其它功能,在此不再赘述,可参照之前的方法或装置实施例。
另外需说明的是,以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。另外,本发明提供的装置实施例附图中,模块之间的连接关系表示它们之间具有通信连接,具体可以实现为一条或多条通信总线或信号线。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,所属领域的技术人员可以清楚地了解到本发明可借助软件加必需的通用硬件的方式来实现,当然也可以通过专用硬件包括专用集成电路、专用CPU、专用存储器、专用元器件等来实现。一般情况下,凡由计算机程序完成的功能都可以很容易地用相应的硬件来实现,而且,用来实现同一功能的具体硬件结构也可以是多种多样的,例如模拟电路、数字电路或专用电路等。但是,对本发明而言更多情况下软件程序实现是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在可读取的存储介质中,如计算机的软盘,U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
以上对本发明实施例所提供的一种缓存数据的方法及存储设备进行了详细介绍,对于本领域的一般技术人员,依据本发明实施例的思想,在具体实施方式及应用范围上均会有改变之处,因此,本说明书内容不应理解为对本发明的限制。

Claims (24)

1.一种缓存数据的方法,所述缓存数据的方法应用于存储设备,所述存储设备包括源代理及目标代理,其特征在于,所述方法包括:
所述源代理向所述目标代理发送数据获取请求;
所述源代理接收所述目标代理返回的与所述数据获取请求对应的目标数据;
所述源代理确定在发送所述数据获取请求与接收所述目标数据之间是否接收到了所述目标代理发送的针对所述目标数据的侦听请求,所述侦听请求表明所述目标代理同时正在处理其他源代理对所述目标数据的获取请求;
若接收到所述侦听请求,则所述源代理丢弃所述目标数据,若未接收到所述侦听请求,则所述源代理保存所述目标数据。
2.如权利要求1所述的方法,其特征在于,在所述源代理保存所述目标数据之后,所述方法还包括:
若所述源代理接收到了所述目标代理发送的针对所述目标数据的侦听请求,则所述源代理无效掉已保存的所述目标数据。
3.如权利要求1或2所述的方法,其特征在于,在所述源代理丢弃所述目标数据之后,所述方法还包括:
所述源代理重复向所述目标代理发送所述数据获取请求,直至所述源代理确定在本次发送所述数据获取请求与接收所述目标数据之间没有接收到所述目标代理发送的针对所述目标数据的侦听请求,所述源代理保存所述目标数据。
4.如权利要求1或2所述的方法,其特征在于,在所述源代理丢弃所述目标数据之后,所述方法还包括:
所述源代理重复向所述目标代理发送所述数据获取请求,若重复发送次数达到了预置的重复次数,且在预置的重复次数之内所述源代理每次在发送所述数据获取请求与接收所述目标数据之间都接收到了所述目标代理发送的针对所述目标数据的侦听请求,则所述源代理向所述目标代理发送升级版的所述数据获取请求,以阻止所述目标代理同时处理所述其他源代理对所述目标数据的获取请求;
所述源代理接收所述目标代理返回的所述目标数据并保存;
所述源代理向所述目标代理发送确认帧。
5.如权利要求1或2所述的方法,其特征在于,所述数据获取请求包括请求专有态的目标数据及请求共享态的目标数据。
6.如权利要求3所述的方法,其特征在于,所述数据获取请求包括请求专有态的目标数据及请求共享态的目标数据。
7.如权利要求4所述的方法,其特征在于,所述数据获取请求包括请求专有态的目标数据及请求共享态的目标数据。
8.一种缓存数据的方法,所述缓存数据的方法应用于存储设备,所述存储设备包括源代理及目标代理,其特征在于,所述方法包括:
所述目标代理接收所述源代理发送的数据获取请求;
所述目标代理查找与所述数据获取请求对应的目标数据并将所述目标数据返回给所述源代理;
所述目标代理在所述源代理发送所述数据获取请求与接收所述目标数据之间,向所述源代理发送针对所述目标数据的侦听请求,以表明所述目标代理同时正在处理其他源代理对所述目标数据的获取请求,通知所述源代理丢弃所述目标数据;
所述目标代理接收所述源代理重复发送的所述数据获取请求;
所述目标代理响应于重复发送的所述数据获取请求,将所述目标数据重复发送给所述源代理。
9.如权利要求8所述的方法,其特征在于,在所述目标代理返回给所述源代理与所述数据获取请求对应的目标数据之前,所述方法还包括:
所述目标代理向所述其他源代理发送针对所述目标数据的侦听请求,以表明所述目标代理正在处理所述源代理对所述目标数据的获取请求,所述其他源代理保存有非无效态数据;
所述目标代理接收所述其他源代理返回的侦听响应。
10.如权利要求8或9所述的方法,其特征在于,所述方法还包括:
所述目标代理接收所述源代理发送的升级版的所述数据获取请求,所述升级版的所述数据获取请求用于阻止所述目标代理同时处理所述其他源代理对所述目标数据的获取请求;
所述目标代理停止处理所述其他源代理对所述目标数据的获取请求,向所述源代理发送所述目标数据;
所述目标代理接收所述源代理返回的确认帧;
所述目标代理重新开始处理所述其他源代理对所述目标数据的获取请求。
11.如权利要求8或9所述的方法,其特征在于,所述数据获取请求包括请求专有态的目标数据及请求共享态的目标数据。
12.如权利要求10所述的方法,其特征在于,所述数据获取请求包括请求专有态的目标数据及请求共享态的目标数据。
13.一种存储设备,其特征在于,所述存储设备包括源代理及目标代理,所述源代理包括:
第一发送单元,用于向所述目标代理发送数据获取请求;
第一接收单元,用于接收所述目标代理返回的与所述数据获取请求对应的目标数据;
确定单元,用于确定在所述第一发送单元发送所述数据获取请求与第一接收单元接收所述目标数据之间所述第一接收单元是否接收到了所述目标代理发送的针对所述目标数据的侦听请求,所述侦听请求表明所述目标代理同时正在处理其他源代理对所述目标数据的获取请求;
第一处理单元,用于在所述确定单元确定所述第一接收单元接收到了所述目标代理发送的针对所述目标数据的侦听请求时,丢弃所述目标数据,在所述确定单元确定所述第一接收单元没有接收到所述目标代理发送的针对所述目标数据的侦听请求时,保存所述目标数据。
14.如权利要求13所述的存储设备,其特征在于,所述第一接收单元还用于,在所述第一处理单元保存所述目标数据之后,接收所述目标代理发送的针对所述目标数据的侦听请求;
所述第一处理单元还用于,无效掉已保存的所述目标数据。
15.如权利要求13或14所述的存储设备,其特征在于,所述第一发送单元还用于,在所述第一处理单元丢弃所述目标数据之后,重复向所述目标代理发送所述数据获取请求,直至所述确定单元确定在本次发送所述数据获取请求与接收所述目标数据之间第一接收单元没有接收到所述目标代理发送的针对所述目标数据的侦听请求。
16.如权利要求13或14所述的存储设备,其特征在于,所述第一发送单元还用于,在所述处理单元丢弃所述目标数据之后,重复向所述目标代理发送所述数据获取请求;
所述确定单元还用于,确定在预置的重复次数之内所述第一接收单元是否每次在发送所述数据获取请求与接收所述目标数据之间都接收到了所述目标代理发送的针对所述目标数据的侦听请求,若是,则触发所述第一发送单元向所述目标代理发送升级版的所述数据获取请求,以阻止所述目标代理同时处理所述其他源代理对所述目标数据的获取请求;
所述第一发送单元还用于,在所述第一接收单元接收到所述目标数据之后,向所述目标代理发送确认帧。
17.如权利要求13或14所述的存储设备,其特征在于,所述第一发送单元发送的数据获取请求包括请求专有态的目标数据及请求共享态的目标数据。
18.如权利要求15所述的存储设备,其特征在于,所述第一发送单元发送的数据获取请求包括请求专有态的目标数据及请求共享态的目标数据。
19.如权利要求16所述的存储设备,其特征在于,所述第一发送单元发送的数据获取请求包括请求专有态的目标数据及请求共享态的目标数据。
20.一种存储设备,其特征在于,所述存储设备包括源代理及目标代理,所述目标代理包括:
第二接收单元,用于接收所述源代理发送的数据获取请求;
第二处理单元,用于查找与所述数据获取请求对应的目标数据;
第二发送单元,用于在所述源代理发送所述数据获取请求与接收所述目标数据之间,向所述源代理发送针对所述目标数据的侦听请求,以表明所述目标代理同时正在处理其他源代理对所述目标数据的获取请求,通知所述源代理丢弃所述目标数据;
所述第二接收单元还用于,接收所述源代理重复发送的所述数据获取请求;
所述第二发送单元还用于,在所述第二处理单元响应于重复发送的所述数据获取请求后,将所述目标数据重复发送给所述源代理。
21.如权利要求20所述的存储设备,其特征在于,所述第二发送单元还用于,在将所述目标数据发送给所述源代理之前,向所述其他源代理发送针对所述目标数据的侦听请求,以表明所述目标代理正在处理所述源代理对所述目标数据的获取请求,所述其他源代理保存有非无效态数据;
所述第二接收单元还用于,接收所述其他源代理返回的侦听响应。
22.如权利要求20或21所述的存储设备,其特征在于,所述第二接收单元还用于,接收所述源代理发送的升级版的所述数据获取请求,所述升级版的所述数据获取请求用于阻止所述目标代理同时处理所述其他源代理对所述目标数据的获取请求;
所述第二处理单元还用于,在所述第二接收单元接收到升级版的所述数据获取请求之后,停止处理所述其他源代理对所述目标数据的获取请求,触发所述第二发送单元向所述源代理发送所述目标数据;
所述第二接收单元还用于,接收所述源代理返回的确认帧;
所述第二处理单元还用于,在所述第二接收单元接收到所述确认帧之后,重新开始处理所述其他源代理对所述目标数据的获取请求。
23.如权利要求20或21所述的存储设备,其特征在于,所述第二接收单元接收到的数据获取请求包括请求专有态的目标数据及请求共享态的目标数据。
24.如权利要求22所述的存储设备,其特征在于,所述第二接收单元接收到的数据获取请求包括请求专有态的目标数据及请求共享态的目标数据。
CN201410258859.2A 2014-06-11 2014-06-11 一种缓存数据的方法及存储设备 Active CN104035888B (zh)

Priority Applications (3)

Application Number Priority Date Filing Date Title
CN201410258859.2A CN104035888B (zh) 2014-06-11 2014-06-11 一种缓存数据的方法及存储设备
PCT/CN2015/078964 WO2015188676A1 (zh) 2014-06-11 2015-05-14 一种缓存数据的方法及存储设备
US14/732,172 US9594684B2 (en) 2014-06-11 2015-06-05 Method for temporarily storing data and storage device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201410258859.2A CN104035888B (zh) 2014-06-11 2014-06-11 一种缓存数据的方法及存储设备

Publications (2)

Publication Number Publication Date
CN104035888A CN104035888A (zh) 2014-09-10
CN104035888B true CN104035888B (zh) 2017-08-04

Family

ID=51466660

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410258859.2A Active CN104035888B (zh) 2014-06-11 2014-06-11 一种缓存数据的方法及存储设备

Country Status (3)

Country Link
US (1) US9594684B2 (zh)
CN (1) CN104035888B (zh)
WO (1) WO2015188676A1 (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104035888B (zh) 2014-06-11 2017-08-04 华为技术有限公司 一种缓存数据的方法及存储设备
CN109840216B (zh) * 2017-11-28 2023-05-09 华为技术有限公司 针对高速缓存的数据处理方法及相关元件、设备、系统
CN114116531B (zh) * 2022-01-28 2022-04-22 苏州浪潮智能科技有限公司 一种缓存一致性写回的方法、装置、设备及介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7836144B2 (en) * 2006-12-29 2010-11-16 Intel Corporation System and method for a 3-hop cache coherency protocol
CN102033715A (zh) * 2009-09-30 2011-04-27 英特尔公司 在本地代理的存储器镜像和迁移
CN102439571A (zh) * 2011-10-27 2012-05-02 华为技术有限公司 一种防止节点控制器死锁的方法及节点控制器

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6691220B1 (en) * 2000-06-06 2004-02-10 International Business Machines Corporation Multiprocessor speculation mechanism via a barrier speculation flag
US9727468B2 (en) * 2004-09-09 2017-08-08 Intel Corporation Resolving multi-core shared cache access conflicts
US7360027B2 (en) * 2004-10-15 2008-04-15 Intel Corporation Method and apparatus for initiating CPU data prefetches by an external agent
US7552290B2 (en) * 2005-08-23 2009-06-23 Advanced Micro Devices, Inc. Method for maintaining atomicity of instruction sequence to access a number of cache lines during proactive synchronization within a computer system
US8131940B2 (en) * 2007-03-31 2012-03-06 Intel Corporation Methods and apparatuses to support memory transactions using partial physical addresses
US20140040561A1 (en) * 2012-07-31 2014-02-06 Futurewei Technologies, Inc. Handling cache write-back and cache eviction for cache coherence
CN104035888B (zh) * 2014-06-11 2017-08-04 华为技术有限公司 一种缓存数据的方法及存储设备

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7836144B2 (en) * 2006-12-29 2010-11-16 Intel Corporation System and method for a 3-hop cache coherency protocol
CN102033715A (zh) * 2009-09-30 2011-04-27 英特尔公司 在本地代理的存储器镜像和迁移
CN102439571A (zh) * 2011-10-27 2012-05-02 华为技术有限公司 一种防止节点控制器死锁的方法及节点控制器

Also Published As

Publication number Publication date
CN104035888A (zh) 2014-09-10
US20150363315A1 (en) 2015-12-17
WO2015188676A1 (zh) 2015-12-17
US9594684B2 (en) 2017-03-14

Similar Documents

Publication Publication Date Title
CN105278937B (zh) 一种显示弹出框消息的方法及装置
CN104618217B (zh) 分享资源的方法、终端、服务器及系统
CN104639672B (zh) 进行域名解析的方法和装置
CN106331213B (zh) 一种域名系统dns处理方法及装置
CN103677899B (zh) 安装应用程序的方法及设备
CN106612250A (zh) 资源使用权限判断系统及方法
CN104123276B (zh) 一种浏览器中弹窗的拦截方法、装置和系统
CN104518953A (zh) 删除消息的方法、即时通信终端及系统
CN103631625B (zh) 一种数据获取的方法、用户端、服务器及系统
CN104580177B (zh) 资源提供方法、装置和系统
CN104699501B (zh) 一种运行应用程序的方法及装置
CN104065693A (zh) 一种网页应用中网络数据的访问方法、装置和系统
CN104980455A (zh) 一种基于云存储的多终端数据同步方法、装置和系统
CN103886198B (zh) 一种数据处理的方法、终端、服务器及系统
CN106708554A (zh) 程序运行方法及装置
CN104253870B (zh) 控制数据访问周期的方法和装置
CN107040610A (zh) 数据同步方法、装置、存储介质、终端以及服务器
CN104424211A (zh) 一种基于微博的业务数据的发布方法、装置和系统
CN105868319B (zh) 网页加载方法及装置
CN104660769B (zh) 一种添加联系人信息的方法、装置和系统
CN104035888B (zh) 一种缓存数据的方法及存储设备
CN109246233A (zh) 基于在线监控的数据处理方法、装置、设备及存储介质
CN106789307B (zh) 配置数据处理方法、装置及系统
CN104539597A (zh) 多媒体数据推送方法及装置
CN107122036A (zh) 中央处理器频率调节方法及装置

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant