CN113791989A - 基于cache的缓存数据处理方法、存储介质及芯片 - Google Patents

基于cache的缓存数据处理方法、存储介质及芯片 Download PDF

Info

Publication number
CN113791989A
CN113791989A CN202111081748.5A CN202111081748A CN113791989A CN 113791989 A CN113791989 A CN 113791989A CN 202111081748 A CN202111081748 A CN 202111081748A CN 113791989 A CN113791989 A CN 113791989A
Authority
CN
China
Prior art keywords
cache
queue
address
cache line
data
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.)
Granted
Application number
CN202111081748.5A
Other languages
English (en)
Other versions
CN113791989B (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.)
Shenzhen Zhongke Lanxun Technology Co ltd
Original Assignee
Shenzhen Zhongke Lanxun Technology 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 Shenzhen Zhongke Lanxun Technology Co ltd filed Critical Shenzhen Zhongke Lanxun Technology Co ltd
Priority to CN202111081748.5A priority Critical patent/CN113791989B/zh
Publication of CN113791989A publication Critical patent/CN113791989A/zh
Application granted granted Critical
Publication of CN113791989B publication Critical patent/CN113791989B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

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/0877Cache access modes
    • 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/0893Caches characterised by their organisation or structure
    • G06F12/0895Caches characterised by their organisation or structure of parts of caches, e.g. directory or tag array
    • 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/12Replacement control
    • G06F12/121Replacement control using replacement algorithms
    • 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
    • G06F2212/1024Latency reduction
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

本发明涉及数据缓存技术领域,公开了一种基于cache的缓存数据处理方法、存储介质及芯片。基于cache的缓存数据处理方法包括:遍历第一缓存队列的第一地址查询表;根据每个缓存行的内存块起始地址,确定满足内存地址连续条件的缓存行作为候选缓存行;根据各个候选缓存行的缓存长度及预设长度阈值,处理每个候选缓存行的缓存数据。本实施例能够根据内存块起始地址的连续性,结合各个候选缓存行的缓存长度处理每个候选缓存行的缓存数据,避免在淘汰缓存数据时容易将地址连续的多个缓存行的缓存数据予以淘汰,避免在下次访问时,花费较多加载时间加载已被刷掉的地址连续的多个缓存行的缓存数据。

Description

