CN115080459A - 缓存管理方法及装置、计算机可读存储介质 - Google Patents

缓存管理方法及装置、计算机可读存储介质 Download PDF

Info

Publication number
CN115080459A
CN115080459A CN202110269701.5A CN202110269701A CN115080459A CN 115080459 A CN115080459 A CN 115080459A CN 202110269701 A CN202110269701 A CN 202110269701A CN 115080459 A CN115080459 A CN 115080459A
Authority
CN
China
Prior art keywords
data
cache
knowledge information
level
level 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.)
Pending
Application number
CN202110269701.5A
Other languages
English (en)
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 Cloud Computing Technologies Co Ltd
Original Assignee
Huawei Cloud Computing 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 Cloud Computing Technologies Co Ltd filed Critical Huawei Cloud Computing Technologies Co Ltd
Priority to CN202110269701.5A priority Critical patent/CN115080459A/zh
Publication of CN115080459A publication Critical patent/CN115080459A/zh
Pending legal-status Critical Current

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/0893Caches characterised by their organisation or structure
    • G06F12/0897Caches characterised by their organisation or structure with two or more cache hierarchy levels
    • 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/0811Multiuser, multiprocessor or multiprocessing cache systems with multilevel cache hierarchies

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)

Abstract

公开了一种缓存管理方法及装置、计算机可读存储介质,属于计算机技术领域。计算机设备根据多级缓存的全局知识信息对该多级缓存进行缓存管理,使得每级缓存能够感知到全局数据信息的变化,在进行缓存调度和/或各级缓存进行缓存淘汰时,可以利用全局知识信息进行综合决策,实现在有限的缓存空间内存储更多有价值的数据,从而实现全局较高的缓存命中率和数据读取速度,改善系统性能。

Description

