CN109165172A - 缓存数据处理方法及相关设备 - Google Patents
缓存数据处理方法及相关设备 Download PDFInfo
- Publication number
- CN109165172A CN109165172A CN201810977554.5A CN201810977554A CN109165172A CN 109165172 A CN109165172 A CN 109165172A CN 201810977554 A CN201810977554 A CN 201810977554A CN 109165172 A CN109165172 A CN 109165172A
- Authority
- CN
- China
- Prior art keywords
- data
- array
- block
- tag
- 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.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0893—Caches characterised by their organisation or structure
- G06F12/0897—Caches characterised by their organisation or structure with two or more cache hierarchy levels
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
- G06F12/1009—Address translation using page tables, e.g. page table structures
- G06F12/1018—Address translation using page tables, e.g. page table structures involving hashing techniques, e.g. inverted page tables
-
- Y—GENERAL 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
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE 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/00—Energy 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
本申请实施例公开了一种缓存数据处理方法,通过提高末级缓存利用率的方式来提升末级缓存的性能,避免了由于扩大末级缓存空间而导致的能耗的增加。本申请实施例还提供了相应的相关设备。本申请实施例应用于中央处理单元CPU,该CPU设有末级缓存空间,该末级缓存空间中存储有标签阵列和数据阵列,该方法包括:接收缓存访问请求;当根据该缓存访问请求确定发生缓存缺失时,读取与该缓存访问请求对应的第一数据;判断该数据阵列中是否存在与该第一数据一致的第二数据;若该数据阵列中存在该第二数据,则获取与该缓存访问请求对应的第一标签;将该第一标签插入到该标签阵列中且不将该第一数据存入该数据阵列。
Description
技术领域
本申请涉及计算机软件领域,尤其涉及一种缓存数据处理方法及相关设备。
背景技术
在片上多核处理器系统中,由于相对于片上的中央处理器(central processingunit,CPU)处理速度,芯片外主存的延迟较高,为了减轻片外主存和CPU的性能差距,芯片内部都设有缓存空间,存放那些可能被频繁访问的指令和数据,以减少对芯片外主存的访问。
片上缓存空间以距CPU核的远近,分为多个层级。其中,距离CPU核最远的缓存称为末级缓存(last level cache,LLC),末级缓存的容量较大,被所有CPU核所共享。为了提升末级缓存的性能,可以扩大末级缓存所占空间的大小。
但是扩大末级缓存空间的大小,不仅会增加缓存空间所占芯片的面积,而且会导致CPU能耗的增加。
发明内容
本申请实施例提供了一种缓存数据处理方法,通过提高末级缓存利用率的方式来提升末级缓存的性能,避免了由于扩大末级缓存空间而导致的能耗的增加。本申请实施例还提供了相应的相关设备。
第一方面,本申请实施例提供了一种缓存数据处理方法,应用于中央处理单元CPU,该CPU设有末级缓存空间,该末级缓存空间中存储有标签阵列和数据阵列,该方法包括:
接收缓存访问请求;
当根据该缓存访问请求确定发生缓存缺失时,读取与该缓存访问请求对应的第一数据;
判断该数据阵列中是否存在与该第一数据一致的第二数据;
若该数据阵列中存在该第二数据,则获取与该缓存访问请求对应的第一标签;
将该第一标签插入到该标签阵列中且不将该第一数据存入该数据阵列。
第二方面,本申请实施例提供了一种中央处理单元CPU,该CPU设有末级缓存空间,该末级缓存空间中存储有标签阵列和数据阵列,该CPU包括:
接收单元,用于接收缓存访问请求;
读取单元,用于当根据该缓存访问请求确定发生缓存缺失时,读取与该缓存访问请求对应的第一数据;
判断单元,用于判断该数据阵列中是否存在与该第一数据一致的第二数据;
获取单元,用于当该数据阵列中存在该第二数据时,则获取与该缓存访问请求对应的第一标签;
插入单元,用于当该数据阵列中存在该第二数据时,则将该第一标签插入到该标签阵列中。
第三方面,本申请实施例提供一种终端,所述终端包括:处理器和存储器,所述存储器中存储有上述第一方面所描述的缓存数据处理的指令;
所述处理器用于执行存储器中存储的缓存数据处理的指令,执行如上述第一方面所描述的缓存数据处理的方法的步骤。
第四方面,本申请实施例提供一种计算机可读存储介质,所述计算机可读存储介质中存储有缓存数据处理的指令,当其在计算机上运行时,使得计算机执行上述第一方面所描述的缓存数据处理的方法的步骤。
第五方面,本申请提供了一种芯片系统,该芯片系统包括处理器,用于支持网络设备实现上述方面中所涉及的功能,例如,例如发送或处理上述方法中所涉及的数据和/或信息。在一种可能的设计中,所述芯片系统还包括存储器,所述存储器,用于保存网络设备必要的程序指令和数据。该芯片系统,可以由芯片构成,也可以包括芯片和其他分立器件。
从以上技术方案可以看出,本申请实施例具有以下优点:
CPU在根据接收到的缓存访问请求确定发生缓存缺失时,读取与该缓存访问请求对应的第一数据,若末级缓存中存在与第一数据一致的第二数据,则仅将与缓存访问请求对应的第一标签插入到标签阵列中,而不将该第一数据存入数据阵列,从而降低末级缓存中存储相同数据的概率,以实现末级缓存利用率的提升,进而提高末级缓存的性能,避免了由于扩大末级缓存空间带来的能耗的增加。
附图说明
图1为本申请实施例提供的处理器芯片的结构示意图;
图2为本申请实施例提供的末级缓存空间的结构示意图;
图3为本申请实施例提供的缓存空间数据处理方法的一种流程示意图;
图4为本申请实施例提供的缓存空间数据处理方法的又一种流程示意图;
图5为本申请实施例提供的中央处理单元的一种结构示意图;
图6为本申请实施例提供的终端的一种结构示意图。
具体实施方式
本申请实施例提供了一种缓存空间数据处理方法,通过提高末级缓存空间利用率的方式来提升末级缓存空间的性能,避免了由于扩大末级缓存空间空间而导致的能耗的增加。本申请实施例还提供了相应的相关设备。
本申请实施例可以应用于终端,参见图1,该终端的处理器芯片上运行有 CPU10,其中,处理器芯片上运行的CPU10可以为多核处理器,也可以为单核处理器。该终端的处理器芯片外也设有存储空间,该处理器芯片外的存储空间成为片外主存。
本申请实施例中,处理器芯片上还设有缓存空间20,用于存放被CPU核频繁访问的指令和数据。其中,芯片上的缓存空间空间以距CPU核的远近,分为多个层级,可以包含第一级缓存空间、第二级缓存空间、第三级缓存空间等。其中,最后一级缓存空间也即末级缓存空间200,距离CPU最远且容量最大,在多核处理器中被所有CPU核所共享。
本申请实施例中,上述终端可以为计算机、平板电脑、PDA(Personal DigitalAssistant,个人数字助理)、手机、车载电脑、TV或其他具有通信模块的设备等,此处不做限定。
本申请实施例中,末级缓存空间200中包含标签阵列2001、数据阵列2002 和哈希表2003。
本申请实施例中,标签阵列2001中存储有多个标签块,每个标签块均包含一个标签,在片外主存中,每个标签用来唯一标识一个数据块,存储于末级缓存空间中的标签阵列中包含的标签与片外主存中的标签的取值可以相同。在末级缓存空间中,标签块与数据块之间的对应关系可以为一对一,也可以为多对一,每个标签块中还存储有与之对应的数据块的存储地址信息。
本申请实施例中,数据阵列2002中包含多个数据块,每个数据块中包含上述与标签块存在映射关系的数据。
本申请实施例中,哈希表2003中存储有多条记录,记录与数据块为一一对应关系,用于记录根据数据块中的数据生成的哈希值和数据块的存储地址。
下面对本申请中的缓存数据处理方法进行详细描述,参阅图3,本申请实施例提供的一种缓存数据处理方法实施例可以包括:
301、CPU获取缓存访问请求。
本实施例中,CPU在运行过程中,当需要使用到处理器芯片外部主存中存储的数据时,可以生成缓存访问请求,也即该CPU获取到该缓存访问请求。
本实施例中,该缓存访问请求中至少包含与该缓存访问请求对应的数据在处理器芯片外部主存中的存储地址。
302、当CPU根据该缓存访问请求确定发生缓存缺失时,读取与该缓存访问请求对应的第一数据。
本实施例中,CPU可以根据缓存访问请求中包含的该存储地址到主存中查找用于标识该数据的第一标签以及该第一标签所在的对应组,遍历末级缓存空间存储的标签阵列中包含的该对应组,从而判断该标签阵列包含的对应组中是否已经存在与该缓存访问请求对应的第一标签,若存在与该缓存访问请求对应的第一标签,则确定发生缓存命中;若不存在与该缓存访问请求对应的标签,则确定发生缓存缺失。
在确定发生缓存缺失后,CPU可以根据该第一标签从处理器芯片外部的主存中读取该第一数据。
303、CPU判断该数据阵列中是否存在与该第一数据一致的第二数据,若该数据阵列中存在该第二数据,则进入步骤304;若该数据阵列中不存在该第二数据,则进入步骤306。
本实施例中,由于末级缓存空间中存储有数据阵列,CPU在获取到第一数据后,可以判断该数据阵列包含的数据中是否存在与该第一数据一致的第二数据。
304、CPU获取与该缓存访问请求对应的第一标签。
本实施例中,由于CPU在步骤302中已经根据该缓存访问请求确定了与之对应的第一标签,CPU可以获取该第一标签。
305、CPU将该第一标签插入到该标签阵列中且不将该第一数据存入该数据阵列。
本实施例中,由于数据阵列中已经存在与第一数据一致的第二数据,因此CPU不再将该第一数据存入该数据阵列,CPU可以获取该第二数据在末级缓存空间中的存储位置,将该第一标签放入到标签阵列的标签块中,并设置该第一标签所在的标签块的索引号,使该索引号指向该第二数据的存储位置。
本实施例中,当CPU将该第一标签放入到该标签阵列的标签块中时,若该标签阵列包含的对应组中存在空闲的标签块,从该空闲的标签块中随机选取一个;若该标签阵列中所有的标签块均已被占用,选取最近最少使用的标签块,应当理解,此处对标签块选取方式的举例仅为方便理解,具体此处不做限定。
306、CPU执行其他程序。
本实施例中,CPU在根据接收到的缓存访问请求确定发生缓存缺失时,读取与该缓存访问请求对应的第一数据,若末级缓存中存在与第一数据一致的第二数据,则仅将与缓存访问请求对应的第一标签插入到标签阵列中,而不将该第一数据存入数据阵列,从而降低末级缓存中存储相同数据的概率,以实现末级缓存利用率的提升,进而提高末级缓存的性能,避免了由于扩大末级缓存空间带来的能耗的增加。
基于前述图3所描述的实施例,具体参阅图4,本申请实施例提供的另一种缓存数据处理方法实施例可以包括:
401、CPU获取缓存访问请求。
402、CPU当根据该缓存访问请求确定发生缓存缺失时,读取与该缓存访问请求对应的第一数据。
本实施例中,步骤401和402与前述图3所示实施例中步骤301和302 类似,此处不再赘述。
403、CPU生成与该第一数据对应的第一哈希值,并判断该哈希表中是否存在与该第一哈希值一致的第二哈希值,若存在,则进入步骤404;若不存在,则进入步骤414。
本实施例中,由于末级缓存空间中还存储有哈希表,该哈希表包含多条记录,每条记录与数据阵列中的一个数据库一一对应,包含该数据块的索引号和哈希值,其中,每个数据块中包含的哈希值均根据该数据块中包含的数据生成。因此,CPU在获取第一数据后,可以生成与该第一数据对应的第一哈希值,遍历该哈希表以确定该哈希表中是否存在与该第一哈希值一致的第二哈希值。
本实施例中,哈希表中包含的该数据块的索引号指向该数据块的存储位置。
404、CPU获取该第二哈希值所在的目标记录中包含的第一索引号。
本实施例中,当该哈希表中存在与该第一哈希值一致的第二哈希值时, CPU可以从该哈希表包含的多条记录中读取该第二哈希值所在的目标记录,由于该多条记录中的每条记录均包含一个数据块的索引号,CPU可以读取该目标记录中包含的第一索引号。
405、CPU从该第一索引号指示的存储位置处读取第三数据,并判断该点数据与该第一数据是否一致,若一致,进入步骤406;若不一致,进入步骤 414。
本实施例中,CPU从该第一索引号指示的存储位置处读取第三数据,进而判断该第三数据与该第一数据是否完全一致。在该第三数据与所述第一数据一致的情况下,确定该数据阵列中存在与第一数据一致的第二数据。
本实施例中,在判断数据阵列中是否存在与第一数据一致的数据时,先判断哈希表中是否存在与第一哈希值的第二哈希值,在存在时再获取与该第二哈希值一致的第三数据,进而判断第三数据与第一数据是否完全一致,从而避免了将第一数据与数据阵列中的数据逐一对比,降低了CPU的工作量。
406、CPU获取与该缓存访问请求对应的第一标签。
407、CPU将该第一标签插入到该标签阵列中且不将该第一数据存入该数据阵列。
本实施例中,步骤406和407与前述图3所示实施例中步骤304和305 类似,此处不再赘述。
408、CPU将第二数据块的计数器字段的字段值加一。
本实施例中,每个数据块还包含计数器字段,由于,该计数器字段用于标识与该数据块具有映射关系的标签块的个数,CPU可以获取存储该第二数据的第二数据块,将该第二数据块的计数器字段的字段值加一。计数器字段的取值可以为1、2、3或4等自然数,该计数器字段的取值为第二数据块中的数据的被引用次数。本申请中在数据块中增加计数器字段,通过计数器字段即可判断该数据块的被使用频繁程度,从而在写入新的数据时,避免将频繁使用的数据删除掉。
409、CPU判断该数据阵列中是否存在尚未查重的第四数据,若存在该第四数据,则进入步骤410;若不存在该第四数据,则进入步骤416。
本实施例中,数据阵列中的每个数据块还包含标记位,该标记位用于指示该数据块中存储的数据是否已经查重,CPU可以读取每个数据块中包含的标记位,从而判断该数据阵列中是否存在尚未查重的第四数据。作为示例,例如标记位的值为0时,表示该数据块中的数据尚未查重;当标记位的值为1 时,表示该数据块中的数据已经查重,具体标记位的取值,此处不做限定。
本实施例中,由于只有在发送缓存缺失时才触发数据查重,则通过写命中写入末级缓存空间的数据可能存在尚未查重的情况,在每个数据块中设置标记位用于标识该数据块中的数据是否已经查重,从而确保末级缓存空间中存储的数据均被执行过查重操作,进一步提高末级缓存空间的利用率。
410、CPU判断该数据阵列中是否存在与该第四数据一致的第五数据,若存在该第五数据,则进入步骤411;若不存在该第五数据,则进入步骤416。
本实施例中,CPU在确定给第四数据后,可以根据数据矩阵与哈希表的对应关系,获得根据该第四数据生成的哈希值,判断哈希表中是否存在与第四数据的哈希值一致的第三哈希值,若存在,读取第三哈希值所在的记录,以确定与该第三哈希值对应的数据块中的数据,进而判断第四数据是否与该第三哈希值对应的数据一致,若一致,则该数据阵列中存在与该第四数据一致的第五数据。
411、CPU从该标签阵列中获取与该第四数据存在映射关系的第一标签块。
本实施例中,由于一个数据块可以与多个标签块存在映射关系,数据阵列中的每个数据块还可以包含第一指针字段,该第一指针字段指向与该数据块存在映射关系的多个标签块中首个标签块的存储位置;每个标签块中均包含第二指针字段,该第二指针字段可以指向该多个标签块中的其他标签块。因此,当数据阵列中存在与该第四数据一致的第五数据时,CPU可以获取包含该第四数据的数据块,从而确定与包含该第四数据的数据块存在映射关系的第一标签块在该标签阵列中的存储位置,进而从该标签阵列中获取与该第四数据存在映射关系的第一标签块。
本实施例中,该第一标签块可以为一个,也可以为多个,具体此处不做限定。
412、CPU将该第一标签块包含的第二索引号修改为该第五数据的存储位置。
本实施例中,由于标签阵列中的每个标签块均对应一个数据块,则每个标签块均包含索引号,每个该标签块中包含的索引号均指向与该标签块对应的该数据的存储位置。CPU在获取该第一标签块后,可以将该第一标签块包含的第二索引号修改为该第五数据的存储位置。
413、CPU将第一数据块包含的计数器字段的字段值设置为零。
本实施例中,该第一数据块中包含该第四数据,由于数据阵列中存在与该第四数据一致的第五数据,CPU可以将该第一数据块包含的计数器字段的字段值设置为零,并删除哈希表中与第四数据对应的记录,以删除该第四数据。本申请中,通过将计数器字段的字段值设置为零的方式删除第四数据,操作简单,且避免了擦除第四数据的工作,降低了CPU的能耗。
414、CPU从该数据阵列中获取该计数器字段的字段值最小的第三数据块。
本实施例中,当该数据阵列中不存在与该第一数据一致的第二数据时,
415、CPU将该第一数据放入到该第三数据块中。
本实施例中,将第一标签插入到该标签阵列中且将该第一数据放入到该第三数据块中,并将该第一标签所在的标签块的索引号设置为该第三数据块的存储位置,将该第三数据块的第一指针字段的字段值设置为该第一标签所在的标签块在标签阵列中的存储位置。
应当理解,步骤409至413为可选步骤,若不执行步骤409至413,则可在执行完步骤408后直接执行步骤416,或者在执行完步骤415后直接执行步骤416。
若执行步骤409至413时,步骤402至408与步骤409至413的执行顺序不做限定,可以先执行步骤402至408,再执行步骤409至413,也可以先执行步骤409至413,再执行步骤402至408;步骤414和415与步骤409至 413的执行顺序也不做限定,可以先执行步骤402至408,再执行步骤414和 415,也可以先执行步骤414和415,再执行步骤402至408。
416、CPU执行其他程序。
图5是本申请实施例提供的CPU的一种结构示意图,CPU500设有末级缓存空间,该末级缓存空间中存储有标签阵列和数据阵列,CPU500包括:
获取模块501,用于获取缓存访问请求;
读取模块502,用于当根据该缓存访问请求确定发生缓存缺失时,读取与该缓存访问请求对应的第一数据;
判断模块503,用于判断该数据阵列中是否存在与该第一数据一致的第二数据;
获取模块501,还用于当该数据阵列中存在该第二数据时,则获取与该缓存访问请求对应的第一标签;
插入模块504,用于当该数据阵列中存在该第二数据时,则将该第一标签插入到该标签阵列中且不将所述第一数据存入所述数据阵列。
一种可能的实现方式中,该数据阵列包含多个数据块;该末级缓存空间中还存储有哈希表,该哈希表包含多条记录,每条该记录中均包含一个该数据块的索引号和哈希值,该哈希值根据该数据块中包含的数据生成;
判断模块503具体用于:
生成与该第一数据对应的第一哈希值;若该哈希表中存在与该第一哈希值一致的第二哈希值,则获取该第二哈希值所在的目标记录中包含的第一索引号;从该第一索引号指示的存储位置处读取第三数据;在该第三数据与该第一数据一致的情况下,确定该数据阵列中存在该第二数据。
一种可能的实现方式中,该每个数据块还包含标记位;该标签阵列包含多个标签块,每个标签块均包含索引号,每个该标签块中包含的索引号均指向与该标签块对应的该数据的存储位置,
判断模块503还用于:
根据该标记位,判断该数据阵列中是否存在尚未查重的第四数据;若存在该第四数据,判断该数据阵列中是否存在与该第四数据一致的第五数据;
获取模块501还用于:
若存在该第五数据,从该标签阵列中获取与该第四数据存在映射关系的第一标签块;
CPU500还包括:
修改模块505,用于将该第一标签块包含的第二索引号修改为该第五数据的存储位置;
删除模块506,用于删除该第四数据。
一种可能的实现方式中,该每个数据块还包含计数器字段,该计数器字段用于标识与该数据块具有映射关系的标签块的个数;
删除模块506具体用于:将第一数据块包含的计数器字段的字段值设置为零,其中,该第一数据块中包含该第四数据。
一种可能的实现方式中,修改模块505还用于:若该数据阵列中存在该第二数据,则将第二数据块的计数器字段的字段值加一,其中,该第二数据块中包含该第二数据。
一种可能的实现方式中,获取模块501还用于:若该数据阵列中不存在该第二数据,从该数据阵列中获取该计数器字段的字段值最小的第三数据块;
CPU500还包括:
存储模块507,用于将该第一数据放入到该第三数据块中。
本实施例中,CPU500中各模块执行的流程与前述图3和图4所示实施例中CPU500所执行的流程类似,此处不再赘述。
本实施例中,读取模块502在根据接收到的缓存访问请求确定发生缓存缺失时,读取与该缓存访问请求对应的第一数据,若末级缓存中存在与第一数据一致的第二数据,则插入模块504仅将与缓存访问请求对应的第一标签插入到标签阵列中,而不将该第一数据存入数据阵列,从而降低末级缓存中存储相同数据的概率,以实现末级缓存利用率的提升,进而提高末级缓存的性能,避免了由于扩大末级缓存空间带来的能耗的增加。
本申请实施例中还提供一种终端,参见图6,该终端600可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上处理器601和存储器602 (例如一个或一个以上海量存储设备)。其中,存储器602可以是短暂存储或持久存储。存储在存储器602上的程序可以包括一个或一个以上模块(图示没标出),每个模块可以包括对处理器601中的一系列指令操作。更进一步地,处理器601可以设置为与存储器602通信,在终端600上执行存储器602中的一系列指令操作。
终端600还可以包括一个或一个以上输入输出接口603,一个或一个以上电源604,一个或一个以上有线或无线网络接口605。
在本发明的一些实施例中,处理器601、存储器602、输入输出接口603、电源604和有线或无线网络接口605可通过总线或其它方式连接,图6中以通过总线连接为例。
该存储器中存储有前述图3和图4所示实施例中描述的缓存数据处理的指令;
该处理器用于执行存储器中存储的缓存数据处理的指令,执行如前述图3 和图4所示实施例中描述的缓存数据处理方法的步骤。
本申请实施例中还提供一种计算机可读存储介质,该计算机可读存储介质中存储有缓存数据处理的指令,当其在计算机上运行时,使得计算机执行如前述图3和图4所示实施例中描述的缓存数据处理方法的步骤。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围。
Claims (10)
1.一种缓存数据处理方法,其特征在于,应用于中央处理单元CPU,所述CPU所在的处理器芯片上设有末级缓存空间,所述末级缓存空间中存储有标签阵列和数据阵列,所述方法包括:
获取缓存访问请求;
当根据所述缓存访问请求确定发生缓存缺失时,读取与所述缓存访问请求对应的第一数据;
判断所述数据阵列中是否存在与所述第一数据一致的第二数据;
若所述数据阵列中存在所述第二数据,则获取与所述缓存访问请求对应的第一标签;
将所述第一标签插入到所述标签阵列中且不将所述第一数据存入所述数据阵列。
2.根据权利要求1所述的方法,其特征在于,所述数据阵列包含多个数据块;所述末级缓存空间中还存储有哈希表,所述哈希表包含多条记录,每条所述记录中均包含一个所述数据块的索引号和哈希值,所述哈希值根据所述数据块中包含的数据生成;
所述判断所述数据阵列中是否存在与所述第一数据一致的第二数据,包括:
生成与所述第一数据对应的第一哈希值;
若所述哈希表中存在与所述第一哈希值一致的第二哈希值,则获取所述第二哈希值所在的目标记录中包含的第一索引号;
从所述第一索引号指示的存储位置处读取第三数据;
在所述第三数据与所述第一数据一致的情况下,确定所述数据阵列中存在所述第二数据。
3.根据权利要求2所述的方法,其特征在于,所述每个数据块还包含标记位;所述标签阵列包含多个标签块,每个标签块均包含索引号,每个所述标签块中包含的索引号均指向与所述标签块对应的所述数据的存储位置,所述方法还包括:
根据所述标记位,判断所述数据阵列中是否存在尚未查重的第四数据;
若存在所述第四数据,判断所述数据阵列中是否存在与所述第四数据一致的第五数据;
若存在所述第五数据,从所述标签阵列中获取与所述第四数据存在映射关系的第一标签块;
将所述第一标签块包含的第二索引号修改为所述第五数据的存储位置;
删除所述第四数据。
4.根据权利要求3所述的方法,其特征在于,所述每个数据块还包含计数器字段,所述计数器字段用于标识与所述数据块具有映射关系的标签块的个数;
所述删除所述第四数据包括:
将第一数据块包含的计数器字段的字段值设置为零,其中,所述第一数据块中包含所述第四数据。
5.根据权利要求4所述的方法,其特征在于,所述方法还包括:
若所述数据阵列中存在所述第二数据,则将第二数据块的计数器字段的字段值加一,其中,所述第二数据块中包含所述第二数据。
6.根据权利要求4所述的方法,其特征在于,所述方法还包括:
若所述数据阵列中不存在所述第二数据,从所述数据阵列中获取所述计数器字段的字段值最小的第三数据块;
将所述第一数据放入到所述第三数据块中。
7.根据权利要求3至6任一权利要求所述的方法,其特征在于,所述每个数据块还包含第一指针字段,所述第一指针字段指向与所述数据块存在映射关系的多个标签块中首个标签块的存储位置;
所述标签阵列还包括第二标签块和第三标签块,所述第二标签块中还包含第二指针字段,所述第二指针字段指向所述第三标签块的存储位置,所述第二标签块和所述第三标签块中包含的索引号一致。
8.一种中央处理单元CPU,其特征在于,所述CPU设有末级缓存空间,所述末级缓存空间中存储有标签阵列和数据阵列,所述CPU包括:
获取模块,用于获取缓存访问请求;
读取模块,用于当根据所述缓存访问请求确定发生缓存缺失时,读取与所述缓存访问请求对应的第一数据;
判断模块,用于判断所述数据阵列中是否存在与所述第一数据一致的第二数据;
获取模块,用于当所述数据阵列中存在所述第二数据时,则获取与所述缓存访问请求对应的第一标签;
插入模块,用于当所述数据阵列中存在所述第二数据时,则将所述第一标签插入到所述标签阵列中且不将所述第一数据存入所述数据阵列。
9.一种终端,其特征在于,所述终端包括:处理器和存储器,所述存储器中存储有权利要求1-7任一所述的缓存数据处理的指令;
所述处理器用于执行存储器中存储的缓存数据处理的指令,执行如权利要求1-7任一所述的缓存数据处理的方法的步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有缓存数据处理的指令,当其在计算机上运行时,使得计算机执行上述权利要求1-7任一所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810977554.5A CN109165172B (zh) | 2018-08-23 | 2018-08-23 | 缓存数据处理方法及相关设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810977554.5A CN109165172B (zh) | 2018-08-23 | 2018-08-23 | 缓存数据处理方法及相关设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109165172A true CN109165172A (zh) | 2019-01-08 |
CN109165172B CN109165172B (zh) | 2021-10-29 |
Family
ID=64896933
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810977554.5A Active CN109165172B (zh) | 2018-08-23 | 2018-08-23 | 缓存数据处理方法及相关设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109165172B (zh) |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040153610A1 (en) * | 2003-01-31 | 2004-08-05 | Hua-Chang Chi | Cache controller unit architecture and applied method |
US20060236074A1 (en) * | 2005-04-14 | 2006-10-19 | Arm Limited | Indicating storage locations within caches |
US20090235032A1 (en) * | 2008-03-13 | 2009-09-17 | Sandbridge Technologies, Inc. | Method for achieving power savings by disabling a valid array |
CN102859504A (zh) * | 2010-04-21 | 2013-01-02 | 英派尔科技开发有限公司 | 有效分区存储缓存 |
US20130042068A1 (en) * | 2011-08-11 | 2013-02-14 | International Business Machines Corporation | Shadow registers for least recently used data in cache |
CN106569960A (zh) * | 2016-11-08 | 2017-04-19 | 郑州云海信息技术有限公司 | 一种混合主存的末级缓存管理方法 |
CN107368437A (zh) * | 2017-07-24 | 2017-11-21 | 郑州云海信息技术有限公司 | 一种末级缓存管理方法及系统 |
-
2018
- 2018-08-23 CN CN201810977554.5A patent/CN109165172B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040153610A1 (en) * | 2003-01-31 | 2004-08-05 | Hua-Chang Chi | Cache controller unit architecture and applied method |
US20060236074A1 (en) * | 2005-04-14 | 2006-10-19 | Arm Limited | Indicating storage locations within caches |
US20090235032A1 (en) * | 2008-03-13 | 2009-09-17 | Sandbridge Technologies, Inc. | Method for achieving power savings by disabling a valid array |
CN102859504A (zh) * | 2010-04-21 | 2013-01-02 | 英派尔科技开发有限公司 | 有效分区存储缓存 |
US20130042068A1 (en) * | 2011-08-11 | 2013-02-14 | International Business Machines Corporation | Shadow registers for least recently used data in cache |
CN106569960A (zh) * | 2016-11-08 | 2017-04-19 | 郑州云海信息技术有限公司 | 一种混合主存的末级缓存管理方法 |
CN107368437A (zh) * | 2017-07-24 | 2017-11-21 | 郑州云海信息技术有限公司 | 一种末级缓存管理方法及系统 |
Non-Patent Citations (2)
Title |
---|
DESHAN ZHANG 等: "Write-back aware shared last-level cache management for hybrid main memory", 《 2016 53ND ACM/EDAC/IEEE DESIGN AUTOMATION CONFERENCE (DAC)》 * |
胡瑞 等: "嵌入式微处理器中的低功耗Cache技术研究、", 《计算机工程》 * |
Also Published As
Publication number | Publication date |
---|---|
CN109165172B (zh) | 2021-10-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102662868B (zh) | 用于处理器的动态组相联高速缓存装置及其访问方法 | |
CN102111448B (zh) | 分布式哈希表dht存储系统的数据预取方法、节点和系统 | |
CN105677580A (zh) | 访问缓存的方法和装置 | |
CN107066498B (zh) | 键值kv存储方法和装置 | |
US10606806B2 (en) | Method and apparatus for storing time series data | |
CN107025289B (zh) | 一种数据处理的方法及相关设备 | |
CN106156070B (zh) | 一种查询方法、文件合并方法与相关装置 | |
CN105117351A (zh) | 向缓存写入数据的方法及装置 | |
CN103886109A (zh) | 一种实现数据库行锁的方法及装置 | |
CN103049392A (zh) | 缓存目录的实现方法及装置 | |
CN112148736B (zh) | 缓存数据的方法、设备及存储介质 | |
CN104598161B (zh) | 数据读取、写入方法和装置及数据存储结构 | |
CN114385089B (zh) | 一种基于交叉编址的动态bank存储方法、装置及电子设备 | |
CN105917303A (zh) | 一种控制器、识别数据块稳定性的方法和存储系统 | |
CN107315694A (zh) | 一种缓存一致性管理方法及节点控制器 | |
CN102567415A (zh) | 一种数据库的控制方法和装置 | |
CN106970937B (zh) | 一种基于本地缓存快速建立索引的方法及系统 | |
CN108664217B (zh) | 一种降低固态盘存储系统写性能抖动的缓存方法及系统 | |
CN111858612B (zh) | 基于图数据库的数据加速访问方法、装置及存储介质 | |
CN112596949B (zh) | 一种高效率的ssd删除数据恢复方法及系统 | |
CN109947667B (zh) | 数据访问预测方法和装置 | |
CN111831691A (zh) | 一种数据读写方法及装置、电子设备、存储介质 | |
CN107003932B (zh) | 多核处理器系统的缓存目录处理方法和目录控制器 | |
US9158682B2 (en) | Cache memory garbage collector | |
CN116560577A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |