一种数据读取方法、装置及多核处理器制造方法及图纸

技术编号:29419320 阅读:12 留言:0更新日期:2021-07-23 23:13
本申请实施例提供一种数据读取方法、装置及多核处理器,其中方法包括:第一CA向HA发送第一独占读取请求,该第一独占读取请求用于指示HA将目标数据的状态更新为第一CA独占状态;第一CA在接收到第一独占读取请求的第一独占读取应答前,若接收到HA发送的第一侦听请求,并根据第一侦听请求确定目标数据的状态为第一CA独占状态,则挂起第一侦听请求;第一CA接收到第一独占读取应答后,根据第一侦听请求更新对目标数据的读写权限,并向HA发送第一侦听应答。采用上述方法,在保证缓存一致性的同时解决读取请求冲突。

【技术实现步骤摘要】
【国外来华专利技术】一种数据读取方法、装置及多核处理器
本申请涉及数据处理
,尤其涉及一种数据读取方法、装置及多核处理器。
技术介绍
为了提升处理器的性能,越来越多的处理器采用了多处理器核架构。在采用多处理器核架构的处理器中,通常每个处理器核都配置有对应的缓存代理(cacheagent,CA),处理器核从对应的CA中快速读写数据,并可以由本地代理(homeagent,HA)管理多个CA对数据的读写权限。比如,CA1可以向HA发送独占读取请求,以向HA请求对目标数据的独占权限(读写权限的一种)。HA接收到CA1的独占读取请求,根据CA1的独占读取请求向CA1提供目标数据,并指示其它CA无效所缓存的目标数据,从而使CA1获取对目标数据的独占权限。然而,由于不同CA可以独立地向同一个HA发送读取请求,致使CA在数据读取过程中可能会出现读取请求冲突的情况。例如,HA接收到CA1发送的独占读取请求,并根据该独占读取请求向CA1提供目标数据,以及指示其它CA无效所缓存的目标数据。之后,HA又接收到CA2发送的独占读取请求,HA根据该独占读取请求指示CA1向CA2提供目标数据,以及指示CA1无效所缓存的目标数据。由于CA1与HA之间有可能出现报文乱序等现象,使得CA1在发送了独占读取请求之后,有可能在接收到目标数据之前先接收到HA指示CA1无效该目标数据的请求,此时CA1处便发生了读取请求冲突。
技术实现思路
本申请提供一种数据读取方法、装置及多核处理器,用以提供一种读取请求冲突的处理机制。第一方面,本申请实施例提供一种数据读取方法,包括:第一缓存代理CA向本地代理HA发送第一独占读取请求,该第一独占读取请求用于指示HA将目标数据的状态更新为第一CA独占状态;第一CA在接收到第一独占读取请求的第一独占读取应答前,若接收到HA发送的第一侦听请求,并根据第一侦听请求确定目标数据的状态为第一CA独占状态,则挂起第一侦听请求;第一CA接收到第一独占读取应答后,根据第一侦听请求更新对目标数据的读写权限,并向HA发送第一侦听应答。采用上述方案,在第一CA接收到的第一侦听请求与第一CA所发送的第一独占读取请求发生冲突时,第一CA通过挂起第一侦听请求并在接收到第一独占读取请求的第一独占读取应答之后,再响应第一侦听请求,使得在保证缓存一致性的同时,可以依次完成各个请求的处理,从而解决读取请求冲突。基于第一方面,在一种可能的实现方式中,第一CA可以通过以下方法更新对所述目标数据的读写权限,包括:若第一侦听请求为独占侦听请求,则第一CA将对目标数据的读写权限更新为无效权限;若第一侦听请求为共享侦听请求,则第一CA将目标数据的读写权限更新为共享权限;若第一侦听请求为无效侦听请求,则第一CA将对目标数据的读写权限更新为独占权限。第二方面,本申请实施例提供一种数据读取方法,包括:本地代理HA接收第一缓存代理CA发送的第一独占读取请求;HA根据第一独占请求将目标数据的状态更新为第一CA独占状态;HA若接收到第二CA的第二读取请求,则根据目标数据的状态向第一CA发送第一侦听请求;第一侦听请求用于指示第一CA若根据第一侦听请求确定目标数据的状态为第一CA独占状态,则挂起第一侦听请求,以及,接收到第一独占读取应答后,根据第一侦听请求更新对目标数据的读写权限;HA接收第一CA根据第一侦听请求返回的第一侦听应答,并更新目标数据的状态;HA向第二CA发送第二读取应答。基于第二方面,在一种可能的实现方式中,HA更新目标数据的状态,包括:若第二读取请求为独占读取请求,则HA将目标数据的状态更新为第二CA独占状态;若第二读取请求为共享读取请求,则HA将目标数据的状态更新为第一CA和第二CA共享状态;若第二读取请求为无效读取请求,则HA将目标数据的状态更新为第一CA独占状态。第三方面,本申请实施例提供一种数据读取方法,包括:第二缓存代理CA向本地代理HA发送第二读取请求;第二读取请求用于指示HA根据第二读取请求更新目标数据的状态;第二CA接收HA发送的第二读取请求的第二读取应答,并更新对目标数据的读写权限。基于第三方面,在一种可能的实现方式中,若第二读取请求为独占读取请求,则第二CA可以将对目标数据的读写权限更新为独占权限;该方法还包括:第二CA若将对目标数据的读写权限由独占权限修改为无效权限,则向HA发送权限更改信息;权限更改信息用于指示HA将目标数据的状态修改为无效状态。第四方面,本申请实施例提供一种数据读取方法,包括:第一缓存代理CA向本地代理HA发送第一共享读取请求,第一共享读取请求用于指示HA将目标数据的状态更新为第一CA共享状态;第一CA在接收到第一共享读取请求的第一共享读取应答前,若接收到HA发送的第三独占侦听请求,则将对目标数据的读写权限更新为无效权限,并向HA发送第三独占侦听应答;第一CA接收到第一共享读取应答后,向HA发送第二共享读取请求,第二共享读取请求用于指示HA将目标数据的状态更新为第一CA共享状态。采用上述方案,在第一CA接收到的第三独占侦听请求与第一CA所发送的第一共享读取请求发生冲突时,第一CA向HA发送第三独占侦听应答,并在接收到第一共享读取应答后,向HA发送第二共享读取请求,从而可以确保第一CA所获得的目标数据为最新的目标数据,在保证缓存一致性的同时解决了读取请求冲突。第五方面,本申请实施例提供一种数据读取方法,包括:本地代理HA接收第一缓存代理CA发送的第一共享读取请求;HA根据第一共享读取请求将目标数据的状态更新为第一CA共享状态,并向第一CA发送第一共享读取应答;HA接收第二CA发送的第三独占读取请求,并根据目标数据的状态向第一CA发送第三独占侦听请求;第三独占侦听请求用于指示第一CA将对目标数据的读写权限更新为无效权限;HA在接收到第一CA发送的第三独占侦听请求的第三独占侦听应答后,向第二CA发送第三独占读取应答,并将目标数据的状态更新为第二CA独占状态;HA在接收到第一CA发送的第二共享读取请求后,向第二CA发送第二共享侦听请求;在接收到第二CA发送的第二共享侦听请求的第二共享侦听应答后,将目标数据的状态更新为第一CA和第二CA共享状态,并向第一CA发送第二共享读取请求的第二共享读取应答。基于第五方面,在一种可能的实现方式中,第三独占读取应答用于指示第二CA向HA返回第三独占读取应答的确收应答;HA向第二CA发送第二共享侦听请求之前,还包括:HA接收到第二CA发送的第三独占读取应答的确收应答。在第一CA处已发生了读取请求冲突的情况下,HA通过第三独占读取应答用于指示第二CA向HA返回第三独占读取应答的确收应答,并在接收到第二CA发送的第三独占读取应答的确收应答之后,再向第二CA发送第二共享侦听请求,以防止第二CA所发送的第三独占读取请求与第二CA所接收的第二共享侦听请求出现冲突。第六方面,本申请实施例提供一种数据读取方法,包括:第二缓存代理CA向本地代理HA发送第三独占读取请求;第三独占读取请求用于指示HA将目标数据的状态更新为第二CA独占状态;第二CA接收HA发送本文档来自技高网...

