缓存访问方法、设备和处理器技术

技术编号:14277615 阅读:80 留言:0更新日期:2016-12-24 20:26
本发明专利技术实施例提供一种缓存访问方法、设备和处理器,此方法包括:通过当第一缓存设备根据第一虚拟地址确定缓存失效时,第一缓存设备获取第一虚拟地址的索引中与第二虚拟地址的索引不相同的比特位为第一页着色位;向第二缓存设备发送缓存失效请求,所述缓存失效请求包括所述第一物理地址和第一页着色位,然后接收第二缓存设备根据该缓存失效请求发送的第一数据,并对该第一虚拟地址的索引对应的数据和标识进行更新,从而保证了根据第一虚拟地址可以访问到该第一物理地址对应的最新数据,提高了数据访问成功率。

【技术实现步骤摘要】

本专利技术涉及计算机
,尤其涉及一种缓存访问方法、设备和处理器
技术介绍
在多个进程之间利用内存进行共享数据或通信时,会存在多个虚拟地址映射到同一个物理地址的映射关系,在这种情况下,多个虚拟地址可能映射到缓存(英文:cache)的多个索引(英文:index)上,从而可以根据虚拟地址从缓存中获取相应的索引所对应存储的数据,由于该缓存中多个索引所对应存储的数据为同一数据,因此通过该多个虚拟地址可以获取相同的数据,从而可以实现多个进程间的数据共享。但是,当通过其中一个虚拟地址修改数据时,修改后的数据存储在该虚拟地址的索引所对应的缓存行中,而通过其它虚拟地址将获取不到该修改后的数据,从而造成数据访问失败。
技术实现思路
本专利技术实施例提供一种缓存访问方法、设备和处理器,用于保证根据虚拟地址访问到的数据为最新数据。第一方面,本专利技术实施例提供一种缓存访问方法,包括:当第一缓存设备根据第一虚拟地址的索引对应的第一标识,查询不到第一物理地址时,所述第一缓存设备获取所述第一虚拟地址的索引中与第二虚拟地址的索引不相同的比特位为第一页着色位,所述第一物理地址为所述第一虚拟地址映射的物理地址,所述第二虚拟地址为所述第一物理地址映射的除所述第一虚拟地址之外的任一虚拟地址;所述第一缓存设备向第二缓存设备发送缓存失效请求,所述缓存失效请求包括所述第一物理地址和所述第一页着色位,所述第二缓存设备中存储的
数据包括所述第一缓存设备中存储的数据;所述第一缓存设备接收所述第二缓存设备根据所述缓存失效请求发送的第一数据,所述第一数据的物理地址为所述第一物理地址;所述第一缓存设备更新所述第一虚拟地址的索引对应的数据为所述第一数据,以及更新所述第一标识为第二标识,所述第二标识包括所述第一物理地址和第一有效位,所述第一有效位指示所述第一物理地址有效。第二方面,本专利技术实施例提供一种缓存访问方法,包括:第二缓存设备接收第一缓存设备发送的缓存失效请求,所述缓存失效请求包括第一物理地址和第一页着色位;所述第一页着色位为第一虚拟地址的索引中与第二虚拟地址的索引不相同的比特位;所述第一虚拟地址为所述第一物理地址映射的任一虚拟地址,所述第二虚拟地址为所述第一物理地址映射的除所述第一虚拟地址之外的任一虚拟地址;所述第二缓存设备中存储的数据包括所述第一缓存设备中存储的数据;所述第二缓存设备根据所述缓存失效请求,向所述第一缓存设备发送所述第一物理地址的索引对应的第一数据,其中,所述第一物理地址的索引对应第三标识,所述第三标识包括所述第一物理地址和所述第一页着色位。第三方面,本专利技术实施例提供一种缓存设备,作为第一缓存设备,包括:处理单元,用于当根据第一虚拟地址的索引对应的第一标识,查询不到第一物理地址时,获取所述第一虚拟地址的索引中与第二虚拟地址的索引不相同的比特位为第一页着色位,所述第一物理地址为所述第一虚拟地址映射的物理地址,所述第二虚拟地址为所述第一物理地址映射的除所述第一虚拟地址之外的任一虚拟地址;发送单元,用于向第二缓存设备发送缓存失效请求,所述缓存失效请求包括所述第一物理地址和所述第一页着色位,所述第二缓存设备中存储的数据包括所述第一缓存设备中存储的数据;接收单元,用于接收所述第二缓存设备根据所述缓存失效请求发送的第一数据,所述第一数据的物理地址为所述第一物理地址;更新单元,用于更新所述第一虚拟地址的索引对应的数据为所述第一数据,以及更新所述第一标识为第二标识,所述第二标识包括所述第一物理地址和第一有效位,所述第一有效位指示所述第一物理地址有效。第四方面,本专利技术实施例提供一种缓存设备,作为第二缓存设备,包括:接收单元,用于接收第一缓存设备发送的缓存失效请求,所述缓存失效请求包括第一物理地址和第一页着色位;所述第一页着色位为第一虚拟地址的索引中与第二虚拟地址的索引不相同的比特位;所述第一虚拟地址为所述第一物理地址映射的任一虚拟地址,所述第二虚拟地址为所述第一物理地址映射的除所述第一虚拟地址之外的任一虚拟地址;所述第二缓存设备中存储的数据包括所述第一缓存设备中存储的数据;发送单元,用于根据所述缓存失效请求,向所述第一缓存设备发送所述第一物理地址的索引对应的第一数据,其中,所述第一物理地址的索引对应第三标识,所述第三标识包括所述第一物理地址和所述第一页着色位。第五方面,本专利技术实施例提供一种处理器,包括:本专利技术第三方面提供的缓存设备和本专利技术第四方面提供所述的缓存设备。本专利技术实施例提供一种缓存访问方法、设备和处理器,通过当第一缓存设备根据第一虚拟地址确定缓存失效时,第一缓存设备获取第一虚拟地址的索引中与第二虚拟地址的索引不相同的比特位为第一页着色位;向第二缓存设备发送缓存失效请求,所述缓存失效请求包括所述第一物理地址和第一页着色位,然后接收第二缓存设备根据该缓存失效请求发送的第一数据,并对该第一虚拟地址的索引对应的数据和标识进行更新,从而保证了根据第一虚拟地址可以访问到该第一物理地址对应的最新数据,保证了数据的正确访问,提高了数据访问成功率。附图说明图1为本专利技术缓存访问方法实施例一的流程图;图2为本专利技术缓存访问方法实施例二的流程图;图3为本专利技术缓存访问方法实施例三的流程图;图4为本专利技术缓存访问方法实施例四的流程图;图5为本专利技术缓存访问方法实施例五的流程图;图6为本专利技术缓存访问方法实施例六的流程图;图7为本专利技术缓存设备实施例一的结构示意图;图8为本专利技术缓存设备实施例二的结构示意图;图9为本专利技术处理器实施例一的结构示意图。具体实施方式需要说明的是,本专利技术各实施例基于缓存一致性维护机制,先对该机制进行简要的介绍。缓存一致性维护机制是一种维护缓存一致性(英文:cache coherence)的机制,在多核处理器中尤为常见。即使在单核处理器中,也用于保证下一级缓存对上一级缓存的包含关系。举例而言,龙芯3号多核处理器及龙芯2G、2H等单核处理器中都有缓存一致性维护机制。该机制的工作原理是:一级cache失效时会访问二级缓存,二级缓存对一级缓存发出一致性请求,举例而言,包括无效、无效并写回、仅写回等请求。这些请求会对一级缓存进行修改,并达到维护缓存一致性的目的。举例而言,当二级缓存发生替换时,为了保证二级缓存对一级缓存的包含关系,需要将一级缓存中的这个数据的备份也去掉,因此,在二级缓存进行替换操作之前,必须向一级缓存发出针对被替换掉的物理地址的无效并写回的一致性请求,待一级缓存将可能为脏(英文:dirty)的数据写回后,二级缓存才能去做替换操作。本专利技术各实施例中,物理地址在缓存设备中的一个索引对应的标识上有备份。图1为本专利技术缓存访问方法实施例一的流程图,如图1所示,本实施例的方法可以包括:S101、当第一缓存设备根据第一虚拟地址的索引对应的第一标识,查询不到第一物理地址时,该第一缓存设备获取第一虚拟地址的索引中与第二虚拟地址的索引不相同的比特位为第一页着色位。本实施例中,第一虚拟地址可以是第一缓存设备接收的访存指令中的一个虚拟地址。该第一缓存设备可以根据第一虚拟地址,确定第一虚拟地址的索引(英文:index),例如:第一虚拟地址为64位,第一索引为该第一虚拟地址的低13位。然后第一缓存设备可以根据第一虚拟地址的索引获取该第一虚拟地址的索引对应的标识(英文:本文档来自技高网...
缓存访问方法、设备和处理器

【技术保护点】
一种缓存访问方法,其特征在于,包括:当第一缓存设备根据第一虚拟地址的索引对应的第一标识,查询不到第一物理地址时,所述第一缓存设备获取所述第一虚拟地址的索引中与第二虚拟地址的索引不相同的比特位为第一页着色位,所述第一物理地址为所述第一虚拟地址映射的物理地址,所述第二虚拟地址为所述第一物理地址映射的除所述第一虚拟地址之外的任一虚拟地址;所述第一缓存设备向第二缓存设备发送缓存失效请求,所述缓存失效请求包括所述第一物理地址和所述第一页着色位,所述第二缓存设备中存储的数据包括所述第一缓存设备中存储的数据;所述第一缓存设备接收所述第二缓存设备根据所述缓存失效请求发送的第一数据,所述第一数据的物理地址为所述第一物理地址;所述第一缓存设备更新所述第一虚拟地址的索引对应的数据为所述第一数据,以及更新所述第一标识为第二标识,所述第二标识包括所述第一物理地址和第一有效位,所述第一有效位指示所述第一物理地址有效。

【技术特征摘要】
1.一种缓存访问方法,其特征在于,包括:当第一缓存设备根据第一虚拟地址的索引对应的第一标识,查询不到第一物理地址时,所述第一缓存设备获取所述第一虚拟地址的索引中与第二虚拟地址的索引不相同的比特位为第一页着色位,所述第一物理地址为所述第一虚拟地址映射的物理地址,所述第二虚拟地址为所述第一物理地址映射的除所述第一虚拟地址之外的任一虚拟地址;所述第一缓存设备向第二缓存设备发送缓存失效请求,所述缓存失效请求包括所述第一物理地址和所述第一页着色位,所述第二缓存设备中存储的数据包括所述第一缓存设备中存储的数据;所述第一缓存设备接收所述第二缓存设备根据所述缓存失效请求发送的第一数据,所述第一数据的物理地址为所述第一物理地址;所述第一缓存设备更新所述第一虚拟地址的索引对应的数据为所述第一数据,以及更新所述第一标识为第二标识,所述第二标识包括所述第一物理地址和第一有效位,所述第一有效位指示所述第一物理地址有效。2.根据权利要求1所述的方法,其特征在于,所述第一标识包括第二物理地址和第二有效位;所述第一缓存设备在所述第一标识中查询不到所述第一物理地址,包括:所述第一缓存设备确定所述第二物理地址与所述第一物理地址不相同;或者,所述第一缓存设备确定所述第二有效位指示所述第二物理地址无效。3.根据权利要求1或2所述的方法,其特征在于,还包括:所述第一缓存设备接收所述第二缓存设备发送的缓存一致性请求,所述缓存一致性请求包括所述第一物理地址和第二页着色位;所述第一缓存设备根据所述第一物理地址和所述第二页着色位,获取所述第二虚拟地址的索引对应的标识;所述第二页着色位为所述第二虚拟地址的索引中与所述第一虚拟地址的索引不相同的比特位;所述第二虚拟地址的索引对应的标识包括第三物理地址和第三有效位;当所述第三物理地址与所述第一物理地址相同,并且所述第三有效位指示所述第三物理地址有效时,所述第一缓存设备向所述第二缓存设备发送第
\t二数据;所述第二数据为所述第二虚拟地址的索引对应的数据;所述第一缓存设备将所述第三有效位设置为指示所述第三物理地址无效;所述第一缓存设备接收所述第二缓存设备根据所述缓存失效请求发送的第一数据,包括:所述第一缓存设备接收所述第二缓存设备根据所述缓存失效请求发送的所述第二数据。4.根据权利要求1或2所述的方法,其特征在于,还包括:所述第一缓存设备接收所述第二缓存设备发送的缓存一致性请求,所述缓存一致性请求包括所述第一物理地址和第二页着色位;所述第一缓存设备根据所述第一物理地址和所述第二页着色位,获取所述第二虚拟地址的索引对应的标识;所述第二页着色位为所述第二虚拟地址的索引中与所述第一虚拟地址的索引不相同的比特位,所述第二虚拟地址的索引对应的标识包括第三物理地址和第三有效位;当所述第三物理地址与所述第一物理地址不相同,或者,所述第三有效位指示所述第三物理地址无效时,所述第一缓存设备向所述第二缓存设备发送响应信息;所述响应信息用于指示所述第一物理地址对应的数据存储在所述第二缓存设备。5.一种缓存访问方法,其特征在于,包括:第二缓存设备接收第一缓存设备发送的缓存失效请求,所述缓存失效请求包括第一物理地址和第一页着色位;所述第一页着色位为第一虚拟地址的索引中与第二虚拟地址的索引不相同的比特位;所述第一虚拟地址为所述第一物理地址映射的任一虚拟地址,所述第二虚拟地址为所述第一物理地址映射的除所述第一虚拟地址之外的任一虚拟地址;所述第二缓存设备中存储的数据包括所述第一缓存设备中存储的数据;所述第二缓存设备根据所述缓存失效请求,向所述第一缓存设备发送所述第一物理地址的索引对应的第一数据,其中,所述第一物理地址的索引对应第三标识,所述第三标识包括所述第一物理地址和所述第一页着色位。6.根据权利要求5所述的方法,其特征在于,所述第二缓存设备根据所述缓存失效请求,向所述第一缓存设备发送第一数据之前,还包括:所述第二缓存设备根据所述第一物理地址,获取所述第一物理地址的索
\t引对应的第四标识;所述第四标识包括第四物理地址;当所述第四物理地址与所述第一物理地址不相同时,所述第二缓存设备根据所述第一物理地址从存储设备中获取所述第一数据;所述存储设备中存储的数据包括所述第二缓存设备中存储的数据;所述第二缓存设备更新所述第一物理地址的索引对应的数据为所述第一数据,以及更新所述第四标识为所述第三标识;所述第二缓存设备根据所述缓存失效请求,向所述第一缓存设备发送第一数据,包括:所述第二缓存设备根据所述缓存失效请求,向所述第一缓存设备发送更新后的所述第一物理地址的索引对应的所述第一数据。7.根据权利要求5所述的方法,其特征在于,所述第二缓存设备根据所述缓存失效请求,向所述第一缓存设备发送第一数据之前,还包括:所述第二缓存设备根据所述第一物理地址,获取所述第一物理地址的索引对应的第四标识;所述第四标识包括第四物理地址和第二页着色位;当所述第四物理地址与所述第一物理地址相同,以及所述第二页着色位与所述第一页着色位相同时,所述第二缓存设备确定所述第一物理地址的索引对应的数据为所述第一数据。8.根据权利要求5所述的方法,其特征在于,所述第二缓存设备根据所述缓存失效请求,向所述第一缓存设备发送第一数据之前,还包括:所述第二缓存设备根据所述第一物理地址,获取所述第一物理地址的索引对应的第四标识;所述第四标识包括第四物理地址和第二页着色位;当所述第四物理地址与所述第一物理地址相同,以及所述第二页着色位与所述第一页着色位不相同时;所述第二缓存设备向所述第一缓存设备发送缓存一致性请求,所述缓存一致性请求包括所述第一物理地址和所述第二页着色位;所述第二缓存设备接收所述第一缓存设备根据所述缓存一致性请求发送的第二数据;所述第二缓存设备更新所述第一物理地址的索引对应的数据为所述第二数据,以及更新所述第四标识为所述第三标识;所述第二缓存设备根据所述缓存失效请求,向所述第一缓存设备发送第
\t一数据,包括:所述第二缓存设备根据所述缓存失效请求,向所述第一缓存设备发送所述第二数据。9.根据权利要求5所述的方法,其特征在于,所述第二缓存设备根据所述缓存失效请求,向所述第一缓存设备发送第一数据之前,还包括:所述第二缓存设备根据所述第一物理地址,获取所述第一物理地址的索引对应的第四标识;所述第四标识包括第四物理地址和第二页着色位;当所述第四物理地址与所述第一物理地址相同,以及所述第二页着色位与所述第一页着色位不相同时,所述第二缓存设备向所述第一缓存设备发送缓存一致性请求,所述缓存一致性请求包括所述第一物理地址和所述第二页着色位;所述第二缓存设备接收所述第一缓存设备发送的响应信息,所述响应信息用于指示所述第一物理地址对应的数据存储在所述第二缓存设备;所述第二缓存设备更新所述第四标识为所述第三标识;所述第二缓存设备根据所述缓存失效请求,向所述第一缓存设备发送第一数据,包括:所述第二缓存设备根据所述缓存失效请求,向所述第一缓存设备发送所述第一物理地址的索引对应的数据。10.一种缓存设备,作为第一缓存设备,其特...

【专利技术属性】
技术研发人员:吴瑞阳郝守青汪文祥胡伟武
申请(专利权)人:龙芯中科技术有限公司
类型:发明
国别省市:北京;11

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

1