缓存管理方法及装置、计算机可读存储介质
技术领域
本申请涉及计算机技术领域,特别涉及一种缓存管理方法及装置、计算机可读存储介质。
背景技术
缓存技术作为一种基本的计算机技术,其广泛应用于计算机的各种软硬件系统,例如中央处理器(central processing unit,CPU)、存储器、数据库和网页(web)服务器等。缓存是一个硬件或软件的组件,被用来存储数据以提升系统的数据读取速度,进而提升系统整体性能。
当前大多数计算机系统采用多级缓存结构。多级缓存包括容量较小但数据读取速度较快的缓存以及容量较大但数据读取速度较慢的缓存,例如,多级缓存可以包括寄存器、高速缓冲存储器(cache)(例如可以是静态随机存取存储器(static random accessmemory,SRAM))、主存(例如可以是动态随机存取存储器(dynamic random access memory,DRAM))、本地固态硬盘(solid state drives,SSD)、本地外存储器(例如本地硬盘)和/或远程外存储器(例如分布式文件系统和web服务器)等。
若需要提升采用多级缓存结构的计算机系统的缓存性能,关键在于提升多级缓存整体的缓存命中率和数据读取速度,即利用有限的空间来存储更多有价值的数据,且价值更高的数据放在数据读取速度更快的缓存中。因此目前亟需一种对多级缓存进行管理的方法。
发明内容
本申请提供了一种缓存管理方法及装置、计算机可读存储介质。
第一方面,提供了一种缓存管理方法。该方法包括:计算机设备获取多级缓存的全局知识信息,该全局知识信息包括该多级缓存中所存储的多种数据分别对应的知识信息。知识信息包括数据特征、访问特征和存储位置中的一种或多种。存储位置包括多级缓存中的至少一级缓存。计算机设备根据全局知识信息对多级缓存进行缓存管理。
本申请中,计算机设备根据多级缓存的全局知识信息对该多级缓存进行缓存管理,使得每级缓存能够感知到全局数据信息的变化,在进行缓存调度和/或各级缓存进行缓存淘汰时,可以利用全局知识信息进行综合决策,实现在有限的缓存空间内存储更多有价值的数据,从而实现全局较高的缓存命中率和数据读取速度,改善系统性能。
可选地,数据特征包括数据类型和/或数据量。
可选地,访问特征包括访问时间序列和/或访问频率,访问时间序列用于表征对应的数据在多个第一时长内是否被读取,访问频率用于表征对应的数据在第二时长内被读取的次数。
可选地,计算机设备根据全局知识信息对多级缓存进行缓存管理的实现过程,包括:响应于接收到用于请求读取第一数据的读请求,计算机设备从全局知识信息中获取第一数据的第一存储位置。计算机设备根据第一存储位置从多级缓存中读取第一数据。
本申请中,计算机设备可以根据多级缓存的全局知识信息确定待读取数据的存储位置,然后根据该存储位置直接读取到对应的数据,在数据读取过程中无需按照多级缓存的数据读取速度依次查询该多级缓存,提高了数据读取效率。
可选地,计算机设备还可以更新全局知识信息中第一数据对应的访问特征。
可选地,响应于更新后的第一数据对应的访问特征满足缓存提升条件,计算机设备还可以在多级缓存中的目标级缓存写入第一数据,并更新第一数据的存储位置,该目标级缓存的数据读取速度高于第一存储位置的数据读取速度。其中,缓存提升条件包括:访问频率达到目标级缓存对应的访问频率阈值。
本申请中,计算机设备还可以更新数据的访问特征,并根据更新后的访问特征判断是否需要对该数据进行调度,从而使得价值更高的数据能够存储在数据读取速度更快的缓存中,提高数据读取效率。
可选地,全局知识信息还包括多级缓存中存储过的历史数据对应的历史知识信息,计算机设备根据全局知识信息对多级缓存进行缓存管理的实现过程,包括:响应于接收到用于请求写入第二数据的写请求,计算机设备查询全局知识信息中是否存在第二数据对应的历史知识信息。响应于全局知识信息中不存在第二数据对应的历史知识信息,计算机设备根据第二数据的数据特征,在多级缓存中确定第二存储位置;或者,响应于全局知识信息中存在第二数据对应的历史知识信息,计算机设备根据第二数据对应的历史访问特征,在多级缓存中确定第二存储位置。计算机设备在第二存储位置写入第二数据。
本申请中,计算机设备可以根据数据的数据特征和/或数据的历史知识信息,在针对多级缓存的全局综合决策下,直接将数据写入合适的缓存层级中,从而提高缓存利用率和数据存储可靠性。
可选地,计算机设备根据全局知识信息对多级缓存进行缓存管理的实现过程,包括:对于多级缓存中的每级缓存,当缓存的存储量达到缓存的容量阈值时,计算机设备根据全局知识信息确定缓存中的待淘汰数据。
本申请中,计算机设备可以根据多级缓存中所存储的数据对应的知识信息,来确定每级缓存中的待淘汰数据,在实现单级缓存的缓存命中率较高的同时,实现较高的全局缓存命中率。
第二方面,提供了一种缓存管理装置。所述装置包括多个功能模块,所述多个功能模块相互作用,实现上述第一方面及其各实施方式中的方法。所述多个功能模块可以基于软件、硬件或软件和硬件的结合实现,且所述多个功能模块可以基于具体实现进行任意组合或分割。
第三方面,提供了一种计算机设备,包括:处理器和存储器;
所述存储器,用于存储计算机程序,所述计算机程序包括程序指令;
所述处理器,用于调用所述计算机程序,实现上述第一方面及其各实施方式中的方法。
第四方面,提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有指令,当所述指令被处理器执行时,实现上述第一方面及其各实施方式中的方法。
第五方面,提供了一种芯片,芯片包括可编程逻辑电路和/或程序指令,当芯片运行时,实现上述第一方面及其各实施方式中的方法。
本申请提供的技术方案带来的有益效果至少包括:
计算机设备根据多级缓存的全局知识信息对该多级缓存进行缓存管理,使得每级缓存能够感知到全局数据信息的变化,在进行缓存调度和/或各级缓存进行缓存淘汰时,可以利用全局知识信息进行综合决策,实现在有限的缓存空间内存储更多有价值的数据,从而实现全局较高的缓存命中率和数据读取速度,改善系统性能。例如,计算机设备可以根据多级缓存的全局知识信息确定待读取数据的存储位置,然后根据该存储位置直接读取到对应的数据,在数据读取过程中无需按照多级缓存的数据读取速度依次查询该多级缓存,提高了数据读取效率。另外,计算机设备还可以更新数据的访问特征,并根据更新后的访问特征判断是否需要对该数据进行调度,从而使得价值更高的数据能够存储在数据读取速度更快的缓存中,提高数据读取效率。又例如,计算机设备还可以根据数据的数据特征和/或数据的历史知识信息,在针对多级缓存的全局综合决策下,直接将数据写入合适的缓存层级中,从而提高缓存利用率和数据存储可靠性。又例如,计算机设备还可以根据多级缓存中所存储的数据对应的知识信息,来确定每级缓存中的待淘汰数据,在实现单级缓存的缓存命中率较高的同时,实现较高的全局缓存命中率。
附图说明
图1是本申请实施例提供的一种多级缓存的结构示意图;
图2是本申请实施例提供的一种缓存管理方法的流程示意图;
图3是本申请实施例提供的一种采用多级缓存结构的计算机系统的结构示意图;
图4是本申请实施例提供的一种缓存管理装置的结构示意图;
图5是本申请实施例提供的另一种缓存管理装置的结构示意图;
图6是本申请实施例提供的一种计算机设备的框图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。
缓存,全称是高速缓冲存储器,原始意义是指数据读取速度比一般随机存取存储器(random access memory,RAM)更快的一种RAM,其作用是为了更好的利用局部性原理,减少CPU访问主存的次数。如今缓存的概念已被扩充,凡是位于数据读取速度相差较大的两种硬件之间,用于协调两者数据传输速度差异的结构,均可称之为缓存。
缓存的效率主要由缓存命中率来衡量。缓存中存储了要被访问的数据,即命中;缓存中没有存储要被访问的数据,即不命中。缓存命中率=命中数/(命中数+不命中数)。
一般而言,数据读取速度越快的缓存成本就越高,容量就会相对比较小。因此目前计算机系统通常采用多级缓存结构,利用容量较小但数据读取速度较快的缓存来存储价值相对较高的数据,利用容量较大但数据读取速度较慢的缓存来存储价值相对较低和/或数据量较大的数据。例如,图1是本申请实施例提供的一种多级缓存的结构示意图。如图1所示,该多级缓存按照数据读取速度由快到慢、容量由小到大的顺序依次包括:寄存器、1级高速缓冲存储器(简称:L1高速缓存)、2级高速缓冲存储器(简称:L2高速缓存)、3级高速缓冲存储器(简称:L3高速缓存)、主存、SSD、本地外存储器和远程外存储器。其中,L1高速缓存、L2高速缓存和L3高速缓存具体可以是SRAM等;主存具体可以是DRAM等;本地外存储器具体可以是本地硬盘等;远程外存储器具体可以是分布式文件系统或web服务器等。本申请实施例中,将数据读取速度快的缓存称为数据读取速度慢的缓存的上级缓存,反之,将数据读取速度慢的缓存称为数据读取速度快的缓存的下级缓存。例如在如图1所示的多级缓存中,寄存器、高速缓冲存储器和主存均为SSD的上级缓存,其中主存为SSD的上一级缓存。
对于多级缓存而言,由于每级缓存的容量都有限,因此相关技术中提出了采用缓存淘汰算法和缓存调度算法来对多级缓存进行管理,以尽可能提升多级缓存整体的缓存命中率和数据读取速度。
常见的缓存淘汰算法包括先进先出(first in first out,FIFO)算法、最近最少使用(least recently used,LRU)算法和最不频繁使用(least frequently used,LFU)算法。FIFO算法的思想是先写入缓存的数据先被淘汰,一般每级缓存采用一个队列实现。LRU算法的思想是保留新数据,淘汰老数据,一般每级缓存采用一个散列表和一个双向链表实现,散列表用于存储关键值(key),双向链表用于存储数据。LFU算法的思想是保留访问频率高的数据,淘汰访问频率低的数据。但是目前的缓存淘汰算法都是针对单级缓存实现的,即使每级缓存都能达到本级较好的缓存命中率,由于各级缓存之间的知识信息不互通,无法进行综合决策,很难达到全局较好的缓存命中率。因此目前采用的缓存淘汰算法的可靠性较低。
目前针对多级缓存的缓存调度算法通常采用逐级提升的方式实现,具体包括:在多级缓存中进行数据查询时,先查询数据读取速度最快的第一级缓存,若在第一级缓存中未查询到数据再查询第二级缓存(即第一级缓存的下一级缓存),以此类推,直至查询到数据。当在除第一级缓存以外的缓存中查询到数据时,将该数据写入该缓存的上一级缓存中。例如,计算机系统采用三级缓存结构,包括SRAM、DRAM和主存,上层应用在该三级缓存中查询数据时,先查询SRAM中是否存储有该数据;若SRAM中未存储有该数据,再查询DRAM中是否存储有该数据;若DRAM中未存储有该数据,再查询主存中是否存储有该数据;若该数据在主存中命中,则在向上层应用返回该数据的同时将该数据写入DRAM中。但是,目前针对多级缓存的缓存调度算法需要进行数据的逐级搬迁数据调度效率较低。另外,在读取数据时也需要按照多级缓存的数据读取速度依次查询该多级缓存,数据读取效率也较低。
本申请实施例提供了一种缓存管理方法,该方法可以应用于各种计算机系统或网络,例如可以应用于内容分发网络(content distribution network,CDN)等。图2是本申请实施例提供的一种缓存管理方法的流程示意图。该方法可以应用于计算机设备,例如终端或服务器等。如图2所示,该方法包括:
步骤201、获取多级缓存的全局知识信息。
多级缓存的全局知识信息包括该多级缓存中所存储的多种数据分别对应的知识信息,该知识信息包括数据特征、访问特征和存储位置中的一种或多种。一种数据可能会存储在一级、两级或更多级缓存中,本申请实施例涉及的一种数据指的是存储在一级、两级或更多级缓存中的同一数据。
存储位置用来记录数据在多级缓存中的位置。多级缓存中所存储的每种数据的存储位置包括该多级缓存中的至少一级缓存,也即是,多级缓存中所存储的每种数据在该多级缓存的至少一级缓存中。例如以三级缓存(包括缓存L1、缓存L2和缓存L3)为例,该三级缓存中存储有数据A、数据B、数据C和数据D这四种数据,数据A存储在缓存L1、缓存L2和缓存L3中,数据B存储在缓存L2和缓存L3中,数据C存储在缓存L1和缓存L3中,数据D存储在缓存L3中,则数据A的存储位置包括缓存L1、缓存L2和缓存L3,可以表示为[L1,L2,L3],数据B的存储位置包括缓存L2和缓存L3,可以表示为[L2,L3],数据C的存储位置包括缓存L1和缓存L3,可以表示为[L1,L3],数据D的存储位置包括缓存L3,可以表示为[L3]。
可选地,数据特征包括数据类型和/或数据量。
其中,数据类型包括图片、视频和文件等,数据类型与业务优先级相关,例如图片的业务优先级高于视频的业务优先级,视频的业务优先级高于文件的业务优先级。数据的业务优先级越高,则该数据理应越不容易被淘汰,即该数据的淘汰优先级越低。
数据量表示数据实际存储空间的大小,例如512字节(byte,B),1千字节(KB),1兆字节(MB)等。数据的数据量越小,则该数据理应越不容易被淘汰,即该数据的淘汰优先级越低。
可选地,访问特征包括访问时间序列和/或访问频率。
其中,访问时间序列用于表征对应的数据在多个第一时长内是否被读取。第一时长也可以称为单位时长,例如可以是1秒或1分钟。访问时间序列可以采用一定比特(bit)位长度的整型数值来表示,每个bit位表示在一个第一时长内对应的数据是否被读取。例如,数据A的访问时间序列为00001111,则表示数据A在在最近四个第一时长内都被读取过。又例如,数据B的访问时间序列为00011110,则表示数据B在最近一个第一时长之前的四个第一时长内都被读取过。数据被读取的最近时刻距离当前时刻越近,则该数据理应越不容易被淘汰,即该数据的淘汰优先级越低。例如,数据A的淘汰优先级低于数据B的淘汰优先级。
访问频率用于表征对应的数据在第二时长内被读取的次数。第二时长可以大于上述第一时长,例如第二时长可以等于访问时间序列对应的多个第一时长的总和。也即是,访问时间序列用于表征对应的数据在统计时段内的多个单位时长内是否被读取,访问频率用于表征对应的数据在该统计时段内被读取的次数。数据的访问频率越高,则该数据理应越不容易被淘汰,即该数据的淘汰优先级越低。
可选地,多级缓存的全局知识信息还包括该多级缓存中存储过的历史数据对应的历史知识信息,历史数据指的是在多级缓存中存储过但已淘汰的数据。也即是,全局知识信息不仅可以包括多级缓存中当前所存储的数据对应的知识信息,还可以包括过去一段时间内存储过但已淘汰的历史数据对应的历史知识信息,历史知识信息包括历史数据特征、历史访问特征和历史存储位置中的一种或多种,具体解释可参考多级缓存中当前所存储的数据对应的知识信息的相关描述,本申请实施例在此不再赘述。例如,三级缓存(包括缓存L1、缓存L2和缓存L3)的全局知识信息可以如表1所示。
表1
数据种类 数据类型 数据量 访问时间序列 访问频率 存储位置 存储状态
数据A 图片 1KB 00110000 2 / 淘汰
数据B 视频 10MB 11000000 2 / 淘汰
数据C 图片 256B 01010101 4 [L2,L3] 存储中
数据D 文件 1MB 00011100 3 [L3] 存储中
数据E 视频 5MB 00011111 5 [L1,L2,L3] 存储中
参见表1,该三级缓存的全局知识信息包括已淘汰的数据A和数据B对应的历史知识信息以及当前所存储的数据C、数据D和数据E的知识信息。
可选地,每种数据对应的知识信息还可以包括数据的写入时刻、数据的访问时刻等时间信息以及数据所属业务分组等,本申请实施例对知识信息所包含的内容不做限定,任何能够反映数据相关特征的内容均可作为该数据对应的知识信息。
步骤202、根据该全局知识信息对该多级缓存进行缓存管理。
可选地,缓存管理包括数据读取、数据写入和数据淘汰。本申请以下实施例分别对这三种缓存管理的实现过程进行说明。
在本申请的第一个可选实施例中,数据对应的知识信息包括该数据的存储位置,计算机设备可以根据多级缓存的全局知识信息进行数据读取。步骤202的实现过程包括:响应于接收到用于请求读取第一数据的读请求,计算机设备从全局知识信息中获取该第一数据的第一存储位置,然后根据该第一存储位置从多级缓存中读取该第一数据。
例如,参考表1中的例子,当计算机设备接收到用于请求读取数据C的读请求时,通过查询如表1所示的全局知识信息可以得到,数据C存储在缓存L2和缓存L3中,进而计算机设备可以直接访问缓存L2以读取数据C。
可选地,计算机设备在接收到用于请求读取第一数据的读请求后,可以先查询全局知识信息中是否存在该第一数据对应的知识信息,若不存在则直接返回该多级缓存中未存储有第一数据的指示,若存在则从第一数据对应的知识信息中获取第一数据的存储位置并读取该第一数据。可选地,计算机设备可以采用布隆过滤器查询全局知识信息中是否存在该第一数据对应的知识信息,以节省存储空间。
本申请实施例中,计算机设备可以根据多级缓存的全局知识信息确定待读取数据的存储位置,然后根据该存储位置直接读取到对应的数据,在数据读取过程中无需按照多级缓存的数据读取速度依次查询该多级缓存,提高了数据读取效率。
可选地,当数据对应的知识信息还包括该数据的访问特征时,计算机设备根据第一存储位置从多级缓存中读取该第一数据后,还可以更新全局知识信息中该第一数据对应的访问特征。例如,请继续参考表1中的例子,计算机设备访问缓存L2读取到数据C后,可以将数据C对应的访问时间序列更新为10101011,并将数据C对应的访问频率更新为5。
可选地,响应于更新后的第一数据对应的访问特征满足缓存提升条件,计算机设备还可以在多级缓存中的目标级缓存写入第一数据,并更新该第一数据的存储位置。更新第一数据的存储位置,可以是在第一数据的存储位置中添加目标级缓存。该目标级缓存的数据读取速度高于第一存储位置的数据读取速度。其中,缓存提升条件包括:访问频率达到目标级缓存对应的访问频率阈值。缓存提升条件还可以综合考虑数据类型、数据量和/或访问时间序列,例如,缓存提升条件还可以包括:数据类型对应的业务优先级满足写入目标级缓存的条件,数据量小于目标级缓存对应的写入数据量阈值,和/或,最近若干个第一时长内被读取的次数达到目标级缓存对应的读取次数阈值。请继续参考表1中的例子,假设更新后的数据C对应的访问特征满足缓存提升条件,则计算机设备可以将数据C写入缓存L1中,并将数据C的存储位置更新为[L1,L2,L3]。
本申请实施例中,计算机设备在对数据的访问特征进行更新后,进一步可以根据更新后的访问特征判断是否需要对该数据进行调度,从而使得价值更高的数据能够存储在数据读取速度更快的缓存中,提高数据读取效率。
在本申请的第二个可选实施例中,多级缓存的全局知识信息包括该多级缓存中存储过的历史数据对应的历史知识信息。计算机设备根据多级缓存的全局知识信息进行数据写入。则步骤202的实现过程包括以下步骤2021至步骤2023:
在步骤2021中,响应于接收到用于请求写入第二数据的写请求,计算机设备查询多级缓存的全局知识信息中是否存在该第二数据对应的历史知识信息。
在步骤2022中,响应于该全局知识信息中不存在该第二数据对应的历史知识信息,计算机设备根据第二数据的数据特征,在多级缓存中确定第二存储位置;或者,响应于该全局知识信息中存在第二数据对应的历史知识信息,计算机设备根据第二数据对应的历史访问特征,在多级缓存中确定第二存储位置。
在一种可能实现方式中,当多级缓存的全局知识信息中不存在第二数据对应的历史知识信息时,计算机设备可以根据第二数据的数据类型和数据量在多级缓存中确定用来存储该第二数据的第二存储位置。第二数据的数据类型对应的业务优先级越高和/或第二数据的数据量越小,第二存储位置中包含数据读取速度越快的缓存。
以三级缓存为例,例如一个数据的数据类型为图片(对应的业务优先级较高),数据量小于1KB,则该数据的价值较高,计算机设备可以将该三级缓存中的第一级缓存和第三级缓存确定为该数据的存储位置。又例如另一个数据的数据类型为文件(对应的业务优先级较低),数据量大于10MB,则该数据的价值较低,计算机设备可以将该三级缓存中的第三级缓存确定为该数据的存储位置。
在另一种可能实现方式中,当多级缓存的全局知识信息中存在第二数据对应的历史知识信息时,计算机设备可以根据第二数据对应的历史访问频率在多级缓存中确定用来存储该第二数据的第二存储位置。第二数据对应的历史访问频率越高,第二存储位置中包含数据读取速度越快的缓存。
以三级缓存为例,例如一个数据在过去一段时间内的访问频率为5,即缓存命中过5次,该数据的数据类型为图片,数据量小于1KB,则该数据的价值较高,计算机设备可以将该三级缓存中的第一级缓存、第二级缓存和第三级缓存确定为该数据的存储位置。
在步骤2023中,计算机设备在该第二存储位置写入第二数据。
进一步地,计算机设备在第二存储位置写入第二数据后,还可以更新全局知识信息,后续基于更新后的全局知识信息对多级缓存进行缓存管理。
本申请实施例中,计算机设备可以根据数据的数据特征和/或数据的历史知识信息,在针对多级缓存的全局综合决策下,直接将数据写入合适的缓存层级中,从而提高缓存利用率和数据存储可靠性。
在本申请的第三个可选实施例中,计算机设备根据多级缓存的全局知识信息进行数据淘汰。则步骤202的实现过程包括:对于多级缓存中的每级缓存,当缓存的存储量达到该缓存的容量阈值时,计算机设备根据全局知识信息确定该缓存中的待淘汰数据。
由于每级缓存的容量都有限,当缓存的存储量达到该缓存的容量阈值时,计算机设备需要淘汰该缓存中的部分数据。计算机设备可以根据全局知识信息确定各种数据的淘汰优先级,然后淘汰掉淘汰优先级高的数据,保留淘汰优先级低的数据。其中,数据的淘汰优先级与数据的业务优先级和访问频率负相关,也即是,数据的业务优先级越高,访问频率越高,则该数据的淘汰优先级越低。数据的淘汰优先级还与数据的数据量正相关,也即是,数据的数据量越大,则该数据的淘汰优先级越高。
例如以三级缓存(包括缓存L1、缓存L2和缓存L3)为例,数据M存储在该三级缓存的每级缓存中。假设数据M是个访问频率很高的数据,一直在缓存L1中被命中,若采用相关技术中的缓存淘汰算法,不考虑全局知识信息,则缓存L2和缓存L3无法感知到对数据M的读取操作,则在一段时间后,缓存L2和缓存L3会认为该数据M不重要而将其淘汰,再过一段时间后,数据M的访问频率降低,缓存L1也会将数据M淘汰。上层应用再在多级缓存中读取数据M时,整个缓存都没有数据M,会导致无法命中,进而导致多级缓存的整体缓存命中率较低。另外,这种情况下需要将数据M重新写入缓存,资源消耗较多。而本申请实施例中考虑了全局知识信息,数据M一直在缓存L1中被命中,那么在缓存L2和缓存L3中进行数据淘汰时,会考虑到数据M在该多级缓存整体中的访问频率较高,因此不会淘汰数据M,一段时间后,即使缓存L1将数据M淘汰,上层应用再读取数据M时,也可以在缓存L2或缓存L3中命中,从而使得多级缓存整体有较高的缓存命中率。
本申请实施例中,计算机设备可以根据多级缓存中所存储的数据对应的知识信息,来确定每级缓存中的待淘汰数据,在实现单级缓存的缓存命中率较高的同时,实现较高的全局缓存命中率。
可选地,图3是本申请实施例提供的一种采用多级缓存结构的计算机系统的结构示意图。如图3所示,该计算机系统30采用三级缓存结构,该三级缓存包括缓存L1、缓存L2和缓存L3。该计算机系统30包括全局知识信息记录模块301和缓存管理模块302。全局知识信息记录模块301分别与缓存L1、缓存L2和缓存L3连接,用于存储全局知识信息并向每级缓存提供和同步全局知识信息。每级缓存基于该全局知识信息进行缓存淘汰。缓存管理模块302分别与全局知识信息记录模块301、缓存L1、缓存L2和缓存L3连接,用于接收和处理来自上层应用的读请求和写请求,并基于全局知识信息决策在哪级缓存中写入数据和/或读取数据,并实时更新全局知识信息记录模块301中存储的全局知识信息。
本申请实施例提供的缓存管理方法的步骤先后顺序可以进行适当调整,步骤也可以根据情况进行相应增减。任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化的方法,都应涵盖在本申请的保护范围之内,本申请实施例在此不再一一赘述。
综上所述,在本申请实施例提供的缓存管理方法中,计算机设备根据多级缓存的全局知识信息对该多级缓存进行缓存管理,使得每级缓存能够感知到全局数据信息的变化,在进行缓存调度和/或各级缓存进行缓存淘汰时,可以利用全局知识信息进行综合决策,实现在有限的缓存空间内存储更多有价值的数据,从而实现全局较高的缓存命中率和数据读取速度,改善系统性能。例如,计算机设备可以根据多级缓存的全局知识信息确定待读取数据的存储位置,然后根据该存储位置直接读取到对应的数据,在数据读取过程中无需按照多级缓存的数据读取速度依次查询该多级缓存,提高了数据读取效率。另外,计算机设备还可以更新数据的访问特征,并根据更新后的访问特征判断是否需要对该数据进行调度,从而使得价值更高的数据能够存储在数据读取速度更快的缓存中,提高数据读取效率。又例如,计算机设备还可以根据数据的数据特征和/或数据的历史知识信息,在针对多级缓存的全局综合决策下,直接将数据写入合适的缓存层级中,从而提高缓存利用率和数据存储可靠性。又例如,计算机设备还可以根据多级缓存中所存储的数据对应的知识信息,来确定每级缓存中的待淘汰数据,在实现单级缓存的缓存命中率较高的同时,实现较高的全局缓存命中率。
图4是本申请实施例提供的一种缓存管理装置的结构示意图。如图4所示,该装置40包括:
获取模块401,用于获取多级缓存的全局知识信息,全局知识信息包括多级缓存中所存储的多种数据分别对应的知识信息,知识信息包括数据特征、访问特征和存储位置中的一种或多种,存储位置包括多级缓存中的至少一级缓存。
管理模块402,用于根据全局知识信息对多级缓存进行缓存管理。
可选地,数据特征包括数据类型和/或数据量。
可选地,访问特征包括访问时间序列和/或访问频率,访问时间序列用于表征对应的数据在多个第一时长内是否被读取,访问频率用于表征对应的数据在第二时长内被读取的次数。
可选地,管理模块402,用于:响应于接收到用于请求读取第一数据的读请求,从全局知识信息中获取第一数据的第一存储位置;根据第一存储位置从多级缓存中读取第一数据。
可选地,如图5所示,装置40还包括:更新模块403,用于更新全局知识信息中第一数据对应的访问特征。
可选地,更新模块403,还用于:响应于更新后的第一数据对应的访问特征满足缓存提升条件,在多级缓存中的目标级缓存写入第一数据,并更新第一数据的存储位置,目标级缓存的数据读取速度高于第一存储位置的数据读取速度;其中,缓存提升条件包括:访问频率达到目标级缓存对应的访问频率阈值。
可选地,全局知识信息还包括多级缓存中存储过的历史数据对应的历史知识信息,管理模块402,用于:响应于接收到用于请求写入第二数据的写请求,查询全局知识信息中是否存在第二数据对应的历史知识信息;响应于全局知识信息中不存在第二数据对应的历史知识信息,根据第二数据的数据特征,在多级缓存中确定第二存储位置;或者,响应于全局知识信息中存在第二数据对应的历史知识信息,根据第二数据对应的历史访问特征,在多级缓存中确定第二存储位置;在第二存储位置写入第二数据。
可选地,管理模块402,用于:对于多级缓存中的每级缓存,当缓存的存储量达到缓存的容量阈值时,根据全局知识信息确定缓存中的待淘汰数据。
综上所述,在本申请实施例提供的缓存管理方法中,通过管理模块根据多级缓存的全局知识信息对该多级缓存进行缓存管理,使得每级缓存能够感知到全局数据信息的变化,在进行缓存调度和/或各级缓存进行缓存淘汰时,可以利用全局知识信息进行综合决策,实现在有限的缓存空间内存储更多有价值的数据,从而实现全局较高的缓存命中率和数据读取速度,改善系统性能。例如,计算机设备可以根据多级缓存的全局知识信息确定待读取数据的存储位置,然后根据该存储位置直接读取到对应的数据,在数据读取过程中无需按照多级缓存的数据读取速度依次查询该多级缓存,提高了数据读取效率。另外,计算机设备还可以更新数据的访问特征,并根据更新后的访问特征判断是否需要对该数据进行调度,从而使得价值更高的数据能够存储在数据读取速度更快的缓存中,提高数据读取效率。又例如,计算机设备还可以根据数据的数据特征和/或数据的历史知识信息,在针对多级缓存的全局综合决策下,直接将数据写入合适的缓存层级中,从而提高缓存利用率和数据存储可靠性。又例如,计算机设备还可以根据多级缓存中所存储的数据对应的知识信息,来确定每级缓存中的待淘汰数据,在实现单级缓存的缓存命中率较高的同时,实现较高的全局缓存命中率。
应理解的是,本申请实施例提供的缓存管理装置可以用专用集成电路(application-specific integrated circuit,ASIC)实现,或可编程逻辑器件(programmable logic device,PLD)实现,上述PLD可以是复杂程序逻辑器件(complexprogrammable logical device,CPLD),现场可编程门阵列(field-programmable gatearray,FPGA),通用阵列逻辑(generic array logic,GAL)或其任意组合。也可以通过软件实现上述方法实施例提供的方法,当通过软件实现上述方法实施例提供的方法时,该缓存管理装置中的各个模块也可以为软件模块。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的缓存管理装置及各模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
本申请实施例还提供了一种计算机设备,包括:处理器和存储器;
所述存储器,用于存储计算机程序,所述计算机程序包括程序指令;
所述处理器,用于调用所述计算机程序,实现如上述方法实施例提供的缓存管理方法。
可选地,图6是本申请实施例提供的一种计算机设备的框图。该计算机设备可以是终端或服务器等任意具有计算能力的设备。参考图6,该计算机设备600可以包括:处理器601、存储器602、收发器603和总线604。其中,总线604用于连接处理器601、存储器602和收发器603。通过收发器603(可以是有线或者无线)可以实现与其他设备之间的通信连接。存储器602中存储有计算机程序,该计算机程序用于实现各种应用功能。
应理解,在本申请实施例中,处理器601可以是CPU,该处理器601还可以是其他通用处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)、GPU或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者是任何常规的处理器等。
存储器602可以是易失性存储器或非易失性存储器,或可包括易失性和非易失性存储器两者。其中,非易失性存储器可以是ROM、可编程只读存储器(programmable ROM,PROM)、可擦除可编程只读存储器(erasable PROM,EPROM)、EEPROM或闪存。易失性存储器可以是RAM,其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的RAM可用,例如静态随机存取存储器(static RAM,SRAM)、动态随机存取存储器(DRAM)、同步动态随机存取存储器(synchronous DRAM,SDRAM)、双倍数据速率同步动态随机存取存储器(double datadate SDRAM,DDR SDRAM)、增强型同步动态随机存取存储器(enhanced SDRAM,ESDRAM)、同步连接动态随机存取存储器(synchlink DRAM,SLDRAM)和直接内存总线随机存取存储器(direct rambus RAM,DR RAM)。
总线604除包括数据总线之外,还可以包括电源总线、控制总线和状态信号总线等。但是为了清楚说明起见,在图中将各种总线都标为总线604。
处理器601被配置为执行存储器602中存储的计算机程序6021,处理器601通过执行该计算机程序6021来实现上述方法实施例提供的缓存管理方法。
本申请实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有指令,当所述指令被处理器执行时,实现上述方法实施例提供的缓存管理方法。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意结合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机指令时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如:同轴电缆、光纤、数据用户线(digital subscriber line,DSL))或无线(例如:红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质(例如:软盘、硬盘、磁带)、光介质(例如:数字通用光盘(digital versatile disc,DVD))、或者半导体介质(例如:SSD)等。
在本申请实施例中,术语“第一”、“第二”和“第三”仅用于描述目的,而不能理解为指示或暗示相对重要性。
本申请中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。
以上所述仅为本申请的可选实施例,并不用以限制本申请,凡在本申请的构思和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。

Claims (18)

1.一种缓存管理方法,其特征在于,所述方法包括:
获取多级缓存的全局知识信息,所述全局知识信息包括所述多级缓存中所存储的多种数据分别对应的知识信息,所述知识信息包括数据特征、访问特征和存储位置中的一种或多种,所述存储位置包括所述多级缓存中的至少一级缓存;
根据所述全局知识信息对所述多级缓存进行缓存管理。
2.根据权利要求1所述的方法,其特征在于,所述数据特征包括数据类型和/或数据量。
3.根据权利要求1或2所述的方法,其特征在于,所述访问特征包括访问时间序列和/或访问频率,所述访问时间序列用于表征对应的数据在多个第一时长内是否被读取,所述访问频率用于表征对应的数据在第二时长内被读取的次数。
4.根据权利要求1至3任一所述的方法,其特征在于,所述根据所述全局知识信息对所述多级缓存进行缓存管理,包括:
响应于接收到用于请求读取第一数据的读请求,从所述全局知识信息中获取所述第一数据的第一存储位置;
根据所述第一存储位置从所述多级缓存中读取所述第一数据。
5.根据权利要求4所述的方法,其特征在于,所述方法还包括:
更新所述全局知识信息中所述第一数据对应的访问特征。
6.根据权利要求5所述的方法,其特征在于,所述方法还包括:
响应于更新后的所述第一数据对应的访问特征满足缓存提升条件,在所述多级缓存中的目标级缓存写入所述第一数据,并更新所述第一数据的存储位置,所述目标级缓存的数据读取速度高于所述第一存储位置的数据读取速度;
其中,所述缓存提升条件包括:访问频率达到所述目标级缓存对应的访问频率阈值。
7.根据权利要求1至6任一所述的方法,其特征在于,所述全局知识信息还包括所述多级缓存中存储过的历史数据对应的历史知识信息,所述根据所述全局知识信息对所述多级缓存进行缓存管理,包括:
响应于接收到用于请求写入第二数据的写请求,查询所述全局知识信息中是否存在所述第二数据对应的历史知识信息;
响应于所述全局知识信息中不存在所述第二数据对应的历史知识信息,根据所述第二数据的数据特征,在所述多级缓存中确定第二存储位置;或者,响应于所述全局知识信息中存在所述第二数据对应的历史知识信息,根据所述第二数据对应的历史访问特征,在所述多级缓存中确定第二存储位置;
在所述第二存储位置写入所述第二数据。
8.根据权利要求1至7任一所述的方法,其特征在于,所述根据所述全局知识信息对所述多级缓存进行缓存管理,包括:
对于所述多级缓存中的每级缓存,当所述缓存的存储量达到所述缓存的容量阈值时,根据所述全局知识信息确定所述缓存中的待淘汰数据。
9.一种缓存管理装置,其特征在于,所述装置包括:
获取模块,用于获取多级缓存的全局知识信息,所述全局知识信息包括所述多级缓存中所存储的多种数据分别对应的知识信息,所述知识信息包括数据特征、访问特征和存储位置中的一种或多种,所述存储位置包括所述多级缓存中的至少一级缓存;
管理模块,用于根据所述全局知识信息对所述多级缓存进行缓存管理。
10.根据权利要求9所述的装置,其特征在于,所述数据特征包括数据类型和/或数据量。
11.根据权利要求9或10所述的装置,其特征在于,所述访问特征包括访问时间序列和/或访问频率,所述访问时间序列用于表征对应的数据在多个第一时长内是否被读取,所述访问频率用于表征对应的数据在第二时长内被读取的次数。
12.根据权利要求9至11任一所述的装置,其特征在于,所述管理模块,用于:
响应于接收到用于请求读取第一数据的读请求,从所述全局知识信息中获取所述第一数据的第一存储位置;
根据所述第一存储位置从所述多级缓存中读取所述第一数据。
13.根据权利要求12所述的装置,其特征在于,所述装置还包括:
更新模块,用于更新所述全局知识信息中所述第一数据对应的访问特征。
14.根据权利要求13所述的装置,其特征在于,所述更新模块,还用于:
响应于更新后的所述第一数据对应的访问特征满足缓存提升条件,在所述多级缓存中的目标级缓存写入所述第一数据,并更新所述第一数据的存储位置,所述目标级缓存的数据读取速度高于所述第一存储位置的数据读取速度;
其中,所述缓存提升条件包括:访问频率达到所述目标级缓存对应的访问频率阈值。
15.根据权利要求9至14任一所述的装置,其特征在于,所述全局知识信息还包括所述多级缓存中存储过的历史数据对应的历史知识信息,所述管理模块,用于:
响应于接收到用于请求写入第二数据的写请求,查询所述全局知识信息中是否存在所述第二数据对应的历史知识信息;
响应于所述全局知识信息中不存在所述第二数据对应的历史知识信息,根据所述第二数据的数据特征,在所述多级缓存中确定第二存储位置;或者,响应于所述全局知识信息中存在所述第二数据对应的历史知识信息,根据所述第二数据对应的历史访问特征,在所述多级缓存中确定第二存储位置;
在所述第二存储位置写入所述第二数据。
16.根据权利要求9至15任一所述的装置,其特征在于,所述管理模块,用于:
对于所述多级缓存中的每级缓存,当所述缓存的存储量达到所述缓存的容量阈值时,根据所述全局知识信息确定所述缓存中的待淘汰数据。
17.一种计算机设备,其特征在于,包括:处理器和存储器;
所述存储器,用于存储计算机程序,所述计算机程序包括程序指令;
所述处理器,用于调用所述计算机程序,实现如权利要求1至8任一所述的缓存管理方法。
18.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有指令,当所述指令被处理器执行时,实现如权利要求1至8任一所述的缓存管理方法。
CN202110269701.5A 2021-03-12 2021-03-12 缓存管理方法及装置、计算机可读存储介质 Pending CN115080459A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110269701.5A CN115080459A (zh) 2021-03-12 2021-03-12 缓存管理方法及装置、计算机可读存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110269701.5A CN115080459A (zh) 2021-03-12 2021-03-12 缓存管理方法及装置、计算机可读存储介质

Publications (1)

Publication Number Publication Date
CN115080459A true CN115080459A (zh) 2022-09-20

Family

ID=83241364

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110269701.5A Pending CN115080459A (zh) 2021-03-12 2021-03-12 缓存管理方法及装置、计算机可读存储介质

Country Status (1)

Country Link
CN (1) CN115080459A (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115145967A (zh) * 2022-09-05 2022-10-04 云账户技术(天津)有限公司 一种数据缓存的方法及装置
CN117992367A (zh) * 2024-04-03 2024-05-07 华东交通大学 一种可变缓存替换管理方法及系统

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115145967A (zh) * 2022-09-05 2022-10-04 云账户技术(天津)有限公司 一种数据缓存的方法及装置
CN117992367A (zh) * 2024-04-03 2024-05-07 华东交通大学 一种可变缓存替换管理方法及系统
CN117992367B (zh) * 2024-04-03 2024-06-07 华东交通大学 一种可变缓存替换管理方法及系统

Similar Documents

Publication Publication Date Title
US10198363B2 (en) Reducing data I/O using in-memory data structures
GB2547306B (en) Profiling cache replacement
US6901483B2 (en) Prioritizing and locking removed and subsequently reloaded cache lines
US20120102273A1 (en) Memory agent to access memory blade as part of the cache coherency domain
US11314689B2 (en) Method, apparatus, and computer program product for indexing a file
US9501419B2 (en) Apparatus, systems, and methods for providing a memory efficient cache
CN115080459A (zh) 缓存管理方法及装置、计算机可读存储介质
CN114817195A (zh) 一种分布式存储缓存管理的方法、系统、存储介质及设备
Hendrantoro et al. Early result from adaptive combination of LRU, LFU and FIFO to improve cache server performance in telecommunication network
CN113138851B (zh) 一种数据管理方法、相关装置及系统
CN116027982A (zh) 数据处理方法、设备及可读存储介质
US11334488B2 (en) Cache management circuits for predictive adjustment of cache control policies based on persistent, history-based cache control information
CN112650694B (zh) 一种数据读取方法、装置、缓存代理服务器及存储介质
KR101976320B1 (ko) 라스트 레벨 캐시 메모리 및 이의 데이터 관리 방법
CN113268201A (zh) 基于文件属性的缓存管理方法和装置
US10942860B2 (en) Computing system and method using bit counter
US11768772B2 (en) Accumulators corresponding to bins in memory
US11321243B2 (en) Data storage device including a semiconductor device managing address mapping of a semiconductor memory device
US20230342300A1 (en) Data eviction method and apparatus, cache node, and cache system
WO2022199258A1 (zh) 一种缓存管理方法及存储设备
US20230026824A1 (en) Memory system for accelerating graph neural network processing
CN116069719A (zh) 处理器、内存控制器、片上系统芯片和数据预取方法
CN116756057A (zh) 共享缓存的管理方法、装置及存储介质
CN117914944A (zh) 一种基于物联网的分布式三级缓存方法及装置
CN117917649A (zh) 数据处理方法、装置、芯片以及计算机可读存储介质

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