基于cache的缓存数据处理方法、存储介质及芯片
技术领域
本发明涉及数据缓存技术领域,具体涉及一种基于cache的缓存数据处理方法、存储介质及芯片。
背景技术
高速缓冲存储器(cache)技术是现代处理器设计中核心技术之一,有效地解决了处理速度和内存速度之间的匹配问题。cache用于缓存内存的缓存数据(缓存数据)。主设备访问内存时,可转移至cache进行访问,从cache抓取缓存数据。当cache存储空间已满,便需要淘汰cache中已加载的缓存数据。
现有技术可提供各类cache淘汰算法以淘汰缓存数据,但是,现有cache淘汰算法都是孤立地确定单个缓存行的缓存情况,并根据单个缓存行的缓存情况,确定是否淘汰该单个缓存行的缓存数据,缓存情况包括访问频率、指定时长的访问次数或写入时间等。
然而,在主设备访问内存的连续性较强的应用场景中,现有cache淘汰算法容易将内存块起始地址连续且对应一个或多个内存的缓存数据予以淘汰,然而,cache控制器将内存块起始地址连续且对应多个内存的缓存数据从内存加载到cache时,需要花费较多的加载时间。当上述多个缓存数据被淘汰,且主设备下次需要使用上述多个缓存数据时,cache控制器又需要较多时间将其从内存加载到cache中,从而降低数据访问效率。
发明内容
本发明实施例的一个目的旨在提供一种基于cache的缓存数据处理方法、存储介质及芯片,用于解决现有技术存在的上述技术缺陷。
在第一方面,本发明实施例提供一种基于cache的缓存数据处理方法,包括:
遍历第一缓存队列的第一地址查询表,所述第一缓存队列包括多个缓存行,每个所述缓存行的缓存长度可变,每个所述缓存行用于存储映射内存的缓存数据,所述第一地址查询表包括与每个所述缓存行对应的内存块起始地址;
根据每个所述缓存行的内存块起始地址,确定满足内存地址连续条件的缓存行作为候选缓存行;
根据各个所述候选缓存行的缓存长度及预设长度阈值,处理每个所述候选缓存行的缓存数据。
可选地,所述根据各个所述候选缓存行的缓存长度及预设长度阈值,处理每个所述候选缓存行的缓存数据包括:
自起始候选缓存行开始,按照地址连续顺序累加每个候选缓存行的缓存长度,得到每次累加后的长度结果;
判断每次累加后的长度结果是否大于预设长度阈值;
若是,将参与累加过程的候选缓存行作为目标缓存行,处理每个所述目标缓存行的缓存数据;
若否,继续按照地址连续顺序累加每个候选缓存行的缓存长度。
可选地,所述处理每个所述目标缓存行的缓存数据包括:
获取第二缓存队列及第二地址查询表;
将全部所述目标缓存行的缓存数据转移至所述第二缓存队列中的参考缓存行,并更新所述第一地址查询表及所述第二地址查询表。
可选地,在遍历第一缓存队列的第一地址查询表之前,方法还包括:
根据待加载缓存数据的缓存长度与预设长度阈值,确定目标缓存队列;
将所述待加载缓存数据映射至所述目标缓存队列的相应缓存行中。
可选地,所述根据待加载缓存数据的缓存长度与预设长度阈值,确定目标缓存队列包括:
判断待加载缓存数据的缓存长度是否大于或等于预设长度阈值;
若是,选择所述第二缓存队列作为目标缓存队列;
若否,选择所述第一缓存队列作为目标缓存队列。
可选地,所述根据每个所述缓存行的内存块起始地址,确定满足内存地址连续条件的缓存行作为候选缓存行包括:
根据每个所述缓存行的内存块起始地址及缓存长度,计算每个所述缓存行的内存块结束地址;
若所述第一缓存队列中一个所述缓存行的内存块起始地址与另一个所述缓存行的内存块结束地址为连续的,则确定一个所述缓存行与另一个所述缓存行为候选缓存行。
可选地,在遍历第一缓存队列的第一地址查询表之前,还包括:
检测所述第一缓存队列是否加载新缓存数据;
若是,进入遍历第一缓存队列的第一地址查询表的步骤;
若否,保持所述第一缓存队列的缓存状态。
在第二方面,本发明实施例提供一种存储介质,所述存储介质存储有计算机可执行指令,所述计算机可执行指令用于使电子设备执行上述的基于cache的缓存数据处理方法。
在第三方面,本发明实施例提供一种芯片,包括:
至少一个处理器;以及,
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行上述的基于cache的缓存数据处理方法。
在第四方面,本发明实施例提供一种cache控制器,包括:
cache存储模组,包括至少一个缓存队列,每个所述缓存队列包括多个缓存行,每个所述缓存行的缓存长度可变,每个所述缓存行用于存储映射内存的缓存数据;
命中判断模组,用于根据主设备发送的访问请求,判断是否命中所述cache存储模组中的相应缓存行,若是,控制所述cache存储模组与主设备交互缓存数据,若否,产生加载命令;
缓存行加载模组,用于根据所述加载命令,访问所述内存;
缓存行更新模组,用于在所述缓存行加载模组的控制下,对所述cache存储模组的相应缓存行进行数据更新。
在本发明实施例提供的基于cache的缓存数据处理方法中,遍历第一缓存队列的第一地址查询表,第一缓存队列包括多个缓存行,每个缓存行的缓存长度可变,每个缓存行用于存储映射内存的缓存数据,第一地址查询表包括与每个缓存行对应的内存块起始地址,根据每个缓存行的内存块起始地址,确定满足地址连续条件的缓存行作为候选缓存行,根据各个候选缓存行的缓存长度及预设长度阈值,处理每个候选缓存行的缓存数据。本实施例能够根据内存块起始地址的连续性,结合各个候选缓存行的缓存长度处理每个候选缓存行的缓存数据,避免在淘汰缓存数据时容易将地址连续的多个缓存行的缓存数据予以淘汰,避免在下次访问时,花费较多加载时间加载已被刷掉的地址连续的多个缓存行的缓存数据。
附图说明
一个或多个实施例通过与之对应的附图中的图片进行示例性说明,这些示例性说明并不构成对实施例的限定,附图中具有相同参考数字标号的元件表示为类似的元件,除非有特别申明,附图中的图不构成比例限制。
图1为本发明实施例提供的一种cache***的结构示意图;
图2为本发明另一实施例提供的一种cache***的结构示意图;
图3为本发明实施例提供的内存映射到第一缓存队列和第二缓存队列的第一种示意图;
图4为本发明实施例提供的一种基于cache的缓存数据处理方法的流程示意图;
图5a为图4所示的S42的流程示意图;
图5b为图4所示的S43的流程示意图;
图5c为图5b所示的S433的流程示意图;
图6为本发明实施例提供的内存映射到第一缓存队列和第二缓存队列的第二种示意图;
图7a为本发明另一实施例提供的一种基于cache的缓存数据处理方法的流程示意图;
图7b为本发明再一实施例提供的一种基于cache的缓存数据处理方法的流程示意图;
图8a为本发明实施例提供的第一缓存队列与第二缓存队列之间的数据转移示意图;
图8b为本发明实施例提供的第一缓存队列、第二缓存队列及第三缓存队列之间的数据转移示意图;
图8c为本发明实施例提供的第一缓存队列、第二缓存队列、第三缓存队列及第四缓存队列之间的数据转移示意图;
图9为本发明实施例提供的一种芯片的电路结构示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
需要说明的是,如果不冲突,本发明实施例中的各个特征可以相互结合,均在本发明的保护范围之内。另外,虽然在装置示意图中进行了功能模块划分,在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于装置中的模块划分,或流程图中的顺序执行所示出或描述的步骤。再者,本发明所采用的“第一”、“第二”、“第三”等字样并不对数据和执行次序进行限定,仅是对功能和作用基本相同的相同项或相似项进行区分。
请参阅图1,cache***100包括主设备11、cache控制器12及内存13,cache控制器12分别与主设备11和内存13电连接。
主设备11执行软件程序,需要从内存13中抓取缓存数据。当主设备11访问内存13时,会转移到对cache控制器12的访问,若cache控制器12中有相应缓存行的存储地址和主设备11对内存13的访问地址一致,则cache控制器12命中,主设备11可以直接从所述缓存行中取走缓存数据,若不一致,则cache控制器12不命中,于是,cache控制器12向内存13发出访问请求,从内存13中加载与缓存行长度一样大小的缓存数据到cache控制器12中,以便主设备11从cache控制器12中取缓存数据。
在一些实施例中,主设备11可以为任意合适类型设备,诸如耳机或摄像模组等电子设备。可以理解的是,请参阅图2,主设备11的数量可以为多个,多个主设备11可以同时访问内存13。
在一些实施例中,请继续参阅图1,cache控制器12包括cache存储模组121、命中判断模组122、缓存行加载模组123及缓存行更新模组124。
cache存储模组121包括至少一个缓存队列及与每个缓存队列对应的地址查询表,每个缓存队列包括多个缓存行(cacheline),地址查询表用于供命中判断模组122进行地址判断,以命中相应缓存行,其中,每个缓存行用于存储映射内存的缓存数据,缓存数据为映射内存13中相应内存块的内存数据。
不同缓存队列的地址查询表可被构建成相应数据结构形式,在一些实施例中,缓存队列包括第一缓存队列,地址查询表包括第一地址查询表,第一缓存队列包括若干个缓存行,其中,第一缓存队列中的各个缓存行的缓存长度可以相同,亦可以不同。
第一地址查询表包括内存块起始地址、缓存起始地址及有效位数据,其中,内存可被划分成字节长度不同的若干个内存块,内存块起始地址为映射到缓存行的内存块在内存中的首个内存地址,缓存起始地址为内存块映射到缓存行后在缓存队列的首个缓存地址,有效位数据包括至少一个有效位,每个有效位都用于表示相应缓存行的缓存数据的有效性,其中,每个有效位用于表示一个字节缓存数据的有效性,当有效位为0时,相应字节的缓存数据是有效的,当有效位为1时,相应字节的缓存数据是无效的。
请参阅图3,为了将内存13的相应内存数据映射到第一缓存队列31,内存13可被划分成若干个内存块,相应的内存块可映射到第一缓存队列31,例如,内存地址0-29对应的内存可当成内存块A0,其数据长度为30byte。内存地址300-419对应的内存可当成内存块A1,其数据长度为120byte。内存地址800-819对应的内存可当成内存块A2,其数据长度为20byte。内存地址820-879对应的内存可当成内存块A3,其数据长度为60byte。内存地址880-1019对应的内存可当成内存块A4,其数据长度为140byte。内存地址1200-1249对应的内存可当成内存块A5,其数据长度为50byte。
可以理解的是,图3所示的内存13中一些内存数据尚未映射到缓存队列中,为了直观的表达,本文将内存13中一些内存数据尚未映射到缓存队列中的内存块设置成空。
如图3所示,在第一地址查询表32中,第一缓存队列31第0缓存行的缓存长度为120byte,第一缓存队列31第1缓存行的缓存长度为30byte,第一缓存队列31第2缓存行的缓存长度为20byte,第一缓存队列31第3缓存行的缓存长度为60byte,第一缓存队列31第4缓存行的缓存长度为140byte,第一缓存队列31第5缓存行的缓存长度为50byte,因此,第一缓存队列中的各个缓存行的缓存长度可以不同。
如图3所示,内存块A1的缓存数据映射到第一缓存队列31第0缓存行,内存块A1的首个内存地址为“300”,因此,内存地址“300”为内存块A1的内存块起始地址。同理,内存块A0的缓存数据映射到第1缓存行,内存块A0的首个内存地址为“0”,因此,内存地址“0”为内存块A0的内存块起始地址,以此类推。
如图3所示,内存块A1映射到第一缓存队列31第0缓存行后,其在第一缓存队列31的首个缓存地址为“0”。内存块A0映射到第一缓存队列31第1缓存行后,其在第一缓存队列31的首个缓存地址为“120”。同理可得,内存块A2映射到第一缓存队列31第2缓存行后,其在第一缓存队列31的首个缓存地址为“150”。
如图3所示,第一缓存队列31第0缓存行的缓存长度为120byte,并且,第0缓存行中缓存长度为120byte的缓存数据都有效,因此,有效位数据为120个0,其中,有效位数据中每个有效位用于表示一个字节缓存数据的有效性,通常,有效位为“0”时,可代表此字节缓存数据是有效的,120个0便代表第0缓存行中缓存长度为120byte的缓存数据都有效。
在一些实施例中,缓存队列还包括第二缓存队列,地址查询表还包括第二地址查询表,第二缓存队列包括若干个缓存行,其中,第二缓存队列用于存储缓存长度大于预设长度阈值的缓存数据,第二缓存队列中的各个缓存行的缓存长度可以相同,亦可以不同。第二地址查询表包括内存块起始地址、缓存起始地址及有效位数据,内存块起始地址、缓存起始地址及有效位数据的含义同上所述,在此不赘述。
请继续参阅图3,为了将内存13的相应内存数据映射到第二缓存队列33,内存13可被划分成若干个内存块,相应的内存块可映射到第二缓存队列33,例如,内存地址30-239对应的内存可当成内存块B0,其数据长度为210byte。内存地址420-719对应的内存可当成内存块B1,其数据长度为300byte。内存地址1250-1649对应的内存可当成内存块B2,其数据长度为400byte。
如图3所示,在第二地址查询表34中,第二缓存队列33第0缓存行的缓存长度为210byte,第二缓存队列33第1缓存行的缓存长度为400byte,第二缓存队列33第2缓存行的缓存长度为300byte,因此,第二缓存队列中的各个缓存行的缓存长度可以不同。
如图3所示,内存块B0的缓存数据映射到第二缓存队列33第0缓存行,内存块B0的首个内存地址为“30”,因此,内存地址“30”为内存块B0的内存块起始地址。同理,内存块B2的缓存数据映射到第二缓存队列33第1缓存行,内存块B2的首个内存地址为“1250”,因此,内存地址“1250”为内存块B2的内存块起始地址。内存块B1的缓存数据映射到第二缓存队列33第2缓存行,内存块B1的首个内存地址为“420”,因此,内存地址“420”为内存块B1的内存块起始地址。
如图3所示,内存块B0映射到第二缓存队列33第0缓存行后,其在第二缓存队列33的首个缓存地址为“1000”。内存块B2映射到第二缓存队列33第1缓存行后,其在第二缓存队列33的首个缓存地址为“1210”。同理可得,内存块B1映射到第二缓存队列33第2缓存行后,其在第二缓存队列33的首个缓存地址为“1610”。
由图3可知,第一缓存队列31可存储缓存长度小于或等于200以下的缓存数据,第二缓存队列33可存储缓存长度大于200以上的缓存数据。
在一些实施例中,第一缓存队列31、第一地址查询表32、第二缓存队列33及第二地址查询表34都采用环形循环管理方式。
在一些实施例中,cache存储模组121为寄存器组或RAM存储器。
命中判断模组122用于根据访问请求,遍历地址查询表以确定是否命中缓存行,若命中,控制cache存储模组121与主设备11交互缓存数据,若否,产生加载命令。
在一些实施例中,访问请求携带最小内存请求地址与请求内存大小信息,命中判断模组122根据最小内存请求地址与请求内存大小信息,遍历地址查询表以确定是否命中缓存行。
具体的,根据最小内存请求地址与请求内存大小信息遍历地址查询表以确定是否命中缓存行的步骤包括:将最小内存请求地址与请求内存大小信息进行相加,得到最大内存请求地址,判断最小内存请求地址与最大内存请求地址是否同时落在目标地址映射范围,地址映射范围由缓存行的内存块起始地址与内存块结束地址界定,目标地址映射范围为各个缓存行对应的地址映射范围中的一个,内存块结束地址=内存块起始地址+缓存长度-1。若最小内存请求地址与最大内存请求地址同时落在地址映射范围,则命中判断模组122命中与目标地址映射范围对应的缓存行。若最小内存请求地址或最大内存请求地址未落在地址映射范围,则命中判断模组122未命中地址查询表的缓存行。
举例而言,访问请求携带最小内存请求地址“300”和请求内存大小信息“30byte”,命中判断模组122将最小内存请求地址“300”和请求内存大小信息“30byte”进行相加,得到最大内存请求地址“330”。第一缓存队列31第0缓存行的内存块起始地址为“300”,内存块结束地址为“419”,因此,目标地址映射范围为[300,419]。由于最小内存请求地址“300”和最大内存请求地址“330”同时落在目标地址映射范围[300,419],则命中判断模组122命中第一缓存队列31第0缓存行。
再举例而言,访问请求携带最小内存请求地址“250”和请求内存大小信息“30byte”,命中判断模组122将最小内存请求地址“250”和请求内存大小信息“30byte”进行相加,得到最大内存请求地址“280”。由于最大内存请求地址“280”未落在任一地址映射范围内,则命中判断模组122未命中第一缓存队列31或第二缓存队列33中任一缓存行。
再举例而言,访问请求携带最小内存请求地址“280”和请求内存大小信息“30byte”,命中判断模组122将最小内存请求地址“280”和请求内存大小信息“30byte”进行相加,得到最大内存请求地址“310”。虽然最大内存请求地址“310”落在地址映射范围[300,419],但是,最小内存请求地址“280”并未落在地址映射范围[300,419],因此,命中判断模组122未命中第一缓存队列31或第二缓存队列33中任一缓存行。
再举例而言,访问请求携带最小内存请求地址“430”和请求内存大小信息“60byte”,命中判断模组122将最小内存请求地址“430”和请求内存大小信息“60byte”进行相加,得到最大内存请求地址“490”。虽然最大内存请求地址“490”未落在第一缓存队列31中任意缓存行对应的地址映射范围,但是,最大内存请求地址“490”可落在第二缓存队列33中地址映射范围[420,719],并且,最小内存请求地址“30”也落在地址映射范围[420,719],因此,命中判断模组122命中第二缓存队列33第2缓存行。
若命中判断模组122命中第一缓存队列31或第二缓存队列33中相应的缓存行,则根据命中的缓存行对应的缓存起始地址、内存块起始地址及请求内存大小信息,计算最小缓存请求地址与最大缓存请求地址,根据最小缓存请求地址与最大缓存请求地址,控制主设备从cache存储模组读取数据,其中,最小缓存请求地址=最小内存请求地址-内存块起始地址+缓存起始地址,最大缓存请求地址=最小缓存请求地址+请求内存大小信息。
举例而言,命中判断模组122命中第一缓存队列31第0缓存行,其中,访问请求携带最小内存请求地址“300”和请求内存大小信息“30byte”。命中判断模组122查询第一地址查询表,得到第一缓存队列31第0缓存行的缓存起始地址为“0”,内存块起始地址为“300”,因此,最小缓存请求地址=300-300+0=0,最大缓存请求地址=0+30=30,因此,命中判断模组122根据最小缓存请求地址“0”与最大缓存请求地址“30”,控制主设备从cache存储模组读取数据。
再举例而言,命中判断模组122命中第二缓存队列33第2缓存行,其中,访问请求携带最小内存请求地址“430”和请求内存大小信息“60byte”。命中判断模组122查询第二地址查询表,得到第二缓存队列33第2缓存行的缓存起始地址为“1610”,内存块起始地址为“420”,因此,最小缓存请求地址=430-420+1610=1620,最大缓存请求地址=1620+60=1680,因此,命中判断模组122根据最小缓存请求地址“1620”与最大缓存请求地址“1680”,控制主设备从cache存储模组读取数据。
若命中判断模组122未命中第一缓存队列31和第二缓存队列33的任一缓存行,命中判断模组122向缓存行加载模组123传输加载命令,缓存行加载模组123用于根据加载命令,访问内存13。
缓存行更新模组124用于在缓存行加载模组123的控制下,对cache存储模组121的相应缓存行进行数据更新,例如,从内存13加载缓存数据到第一缓存队列31或第二缓存队列33,并且更新第一地址查询表32或第二地址查询表34。
可以理解的是,上述的命中判断模组122、缓存行加载模组123及缓存行更新模组124可由集成电路元件组成的具有逻辑运算功能和存储功能的芯片设计电路。
本发明实施例提供一种基于cache的缓存数据处理方法。请参阅图4,基于cache的缓存数据处理方法S400包括:
S41、遍历第一缓存队列的第一地址查询表;
第一缓存队列包括多个缓存行,每个缓存行的缓存长度可变,每个缓存行用于存储映射内存的缓存数据,第一地址查询表包括与每个缓存行对应的内存块起始地址。
S42、根据每个缓存行的内存块起始地址,确定满足地址连续条件的缓存行作为候选缓存行;
作为示例但非限定的是,满足地址连续条件是指映射到第一缓存队列中的一个内存块的内存块起始地址与另一个内存块的内存块结束地址相邻。举例而言,请结合图3,内存块A2映射到第一缓存队列31第2缓存行,内存块A2的内存块起始地址为“800”,内存块结束地址为“819”。内存块A3映射到第一缓存队列31第3缓存行,内存块A3的内存块起始地址为“820”,内存块结束地址为“879”。内存块A4映射到第一缓存队列31第4缓存行,内存块A4的内存块起始地址为“880”,内存块结束地址为“1019”。内存块A2的内存块结束地址“819”与内存块A3的内存块起始地址“820”是连续的,内存块A3的内存块结束地址“879”与内存块A4的内存块起始地址“880”是连续的,因此,第一缓存队列31第2缓存行、第一缓存队列31第3缓存行及第一缓存队列31第4缓存行都作为候选缓存行。
S43、根据各个候选缓存行的缓存长度及预设长度阈值,处理每个候选缓存行的缓存数据。
本实施例能够根据内存块起始地址的连续性,结合各个候选缓存行的缓存长度处理每个候选缓存行的缓存数据,避免在淘汰缓存数据时容易将地址连续的多个缓存行的缓存数据予以淘汰,避免在下次访问时,花费较多加载时间加载已被刷掉的地址连续的多个缓存行的缓存数据。
在一些实施例中,请参阅图5a,S42包括:
S421、根据每个缓存行的内存块起始地址及缓存长度,计算每个缓存行的内存块结束地址;
S422、若第一缓存队列中一个缓存行的内存块起始地址与另一个缓存行的内存块结束地址为连续的,则确定一个缓存行与另一个缓存行为候选缓存行;
S423、若第一缓存队列中一个缓存行的内存块起始地址与另一个缓存行的内存块结束地址为非连续的,则确定一个缓存行与另一个缓存行不为候选缓存行。
如前所述,内存块结束地址=内存块起始地址+缓存长度-1,命中判断模组搜索第一地址查询表,其中,第一缓存队列31第2缓存行的内存块起始地址为“800”,缓存长度为20,则第一缓存队列31第2缓存行的内存块结束地址=800+20-1=819。第一缓存队列31第3缓存行的内存块起始地址为“820”,缓存长度为60,则第一缓存队列31第3缓存行的内存块结束地址=820+60-1=879。第一缓存队列31第4缓存行的内存块起始地址为“880”,缓存长度为140,则第一缓存队列31第4缓存行的内存块结束地址=880+140-1=1019。
由于内存块A2的内存块结束地址“819”与内存块A3的内存块起始地址“820”是连续的,内存块A3的内存块结束地址“879”与内存块A4的内存块起始地址“880”是连续的,因此,第一缓存队列31第2缓存行、第一缓存队列31第3缓存行及第一缓存队列31第4缓存行都作为候选缓存行。
对于第一缓存队列31第1缓存行,第一缓存队列31第1缓存行的内存块起始地址为“0”,缓存长度为30,则第一缓存队列31第1缓存行的内存块结束地址=0+30-1=29。由于第一缓存队列31第1缓存行的内存块结束地址“29”与第一缓存队列31第2缓存行的内存块起始地址为“800”是非连续的,因此,第一缓存队列31第1缓存行与第2缓存行不为候选缓存行。
在一些实施例中,请参阅图5b,S43包括:
S431、自起始候选缓存行开始,按照地址连续顺序累加每个候选缓存行的缓存长度,得到每次累加后的长度结果;
S432、判断每次累加后的长度结果是否大于预设长度阈值;
S433、若是,将参与累加过程的候选缓存行作为目标缓存行,处理每个目标缓存行的缓存数据;
S434、若否,继续按照地址连续顺序累加每个候选缓存行的缓存长度。
作为示例但非限定的是,起始候选缓存行为各个候选缓存行中最小内存块起始地址或最大内存块起始地址对应的候选缓存行,例如,起始候选缓存行可以为第一缓存队列31第2缓存行,亦可以为第一缓存队列31第4缓存行。地址连续顺序为内存块起始地址按照由大及小的顺序或者由小及大的顺序,例如,地址连续顺序为内存块起始地址“800”—内存块起始地址“820”---内存块起始地址“880”。
执行步骤S431时,举例而言,本实施例自第一缓存队列31第2缓存行开始,按照“800-820-880”的地址连续顺序,先将第一缓存队列31第2缓存行的缓存长度“20”与第一缓存队列31第3缓存行“60”进行累加,得到第一次累加后的长度结果,其中,长度结果为20+60=80。
执行步骤S432时,本实施例判断第一次累加后的长度结果是否大于预设长度阈值,其中,预设长度阈值由用户自定义,例如,预设长度阈值为200。由于第一次累加后的长度结果“80”小于预设长度阈值“200”,因此,执行步骤S434,亦即,继续按照地址连续顺序累加每个候选缓存行的缓存长度。
接着,本实施例再将第一缓存队列31第4缓存行的缓存长度“140”与第一次累加后的长度结果进行累加,得到第二次累加后的长度结果,其中,长度结果为80+140=220。
执行步骤S432时,本实施例判断第二次累加后的长度结果是否大于预设长度阈值。由于第二次累加后的长度结果“220”大于预设长度阈值“200”,因此,执行步骤S433,亦即,将参与累加过程的候选缓存行作为目标缓存行,处理每个目标缓存行的缓存数据,其中,由于第一缓存队列31第2缓存行、第一缓存队列31第3缓存行及第一缓存队列31第4缓存行都参与累加过程,因此,第一缓存队列31第2缓存行、第一缓存队列31第3缓存行及第一缓存队列31第4缓存行都为目标缓存行。
在一些实施例中,处理每个目标缓存行的缓存数据时,请参阅图5c,S433包括:
S4331、获取第二缓存队列及第二地址查询表;
S4332、将全部目标缓存行的缓存数据转移至第二缓存队列中的参考缓存行,并更新第一地址查询表及第二地址查询表。
在一些实施例中,更新第一地址查询表时,本实施例可在第一地址查询表中,将目标缓存行对应的有效位数据全部设置为无效状态,亦即,将目标缓存行对应的有效位数据全部置1,举例而言,请参阅图6,对于第一缓存队列61第2缓存行、第一缓存队列61第3缓存行及第一缓存队列61第4缓存行,在第一地址查询表62中,第一缓存队列61第2缓存行对应的有效位数据为20个“1”,第一缓存队列61第3缓存行对应的有效位数据为60个“1”,第一缓存队列61第4缓存行对应的有效位数据为140个“1”。
在一些实施例中,更新第二地址查询表时,本实施例选择全部目标缓存行中最小内存地址作为所述参考缓存行的内存块起始地址,根据第二地址查询表中最近缓存行的缓存起始地址及缓存长度,计算所述参考缓存行的缓存起始地址,所述最近缓存行与所述参考缓存行在第二地址查询表的逻辑位置是相邻的,并且,将全部目标缓存行的总缓存长度作为所述参考缓存行的缓存长度。
由于参考缓存行的缓存数据都是有效的,因此本实施例根据参考缓存行的缓存长度,确定参考缓存行的有效位数据。
举例而言,请继续参阅图6,在第一缓存队列61第2缓存行、第一缓存队列61第3缓存行及第一缓存队列61第4缓存行中,最小内存地址为“800”,因此,参考缓存行S0的内存块起始地址为“800”。在第二缓存队列63的第二地址查询表64中,第二缓存队列33第2缓存行与参考缓存行S0在第二地址查询表的逻辑位置是相邻的,因此,第二缓存队列33第2缓存行为最近缓存行。
本实施例将第二缓存队列33第2缓存行的缓存起始地址“1610”及缓存长度“300”进行相加,得到参考缓存行S0的缓存起始地址“1910”。
本实施例将全部目标缓存行的总缓存长度作为参考缓存行的缓存长度,亦即参考缓存行的缓存长度=20+60+140=220。
由于参考缓存行的缓存数据都是有效的,因此参考缓存行的有效位数据为220,用于表示220个“0”。
总体而言,请结合图3,若主设备访问内存的连续性很强,例如,主设备频繁多次需要连续性地访问内存块A2、内存块A3及内存块A4,于是,cache将内存块A2、内存块A3及内存块A4分别装载在第一缓存队列31中。经过一段过程后,假设第一缓存队列31按照缓存淘汰算法,将内存块A2、内存块A3及内存块A4从第一缓存队列31中删除,后续主设备需要再次访问内存块A2、内存块A3及内存块A4时,cache又需要花费较多时间从内存中装载内存块A2、内存块A3及内存块A4,对于一些连续性较强的内存访问过程中,此种作法是降低数据访问效率的。
请结合图6,本实施例将第一缓存队列中的内存块A2、内存块A3及内存块A4整体转移至第二缓存队列的同一缓存行中,一方面,第一缓存队列可承接缓存长度较短的缓存数据以便主设备的访问,另一方面,通过将内存地址连续的多个内存块提前转移到第二缓存队列,可避免第一缓存队列采用缓存淘汰算法而容易将缓存长度短且内存地址连续的多个内存块给予以删除,避免在下次访问时,花费较多加载时间加载已被刷掉的地址连续的多个缓存行的缓存数据,从而提高数据访问效率。
在一些实施例中,在遍历第一缓存队列的第一地址查询表之前,请参阅图7a,基于cache的缓存数据处理方法S400还包括:
S44、根据待加载缓存数据的缓存长度与预设长度阈值,确定目标缓存队列;
S45、将待加载缓存数据映射至目标缓存队列的相应缓存行中。
在一些实施例中,执行S44时,本实施例判断待加载缓存数据的缓存长度是否大于或等于预设长度阈值,若是,选择第二缓存队列作为目标缓存队列,若否,选择第一缓存队列作为目标缓存队列。
举例而言,待加载缓存数据的缓存长度为120,预设长度阈值为200,由于待加载缓存数据的缓存长度小于预设长度阈值,选择第一缓存队列作为目标缓存队列,后续将待加载缓存数据映射至第一缓存队列的相应缓存行中。同理,假设待加载缓存数据的缓存长度为250,由于待加载缓存数据的缓存长度大于预设长度阈值,选择第二缓存队列作为目标缓存队列,后续将待加载缓存数据映射至第二缓存队列的相应缓存行中。
在一些实施例中,将第一缓存队列中缓存行的缓存数据转移至第二缓存队列中的缓存行时,延时转移方式会优于即时转移方式,因为:在即时转移方式中,将第一缓存队列中缓存行的缓存数据转移至第二缓存队列中的缓存行,此时第一缓存队列的相应缓存行的存储空间被空出,同时,虽然第二缓存队列多了一条缓存行的缓存数据,但是,第二缓存队列本身也会按照缓存淘汰策略进行淘汰数据,第二缓存队列也会将相应的缓存行的缓存数据予以淘汰,从整体来看,第一缓存队列与第二缓存队列就减少一条缓存数据,当主设备访问cache时,减少的那条缓存数据可能是主设备需要抓取的数据,即时转移方式会降低数据命中率,未能够高效地利用缓存空间。
因此,在一些实施例中,在遍历第一缓存队列的第一地址查询表之前,请参阅图7b,基于cache的缓存数据处理方法S400还包括:
S46、检测第一缓存队列是否加载新缓存数据,若是,进入步骤S41,S47、若否,保持第一缓存队列的缓存状态。
采用此种作法,有利于提高数据命中率和高效地利用缓存空间。
举例而言,请参阅图8a,由于第一缓存队列81出现上文所阐述的情况,第一缓存队列81将相应缓存数据转移至第二缓存队列82的同一缓存行,同时,第一缓存队列81也会接收新缓存数据的加入。并且,第一缓存队列81与第二缓存队列82都可以选择相应的缓存淘汰算法进行淘汰数据,例如,缓存淘汰算法包括LRU算法、LFU算法、FIFO算法、2Q算法(twoqueues,双队列)或MQ算法(multi queues,多队列)。
请参阅图8b,第一缓存队列81与第二缓存队列82可将待淘汰的缓存数据转移至第三缓存队列83,其中,第三缓存队列83可以选择相应的缓存淘汰算法进行淘汰数据。
请参阅图8c,本实施例根据缓存长度淘汰算法,将第三缓存队列83中待淘汰的缓存数据转移至第四缓存队列84。并且,本实施例根据预设淘汰算法,淘汰第四缓存队列84的缓存数据。
需要说明的是,在上述各个实施方式中,上述各步骤之间并不必然存在一定的先后顺序,本领域普通技术人员,根据本发明实施方式的描述可以理解,不同实施方式中,上述各步骤可以有不同的执行顺序,亦即,可以并行执行,亦可以交换执行等等。
请参阅图9,图9为本发明实施例提供的一种芯片的电路结构示意图。如图9所示,芯片900包括一个或多个处理器91以及存储器92。其中,图9中以一个处理器91为例。
处理器91和存储器92可以通过总线或者其他方式连接,图9中以通过总线连接为例。
存储器92作为一种非易失性计算机可读存储介质,可用于存储非易失性软件程序、非易失性计算机可执行程序以及模块,如本发明实施例中的基于cache的缓存数据处理方法对应的程序指令/模块。处理器91通过运行存储在存储器92中的非易失性软件程序、指令以及模块,从而实现上述方法实施例提供的基于cache的缓存数据处理方法的功能。
存储器92可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实施例中,存储器92可选包括相对于处理器91远程设置的存储器,这些远程存储器可以通过网络连接至处理器91。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
所述程序指令/模块存储在所述存储器92中,当被所述一个或者多个处理器91执行时,执行上述任意方法实施例中的基于cache的缓存数据处理方法。
本发明实施例还提供了一种非易失性计算机存储介质,所述计算机存储介质存储有计算机可执行指令,该计算机可执行指令被一个或多个处理器执行,例如图9中的一个处理器91,可使得上述一个或多个处理器可执行上述任意方法实施例中的基于cache的缓存数据处理方法。
本发明实施例还提供了一种计算机程序产品,所述计算机程序产品包括存储在非易失性计算机可读存储介质上的计算机程序,所述计算机程序包括程序指令,当所述程序指令被芯片执行时,使所述芯片执行任一项所述的基于cache的缓存数据处理方法。
以上所描述的装置或设备实施例仅仅是示意性的,其中所述作为分离部件说明的单元模块可以是或者也可以不是物理上分开的,作为模块单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络模块单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对相关技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;在本发明的思路下,以上实施例或者不同实施例中的技术特征之间也可以进行组合,步骤可以以任意顺序实现,并存在如上所述的本发明的不同方面的许多其它变化,为了简明,它们没有在细节中提供;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。

