CN114860785B - 缓存数据处理系统、方法、计算机设备和存储介质 - Google Patents
缓存数据处理系统、方法、计算机设备和存储介质 Download PDFInfo
- Publication number
- CN114860785B CN114860785B CN202210797669.2A CN202210797669A CN114860785B CN 114860785 B CN114860785 B CN 114860785B CN 202210797669 A CN202210797669 A CN 202210797669A CN 114860785 B CN114860785 B CN 114860785B
- Authority
- CN
- China
- Prior art keywords
- way
- target
- group
- replacement
- ways
- 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
- 238000012545 processing Methods 0.000 title claims abstract description 185
- 238000000034 method Methods 0.000 title claims abstract description 49
- 238000003860 storage Methods 0.000 title claims abstract description 32
- 230000015654 memory Effects 0.000 claims abstract description 171
- 238000004590 computer program Methods 0.000 claims description 17
- 238000013500 data storage Methods 0.000 claims description 9
- 230000003139 buffering effect Effects 0.000 claims 1
- 101100421299 Schizosaccharomyces pombe (strain 972 / ATCC 24843) set7 gene Proteins 0.000 description 28
- 238000009482 thermal adhesion granulation Methods 0.000 description 20
- 101150117538 Set2 gene Proteins 0.000 description 19
- 238000010586 diagram Methods 0.000 description 12
- 238000013507 mapping Methods 0.000 description 6
- 238000003672 processing method Methods 0.000 description 6
- 238000004891 communication Methods 0.000 description 5
- 238000005516 engineering process Methods 0.000 description 4
- 230000000694 effects Effects 0.000 description 3
- 101150055297 SET1 gene Proteins 0.000 description 2
- 230000010365 information processing Effects 0.000 description 2
- 101100042371 Caenorhabditis elegans set-3 gene Proteins 0.000 description 1
- 101100421296 Caenorhabditis elegans set-6 gene Proteins 0.000 description 1
- OKTJSMMVPCPJKN-UHFFFAOYSA-N Carbon Chemical compound [C] OKTJSMMVPCPJKN-UHFFFAOYSA-N 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- -1 e.g. Proteins 0.000 description 1
- 229910021389 graphene Inorganic materials 0.000 description 1
- 230000014759 maintenance of location Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2455—Query execution
- G06F16/24552—Database cache management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/2228—Indexing structures
- G06F16/2255—Hash tables
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0656—Data buffering arrangements
-
- 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)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Human Computer Interaction (AREA)
- Software Systems (AREA)
- Computational Linguistics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本申请涉及一种缓存数据处理系统、方法、计算机设备和存储介质。该系统包括:读写控制模块、数据存储器、多个哈希处理模块以及多个地址存储器;多个哈希处理模块用于接收缓存数据处理命令,对地址信息进行哈希处理,得到多个组索引信息;读写控制模块用于从各个哈希处理模块对应的地址存储器中,获取各个组索引信息对应的组包含的多个way,并获取各个way存储的tag值;比对地址信息与各个way存储的tag值,在存在目标tag值的情况下,根据对应的目标组索引信息和目标way标识信息确定目标cacheline,对数据存储器中目标cacheline进行数据处理。采用本系统能提高缓存数据的命中率,从而提高缓存数据处理效率。
Description
技术领域
本申请涉及计算机技术领域,特别是涉及一种缓存数据处理系统、方法、计算机设备和存储介质。
背景技术
随着计算机技术的发展,出现了一种利用缓存处理访问命令的方法,通过在各种芯片,如CPU、GPU以及DPU等设置缓存,从而可以利用缓存来减少对主存访问的次数,从而提高访问命令处理的效率。
传统技术中,在发起缓存访问命令时,可以通过哈希算法对该缓存访问命令的地址进行哈希处理,从而得到一个表征缓存中的组的组索引,并且可以将该组内的所有cacheline对应的tag取出来和地址中的tag部分对比,来判断是否存在相同的tag,如果存在,则表明缓存数据命中,从而可以通过组索引以及tag来从缓存中得到缓存数据,而如果不存在,即缓存数据未命中,则需要从主存中获取数据。同时,在缓存数据未命中时,如果组内不存在可使用的cache line,则会发生cacheline替换,此时被替换出去的cache line可能会在后面的访问中命中,因此发生cacheline的替换也会降低缓存数据的命中率,但此时可能其他组可能存在可用的cacheline,因此也会导致缓存的利用率偏低。
例如,如图1所示,读addr0时,通过hash映射到set0,set0中无匹配的tag,因此这次访问未命中,需要从DDR读取addr0对应的数据,且所有way都是有效的,需要通过替换算法替换出1个有效way,假设为way1,way1对应addr2这个tag。之后写addr0时,通过hash映射到set2,set2中无匹配的tag,因此这次访问未命中,且所有way都是有效的,需要通过替换算法替换出1个有效way,假设为way2,将替换出来的数据回写到DDR。而在读addr2时,由于在读addr0时由于访问未命中替换掉了addr2所在的way,因此此次访问也是未命中,需要去DDR中重新读取,其延迟也大大增加了。
可见,缓存数据的命中率与缓存的组映射方式和替换算法是强相关的,经过哈希处理后得到的新地址需要尽可能的均匀,否则会出现同一个set被大量访问,导致发生大量cacheline替换,从而会降低缓存的命中率,当缓存的访问流量加大时,这种现象会更加的明显。然而,实际上没有完美的哈希映射方式,由于所有的地址都是通过同一个哈希算法来得到新的组索引,总会存在一些场景导致组的利用率偏低,组中的cacheline并没有全部占用,而某些组的利用率偏高,发生了大量的cacheline替换,想要达到理想的命中率往往需要更大的缓存容量。因此,目前的缓存数据处理方式中,缓存数据的命中率以及缓存容量的利用率较低,从而导致缓存数据的处理效率较低。
发明内容
基于此,有必要针对上述技术问题,提供一种能够提高缓存数据处理效率的缓存数据处理系统、方法、计算机设备和存储介质。
第一方面,本申请提供了一种缓存数据处理系统,所述系统包括:读写控制模块、数据存储器、多个哈希处理模块以及多个地址存储器;所述哈希处理模块的个数与所述地址存储器的个数相适应;其中,
所述多个哈希处理模块,用于接收缓存数据处理命令,利用各个哈希处理模块预先设置的哈希算法,对所述缓存数据处理命令对应的地址信息进行哈希处理,得到所述地址信息对应的多个组索引信息;
所述读写控制模块,用于从各个哈希处理模块对应的各个地址存储器中,获取所述各个组索引信息对应的组包含的多个way,并获取各个way存储的tag值,所述tag值用于表示所述way中存储的cacheline是否是所述缓存数据处理命令的目标访问内存单元;
所述读写控制模块,还用于比对所述地址信息与所述各个way存储的tag值,在所述各个way存储的tag值中,存在与所述地址信息匹配的目标tag值的情况下,根据所述目标tag值对应的目标组索引信息和目标way标识信息确定目标cacheline,对所述数据存储器中的所述目标cacheline址进行数据处理。
在其中一个实施例中,所述缓存数据处理命令包括:缓存读取命令;所述读写控制模块,还用于在所述各个way存储的tag值中,不存在与所述地址信息匹配的目标tag值的情况下,将所述缓存读取命令发送至目标存储器;接收所述目标存储器返回的与所述缓存读取命令相匹配的读取数据;检测所述多个way中是否存在无效way,在所述多个way中存在无效way的情况下,选定一个无效way,根据所述选定的无效way对应的无效组索引信息和无效way标识信息确定第一目标cacheline,将所述读取数据写入所述第一目标cacheline中,并将所述地址信息中的tag值写入所述选定的无效way的对应位置处。
在其中一个实施例中,所述读写控制模块,还用于在所述各个way存储的tag值中,不存在与所述地址信息匹配的目标tag值,且所述多个way中不存在无效way的情况下,从所述各个组索引信息对应的组中,获取一个替换组;从所述替换组中确定一个替换way,根据所述替换way对应的替换组索引信息和替换way标识信息确定第二目标cacheline,将所述读取数据写入所述第二目标cacheline中,并将所述地址信息中的tag值写入所述替换way的对应位置处。
在其中一个实施例中,所述读写控制模块,还用于获取所述各个组索引信息对应的组的命中次数;将命中次数最小的组作为所述替换组。
在其中一个实施例中,所述缓存数据处理命令包括:缓存写入命令;所述读写控制模块,还用于在所述各个way存储的tag值中,不存在与所述地址信息匹配的目标tag值的情况下,获取与所述缓存写入命令对应的待写入数据;检测所述多个way中是否存在无效way,在所述多个way中存在无效way的情况下,选定一个无效way,根据所述选定的无效way对应的无效组索引信息和无效way标识信息确定第三目标cacheline,将所述待写入数据写入所述第三目标cacheline中,并将所述地址信息中的tag值写入所述选定的无效way的对应位置处。
在其中一个实施例中,所述读写控制模块,还用于在所述各个way存储的tag值中,不存在与所述地址信息匹配的目标tag值,且所述多个way中不存在无效way的情况下,从所述各个组索引信息对应的组中,获取一个替换组;从所述替换组中确定一个替换way,根据所述替换way对应的替换组索引信息和替换way标识信息确定第四目标cacheline,将所述待写入数据写入所述第四目标cacheline中,并将所述地址信息中的tag值写入所述替换way的对应位置处。
第二方面,本申请还提供了一种缓存数据处理方法,所述方法包括:
接收缓存数据处理命令,利用预先设置的各个哈希算法,对所述缓存数据处理命令对应的地址信息进行哈希处理,得到所述地址信息对应的多个组索引信息,其中,所述多个组索引信息不相同;
从各个哈希处理模块对应的各个地址存储器中,获取所述各个组索引信息对应的组包含的多个way信息,并获取各个way存储的tag值,其中,所述哈希处理模块的个数与所述地址存储器的个数相适应,所述tag值用于表示所述way中存储的cacheline是否是所述缓存数据处理命令的目标访问内存单元;
比对所述地址信息与所述各个way存储的tag值,在所述各个way存储的tag值中,存在与所述地址信息匹配的目标tag值的情况下,根据所述目标tag值对应的目标组索引信息和目标way标识信息确定目标cacheline,对所述数据存储器中的所述目标cacheline进行数据处理。
在其中一个实施例中,所述缓存数据处理命令包括:缓存读取命令;所述方法还包括:在所述各个way存储的tag值中,不存在与所述地址信息匹配的目标tag值的情况下,将所述缓存读取命令发送至目标存储器;接收所述目标存储器返回的与所述缓存读取命令相匹配的读取数据;检测所述多个way中是否存在无效way,在所述多个way中存在无效way的情况下,选定一个无效way,根据所述选定的无效way对应的无效组索引信息和无效way标识信息确定第一目标cacheline,将所述读取数据写入所述第一目标cacheline中,并将所述地址信息中的tag值写入所述选定的无效way的对应位置处。
在其中一个实施例中,所述方法还包括:在所述各个way存储的tag值中,不存在与所述地址信息匹配的目标tag值,且所述多个way中不存在无效way的情况下,从所述各个组索引信息对应的组中,获取一个替换组;从所述替换组中确定一个替换way,根据所述替换way对应的替换组索引信息和替换way标识信息确定第二目标cacheline,将所述读取数据写入所述第二目标cacheline中,并将所述地址信息中的tag值写入所述替换way的对应位置处。
在其中一个实施例中,所述从所述各个组索引信息对应的组中,获取一个替换组,包括:获取所述各个组索引信息对应的组的命中次数;将命中次数最小的组作为所述替换组。
在其中一个实施例中,所述缓存数据处理命令包括:缓存写入命令;所述方法还包括:在所述各个way存储的tag值中,不存在与所述地址信息匹配的目标tag值的情况下,获取与所述缓存写入命令对应的待写入数据;检测所述多个way中是否存在无效way,在所述多个way中存在无效way的情况下,选定一个无效way,根据所述选定的无效way对应的无效组索引信息和无效way标识信息确定第三目标cacheline,将所述待写入数据写入所述第三目标cacheline中,并将所述地址信息中的tag值写入所述选定的无效way的对应位置处。
在其中一个实施例中,所述方法还包括:在所述各个way存储的tag值中,不存在与所述地址信息匹配的目标tag值,且所述多个way中不存在无效way的情况下,从所述各个组索引信息对应的组中,获取一个替换组;从所述替换组中确定一个替换way,根据所述替换way对应的替换组索引信息和替换way标识信息确定第四目标cacheline,将所述待写入数据写入所述第四目标cacheline中,并将所述地址信息中的tag值写入所述替换way的对应位置处。
第三方面,本申请还提供了一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现上述的方法的步骤。
第四方面,本申请还提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述的方法的步骤。
第五方面,本申请还提供了一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现上述的方法的步骤。
上述缓存数据处理系统、方法、装置、计算机设备和存储介质,该系统包括:读写控制模块、数据存储器、多个哈希处理模块以及多个地址存储器;哈希处理模块的个数与地址存储器的个数相适应;其中,多个哈希处理模块,用于接收缓存数据处理命令,利用各个哈希处理模块预先设置的哈希算法,对缓存数据处理命令对应的地址信息进行哈希处理,得到地址信息对应的多个组索引信息;读写控制模块,用于从各个哈希处理模块对应的各个地址存储器中,获取各个组索引信息对应的组包含的多个way,并获取各个way存储的tag值,tag值用于表示way中存储的cacheline是否是缓存数据处理命令的目标访问内存单元;读写控制模块,还用于比对地址信息与各个way存储的tag值,在各个way存储的tag值中,存在与地址信息匹配的目标tag值的情况下,根据目标tag值对应的目标组索引信息和目标way标识信息确定目标cacheline,对数据存储器中的所述目标cacheline进行数据处理。本申请通过设置多个哈希处理模块,从而可以实现通过多个哈希算法得到缓存数据处理命令的多个组索引信息,并且利用各个组索引信息,分别从各个地址存储器中获取对应的组所包含的多个way,从而利用各个way存储的tag值来比对地址信息,相比于现有技术只通过单个哈希处理模块的一种哈希算法,得到单一的组索引信息,本申请可以增加组索引信息的数量,并且可以利用多个地址存储器来增加组索引信息对应的组包含的way的数量,可以提高缓存数据的命中率,从而提高缓存数据处理效率。
附图说明
图1为一个实施例中现有技术的内存访问方法的实现效果示意图;
图2为一个实施例中缓存数据处理系统的结构示意图;
图3为一个实施例中缓存数据处理方法的流程示意图;
图4为一个实施例中接收读取数据的流程示意图;
图5为一个实施例中将读取数据写入数据存储器的流程示意图;
图6为一个实施例中写入待写入数据的流程示意图;
图7为一个实施例中缓存的结构示意图;
图8为一个实施例中缓存读访问的流程示意图;
图9为一个实施例中缓存写访问的流程示意图;
图10为一个实施例中本申请的内存访问方法的实现效果示意图;
图11为一个实施例中计算机设备的内部结构图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
本申请所使用的缓存被分为S个组,每个组可以包含E个路(way),每个way可以存储1个缓存行(cacheline),因此可以利用组索引和way标识映射出一个唯一的cacheline。本申请假定所采用的缓存访问地址均对齐到cacheline粒度,地址位数为s+t,低t位均为0,代表地址对齐,地址的高s位或者s位中的部分可以通过哈希运算决定该单元被映射到哪一组。tag值用于表示所述way中存储的cacheline是否是所述缓存数据处理命令的目标访问内存单元,tag就是缓存访问地址的高s位(低t位均为0可以不作为tag),因为不同的缓存地址经过哈希运算后可能会映射到同一个cacheline,但是他们的tag不同,所以可以通过s位的tag来区分该cacheline是否是CPU要访问的内存单元。
在一个实施例中,如图2所示,提供了一种缓存数据处理系统,该系统可以包括:读写控制模块、地址存储器以及多个哈希处理模块与多个地址存储器;其中,哈希处理模块的个数与地址存储器的个数相适应,例如哈希处理模块的数量为2个,那么地址存储器的数量也可以是2个,哈希处理模块的数量为3个,那么地址存储器的数量也可以是3个,而如果哈希处理模块的数量为5个,那么地址存储器的数量也可以是5个。
多个哈希处理模块,即哈希处理模块1、哈希处理模块2、……、哈希处理模块n,是用于对接收到的用于对缓存数据进行处理的缓存数据处理命令中,包含的地址信息进行哈希处理,以得到组索引信息,即set index的模块。并且各个哈希处理模块携带有不同的哈希算法,例如哈希处理模块1可以携带有哈希算法1,在缓存数据处理命令对应的地址信息进行哈希算法1的处理后,则可以得到相应的组索引信息1,而哈希处理模块2可以携带有哈希算法2,地址信息进行哈希算法2的处理后,则可以得到组索引信息2,同理哈希处理模块3可以携带有哈希算法3,地址信息进行哈希算法3的处理后,则可以得到组索引信息3,上述组索引信息1、组索引信息2和组索引信息3各不相同。
具体来说,各个哈希处理模块在接收到缓存数据处理命令后,则可以通过预先设置的相应的哈希算法,对上述缓存数据处理命令对应的地址信息进行相应的哈希处理,从而得到多个组索引信息。
而读写控制模块则是用于对存储器,例如地址存储器或者数据存储器中的数据进行读写控制的模块,地址存储器则是用于存储缓存地址信息的存储器,并且地址存储器的数量和哈希处理模块的数量相适应,同时每一个地址存储器与每一个哈希处理模块一一对应,例如可以是哈希处理模块1对应于地址存储器1、哈希处理模块2对应于地址存储器2,而哈希处理模块3则对应于地址存储器3等等。组索引信息对应的组则指的是组索引信息所标识的组,例如组索引信息为set2,那么其对应的组即为第2组,并且每个组中可以包含有多个way,例如set2可以包含way0、way1、way2以及way3,同时set3也可以包含有way0、way1、way2以及way3,并且各个way可以用于存储相应的tag值。
具体来说,在通过各个哈希处理模块得到多个组索引信息后,读写控制模块则可以利用上述多个组索引信息,分别从各个哈希处理模块对应的各个地址存储器中,得到每一个组索引信息所对应的组,以及每一个组所包含的way,并且可以得到各个way存储的tag值。
之后,读写控制模块还可以分别比对未经哈希算法处理的地址信息的tag值与上述得到的多个tag值,并判断上述多个tag值中是否有和地址信息相匹配的目标tag值,如果存在,那么则可以利用该目标tag值所对应的组索引信息,即目标组索引信息,以及该目标tag值所对应的way标识信息,即目标way标识信息,来确定出一个目标缓存行,即目标cacheline,并对数据存储器中的目标cacheline进行相应的数据处理,例如可以是从该目标cacheline中读取出数据,或者将数据写入该目标cacheline等等。
例如,组索引信息1为set0,而组索引信息2为set5,那么读写控制模块则可以通过组索引信息1对应的地址存储器1中,获取set0所包含的多个way,即set0包含的way0、way1、way2以及way3,该way0、way1、way2以及way3分别存储有相应的tag值,同时还可以通过组索引信息2对应的地址存储器2中,获取set5所包含的多个way,即set5包含的way0、way1、way2以及way3,该way0、way1、way2以及way3也分别存储有相应的tag值,通过上述方式则可以得到8个tag值。
之后,读写控制模块则可以将缓存数据处理命令的原始地址信息的tag值,分别与上述8个tag值进行比对,来判断8个tag值中是否存在和该地址信息相匹配的目标tag值,例如可以是set5,way0中存储的tag值,与地址信息匹配,那么set5,way0中存储的tag值则作为目标tag值,同时,set5和way0则可以分别作为目标组索引信息和目标way标识信息,从而读写控制模块可以对数据存储器中set5,way0的cacheline中所对应的数据进行数据处理。
上述缓存数据处理系统,包括:读写控制模块、数据存储器、多个哈希处理模块以及多个地址存储器;哈希处理模块的个数与地址存储器的个数相适应;其中,多个哈希处理模块,用于接收缓存数据处理命令,利用各个哈希处理模块预先设置的哈希算法,对缓存数据处理命令对应的地址信息进行哈希处理,得到地址信息对应的多个组索引信息;读写控制模块,用于从各个哈希处理模块对应的各个地址存储器中,获取各个组索引信息对应的组包含的多个way,并获取各个way存储的tag值,tag值用于表示way中存储的cacheline是否是缓存数据处理命令的目标访问内存单元;读写控制模块,还用于比对地址信息与各个way存储的tag值,在各个way存储的tag值中,存在与地址信息匹配的目标tag值的情况下,根据目标tag值对应的目标组索引信息和目标way标识信息确定目标cacheline,对数据存储器中的所述目标cacheline进行数据处理。本申请通过设置多个哈希处理模块,从而可以实现通过多个哈希算法得到缓存数据处理命令的多个组索引信息,并且利用各个组索引信息,分别从各个地址存储器中获取对应的组所包含的多个way,从而利用各个way存储的tag值来比对地址信息,相比于现有技术只通过单个哈希处理模块的一种哈希算法,得到单一的组索引信息,本申请可以增加组索引信息的数量,并且可以利用多个地址存储器来增加组索引信息对应的组包含的way的数量,可以提高缓存数据的命中率,从而提高缓存数据处理效率。
在一个实施例中,缓存数据处理命令包括:缓存读取命令;读写控制模块,还用于在各个way存储的tag值中,不存在与地址信息匹配的目标tag值的情况下,将缓存读取命令发送至目标存储器;接收目标存储器返回的与缓存读取命令相匹配的读取数据;检测多个way中是否存在无效way,在多个way中存在无效way的情况下,选定一个无效way,根据选定的无效way对应的组索引信息和无效way标识信息确定第一目标cacheline,将读取数据写入第一目标cacheline中,并将地址信息中的tag值写入选定的无效way的对应位置处。
其中,缓存读取命令是用于读取数据存储器中存储的数据的命令,目标存储器则可以指的是DDR,本实施例中,如果各个way存储的tag值中,不存在与地址信息匹配的目标tag值的情况下,即缓存读取命令miss的情况下,读写控制模块还可以将该缓存读取命令发送至目标存储器中。同时,读写控制模块还可以检测上述多个way中是否存在无效way,即状态为invalid的way,如果存在,则可以从中选择一个无效way,将上述地址信息中的tag值存入选中的无效way中,同时还可以将目标存储器返回的读取数据存入数据存储器与无效组索引信息和无效way标识信息相匹配的cacheline,即第一目标cacheline中,该无效组索引信息为无效way所对应的组的组索引信息,而无效way标识信息则指的是无效way所对应的way标识信息。
例如,当前通过哈希算法得出的组索引信息1以及组索引信息2,分别是set0和set5,并且上述set0和set5包含的way中都不存储有与地址信息相匹配的tag值,同时set5中存在一个状态为invalid的无效way,例如set5,way2为无效way,那么读写控制模块则可以将上述地址信息写入set5,way2这个无效way中,其中set5即为无效组索引信息,而way2则是无效way标识信息,同时,还可以将上述读取数据存入数据存储器与无效组索引信息和无效way标识信息相匹配的cacheline中,即将上述读取数据存入数据存储器中与set5,way2所对应的cacheline中,以使得下次针对该地址信息的读命令可以命中。
本实施例中,如果各个way存储的tag值中,不存在与地址信息匹配的目标tag值的情况下,读写控制模块还可以检测上述多个way中是否存在无效way,如果存在,则可以将地址信息存入无效way中,以及将上述读取数据存入数据存储器与上述无效way对应的cacheline中,从而使得下次接收到针对该地址信息的读命令时,可以使得命令得以命中,从数据存储器中读取出相应数据,从而提高缓存数据读取的效率,同时由于way数量的增加,存在可替换的无效way的概率也相应增加,并且还可以将数据写入存储器中与无效way对应的cacheline,因此可以提高存储器的利用率。
另外,读写控制模块,还用于在各个way存储的tag值中,不存在与地址信息匹配的目标tag值,且多个way中不存在无效way的情况下,从各个组索引信息对应的组中,获取一个替换组;从替换组中确定一个替换way,根据替换way对应的替换组索引信息和替换way标识信息确定第二目标cacheline,将读取数据写入第二目标cacheline中,并将地址信息中的tag值写入替换way的对应位置处。
而如果多个way中不存在无效way的情况下,即所有的way都为有效way,那么则可以从上述各个组索引信息对应的组中,获取一个用于将数据进行替换的替换组,替换组的确定可以是通过轮询仲裁等方式确定,并且可以从替换组的多个way中,确定出一个进行替换的替换way,从而可以将该替换way中存储的tag值,以及数据存储器中该替换way所对应的存储数据,即替换数据,将其回写至目标存储器DDR中,同时,还可以将上述地址信息的tag值写入上述替换way中,以及将上述读取数据存入数据存储器中与替换way对应的替换组索引信息和替换way标识信息相匹配的cacheline,即第二目标cacheline中。
例如,通过哈希算法得出的组索引信息1以及组索引信息2,分别是set0和set5,并且上述set0和set5包含的way中都不存储有与地址信息相匹配的tag值,同时set0和set5中都不能存在状态为invalid的无效way,那么读写控制模块则可以先从set0和set5中,确定一个替换组,该替换组可以是set5,同时可以从set5包含的多个way中,确定出其中一个作为替换way,例如可以是set5,way1为替换way,那么则可以将替换way中当前存储的tag值,以及数据存储器中存储的,该替换way对应的替换数据,即当前set5,way1所对应cacheline存储的数据,回写至目标存储器DDR中,来保证数据的完整性。之后,再将上述地址信息写入set5,way1中,同时将上述读取数据存入数据存储器中与set5,way1所对应的cacheline中,以使得下次针对该地址信息的读命令可以命中。
本实施例中,如果上述多个way中不存在无效way,则可以先从各个组索引信息对应的组中确定一个替换组,再从该替换组中包含的way中确定一个替换way,则可以将替换way中存储的tag值,以及数据存储器中与替换way对应的替换数据回写至目标存储器中。之后再将地址信息存入替换way中,以及将上述读取数据存入数据存储器与上述替换way对应的cacheline中,从而在保证了数据完整性的同时,使得下次接收到针对该地址信息的读命令时,可以使得命令得以命中,从数据存储器中读取出相应数据,从而提高缓存数据读取的效率。
进一步地,读写控制模块,还用于获取各个组索引信息对应的组的命中次数;将命中次数最小的组作为替换组。
命中次数则指的是各个组索引信息对应的组的hit次数,本实施例中,在每次发生缓存数据处理命令命中时,则可以通过计数器增加hit次数,从而实现命中次数的统计,读写控制模块可以得到每一个组索引信息对应的组的命中次数,从而可以将命中次数最小的组,作为需要进行数据替换的替换组,从而可以保证替换的组的缓存行是不常用的缓存行。
本实施例中,读写控制模块还可以统计目标组索引信息对应的组的命中次数,从而将命中次数最小的组作为替换组,从而可以保证替换组的缓存行是不常用的缓存行,使得各个组的访问可以更加均衡,并且可以增加访问到不同组的概率,来进一步提高缓存数据的命中率。
在一个实施例中,缓存数据处理命令包括:缓存读取命令;读写控制模块,还用于将目标组索引信息对应的组的命中次数加一,并从数据存储器与目标组索引信息和目标way标识信息相匹配的cacheline中读取与缓存读取命令相匹配的读取数据。
而如果各个way存储的tag值中,存在与目标tag值的情况下,即缓存数据命中时,则可以将命中的目标组索引信息对应的组的命中次数加一,之后则可以利用目标组索引信息和目标way标识信息,从数据存储器中读取出与缓存读取命令相匹配的读取数据。
例如,通过哈希算法得出的组索引信息1以及组索引信息2,分别是set0和set5,并且set5,way0中存储的tag值与地址信息相匹配,那么则说明读命令命中,那么此时则可以对set5的命中次数+1,同时从数据存储器与set5,way0对应的cacheline中,读取出与该缓存读取命令相匹配的读取数据。
本实施例中,如果缓存读取命令命中,则可以对目标组索引信息对应的组的命中次数加一,并且从数据存储器与目标组索引信息和目标way标识信息相匹配的地址中读取出读取数据,从而提高数据读取的效率。
在一个实施例中,缓存数据处理命令包括:缓存写入命令;读写控制模块,还用于在各个way存储的tag值中,不存在与地址信息匹配的目标tag值的情况下,获取与缓存写入命令对应的待写入数据;检测多个way中是否存在无效way,在多个way中存在无效way的情况下,选定一个无效way,根据选定的无效way对应的无效组索引信息和无效way标识信息确定第三目标cacheline,将待写入数据写入第三目标cacheline中,并将地址信息中的tag值写入选定的无效way的对应位置处。
其中,缓存写入命令是用于将数据写入数据存储器的命令,本实施例中,如果各个way存储的tag值中,不存在与地址信息匹配的目标tag值的情况下,即缓存写入命令miss的情况下,读写控制模块还可以得到需要写入数据存储器的数据,即待写入数据,同时可以检测上述多个way中是否存在无效way,即状态为invalid的way,如果存在,则可以将上述地址信息存入无效way中,同时还可以将待写入数据,写入数据存储器与无效组索引信息和无效way标识信息相匹配的cacheline,即第三目标cacheline中。
例如,当前通过哈希算法得出的组索引信息1以及组索引信息2,分别是set2和set7,并且上述set2和set7包含的way中都不存储有与地址信息相匹配的tag值,同时set7中存在一个状态为invalid的无效way,例如set7,way2为无效way,那么读写控制模块则可以将上述地址信息写入set7,way2这个无效way中,其中set7即为无效组索引信息,而way2则是无效way标识信息,同时,还可以将上述待写入数据,写入数据存储器与无效组索引信息和无效way标识信息相匹配的cacheline中,即将上述待写入数据存入数据存储器中与set7,way2所对应的cacheline中,以使得下次针对该地址信息的读命令可以命中。
本实施例中,如果各个way存储的tag值中,不存在与地址信息匹配的目标tag值的情况下,读写控制模块还可以检测上述多个way中是否存在无效way,如果存在,则可以将地址信息存入无效way中,以及将上述待写入数据存入数据存储器与上述无效way对应的cacheline中,从而使得下次接收到针对该地址信息的读命令时,可以使得命令得以命中,从数据存储器中读取出相应数据,从而提高缓存数据读取的效率,同时由于way数量的增加,存在可替换的无效way的概率也相应增加,并且通过将数据写入存储器中与无效way对应的地址,因此可以提高存储器的利用率。
另外,读写控制模块,还用于在各个way存储的tag值中,不存在与地址信息匹配的目标tag值,且多个way中不存在无效way的情况下,从各个组索引信息对应的组中,获取一个替换组;从替换组中确定一个替换way,根据替换way对应的替换组索引信息和替换way标识信息确定第四目标cacheline,将待写入数据写入第四目标cacheline中,并将地址信息中的tag值写入替换way的对应位置处。
而如果多个way中不存在无效way的情况下,即所有的way都为有效way,那么则可以从上述各个组索引信息对应的组中,获取一个用于将数据进行替换的替换组,并且可以从替换组的多个way中,确定出一个替换way,从而可以将该替换way中存储的tag值,以及数据存储器中该替换way所对应的存储数据,即替换数据,将其回写至目标存储器DDR中,同时,还可以将上述地址信息写入上述替换way中,以及将上述待写入数据存入数据存储器中与替换way对应的替换组索引信息和替换way标识信息相匹配的cacheline,即第四目标cacheline中。
例如,通过哈希算法得出的组索引信息1以及组索引信息2,分别是set2和set7,并且上述set2和set7包含的way中都不存储有与地址信息相匹配的tag值,同时set2和set7中都不能存在状态为invalid的无效way,那么读写控制模块则可以先从set2和set7中,确定一个替换组,该替换组可以是set7,同时可以从set7包含的多个way中,确定出其中一个作为替换way,例如可以是set7,way0为替换way,那么则可以将替换way中当前存储的tag值,以及数据存储器中存储的,该替换way对应的替换数据,即当前set7,way0所对应cacheline存储的数据,回写至目标存储器DDR中,来保证数据的完整性。之后,再将上述地址信息写入set7,way0中,同时将上述待写入数据存入数据存储器中与set7,way0所对应的cacheline中,以使得下次针对该地址信息的读命令可以命中。
本实施例中,如果上述多个way中不存在无效way,则可以先从各个组索引信息对应的组中确定一个替换组,再从该替换组中包含的way中确定一个替换way,则可以将替换way中存储的tag值,以及数据存储器中与替换way对应的替换数据回写至目标存储器中。之后再将地址信息存入替换way中,以及将上述待写入数据存入数据存储器与上述替换way对应的cacheline中,从而在保证了数据完整性的同时,使得下次接收到针对该地址信息的读命令时,可以使得命令得以命中,从数据存储器中读取出相应数据,从而提高缓存数据读取的效率。
在一个实施例中,缓存数据处理命令包括:缓存写入命令;读写控制模块,还用于获取与缓存写入命令对应的待写入数据;将目标组索引信息对应的组的命中次数加一,并将待写入数据写入数据存储器与目标组索引信息和目标way标识信息相匹配的cacheline中。
而如果各个way存储的tag值中,存在与目标tag值的情况下,即缓存数据命中时,则可以将命中的目标组索引信息对应的组的命中次数加一,之后则可以利用目标组索引信息和目标way标识信息,将缓存写入命令对应的待写入数据,写入数据存储器与目标组索引信息和目标way标识信息相匹配的cacheline中。
例如,通过哈希算法得出的组索引信息1以及组索引信息2,分别是set2和set7,并且set7,way1中存储的tag值与地址信息相匹配,那么则说明读命令命中,那么此时则可以对set7的命中次数+1,同时将待写入数据,写入数据存储器与set7,way1对应的cacheline中。
本实施例中,如果缓存写入命令命中,则可以对目标组索引信息对应的组的命中次数加一,并且将待写入数据,写入数据存储器与目标组索引信息和目标way标识信息相匹配的cacheline中,从而提高数据写入的效率。
在一个实施例中,如图3所示,提供了一种缓存数据处理方法,该方法可以应用于缓存数据处理系统中,包括以下步骤:
步骤S301,接收缓存数据处理命令,利用预先设置的各个哈希算法,对缓存数据处理命令对应的地址信息进行哈希处理,得到地址信息对应的多个组索引信息,其中,多个组索引信息不相同。
其中,哈希处理模块可以是用于对缓存数据处理命令中,包含的地址信息进行哈希处理的模块,哈希处理模块的数量为多个,分别对应于多种哈希算法。具体来说,在接收到缓存数据处理命令后,则可以利用上述多个哈希处理模块预先设置的多种哈希算法,对缓存数据处理命令对应的地址信息进行多种哈希算法的哈希处理,从而可以得到相应的多个组索引信息,即set index。例如,哈希处理模块1可以携带有哈希算法1,其得到的组索引信息则可以是组索引信息1,而哈希处理模块2可以携带有哈希算法2,其得到的组索引信息则可以是组索引信息2等等。
步骤S302,从各个哈希处理模块对应的各个地址存储器中,获取各个组索引信息对应的组包含的多个way信息,并获取各个way存储的tag值,其中,哈希处理模块的个数与地址存储器的个数相适应,tag值用于表示way中存储的cacheline是否是缓存数据处理命令的目标访问内存单元。
地址存储器则是用于存储缓存地址信息的存储器,本实施例中,地址存储器的数量也可以是多个,并且多个地址存储器与多个哈希处理模块一一对应,同时哈希处理模块的个数与地址存储器的个数相适应。组索引信息对应的组则指的是组索引信息所标识的组,例如组索引信息为set2,那么其对应的组即为第2组,并且每个组中可以包含有多个way,并且各个way可以用于存储相应的tag值。
具体来说,在通过各个哈希处理模块得到多个组索引信息后,则可以利用上述多个组索引信息,分别从各个哈希处理模块对应的各个地址存储器中,得到每一个组索引信息所对应的组,以及每一个组所包含的way,并且可以得到各个way存储的tag值,该tag值可以用于表示way中存储的cacheline是否是缓存数据处理命令的目标访问内存单元。
步骤S303,比对地址信息与各个way存储的tag值,在各个way存储的tag值中,存在与地址信息匹配的目标tag值的情况下,根据目标tag值对应的目标组索引信息和目标way标识信息确定目标cacheline,对数据存储器中的目标cacheline进行数据处理。
之后,还可以分别比对未经哈希算法处理的地址信息与上述步骤S202中得到的多个tag值,并判断上述多个tag值中是否有和地址信息相匹配的目标tag值,如果存在,那么则可以利用该目标tag值所对应的组索引信息,即目标组索引信息,以及该目标tag值所对应的way标识信息,即目标way标识信息,来对数据存储器中与目标组索引信息和目标way标识信息对应的地址进行相应的数据处理。
上述缓存数据处理方法中,通过接收缓存数据处理命令,利用预先设置的各个哈希算法,对缓存数据处理命令对应的地址信息进行哈希处理,得到地址信息对应的多个组索引信息,其中,多个组索引信息不相同;从各个哈希处理模块对应的各个地址存储器中,获取各个组索引信息对应的组包含的多个way信息,并获取各个way存储的tag值,其中,哈希处理模块的个数与地址存储器的个数相适应,tag值用于表示way中存储的cacheline是否是缓存数据处理命令的目标访问内存单元;比对地址信息与各个way存储的tag值,在各个way存储的tag值中,存在与地址信息匹配的目标tag值的情况下,根据目标tag值对应的目标组索引信息和目标way标识信息确定目标cacheline,对数据存储器中的目标cacheline进行数据处理。本申请通过设置多个哈希处理模块,从而可以实现通过多个哈希算法得到缓存数据处理命令的多个组索引信息,并且利用各个组索引信息,分别从各个地址存储器中获取对应的组所包含的多个way,从而利用各个way存储的tag值来比对地址信息,相比于现有技术只通过单个哈希处理模块的一种哈希算法,得到单一的组索引信息,本申请可以增加组索引信息的数量,并且可以利用多个地址存储器来增加组索引信息对应的组包含的way的数量,可以提高缓存数据的命中率,从而提高缓存数据处理效率。
在一个实施例中,缓存数据处理命令包括:缓存读取命令;如图4所示,该方法还可以包括:
步骤S401,在各个way存储的tag值中,不存在与地址信息匹配的目标tag值的情况下,将缓存读取命令发送至目标存储器;
步骤S402,接收目标存储器返回的与缓存读取命令相匹配的读取数据。
其中,缓存读取命令是用于读取数据存储器中存储的数据的命令,目标存储器则可以指的是DDR,本实施例中,如果各个way存储的tag值中,不存在与地址信息匹配的目标tag值的情况下,即缓存读取命令miss的情况下,读写控制模块还可以将该缓存读取命令发送至目标存储器中,从而目标存储器则可以对该缓存读取命令进行响应,并返回与该命令相匹配的读取数据。
步骤S403,检测多个way中是否存在无效way,在多个way中存在无效way的情况下,选定一个无效way,根据选定的无效way对应的无效组索引信息和无效way标识信息确定第一目标cacheline,将读取数据写入第一目标cacheline中,并将地址信息中的tag值写入选定的无效way的对应位置处。
并且,缓存还可以检测步骤S302中多个way中是否存在无效way,即状态为invalid的way,如果存在,则可以将上述地址信息存入无效way中,同时还可以将目标存储器返回的读取数据存入数据存储器与无效组索引信息和无效way标识信息相匹配的cacheline,即第一目标cacheline中,该无效组索引信息为无效way所对应的组的组索引信息,而无效way标识信息则指的是无效way所对应的way标识信息。
本实施例中,如果各个way存储的tag值中,不存在与地址信息匹配的目标tag值的情况下,还可以检测上述多个way中是否存在无效way,如果存在,则可以将地址信息存入无效way中,以及将上述读取数据存入数据存储器与上述无效way对应的cacheline中,从而使得下次接收到针对该地址信息的读命令时,可以使得命令得以命中,从数据存储器中读取出相应数据,从而提高缓存数据读取的效率,同时由于way数量的增加,存在可替换的无效way的概率也相应增加,并且通过将数据写入存储器中与无效way对应的地址,因此可以提高存储器的利用率。
另外,如图5所示,该方法还可以包括:
步骤S501,在各个way存储的tag值中,不存在与地址信息匹配的目标tag值,且多个way中不存在无效way的情况下,从各个组索引信息对应的组中,获取一个替换组。
而如果多个way中不存在无效way的情况下,即所有的way都为有效way,那么则可以从上述各个组索引信息对应的组中,获取一个用于将数据进行替换的替换组,其中,替换组的确定可以是通过轮询仲裁等方式确定。
步骤S502,从替换组中确定一个替换way,根据替换way对应的替换组索引信息和替换way标识信息确定第二目标cacheline,将读取数据写入第二目标cacheline中,并将地址信息中的tag值写入替换way的对应位置处。
之后,还可以从替换组的多个way中,确定出一个进行替换的替换way,从而可以将该替换way中存储的tag值,以及数据存储器中该替换way所对应的存储数据,即替换数据,将其回写至目标存储器DDR中,同时,还可以将上述地址信息写入上述替换way中,以及将上述读取数据存入数据存储器中与替换way对应的替换组索引信息和替换way标识信息相匹配的cacheline,即第二目标cacheline中。
本实施例中,如果上述多个way中不存在无效way,则可以先从各个组索引信息对应的组中确定一个替换组,再从该替换组中包含的way中确定一个替换way,则可以将替换way中存储的tag值,以及数据存储器中与替换way对应的替换数据回写至目标存储器中。之后再将地址信息存入替换way中,以及将上述读取数据存入数据存储器与上述替换way对应的cacheline中,从而在保证了数据完整性的同时,使得下次接收到针对该地址信息的读命令时,可以使得命令得以命中,从数据存储器中读取出相应数据,从而提高缓存数据读取的效率。
进一步地,步骤S501可以进一步包括:获取各个组索引信息对应的组的命中次数;将命中次数最小的组作为替换组。
命中次数则指的是各个组索引信息对应的组的hit次数,本实施例中,在每次发生缓存数据处理命令命中时,则可以通过计数器增加hit次数,从而实现命中次数的统计,缓存可以通过计数器得到每一个组索引信息对应的组的命中次数,从而可以将命中次数最小的组,作为需要进行数据替换的替换组,从而可以保证替换的组的缓存行是不常用的缓存行。
本实施例中,缓存还可以统计目标组索引信息对应的组的命中次数,从而将命中次数最小的组作为替换组,从而可以保证替换的组的缓存行是不常用的缓存行,使得各个组的访问可以更加均衡,并且可以增加访问到不同组的概率,来进一步提高缓存数据的命中率。
在一个实施例中,缓存数据处理命令包括:缓存读取命令;步骤S203可以进一步包括:将目标组索引信息对应的组的命中次数加一,并从数据存储器与目标组索引信息和目标way标识信息相匹配的cacheline中读取与缓存读取命令相匹配的读取数据。
而如果各个way存储的tag值中,存在与目标tag值的情况下,即缓存数据命中时,缓存则可以将命中的目标组索引信息对应的组的命中次数加一,之后则可以利用目标组索引信息和目标way标识信息,从数据存储器中读取出与缓存读取命令相匹配的读取数据。
本实施例中,如果缓存读取命令命中,则可以对目标组索引信息对应的组的命中次数加一,并且从数据存储器与目标组索引信息和目标way标识信息相匹配的cacheline中读取出读取数据,从而提高数据读取的效率。
在一个实施例中,缓存数据处理命令包括:缓存写入命令;如图6所示,该方法还可以包括:
步骤S601,在各个way存储的tag值中,不存在与地址信息匹配的目标tag值的情况下,获取与缓存写入命令对应的待写入数据。
其中,缓存写入命令是用于将数据写入数据存储器的命令,本实施例中,如果各个way存储的tag值中,不存在与地址信息匹配的目标tag值的情况下,即缓存写入命令miss的情况下,缓存还可以得到需要写入数据存储器的数据,即待写入数据。
步骤S602,检测多个way中是否存在无效way,在多个way中存在无效way的情况下,选定一个无效way,根据选定的无效way对应的无效组索引信息和无效way标识信息确定第三目标cacheline,将待写入数据写入第三目标cacheline中,并将地址信息中的tag值写入选定的无效way的对应位置处。
步骤S601缓存得到待写入数据后,还可以检测步骤S302中得到的多个way中是否存在无效way,即状态为invalid的way,如果存在,则可以将上述地址信息存入无效way中,同时还可以将待写入数据,写入数据存储器与无效组索引信息和无效way标识信息相匹配的cacheline,即第三目标cacheline中。
本实施例中,如果各个way存储的tag值中,不存在与地址信息匹配的目标tag值的情况下,缓存还可以检测上述多个way中是否存在无效way,如果存在,则可以将地址信息存入无效way中,以及将上述待写入数据存入数据存储器与上述无效way对应的cacheline中,从而使得下次接收到针对该地址信息的读命令时,可以使得命令得以命中,从数据存储器中读取出相应数据,从而提高缓存数据读取的效率,同时由于way数量的增加,存在可替换的无效way的概率也相应增加,并且通过将数据写入存储器中与无效way对应的地址,因此可以提高存储器的利用率。
另外,该方法还可以包括:在各个way存储的tag值中,不存在与地址信息匹配的目标tag值,且多个way中不存在无效way的情况下,从各个组索引信息对应的组中,获取一个替换组;从替换组中确定一个替换way,根据替换way对应的替换组索引信息和替换way标识信息确定第四目标cacheline,将待写入数据写入第四目标cacheline中,并将地址信息中的tag值写入替换way的对应位置处。
而如果多个way中不存在无效way的情况下,即所有的way都为有效way,那么则可以从上述各个组索引信息对应的组中,获取一个用于将数据进行替换的替换组,并且可以从替换组的多个way中,确定出一个替换way,从而可以将该替换way中存储的tag值,以及数据存储器中该替换way所对应的存储数据,即替换数据,将其回写至目标存储器DDR中,同时,还可以将上述地址信息写入上述替换way中,以及将上述待写入数据存入数据存储器中与替换way对应的替换组索引信息和替换way标识信息相匹配的cacheline,即第四目标cacheline中。
本实施例中,如果上述多个way中不存在无效way,则可以先从各个组索引信息对应的组中确定一个替换组,再从该替换组中包含的way中确定一个替换way,则可以将替换way中存储的tag值,以及数据存储器中与替换way对应的替换数据回写至目标存储器中。之后再将地址信息存入替换way中,以及将上述待写入数据存入数据存储器与上述替换way对应的cacheline中,从而在保证了数据完整性的同时,使得下次接收到针对该地址信息的读命令时,可以使得命令得以命中,从数据存储器中读取出相应数据,从而提高缓存数据读取的效率。
在一个实施例中,缓存数据处理命令包括:缓存写入命令;步骤S303可以进一步包括:获取与缓存写入命令对应的待写入数据;将目标组索引信息对应的组的命中次数加一,并将待写入数据写入数据存储器与目标组索引信息和目标way标识信息相匹配的cacheline中。
而如果各个way存储的tag值中,存在与目标tag值的情况下,即缓存数据命中时,则可以将命中的目标组索引信息对应的组的命中次数加一,之后则可以利用目标组索引信息和目标way标识信息,将缓存写入命令对应的待写入数据,写入数据存储器与目标组索引信息和目标way标识信息相匹配的cacheline中。
本实施例中,如果缓存写入命令命中,则可以对目标组索引信息对应的组的命中次数加一,并且将待写入数据,写入数据存储器与目标组索引信息和目标way标识信息相匹配的cacheline中,从而提高数据写入的效率。
在一个实施例中,还提供了一种提高缓存命中率的方法及装置,其中,该缓存的结构可如图7所示,其中,
Hash处理模块包括Hash1处理模块(其中一种Hash处理算法)和Hash2处理模块(另外一种Hash处理算法),Hash处理模块可以对cache访问的地址进行两种Hash运算,得到2个不同的set index;
读写控制模块可以根据不同场景对TAG_MEM(存储了cache line的tag、vld、dirty标识等信息的SRAM)或者DATA_MEM(存储cache line数据的SRAM)进行读或者写的控制;
命中判断模块可以读从TAG_MEM读出来的tag与cache访问的tag进行比较,如果相同则判断为hit(命中);
命令发送可以将miss后的读命令需要发送读命令到DDR或者下一级cache中读取数据,或者发生cache line替换的时候需要把旧cache line回写到DDR或者下一级cache。
并且,缓存读访问的流程可如图8所示,而缓存写访问的流程可如图9所示,当cache收到一次访问的请求时,会根据配置好的两种hash算法进行处理,算法可依据不同场景的业务需求进行灵活的选择,但是需要满足一个条件,即同一个地址经过2种hash处理不能是相同的值,经过hash处理后得到2个set index,通过读写控制单元对这2个index对应的地址同时读取TAG_MEM0和TAG_MEM1,获得了2个set的tag,假设每个set里面包含4个way,也称为4路组相联,这里的tag通常是指访问的原始地址,因此,从TAG_MEM0和TAG_MEM1中分别获得了4个共计8个tag,将其与cache访问的原始地址进行比较,如果在set0中hit,则去set0对应way的地址的DATA_MEM中读取对应的数据,例如在set0,way0 hit,则读取地址0,在set0,way3 hit,则读取地址3,在set1,way0 hit,则读取地址3,以此类推;如果miss,则优先选择目前有可用way的set进行占用,如果不存在可用way,则选择最近hit最少的那个set通过LRU或者其他替换算法选择一个way进行替换,hit最少的set是通过计数器记录的,当每次发生hit时,都会更新对应set的hit次数,这样可以尽可能的保证替换的cache line是不常用的,当然,也可以通过RR(Round-Robin)轮询仲裁等方式选择其中的一个set来进行替换。
具体来说,本申请的流程则如下所示:
1、通过Hash模块得到两个set index,判断这两个set index 中是否有原始地址,若有,则直接读取set index中的对应的地址中的值。例如读addr0时,通过hash映射到set0和set5,set0中无匹配的tag,set5中有匹配的tag,因此直接读取set5,addr0对应的数据即可。
2、如果计算出来的两个set index中都没有原始读地址,则判断这两个set index中是否有Invalid的way,如果有的话,将读取的数据写入状态为invalid的way中。
3、如果set index中的way中都没有Invalid的way,则选取上述状态为Invalid的way中设置一段时间内访问量最小的way进行替换。
本申请上述流程提供的内存访问方法的实现效果则如图10所示,具体如下:
(1)读addr0时,通过hash映射到set0和set5,set0中无匹配的tag,set5中有匹配的tag,因此直接读取set5,addr0对应的数据即可,如果使用传统方式,由于set0无匹配的tag,因此这次访问大概率是miss的。
(2)写addr1时,通过hash映射到set2和set7,set2中无匹配的tag,无可用的way,set1中无匹配的tag,但是有无效的way,因此通过可以写入set7中的way2,而不用替换set2中的数据,如果使用传统方式,只能替换set2中已有的数据,而set7是有空闲的却未得到充分的利用。
(3)读addr1时,通过hash映射到set2和set7,set2中无匹配的tag,set7中有匹配的tag,cache hit,读出set7,way2对应的数据,如果使用传统方式,addr1可能已经被替换掉,无法hit。
(4)读addr2时,通过hash映射到set0和set6,set0中有匹配的tag,cache hit,读出set0,way1对应的数据,如果使用传统方式,如图1所示,addr2在一开始就被addr0的访问替换掉,无法hit,本发明由于可供选择的way数增加,因此在读addr2时,该cache line未发生替换。
可见,当使用本实施例的方法后,可以扩大本次访问可以使用的cache line个数,从而减少了发生替换的几率,增加了cache中空闲set的利用率,同时提高了cache的hit率,原本被替换出去的cache line可能会在后面的访问中命中,但是由于单个set的way数限制,发生了替换,使用该方法,相当于增加了每个地址通过hash映射后可以访问的地址范围,使得之前无法访问到的set被利用起来。
本实施例通过使用2种hash映射方式,使得set的访问更加的均匀,访问到不同set的几率增加,提高了cache的利用率,扩大了替换的选择面,提高了cache的hit率。例如从TAG_MEM0和TAG_MEM1中分别获得了4个共计8个tag,相比于常见的cache,一次只能读出1个set的4个tag,无疑其hit的概率更大,同时若miss,可以使用的无效cache line几率也更大,如果没有无效cache line,让其选择替换的选择也更多,也减少了替换掉后续可能需要继续访问的cache line的概率。
应该理解的是,虽然如上所述的各实施例所涉及的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,如上所述的各实施例所涉及的流程图中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
基于同样的发明构思,本申请实施例还提供了一种用于实现上述所涉及的缓存数据处理方法的缓存数据处理装置。该装置所提供的解决问题的实现方案与上述方法中所记载的实现方案相似,故下面所提供的一个或多个缓存数据处理装置实施例中的具体限定可以参见上文中对于缓存数据处理方法的限定,在此不再赘述。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是缓存,其内部结构图可以如图11所示。该计算机设备包括通过系统总线连接的处理器、存储器和通信接口。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统和计算机程序。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的通信接口用于与外部的终端进行有线或无线方式的通信,无线方式可通过WIFI、移动蜂窝网络、NFC(近场通信)或其他技术实现。该计算机程序被处理器执行时以实现一种缓存数据处理方法。
本领域技术人员可以理解,图11中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,还提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现上述各方法实施例中的步骤。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述各方法实施例中的步骤。
在一个实施例中,提供了一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现上述各方法实施例中的步骤。
需要说明的是,本申请所涉及的用户信息(包括但不限于用户设备信息、用户个人信息等)和数据(包括但不限于用于分析的数据、存储的数据、展示的数据等),均为经用户授权或者经过各方充分授权的信息和数据。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(Read-OnlyMemory,ROM)、磁带、软盘、闪存、光存储器、高密度嵌入式非易失性存储器、阻变存储器(ReRAM)、磁变存储器(Magnetoresistive Random Access Memory,MRAM)、铁电存储器(Ferroelectric Random Access Memory,FRAM)、相变存储器(Phase Change Memory,PCM)、石墨烯存储器等。易失性存储器可包括随机存取存储器(Random Access Memory,RAM)或外部高速缓冲存储器等。作为说明而非局限,RAM可以是多种形式,比如静态随机存取存储器(Static Random Access Memory,SRAM)或动态随机存取存储器(Dynamic RandomAccess Memory,DRAM)等。本申请所提供的各实施例中所涉及的数据库可包括关系型数据库和非关系型数据库中至少一种。非关系型数据库可包括基于区块链的分布式数据库等,不限于此。本申请所提供的各实施例中所涉及的处理器可为通用处理器、中央处理器、图形处理器、数字信号处理器、可编程逻辑器、基于量子计算的数据处理逻辑器等,不限于此。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本申请专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请的保护范围应以所附权利要求为准。
Claims (14)
1.一种缓存数据处理系统,其特征在于,所述系统包括:读写控制模块、数据存储器、多个哈希处理模块以及多个地址存储器;所述哈希处理模块的个数与所述地址存储器的个数相适应;其中,
所述多个哈希处理模块,用于接收缓存数据处理命令,利用预先设置的哈希算法,对所述缓存数据处理命令对应的地址信息进行哈希处理,得到所述地址信息对应的多个组索引信息,其中,所述多个组索引信息不相同;
所述读写控制模块,用于获取各个组索引信息对应的组包含的多个way信息,并获取各个way存储的tag值,所述tag值用于表示所述way中存储的cacheline是否是所述缓存数据处理命令的目标访问内存单元;
所述读写控制模块,还用于比对所述地址信息与所述各个way存储的tag值,在所述way存储的tag值中,存在与所述地址信息匹配的目标tag值的情况下,根据所述目标tag值对应的目标组索引信息和目标way标识信息确定目标cacheline,对所述数据存储器中的所述目标cacheline进行数据处理。
2.根据权利要求1所述的系统,其特征在于,所述缓存数据处理命令包括:缓存读取命令;
所述读写控制模块,还用于在所述way存储的tag值中,不存在与所述地址信息匹配的目标tag值的情况下,将所述缓存读取命令发送至目标存储器;接收所述目标存储器返回的与所述缓存读取命令相匹配的读取数据;检测所述多个way中是否存在无效way,在所述多个way中存在无效way的情况下,选定一个无效way,根据所述选定的无效way对应的组索引信息和无效way标识信息确定第一目标cacheline,将所述读取数据写入所述第一目标cacheline中,并将所述地址信息中的tag值写入所述选定的无效way的对应位置处。
3.根据权利要求2所述的系统,其特征在于,
所述读写控制模块,还用于在所述way存储的tag值中,不存在与所述地址信息匹配的目标tag值,且所述多个way中不存在无效way的情况下,从所述各个组索引信息对应的组中,获取一个替换组;从所述替换组中确定一个替换way,根据所述替换way对应的组索引信息和替换way标识信息确定第二目标cacheline,将所述读取数据写入所述第二目标cacheline中,并将所述地址信息中的tag值写入所述替换way的对应位置处。
4.根据权利要求3所述的系统,其特征在于,
所述读写控制模块,还用于获取所述各个组索引信息对应的组的命中次数;将命中次数最小的组作为所述替换组。
5.根据权利要求1所述的系统,其特征在于,所述缓存数据处理命令包括:缓存写入命令;
所述读写控制模块,还用于在所述way存储的tag值中,不存在与所述地址信息匹配的目标tag值的情况下,获取与所述缓存写入命令对应的待写入数据;检测所述多个way中是否存在无效way,在所述多个way中存在无效way的情况下,选定一个无效way,根据所述选定的无效way对应的组索引信息和无效way标识信息确定第三目标cacheline,将所述待写入数据写入所述第三目标cacheline中,并将所述地址信息中的tag值写入所述选定的无效way的对应位置处。
6.根据权利要求5所述的系统,其特征在于,
所述读写控制模块,还用于在所述各个way存储的tag值中,不存在与所述地址信息匹配的目标tag值,且所述多个way中不存在无效way的情况下,从所述各个组索引信息对应的组中,获取一个替换组;从所述替换组中确定一个替换way,根据所述替换way对应的组索引信息和替换way标识信息确定第四目标cacheline,将所述待写入数据写入所述第四目标cacheline中,并将所述地址信息中的tag值写入所述替换way的对应位置处。
7.一种缓存数据处理方法,其特征在于,所述方法包括:
接收缓存数据处理命令,利用预先设置的哈希算法,对所述缓存数据处理命令对应的地址信息进行哈希处理,得到所述地址信息对应的多个组索引信息,其中,所述多个组索引信息不相同;
获取各个组索引信息对应的组包含的多个way信息,并获取各个way存储的tag值,所述tag值用于表示所述way中存储的cacheline是否是所述缓存数据处理命令的目标访问内存单元;
比对所述地址信息与所述各个way存储的tag值,在所述way存储的tag值中,存在与所述地址信息匹配的目标tag值的情况下,根据所述目标tag值对应的目标组索引信息和目标way标识信息确定目标cacheline,对数据存储器中的所述目标cacheline进行数据处理。
8.根据权利要求7所述的方法,其特征在于,所述缓存数据处理命令包括:缓存读取命令,所述方法还包括:
在所述way存储的tag值中,不存在与所述地址信息匹配的目标tag值的情况下,将所述缓存读取命令发送至目标存储器;
接收所述目标存储器返回的与所述缓存读取命令相匹配的读取数据;
检测所述多个way中是否存在无效way,在所述多个way中存在无效way的情况下,选定一个无效way,根据所述选定的无效way对应的组索引信息和无效way标识信息确定第一目标cacheline,将所述读取数据写入所述第一目标cacheline中,并将所述地址信息中的tag值写入所述选定的无效way的对应位置处。
9.根据权利要求8所述的方法,其特征在于,所述方法还包括:
在所述way存储的tag值中,不存在与所述地址信息匹配的目标tag值,且所述多个way中不存在无效way的情况下,从所述各个组索引信息对应的组中,获取一个替换组;
从所述替换组中确定一个替换way,根据所述替换way对应的组索引信息和替换way标识信息确定第二目标cacheline,将所述读取数据写入所述第二目标cacheline中,并将所述地址信息中的tag值写入所述替换way的对应位置处。
10.根据权利要求9所述的方法,其特征在于,所述从所述各个组索引信息对应的组中,获取一个替换组,包括:
获取所述各个组索引信息对应的组的命中次数;
将命中次数最小的组作为所述替换组。
11.根据权利要求7所述的方法,其特征在于,所述缓存数据处理命令包括:缓存写入命令,所述方法还包括:
在所述way存储的tag值中,不存在与所述地址信息匹配的目标tag值的情况下,获取与所述缓存写入命令对应的待写入数据;
检测所述多个way中是否存在无效way,在所述多个way中存在无效way的情况下,选定一个无效way,根据所述选定的无效way对应的组索引信息和无效way标识信息确定第三目标cacheline,将所述待写入数据写入所述第三目标cacheline中,并将所述地址信息中的tag值写入所述选定的无效way的对应位置处。
12.根据权利要求11所述的方法,其特征在于,所述方法还包括:
在所述way存储的tag值中,不存在与所述地址信息匹配的目标tag值,且所述多个way中不存在无效way的情况下,从所述各个组索引信息对应的组中,获取一个替换组;
从所述替换组中确定一个替换way,根据所述替换way对应的组索引信息和替换way标识信息确定第四目标cacheline,将所述待写入数据写入所述第四目标cacheline中,并将所述地址信息中的tag值写入所述替换way的对应位置处。
13.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求7至12中任一项所述的方法的步骤。
14.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求7至12中任一项所述的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210797669.2A CN114860785B (zh) | 2022-07-08 | 2022-07-08 | 缓存数据处理系统、方法、计算机设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210797669.2A CN114860785B (zh) | 2022-07-08 | 2022-07-08 | 缓存数据处理系统、方法、计算机设备和存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114860785A CN114860785A (zh) | 2022-08-05 |
CN114860785B true CN114860785B (zh) | 2022-09-06 |
Family
ID=82626411
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210797669.2A Active CN114860785B (zh) | 2022-07-08 | 2022-07-08 | 缓存数据处理系统、方法、计算机设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114860785B (zh) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115809028B (zh) * | 2023-01-19 | 2023-05-12 | 北京象帝先计算技术有限公司 | 一种缓存数据替换方法、装置、图形处理系统及电子设备 |
CN115905040B (zh) * | 2023-02-01 | 2023-10-13 | 南京砺算科技有限公司 | 计数器的处理方法、图形处理器、设备及存储介质 |
CN116303126B (zh) * | 2023-03-22 | 2023-09-01 | 摩尔线程智能科技(北京)有限责任公司 | 缓存、数据的处理方法及电子设备 |
CN117130663B (zh) * | 2023-09-19 | 2024-06-11 | 摩尔线程智能科技(北京)有限责任公司 | 一种指令读取方法及l2指令缓存、电子设备和存储介质 |
CN117539865A (zh) * | 2023-11-16 | 2024-02-09 | 中科驭数(北京)科技有限公司 | 基于专用参数表的用户表管理方法、装置及存储介质 |
CN117724833B (zh) * | 2023-12-06 | 2024-05-28 | 无锡众星微系统技术有限公司 | 一种基于流属性的PCIe tag缓存自适应资源分配方法和装置 |
CN118277330B (zh) * | 2024-05-31 | 2024-08-16 | 摩尔线程智能科技(北京)有限责任公司 | 数据处理方法、装置以及芯片、设备、存储介质 |
Citations (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1334666A (zh) * | 2001-08-17 | 2002-02-06 | 北京佳讯飞鸿网络技术有限公司 | 一种维护路由表的方法及装置 |
WO2002027498A2 (en) * | 2000-09-29 | 2002-04-04 | Sun Microsystems, Inc. | System and method for identifying and managing streaming-data |
CN1531298A (zh) * | 2003-03-17 | 2004-09-22 | 华为技术有限公司 | 地址解析协议表项的处理方法 |
CN101158925A (zh) * | 2006-10-04 | 2008-04-09 | 国际商业机器公司 | 用于支持跟踪和标准高速缓存行的同时存储的装置和方法 |
CN104809076A (zh) * | 2014-01-23 | 2015-07-29 | 华为技术有限公司 | Cache的管理方法及装置 |
CN105095116A (zh) * | 2014-05-19 | 2015-11-25 | 华为技术有限公司 | 缓存替换的方法、缓存控制器和处理器 |
CN106126451A (zh) * | 2016-06-20 | 2016-11-16 | 中国航天科技集团公司第九研究院第七七研究所 | 基于包含式Cache体系的多核处理器低功耗设计结构 |
CN107291630A (zh) * | 2016-03-30 | 2017-10-24 | 华为技术有限公司 | 一种高速缓冲存储器处理方法及装置 |
CN109933543A (zh) * | 2019-03-11 | 2019-06-25 | 珠海市杰理科技股份有限公司 | Cache的数据锁定方法、装置和计算机设备 |
CN112602066A (zh) * | 2018-08-30 | 2021-04-02 | 美光科技公司 | 正向高速缓存存储器系统和方法 |
CN112612727A (zh) * | 2020-12-08 | 2021-04-06 | 海光信息技术股份有限公司 | 一种高速缓存行替换方法、装置及电子设备 |
CN113392043A (zh) * | 2021-07-06 | 2021-09-14 | 南京英锐创电子科技有限公司 | 缓存数据替换方法、装置、设备和存储介质 |
CN113467946A (zh) * | 2021-06-30 | 2021-10-01 | 广东赛昉科技有限公司 | vector访存cache的一种实现方法及系统 |
CN113900966A (zh) * | 2021-11-16 | 2022-01-07 | 北京微核芯科技有限公司 | 一种基于Cache的访存方法及装置 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2015075673A1 (en) * | 2013-11-21 | 2015-05-28 | Green Cache AB | Systems and methods for reducing first level cache energy by eliminating cache address tags |
-
2022
- 2022-07-08 CN CN202210797669.2A patent/CN114860785B/zh active Active
Patent Citations (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2002027498A2 (en) * | 2000-09-29 | 2002-04-04 | Sun Microsystems, Inc. | System and method for identifying and managing streaming-data |
CN1334666A (zh) * | 2001-08-17 | 2002-02-06 | 北京佳讯飞鸿网络技术有限公司 | 一种维护路由表的方法及装置 |
CN1531298A (zh) * | 2003-03-17 | 2004-09-22 | 华为技术有限公司 | 地址解析协议表项的处理方法 |
CN101158925A (zh) * | 2006-10-04 | 2008-04-09 | 国际商业机器公司 | 用于支持跟踪和标准高速缓存行的同时存储的装置和方法 |
CN104809076A (zh) * | 2014-01-23 | 2015-07-29 | 华为技术有限公司 | Cache的管理方法及装置 |
CN105095116A (zh) * | 2014-05-19 | 2015-11-25 | 华为技术有限公司 | 缓存替换的方法、缓存控制器和处理器 |
CN107291630A (zh) * | 2016-03-30 | 2017-10-24 | 华为技术有限公司 | 一种高速缓冲存储器处理方法及装置 |
CN106126451A (zh) * | 2016-06-20 | 2016-11-16 | 中国航天科技集团公司第九研究院第七七研究所 | 基于包含式Cache体系的多核处理器低功耗设计结构 |
CN112602066A (zh) * | 2018-08-30 | 2021-04-02 | 美光科技公司 | 正向高速缓存存储器系统和方法 |
CN109933543A (zh) * | 2019-03-11 | 2019-06-25 | 珠海市杰理科技股份有限公司 | Cache的数据锁定方法、装置和计算机设备 |
CN112612727A (zh) * | 2020-12-08 | 2021-04-06 | 海光信息技术股份有限公司 | 一种高速缓存行替换方法、装置及电子设备 |
CN113467946A (zh) * | 2021-06-30 | 2021-10-01 | 广东赛昉科技有限公司 | vector访存cache的一种实现方法及系统 |
CN113392043A (zh) * | 2021-07-06 | 2021-09-14 | 南京英锐创电子科技有限公司 | 缓存数据替换方法、装置、设备和存储介质 |
CN113900966A (zh) * | 2021-11-16 | 2022-01-07 | 北京微核芯科技有限公司 | 一种基于Cache的访存方法及装置 |
Non-Patent Citations (2)
Title |
---|
一种带有无效缓存路访问过滤机制的低功耗高速缓存;范灵俊等;《小型微型计算机系统》;20121015(第10期);第121-126页 * |
低功耗动态可配置Cache设计;贾宝锋等;《计算机测量与控制》;20080725(第07期);第120-123页 * |
Also Published As
Publication number | Publication date |
---|---|
CN114860785A (zh) | 2022-08-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN114860785B (zh) | 缓存数据处理系统、方法、计算机设备和存储介质 | |
CN109582214B (zh) | 数据访问方法以及计算机系统 | |
CN108459826B (zh) | 一种处理io请求的方法及装置 | |
JP2018133086A (ja) | ハイブリッドメモリーモジュール及びその動作方法 | |
US9652384B2 (en) | Apparatus, system and method for caching compressed data | |
US10042576B2 (en) | Method and apparatus for compressing addresses | |
KR101845371B1 (ko) | 오프-다이 캐시 메모리의 태그들의 세트들을 캐시하기 위한 방법, 장치, 및 시스템 | |
US9582430B2 (en) | Asymmetric set combined cache | |
JP2011530133A (ja) | キャッシュコンテンツの記憶管理 | |
CN109952565B (zh) | 内存访问技术 | |
US20210056030A1 (en) | Multi-level system memory with near memory capable of storing compressed cache lines | |
US11113145B2 (en) | Memory device, semiconductor device, and semiconductor system | |
US10482025B2 (en) | Memory system managing access to nonvolatile memory | |
KR101474842B1 (ko) | 쓰기 트래픽이 적은 캐시 메모리 블록 교체 방법 및 이를 이용한 캐시 서브시스템을 가지는 정보 처리 장치 | |
US11822483B2 (en) | Operating method of memory system including cache memory for supporting various chunk sizes | |
US20040088474A1 (en) | NAND type flash memory disk device and method for detecting the logical address | |
US7007135B2 (en) | Multi-level cache system with simplified miss/replacement control | |
CN110309081A (zh) | 基于压缩存储和地址映射表项的ftl读写数据页的方法 | |
US20180357280A1 (en) | Trie search engine | |
CN115080459A (zh) | 缓存管理方法及装置、计算机可读存储介质 | |
CN116340205B (zh) | 访问请求处理方法以及缓存装置 | |
US10942859B2 (en) | Computing system and method using bit counter | |
CN109165172B (zh) | 缓存数据处理方法及相关设备 | |
CN108984432B (zh) | 一种处理io请求的方法及装置 | |
CN107066208B (zh) | 一种外存设备的非对称读写方法及nvm外存设备 |
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 |