【技术保护点】
一种数据读取方法,其特征在于,包括:/n第一缓存代理CA向本地代理HA发送第一独占读取请求,所述第一独占读取请求用于指示所述HA将目标数据的状态更新为所述第一CA独占状态;/n所述第一CA在接收到第一独占读取请求的第一独占读取应答前,若接收到所述HA发送的第一侦听请求,并根据所述第一侦听请求确定所述目标数据的状态为所述第一CA独占状态,则挂起所述第一侦听请求;/n所述第一CA接收到第一独占读取应答后,根据所述第一侦听请求更新对所述目标数据的读写权限,并向所述HA发送第一侦听应答。/n

【技术特征摘要】
【国外来华专利技术】一种数据读取方法,其特征在于,包括:
第一缓存代理CA向本地代理HA发送第一独占读取请求,所述第一独占读取请求用于指示所述HA将目标数据的状态更新为所述第一CA独占状态;
所述第一CA在接收到第一独占读取请求的第一独占读取应答前,若接收到所述HA发送的第一侦听请求,并根据所述第一侦听请求确定所述目标数据的状态为所述第一CA独占状态,则挂起所述第一侦听请求;
所述第一CA接收到第一独占读取应答后,根据所述第一侦听请求更新对所述目标数据的读写权限,并向所述HA发送第一侦听应答。