Claims (10)

1.一种基于cache的缓存数据处理方法,其特征在于,包括:
遍历第一缓存队列的第一地址查询表,所述第一缓存队列包括多个缓存行,每个所述缓存行的缓存长度可变,每个所述缓存行用于存储映射内存的缓存数据,所述第一地址查询表包括与每个所述缓存行对应的内存块起始地址;
根据每个所述缓存行的内存块起始地址,确定满足内存地址连续条件的缓存行作为候选缓存行;
根据各个所述候选缓存行的缓存长度及预设长度阈值,处理每个所述候选缓存行的缓存数据。
2.根据权利要求1所述的方法,其特征在于,所述根据各个所述候选缓存行的缓存长度及预设长度阈值,处理每个所述候选缓存行的缓存数据包括:
自起始候选缓存行开始,按照地址连续顺序累加每个候选缓存行的缓存长度,得到每次累加后的长度结果;
判断每次累加后的长度结果是否大于预设长度阈值;
若是,将参与累加过程的候选缓存行作为目标缓存行,处理每个所述目标缓存行的缓存数据;
若否,继续按照地址连续顺序累加每个候选缓存行的缓存长度。
3.根据权利要求2所述的方法,其特征在于,所述处理每个所述目标缓存行的缓存数据包括:
获取第二缓存队列及第二地址查询表;
将全部所述目标缓存行的缓存数据转移至所述第二缓存队列中的参考缓存行,并更新所述第一地址查询表及所述第二地址查询表。
4.根据权利要求3所述的方法,其特征在于,在遍历第一缓存队列的第一地址查询表之前,还包括:
根据待加载缓存数据的缓存长度与预设长度阈值,确定目标缓存队列;
将所述待加载缓存数据映射至所述目标缓存队列的相应缓存行中。
5.根据权利要求4所述的方法,其特征在于,所述根据待加载缓存数据的缓存长度与预设长度阈值,确定目标缓存队列包括:
判断待加载缓存数据的缓存长度是否大于或等于预设长度阈值;
若是,选择所述第二缓存队列作为目标缓存队列;
若否,选择所述第一缓存队列作为目标缓存队列。
6.根据权利要求1至5任一项所述的方法,其特征在于,所述根据每个所述缓存行的内存块起始地址,确定满足内存地址连续条件的缓存行作为候选缓存行包括:
根据每个所述缓存行的内存块起始地址及缓存长度,计算每个所述缓存行的内存块结束地址;
若所述第一缓存队列中一个所述缓存行的内存块起始地址与另一个所述缓存行的内存块结束地址为连续的,则确定一个所述缓存行与另一个所述缓存行为候选缓存行。
7.根据权利要求1至5任一项所述的方法,其特征在于,在遍历第一缓存队列的第一地址查询表之前,还包括:
检测所述第一缓存队列是否加载新缓存数据;
若是,进入遍历第一缓存队列的第一地址查询表的步骤;
若否,保持所述第一缓存队列的缓存状态。
8.一种存储介质,其特征在于,所述存储介质存储有计算机可执行指令,所述计算机可执行指令用于使电子设备执行如权利要求1至7任一项所述的基于cache的缓存数据处理方法。
9.一种芯片,其特征在于,包括:
至少一个处理器;以及,
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行如权利要求1至7任一项所述的基于cache的缓存数据处理方法。
10.一种cache控制器,其特征在于,包括:
cache存储模组,包括至少一个缓存队列,每个所述缓存队列包括多个缓存行,每个所述缓存行的缓存长度可变,每个所述缓存行用于存储映射内存的缓存数据;
命中判断模组,用于根据主设备发送的访问请求,判断是否命中所述cache存储模组中的相应缓存行,若是,控制所述cache存储模组与主设备交互缓存数据,若否,产生加载命令;
缓存行加载模组,用于根据所述加载命令,访问所述内存;
缓存行更新模组,用于在所述缓存行加载模组的控制下,对所述cache存储模组的相应缓存行进行数据更新。
CN202111081748.5A 2021-09-15 2021-09-15 基于cache的缓存数据处理方法、存储介质及芯片 Active CN113791989B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111081748.5A CN113791989B (zh) 2021-09-15 2021-09-15 基于cache的缓存数据处理方法、存储介质及芯片

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111081748.5A CN113791989B (zh) 2021-09-15 2021-09-15 基于cache的缓存数据处理方法、存储介质及芯片

