CN105095104B - 数据缓存处理方法及装置 - Google Patents
数据缓存处理方法及装置 Download PDFInfo
- Publication number
- CN105095104B CN105095104B CN201410151681.1A CN201410151681A CN105095104B CN 105095104 B CN105095104 B CN 105095104B CN 201410151681 A CN201410151681 A CN 201410151681A CN 105095104 B CN105095104 B CN 105095104B
- Authority
- CN
- China
- Prior art keywords
- line address
- cache line
- response message
- access
- 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.)
- Active
Links
Landscapes
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本发明实施例提供一种数据缓存处理方法及装置。本发明数据缓存处理方法,包括:接收内存发送的访问响应消息,所述访问响应消息包括被访问数据和缓存线地址,所述访问响应消息为所述内存在各级缓存均未命中后接收的访问请求消息对应的响应消息;确定所述缓存线地址的访问频率;根据所述访问频率将所述访问响应消息存储至对应的缓存中。本发明实施例降低了一级缓存的未命中率,提高了整个计算机的性能。
Description
技术领域
本发明实施例涉及计算机科学技术,尤其涉及一种数据缓存处理方法及装置。
背景技术
在计算机技术发展过程中,高速缓冲存储器(英文:Cache)的容量一般只有主存储器的几百分之一,但它的存取速度能与CPU相匹配。因此在存储层次上采用Cache解决了主存储器存取速度比中央处理器CPU操作速度慢的问题。一个Cache由多个高速缓冲存储器线(英文:Cache line)构成,通常每个cache line的大小在32字节至128字节之间。当CPU访问内存的一个或多个字节的时候,会从内存中提取一个与cache line相同大小的内存块到Cache中的一个Cache line,从而使CPU对该Cache line对应的所有的内存地址的访问都可以从Cache取回结果,不需要再访问内存,称之为命中(英文:cache hit)。如果CPU要访问的内存地址并没有在Cache line中,CPU仍然需要访问内存获取数据,称为未命中(英文:cache miss)。较低的未命中率可以大幅度提高计算机的性能。
在现代计算机系统中为了降低cache miss率,通常使用多级cache的策略。但由于只要有访问该cache line的请求,该cache line最终都要进入一级高速缓冲存储器,增大了一级缓存的未命中率,使得整个计算机的性能下降,产生额外的开销。
发明内容
本发明实施例提供一种数据缓存处理方法及装置,以克服现有技术中一级缓存的未命中率高的技术问题。
本发明实施例第一方面提供一种数据缓存处理方法,包括:接收内存发送的访问响应消息,所述访问响应消息包括被访问数据和缓存线地址,所述访问响应消息为所述内存在各级缓存均未命中后接收的访问请求消息对应的响应消息;
确定所述缓存线地址的访问频率;
根据所述访问频率将所述访问响应消息存储至对应的缓存中。
第一方面的第一种可能实现方式中,所述确定所述缓存线地址的访问频率,包括:
判断是否接收至少两个包括所述缓存线地址的访问响应消息,若是,则确定所述缓存线地址为具有第一访问频率的缓存线地址,若否,则确定所述缓存线地址为具有第二访问频率的缓存线地址;
所述根据所述访问频率将所述访问响应消息存储至对应的缓存中,包括:
将具有所述第一访问频率的缓存线地址的访问响应消息存储至一级缓存中;
将具有所述第二访问频率的缓存线地址的访问响应消息存储至最后一级缓存中。
结合第一方面可能实现方式,在第一方面第二种可能实现方式中,所述确定所述缓存线地址的访问频率,包括:
判断所述缓存线地址对应的寻址方式是否为寄存器寻址,若是,则确定所述缓存线地址为具有第一访问频率的缓存线地址,若否,则确定所述缓存线地址为具有第二访问频率的缓存线地址;
所述根据所述访问频率将所述访问响应消息存储至对应的缓存中,包括:
将具有所述第一访问频率的缓存线地址的访问响应消息存储至一级缓存中;
将具有所述第二访问频率的缓存线地址的访问响应消息存储至最后一级缓存中。
本发明实施例第二方面提供一种数据缓存处理方法,包括:
接收最后一级缓存发送的访问响应消息,所述访问响应消息包括被访问数据和缓存线地址,所述访问响应消息为最后一级缓存命中后与访问请求消息对应的响应消息;
确定所述缓存线地址的访问频率;
根据所述访问频率将所述访问响应消息存储至对应的缓存中。
第二方面第一种可能实现方式中,所述根据所述访问频率将所述访问响应消息存储至对应的缓存中之后,还包括:
若所述访问响应消息存储至所述一级缓存中,则将所述访问响应消息所包括的缓存线地址在一级缓存中对应的缓存线的计数器加1;
若存储在所述一级缓存中的所述访问响应消息被替换,且所述访问响应消息包括的缓存线地址在一级缓存中对应的缓存线的计数器未饱和,则将所述缓存线地址在最后一级缓存中对应的缓存线的计数器加1。
结合第二方面第一种可能实现方式,在第二方面第二种可能实现方式中,所述确定所述缓存线地址的访问频率,包括:
判断所述缓存线地址在最后一级缓存中对应的缓存线的计数器是否饱和,若是,则确定所述缓存线地址为具有第一访问频率的缓存线地址,若否,则确定所述缓存线地址为具有第二访问频率的缓存线地址;
所述根据所述访问频率将所述访问响应消息存储至对应的缓存中,包括:
将具有所述第一访问频率的缓存线地址的访问响应消息存储至所述一级缓存中;
将具有所述第二访问频率的缓存线地址的访问响应消息存储至CPU寄存器。
本发明第三方面提供一种判断逻辑模块,包括:
接收单元,用于接收内存发送的访问响应消息,所述访问响应消息包括被访问数据和缓存线地址,所述访问响应消息为所述内存在各级缓存均未命中后接收的访问请求消息对应的响应消息;
确定单元,用于确定所述缓存线地址的访问频率;
存储单元,用于根据所述访问频率将所述访问响应消息存储至对应的缓存中。
第三方面第一种可能实现方式中,所述确定单元,具体用于:
判断是否接收至少两个包括所述缓存线地址的访问响应消息,若是,则确定所述缓存线地址为具有第一访问频率的缓存线地址,若否,则确定所述缓存线地址为具有第二访问频率的缓存线地址;
所述存储单元,具体用于:
将具有所述第一访问频率的缓存线地址的访问响应消息存储至一级缓存中;
将具有所述第二访问频率的缓存线地址的访问响应消息存储至最后一级缓存中。
结合第三方面可能实现方式,在第三方面第二种可能实现方式中,所述确定单元,具体用于:
判断所述缓存线地址对应的寻址方式是否为寄存器寻址,若是,则确定所述缓存线地址为具有第一访问频率的缓存线地址,若否,则确定所述缓存线地址为具有第二访问频率的缓存线地址;
所述存储单元,具体用于:
将具有所述第一访问频率的缓存线地址的访问响应消息存储至一级缓存中;
将具有所述第二访问频率的缓存线地址的访问响应消息存储至最后一级缓存中。
本发明第四方面提供一种判断逻辑模块,包括:
接收单元,用于接收最后一级缓存发送的访问响应消息,所述访问响应消息包括被访问数据和缓存线地址,所述访问响应消息为最后一级缓存命中后与访问请求消息对应的响应消息;
确定单元,用于确定所述缓存线地址的访问频率;
存储单元,用于根据所述访问频率将所述访问响应消息存储至对应的缓存中。
第四方面第一种可能实现方式中,还包括:
计数单元,用于所述存储单元根据所述访问频率将所述访问响应消息存储至对应的缓存中之后,若所述访问响应消息存储至所述一级缓存中,则将所述访问响应消息所包括的缓存线地址在一级缓存中对应的缓存线的计数器加1;
若存储在所述一级缓存中的所述访问响应消息被替换,且所述访问响应消息包括的缓存线地址在一级缓存中对应的缓存线的计数器未饱和,则将所述缓存线地址在最后一级缓存中对应的缓存线的计数器加1。
结合第四方面第一种可能实现方式,在第四方面第二种可能实现方式中,所述确定单元,具体用于:
判断所述缓存线地址在最后一级缓存中对应的缓存线的计数器是否饱和,若是,则确定所述缓存线地址为具有第一访问频率的缓存线地址,若否,则确定所述缓存线地址为具有第二访问频率的缓存线地址;
所述存储单元,具体用于:
将具有所述第一访问频率的缓存线地址的访问响应消息存储至所述一级缓存中;
将具有所述第二访问频率的缓存线地址的访问响应消息存储至CPU寄存器。
本发明第五方面提供了一种存储器,包括:内存、多级缓存以及如第三方面至第三方面第二种可能的实现方式中任一项所述的判断逻辑模块。
本发明第六方面提供了一种存储器,包括:内存、多级缓存以及如第四方面至第四方面第二种可能的实现方式中任一项所述的判断逻辑模块。
本发明实施例数据缓存处理方法及装置,通过确定访问响应消息中包括的缓存线地址的访问频率,并根据所述访问频率将所述访问响应消息存储至对应的缓存中,降低了一级缓存的未命中率。解决现有技术中一级缓存未命中率高的技术问题。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明数据缓存处理方法实施例一的流程图;
图2为本发明数据缓存处理方法实施例二的流程图;
图3为本发明判断逻辑模块实施例一的结构示意图;
图4为本发明判断逻辑模块实施例二的结构示意图;
图5为本发明判断逻辑模块实施例三的结构示意图;
图6为本发明存储器实施例一的结构示意图;
图7为本发明存储器实施例二的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
图1为本发明数据缓存处理方法实施例一的流程图,如图1所示,本实施例的方法可以包括:
步骤101、接收内存发送的访问响应消息,所述访问响应消息包括被访问数据和缓存线地址,所述访问响应消息为所述内存在各级缓存均未命中后接收的访问请求消息对应的响应消息;
步骤102、确定所述缓存线地址的访问频率;
步骤103、根据所述访问频率将所述访问响应消息存储至对应的缓存中。
具体来说,当CPU访问的内存地址在各级缓存中均未命中后,内存接收CPU发送的访问请求后,向逻辑判断模块发送对应该访问请求的访问响应消息,该访问响应消息包括被访问数据和对应于访问内存地址的缓存线地址。判断逻辑模块确定所述缓存线地址的访问频率,并根据所述访问频率将该访问响应消息存储至对应的缓存中。
确定所述缓存线地址的访问频率,第一种方式:
判断是否接收至少两个包括所述缓存线地址的访问响应消息,若是,则确定所述缓存线地址为具有第一访问频率的缓存线地址,若否,则确定所述缓存线地址为具有第二访问频率的缓存线地址;
所述根据所述访问频率将所述访问响应消息存储至对应的缓存中,包括:
将具有所述第一访问频率的缓存线地址的访问响应消息存储至一级缓存中;
将具有所述第二访问频率的缓存线地址的访问响应消息存储至最后一级缓存中。
具体来说,CPU发出的访问请求经过各级缓存检查都未命中后到内存需经过数百个时钟周期,在此期间内若判断逻辑模块接收到至少两个包括同一缓存线地址的访问响应消息,则确定该缓存线地址为具有第一访问频率的缓存线地址,相应地将该缓存线地址对应的访问响应消息存储在一级缓存中,以便后续CPU再次访问该缓存地址时直接从一级缓存中获取该缓存地址对应的数据;否则,确定该缓存线地址为具有第二访问频率的缓存线地址,相应地将该缓存线地址对应的访问响应消息存储在最后一级缓存中,从而降低了一级缓存的未命中率。
第二种方式:
判断所述缓存线地址对应的寻址方式是否为寄存器寻址,若是,则确定所述缓存线地址为具有第一访问频率的缓存线地址,若否,则确定所述缓存线地址为具有第二访问频率的缓存线地址;
所述根据所述访问频率将所述访问响应消息存储至对应的缓存中,包括:
将具有所述第一访问频率的缓存线地址的访问响应消息存储至一级缓存中;
将具有所述第二访问频率的缓存线地址的访问响应消息存储至最后一级缓存中。
具体来说,判断逻辑模块接收内存发送的访问响应消息后,判断该访问消息包括的缓存线地址对应的寻址方式是否为寄存器寻址,由于寄存器寻址的指令所需的操作数已存储在寄存器中,或操作的结果存入寄存器,因此在指令执行过程中,会减少读或写存储器单元的次数,因此使用寄存器寻址方式的指令具有较快的执行速度,从而若是寄存器寻址方式,则确定所述缓存线地址具有第一访问频率,相应地将该缓存线地址的访问响应消息存储至一级缓存中;否则,确定该缓存线地址具有第二访问频率,相应地将该缓存线地址对应的访问响应消息存储在最后一级缓存中,以便降低一级缓存的未命中率,所述具有第一访问频率的缓存线地址为访问频率高的缓存线地址。
本实施例,通过确定访问响应消息中包括的缓存线地址的访问频率,并根据所述访问频率将所述访问响应消息存储至对应的缓存中,减小了一级缓存的未命中率。解决现有技术中一级缓存未命中率高的技术问题。
图2为本发明数据缓存处理方法实施例二的流程图,如图2所示,本实施例的方法可以包括:
步骤201、接收最后一级缓存发送的访问响应消息,所述访问响应消息包括被访问数据和缓存线地址,所述访问响应消息为最后一级缓存命中后与访问请求消息对应的响应消息;
步骤202、确定所述缓存线地址的访问频率;
步骤203、根据所述访问频率将所述访问响应消息存储至对应的缓存中。
具体来说,当CPU访问的内存地址在最后一级缓存命中后,最后一级缓存接收CPU发送的访问请求,并向逻辑判断模块发送对应该访问请求的访问响应消息,该访问响应消息包括被访问数据和对应于访问内存地址的缓存线地址。判断逻辑模块确定所述缓存线地址的访问频率,并根据所述访问频率将该访问响应消息存储至对应的缓存中。
所述根据所述访问频率将所述访问响应消息存储至对应的缓存中之后,还包括:
若所述访问响应消息存储至所述一级缓存中,则将所述访问响应消息所包括的缓存线地址在一级缓存中对应的缓存线的计数器加1;
若存储在所述一级缓存中的所述访问响应消息被替换,且所述访问响应消息包括的缓存线地址在一级缓存中对应的缓存线的计数器未饱和,则将所述缓存线地址在最后一级缓存中对应的缓存线的计数器加1。
所述确定所述缓存线地址的访问频率,包括:
判断所述缓存线地址在最后一级缓存中对应的缓存线的计数器是否饱和,若是,则确定所述缓存线地址为具有第一访问频率的缓存线地址,若否,则确定所述缓存线地址为具有第二访问频率的缓存线地址;
所述根据所述访问频率将所述访问响应消息存储至对应的缓存中,包括:
将具有所述第一访问频率的缓存线地址的访问响应消息存储至CPU寄存器;
将具有所述第二访问频率的缓存线地址的访问响应消息存储至所述一级缓存中。
具体来说,在每一级缓存中,采用计数器为每一个缓存线的访问频率计数。所述访问消息对应于一级缓存的计数方法是:当该访问消息存储至一级缓存中时,将所述访问响应消息所包括的缓存线地址在一级缓存中对应的缓存线的计数器加1;所述访问消息对应于最后一级缓存的计数方法是:当对应存储在一级缓存中的该访问消息被替换时,且同时一级缓存中对应的缓存线的计数器未饱和,则将最后一级缓存中该缓存线的计数器加1。该访问消息所包括的缓存线地址对应于一级缓存中的计数器计数越多,说明该缓存线地址的访问频率越高;而该访问消息所包括的缓存线地址对应于最后一级缓存中的计数器计数越多,则说明该缓存线地址的访问频率越低。因此,若所述缓存线地址在最后一级缓存中对应的缓存线的计数器饱和,则判断逻辑模块确定所述缓存线地址为访问频率低的缓存线地址,且将该缓存线地址的访问响应消息存储至CPU寄存器中;若该缓存线地址在最后一级缓存中对应的缓存线的计数器未饱和,则判断逻辑模块确定所述缓存线地址为访问频率高的缓存线地址,将该缓存线地址的访问响应消息存储至一级缓存中。
本实施例,判断逻辑模块通过接收最后一级缓存发送的访问响应消息,并根据所述访问响应消息包括的缓存线地址的访问频率将所述访问响应消息存储至对应的缓存中,降低了一级缓存的未命中率,解决现有技术中一级缓存未命中率高的技术问题。
图3为本发明判断逻辑模块实施例一的流程图,如图3所示,本实施例的判断逻辑模块可以包括:
接收单元301、用于接收内存发送的访问响应消息,所述访问响应消息包括被访问数据和缓存线地址,所述访问响应消息为所述内存在各级缓存均未命中后接收的访问请求消息对应的响应消息;
确定单元302、用于确定所述缓存线地址的访问频率;
存储单元303、用于根据所述访问频率将所述访问响应消息存储至对应的缓存中。
可选地,所述确定单元302,具体用于:
判断是否接收至少两个包括所述缓存线地址的访问响应消息,若是,则确定所述缓存线地址为具有第一访问频率的缓存线地址,若否,则确定所述缓存线地址为具有第二访问频率的缓存线地址;
所述存储单元303,具体用于:
将具有所述第一访问频率的缓存线地址的访问响应消息存储至一级缓存中;
将具有所述第二访问频率的缓存线地址的访问响应消息存储至最后一级缓存中。
可选地,所述确定单元302,具体用于:
判断所述缓存线地址对应的寻址方式是否为寄存器寻址,若是,则确定所述缓存线地址为具有第一访问频率的缓存线地址,若否,则确定所述缓存线地址为具有第二访问频率的缓存线地址;
所述存储单元303,具体用于:
将具有所述第一访问频率的缓存线地址的访问响应消息存储至一级缓存中;
将具有所述第二访问频率的缓存线地址的访问响应消息存储至最后一级缓存中。
本实施例的装置,可以用于执行图1所示方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。
图4为本发明判断逻辑模块实施例二的结构示意图,如图4所示,本实施例的判断逻辑模块可以包括:
接收单元401、用于接收最后一级缓存发送的访问响应消息,所述访问响应消息包括被访问数据和缓存线地址,所述访问响应消息为最后一级缓存命中后与访问请求消息对应的响应消息;
确定单元402、用于确定所述缓存线地址的访问频率;
存储单元403、用于根据所述访问频率将所述访问响应消息存储至对应的缓存中。
本实施例的装置,可以用于执行图2所示方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。
图5为本发明判断逻辑模块实施例三的结构示意图,如图5所示,本实施例的装置在图4所示装置结构的基础上,进一步地,还可以包括:
计数单元404,用于所述存储单元根据所述访问频率将所述访问响应消息存储至对应的缓存中之后,若所述访问响应消息存储至所述一级缓存中,则将所述访问响应消息所包括的缓存线地址在一级缓存中对应的缓存线的计数器加1;
若存储在所述一级缓存中的所述访问响应消息被替换,且所述访问响应消息包括的缓存线地址在一级缓存中对应的缓存线的计数器未饱和,则将所述缓存线地址在最后一级缓存中对应的缓存线的计数器加1。
所述确定单元402,具体用于:
判断所述缓存线地址在最后一级缓存中对应的缓存线的计数器是否饱和,若是,则确定所述缓存线地址为具有第一访问频率的缓存线地址,若否,则确定所述缓存线地址为具有第二访问频率的缓存线地址;
所述存储单元403,具体用于:
将具有所述第一访问频率的缓存线地址的访问响应消息存储至所述一级缓存中;
将具有所述第二访问频率的缓存线地址的访问响应消息存储至CPU寄存器。
本实施例的装置,可以用于执行图2所示方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。
图6为本发明存储器实施例一的结构示意图,如图6所示,本实施例的存储器,包括:判断逻辑模块501、多级缓存502以及内存503;所述判断逻辑模块501为图3所示的判断逻辑模块;其对应地,可以用于执行图1所示方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。
图7为本发明存储器实施例二的结构示意图,如图7所示,本实施例的存储器,包括:判断逻辑模块601、多级缓存602以及内存603;所述判断逻辑601为图5所示的判断逻辑模块;其对应地,可以用于执行图2所示方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。
本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一计算机可读取存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。
Claims (6)
1.一种数据缓存处理方法,其特征在于,包括:
接收内存发送的访问响应消息,所述访问响应消息包括被访问数据和缓存线地址,所述访问响应消息为所述内存在各级缓存均未命中后接收的访问请求消息对应的响应消息;
确定所述缓存线地址的访问频率;
根据所述访问频率将所述访问响应消息存储至所述访问频率对应的缓存中;
所述确定所述缓存线地址的访问频率,包括:
判断是否接收至少两个包括所述缓存线地址的访问响应消息,若是,则确定所述缓存线地址为具有第一访问频率的缓存线地址,若否,则确定所述缓存线地址为具有第二访问频率的缓存线地址;所述根据所述访问频率将所述访问响应消息存储至对应的缓存中,包括:将具有所述第一访问频率的缓存线地址的访问响应消息存储至一级缓存中;将具有所述第二访问频率的缓存线地址的访问响应消息存储至最后一级缓存中;
或者,
所述确定所述缓存线地址的访问频率,包括:
判断所述缓存线地址对应的寻址方式是否为寄存器寻址,若是,则确定所述缓存线地址为具有第一访问频率的缓存线地址,若否,则确定所述缓存线地址为具有第二访问频率的缓存线地址;所述根据所述访问频率将所述访问响应消息存储至对应的缓存中,包括:将具有所述第一访问频率的缓存线地址的访问响应消息存储至一级缓存中;将具有所述第二访问频率的缓存线地址的访问响应消息存储至最后一级缓存中。
2.一种数据缓存处理方法,其特征在于,包括:
接收最后一级缓存发送的访问响应消息,所述访问响应消息包括被访问数据和缓存线地址,所述访问响应消息为最后一级缓存命中后与访问请求消息对应的响应消息;
确定所述缓存线地址的访问频率;
根据所述访问频率将所述访问响应消息存储至所述访问频率对应的缓存中;
所述根据所述访问频率将所述访问响应消息存储至对应的缓存中之后,还包括:
若所述访问响应消息存储至所述一级缓存中,则将所述访问响应消息所包括的缓存线地址在一级缓存中对应的缓存线的计数器加1;若存储在所述一级缓存中的所述访问响应消息被替换,且所述访问响应消息包括的缓存线地址在一级缓存中对应的缓存线的计数器未饱和,则将所述缓存线地址在最后一级缓存中对应的缓存线的计数器加1;
或者,
所述确定所述缓存线地址的访问频率,包括:
判断所述缓存线地址在最后一级缓存中对应的缓存线的计数器是否饱和,若是,则确定所述缓存线地址为具有第一访问频率的缓存线地址,若否,则确定所述缓存线地址为具有第二访问频率的缓存线地址;所述根据所述访问频率将所述访问响应消息存储至对应的缓存中,包括:将具有所述第一访问频率的缓存线地址的访问响应消息存储至所述一级缓存中;将具有所述第二访问频率的缓存线地址的访问响应消息存储至CPU寄存器。
3.一种判断逻辑模块,其特征在于,包括:
接收单元,用于接收内存发送的访问响应消息,所述访问响应消息包括被访问数据和缓存线地址,所述访问响应消息为所述内存在各级缓存均未命中后接收的访问请求消息对应的响应消息;
确定单元,用于确定所述缓存线地址的访问频率;
存储单元,用于根据所述访问频率将所述访问响应消息存储至所述访问频率对应的缓存中;
所述确定单元,具体用于:
判断是否接收至少两个包括所述缓存线地址的访问响应消息,若是,则确定所述缓存线地址为具有第一访问频率的缓存线地址,若否,则确定所述缓存线地址为具有第二访问频率的缓存线地址;所述存储单元,具体用于:将具有所述第一访问频率的缓存线地址的访问响应消息存储至一级缓存中;将具有所述第二访问频率的缓存线地址的访问响应消息存储至最后一级缓存中;
或者,
所述确定单元,具体用于:
判断所述缓存线地址对应的寻址方式是否为寄存器寻址,若是,则确定所述缓存线地址为具有第一访问频率的缓存线地址,若否,则确定所述缓存线地址为具有第二访问频率的缓存线地址;所述存储单元,具体用于:将具有所述第一访问频率的缓存线地址的访问响应消息存储至一级缓存中;将具有所述第二访问频率的缓存线地址的访问响应消息存储至最后一级缓存中。
4.一种判断逻辑模块,其特征在于,包括:
接收单元,用于接收最后一级缓存发送的访问响应消息,所述访问响应消息包括被访问数据和缓存线地址,所述访问响应消息为最后一级缓存命中后与访问请求消息对应的响应消息;
确定单元,用于确定所述缓存线地址的访问频率;
存储单元,用于根据所述访问频率将所述访问响应消息存储至所述访问频率对应的缓存中;
所述判断逻辑模块还包括:
计数单元,用于所述存储单元根据所述访问频率将所述访问响应消息存储至对应的缓存中之后,若所述访问响应消息存储至所述一级缓存中,则将所述访问响应消息所包括的缓存线地址在一级缓存中对应的缓存线的计数器加1;若存储在所述一级缓存中的所述访问响应消息被替换,且所述访问响应消息包括的缓存线地址在一级缓存中对应的缓存线的计数器未饱和,则将所述缓存线地址在最后一级缓存中对应的缓存线的计数器加1;
或者,
所述确定单元,具体用于:
判断所述缓存线地址在最后一级缓存中对应的缓存线的计数器是否饱和,若是,则确定所述缓存线地址为具有第一访问频率的缓存线地址,若否,则确定所述缓存线地址为具有第二访问频率的缓存线地址;
所述存储单元,具体用于:将具有所述第一访问频率的缓存线地址的访问响应消息存储至所述一级缓存中;将具有所述第二访问频率的缓存线地址的访问响应消息存储至CPU寄存器。
5.一种存储器,其特征在于,包括:内存、多级缓存以及如权利要求3所述的判断逻辑模块。
6.一种存储器,其特征在于,包括:内存、多级缓存以及如权利要求4所述判断逻辑模块。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410151681.1A CN105095104B (zh) | 2014-04-15 | 2014-04-15 | 数据缓存处理方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410151681.1A CN105095104B (zh) | 2014-04-15 | 2014-04-15 | 数据缓存处理方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105095104A CN105095104A (zh) | 2015-11-25 |
CN105095104B true CN105095104B (zh) | 2018-03-27 |
Family
ID=54575595
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410151681.1A Active CN105095104B (zh) | 2014-04-15 | 2014-04-15 | 数据缓存处理方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105095104B (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10698836B2 (en) | 2017-06-16 | 2020-06-30 | International Business Machines Corporation | Translation support for a virtual cache |
US10606762B2 (en) | 2017-06-16 | 2020-03-31 | International Business Machines Corporation | Sharing virtual and real translations in a virtual cache |
US10831664B2 (en) | 2017-06-16 | 2020-11-10 | International Business Machines Corporation | Cache structure using a logical directory |
CN107943715B (zh) * | 2017-10-12 | 2021-10-01 | 记忆科技(深圳)有限公司 | 一种提升NVMe固态硬盘读缓存命中的方法 |
CN109783027B (zh) * | 2019-01-15 | 2022-03-29 | 深圳忆联信息系统有限公司 | 命令存储管理方法、装置、计算机设备及存储介质 |
CN117632820B (zh) * | 2024-01-22 | 2024-05-14 | 北京开源芯片研究院 | 请求处理方法、装置、总线桥、电子设备及可读存储介质 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6119202A (en) * | 1997-07-24 | 2000-09-12 | International Business Machines Corporation | Method and apparatus to interleave level 1 data cache line fill data between system bus and level 2 data cache for improved processor performance |
US20040103251A1 (en) * | 2002-11-26 | 2004-05-27 | Mitchell Alsup | Microprocessor including a first level cache and a second level cache having different cache line sizes |
CN101216855B (zh) * | 2008-01-16 | 2010-08-18 | 中兴通讯股份有限公司 | 消息类业务累计数据缓存方法及系统 |
CN102204218B (zh) * | 2011-05-31 | 2015-01-21 | 华为技术有限公司 | 数据处理方法、缓存节点、协作控制器及系统 |
CN103108047A (zh) * | 2013-02-06 | 2013-05-15 | 浪潮电子信息产业股份有限公司 | 一种对象存储系统元数据缓存的优化方法 |
-
2014
- 2014-04-15 CN CN201410151681.1A patent/CN105095104B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN105095104A (zh) | 2015-11-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105095104B (zh) | 数据缓存处理方法及装置 | |
CN110275841B (zh) | 访问请求处理方法、装置、计算机设备和存储介质 | |
CN105095116B (zh) | 缓存替换的方法、缓存控制器和处理器 | |
CN101751246B (zh) | 预取数据的系统和方法 | |
US8977819B2 (en) | Prefetch stream filter with FIFO allocation and stream direction prediction | |
CN103443777B (zh) | 具有预填充能力的存储器管理单元 | |
CN105677580A (zh) | 访问缓存的方法和装置 | |
CN107291629A (zh) | 一种用于访问内存的方法和装置 | |
CN104156323B (zh) | 一种高速缓冲存储器的数据块长度自适应读取方法及装置 | |
US8583873B2 (en) | Multiport data cache apparatus and method of controlling the same | |
WO2018082695A1 (zh) | 一种缓存替换的方法和设备 | |
CN109359729B (zh) | 一种在fpga上实现缓存数据的系统及方法 | |
US20120079202A1 (en) | Multistream prefetch buffer | |
US20080307169A1 (en) | Method, Apparatus, System and Program Product Supporting Improved Access Latency for a Sectored Directory | |
CN109408411A (zh) | 基于数据访问次数的GPGPU的L1 Cache管理方法 | |
CN104252423B (zh) | 基于多内核处理器的一致性处理方法和装置 | |
CN106155936B (zh) | 一种缓存替换方法与相关装置 | |
CN108874691A (zh) | 数据预取方法和内存控制器 | |
CN106649143B (zh) | 一种访问缓存的方法、装置及电子设备 | |
US20080301376A1 (en) | Method, Apparatus, and System Supporting Improved DMA Writes | |
CN105359116B (zh) | 缓存器、共享缓存管理方法及控制器 | |
CN106959936A (zh) | 一种fft的硬件加速实现装置及方法 | |
US10747669B2 (en) | Prefetching data | |
CN108519860A (zh) | 一种ssd读命中的处理方法和装置 | |
US20140173225A1 (en) | Reducing memory access time in parallel processors |
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 |