如权利要求1所述的方法,其特征在于,所述第一CA根据所述第一侦听请求更新对所述目标数据的读写权限,包括:
若所述第一侦听请求为独占侦听请求,则所述第一CA将对所述目标数据的读写权限更新为无效权限;
若所述第一侦听请求为共享侦听请求,则所述第一CA将对所述目标数据的读写权限更新为共享权限;
若所述第一侦听请求为无效侦听请求,则所述第一CA将对所述目标数据的读写权限更新为独占权限。


一种数据读取方法,其特征在于,包括:
本地代理HA接收第一缓存代理CA发送的第一独占读取请求;
所述HA根据所述第一独占请求将所述目标数据的状态更新为所述第一CA独占状态;
所述HA若接收到第二CA的第二读取请求,则根据所述目标数据的状态向所述第一CA发送第一侦听请求;所述第一侦听请求用于指示所述第一CA若根据所述第一侦听请求确定所述目标数据的状态为所述第一CA独占状态,则挂起所述第一侦听请求,以及,接收到所述第一独占读取应答后,根据所述第一侦听请求更新对所述目标数据的读写权限;
所述HA接收所述第一CA根据所述第一侦听请求返回的第一侦听应答,并更新所述目标数据的状态;
所述HA向所述第二CA发送第二读取应答。


如权利要求3所述的方法,其特征在于,所述HA更新所述目标数据的状态,包括:
若所述第二读取请求为独占读取请求,则所述HA将所述目标数据的状态更新为所述第二CA独占状态;
若所述第二读取请求为共享读取请求,则所述HA将所述目标数据的状态更新为所述第一CA和所述第二CA共享状态;
若所述第二读取请求为无效读取请求,则所述HA将所述目标数据的状态更新为所述第一CA独占状态。


一种数据读取方法,其特征在于,包括:
第一缓存代理CA向本地代理HA发送第一共享读取请求,所述第一共享读取请求用于指示所述HA将目标数据的状态更新为所述第一CA共享状态;
所述第一CA在接收到第一共享读取请求的第一共享读取应答前,若接收到所述HA发送的第三独占侦听请求,则将对所述目标数据的读写权限更新为无效权限,并向所述HA发送第三独占侦听应答;
所述第一CA接收到所述第一共享读取应答后,向所述HA发送第二共享读取请求,所述第二共享读取请求用于指示所述HA将所述目标数据的状态更新为所述第一CA共享状态。


一种数据读取方法,其特征在于,包括:
本地代理HA接收第一缓存代理CA发送的第一共享读取请求;
所述HA根据所述第一共享读取请求将所述目标数据的状态更新为所述第一CA共享状态,并向所述第一CA发送第一共享读取应答;
所述HA接收第二CA发送的第三独占读取请求,并根据所述目标数据的状态向所述第一CA发送第三独占侦听请求;所述第三独占侦听请求用于指示所述第一CA将对所述目标数据的读写权限更新为无效权限;
所述HA在接收到所述第一CA发送的第三独占侦听请求的第三独占侦听应答后,向所述第二CA发送第三独占读取应答,并将所述目标数据的状态更新为所述第二CA独占状态;
所述HA在接收到所述第一CA发送的第二共享读取请求后,向所述第二CA发送第二共享侦听请求;在接收到所述第二CA发送的所述第二共享侦听请求的第二共享侦听应答后,将所述目标数据的状态更新为所述第一CA和所述第二CA共享状态,并向所述第一CA发送第二共享读取请求的第二共享读取应答。


如权利要求6所述的方法,其特征在于,所述第三独占读取应答用于指示所述第二CA向所述HA返回所述第三独占读取应答的确收应答;
所述HA向所述第二CA发送第二共享侦听请求之前,还包括:
所述HA接收到所述第二CA发送的所述第三独占读取应答的确收应答。


一种装置,其特征在于,包括:请求模块、挂起模块和权限模块;
所述请求模块,用于向本地代理HA发送第一独占读取请求,所述第一独占读取请求用于指示所述HA将目标数据的状态更新为所述装置独占状态;
所述权限模块,用于在接收到第一独占读...

【专利技术属性】
技术研发人员:程永波贺成洪孙威
申请(专利权)人:华为技术有限公司
类型:发明
国别省市:广东;44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1