Publications (2)

Publication Number Publication Date
CN113791989A true CN113791989A (zh) 2021-12-14
CN113791989B CN113791989B (zh) 2023-07-14

Family

ID=78878470

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111081748.5A Active CN113791989B (zh) 2021-09-15 2021-09-15 基于cache的缓存数据处理方法、存储介质及芯片

Country Status (1)

Country Link
CN (1) CN113791989B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115809208A (zh) * 2023-01-19 2023-03-17 北京象帝先计算技术有限公司 缓存数据刷新方法、装置、图形处理***及电子设备

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101826056A (zh) * 2009-02-20 2010-09-08 Arm有限公司 数据处理设备和方法
CN103761052A (zh) * 2013-12-28 2014-04-30 华为技术有限公司 一种管理高速缓存的方法及存储装置
WO2019127104A1 (zh) * 2017-12-27 2019-07-04 华为技术有限公司 高速缓存中资源调整方法、数据访问方法及装置
CN110119487A (zh) * 2019-04-15 2019-08-13 华南理工大学 一种适用于发散数据的缓存更新方法
CN111290974A (zh) * 2018-12-07 2020-06-16 北京忆恒创源科技有限公司 用于存储设备的缓存淘汰方法与存储设备
CN111367833A (zh) * 2020-03-31 2020-07-03 中国建设银行股份有限公司 数据缓存方法、装置、计算机设备以及可读存储介质
WO2020199061A1 (zh) * 2019-03-30 2020-10-08 华为技术有限公司 一种处理方法、装置及相关设备
CN113138944A (zh) * 2020-01-20 2021-07-20 华为技术有限公司 数据缓存方法和相关产品
CN113342709A (zh) * 2021-06-04 2021-09-03 海光信息技术股份有限公司 在多处理器***中访问数据的方法和多处理器***

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101826056A (zh) * 2009-02-20 2010-09-08 Arm有限公司 数据处理设备和方法
CN103761052A (zh) * 2013-12-28 2014-04-30 华为技术有限公司 一种管理高速缓存的方法及存储装置
WO2019127104A1 (zh) * 2017-12-27 2019-07-04 华为技术有限公司 高速缓存中资源调整方法、数据访问方法及装置
CN111290974A (zh) * 2018-12-07 2020-06-16 北京忆恒创源科技有限公司 用于存储设备的缓存淘汰方法与存储设备
WO2020199061A1 (zh) * 2019-03-30 2020-10-08 华为技术有限公司 一种处理方法、装置及相关设备
CN110119487A (zh) * 2019-04-15 2019-08-13 华南理工大学 一种适用于发散数据的缓存更新方法
CN113138944A (zh) * 2020-01-20 2021-07-20 华为技术有限公司 数据缓存方法和相关产品
CN111367833A (zh) * 2020-03-31 2020-07-03 中国建设银行股份有限公司 数据缓存方法、装置、计算机设备以及可读存储介质
CN113342709A (zh) * 2021-06-04 2021-09-03 海光信息技术股份有限公司 在多处理器***中访问数据的方法和多处理器***

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115809208A (zh) * 2023-01-19 2023-03-17 北京象帝先计算技术有限公司 缓存数据刷新方法、装置、图形处理***及电子设备

Also Published As

Publication number Publication date
CN113791989B (zh) 2023-07-14

Similar Documents

Publication Publication Date Title
US9361236B2 (en) Handling write requests for a data array
US10725923B1 (en) Cache access detection and prediction
US10929308B2 (en) Performing maintenance operations
JP4451717B2 (ja) 情報処理装置および情報処理方法
CN109154912B (zh) 根据另一个高速缓存中条目的可用性替换高速缓存条目
JP2004038345A (ja) プリフェッチ制御装置、情報処理装置及びプリフェッチ制御方法
JP2008502069A (ja) メモリ・キャッシュ制御装置及びそのためのコヒーレンシ動作を実行する方法
CN113407119B (zh) 数据预取方法、数据预取装置、处理器
US8484424B2 (en) Storage system, control program and storage system control method
CN113760787B (zh) 多级高速缓存数据推送***、方法、设备和计算机介质
KR100987996B1 (ko) 메모리 액세스 제어 장치 및 메모리 액세스 제어 방법
US20210064545A1 (en) Home agent based cache transfer acceleration scheme
CN114217861A (zh) 数据处理方法及装置、电子装置和存储介质
KR102482516B1 (ko) 메모리 어드레스 변환
CN113791989B (zh) 基于cache的缓存数据处理方法、存储介质及芯片
US20090144505A1 (en) Memory Device
US20130339624A1 (en) Processor, information processing device, and control method for processor
CN109669881B (zh) 一种基于Cache空间预约算法的计算方法
US20170046262A1 (en) Arithmetic processing device and method for controlling arithmetic processing device
US8255632B2 (en) Pre-fetch control apparatus
US20010032297A1 (en) Cache memory apparatus and data processing system
JP4742432B2 (ja) メモリシステム
JP2000267935A (ja) キヤッシュメモリ装置
JP7311959B2 (ja) 複数のデータ・タイプのためのデータ・ストレージ
JP4463152B2 (ja) マルチプロセッサシステム及びそれに用いるコピーキャッシュ情報掃き出しレベル選択方法

Legal Events

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