CN108459970A - 一种查询缓存信息的方法及装置 - Google Patents
一种查询缓存信息的方法及装置 Download PDFInfo
- Publication number
- CN108459970A CN108459970A CN201710087475.2A CN201710087475A CN108459970A CN 108459970 A CN108459970 A CN 108459970A CN 201710087475 A CN201710087475 A CN 201710087475A CN 108459970 A CN108459970 A CN 108459970A
- Authority
- CN
- China
- Prior art keywords
- cache
- block
- extension
- information
- blocks
- 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
- 238000000034 method Methods 0.000 title claims abstract description 79
- 230000015654 memory Effects 0.000 claims abstract description 345
- 238000003860 storage Methods 0.000 claims description 136
- 230000007704 transition Effects 0.000 claims description 50
- 239000003550 marker Substances 0.000 claims description 49
- 230000008859 change Effects 0.000 claims description 16
- 238000004590 computer program Methods 0.000 claims description 6
- 238000006243 chemical reaction Methods 0.000 claims description 4
- 238000004891 communication Methods 0.000 claims description 3
- 230000014759 maintenance of location Effects 0.000 claims description 3
- 238000005516 engineering process Methods 0.000 abstract description 5
- 239000000872 buffer Substances 0.000 description 56
- 238000010586 diagram Methods 0.000 description 24
- 230000006870 function Effects 0.000 description 20
- 230000008569 process Effects 0.000 description 12
- 230000004048 modification Effects 0.000 description 9
- 238000012986 modification Methods 0.000 description 9
- 238000012545 processing Methods 0.000 description 7
- 230000000694 effects Effects 0.000 description 6
- 238000004321 preservation Methods 0.000 description 6
- 230000001427 coherent effect Effects 0.000 description 4
- 230000007850 degeneration Effects 0.000 description 4
- 238000012217 deletion Methods 0.000 description 4
- 230000037430 deletion Effects 0.000 description 4
- 235000008733 Citrus aurantifolia Nutrition 0.000 description 3
- 235000011941 Tilia x europaea Nutrition 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 239000004571 lime Substances 0.000 description 3
- 230000008520 organization Effects 0.000 description 3
- 238000012550 audit Methods 0.000 description 2
- 230000008878 coupling Effects 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 230000009471 action Effects 0.000 description 1
- 238000000151 deposition Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000000802 evaporation-induced self-assembly Methods 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 239000003607 modifier Substances 0.000 description 1
- 230000008439 repair process Effects 0.000 description 1
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
-
- 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/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- 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/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0253—Garbage collection, i.e. reclamation of unreferenced memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1016—Performance improvement
- G06F2212/1021—Hit rate improvement
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组中确定出第一cache组;若第一cache组中的至少两个主cache块中不包括第一主cache块,则从至少两个主cache块中确定出第二主cache块,第二主cache块中包括至少两组指针信息,至少两组指针信息用于指向cache中的至少两个扩展cache块;根据查询块地址,从至少两组指针信息所指向的至少两个扩展cache块中确定出第一扩展cache块,第一扩展cache块中的块地址信息与查询块地址相同,第一扩展cache块中的缓存信息为第一内存块的缓存信息。本发明实施例用于查询缓存信息的过程中。
Description
技术领域
本发明涉及计算机技术领域,尤其涉及一种查询缓存信息的方法及装置。
背景技术
当前高速缓冲存储器(cache)以其支持快速读取数据的能力,被广泛应用于计算机系统中。例如,cache可以应用于一致性高速缓存非均匀存储访问模型(Cache CoherentUniform Non Memory Access Architecture,CC-NUMA)系统。如图1所示,CC-NUMA系统可以包括多个多处理器模块和互连模块。其中,每个多处理器模块中包括多个处理器,每个处理器中包括一个缓存单元和一个内存单元,CC-NUMA系统中的所有内存单元(简称内存)可以分为多个内存块,互联模块中可以包括cache,该cache可以用于记录内存中各个内存块的缓存信息。
现有技术中,处理器在处理内存中的数据之前,可以先查询cache中是否保存有待处理数据所在的内存块的缓存信息;若cache中保存有待处理数据所在的内存块的缓存信息(简称缓存命中)时,处理器根据该缓存信息处理待处理数据;当cache中未保存待处理数据所在的内存块的缓存信息(简称缓存未命中)时,处理器则可以直接开始处理待处理数据,并在cache中添加待处理数据所在的内存块的缓存信息。
其中,当cache的剩余存储空间不足以保存上述待处理数据所在的内存块的缓存信息时,处理器可以删除该cache中已保存的一个缓存信息(如缓存信息1),然后再保存该待处理数据所在的内存块的缓存信息。但是,在删除缓存信息1后,任一处理器都不能从cache中查询到缓存信息1,则会影响该缓存信息1的缓存命中率。
当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块,第一扩展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中的扩展存储区域可以包括较大的存储空间,使得查询缓存信息的过程中的缓存命中率有较大的提高。
在一种可能的实现方式中,为了方便从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块中的块地址信息和该块地址信息对应的内存块的缓存信息无效,则将第三主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块的扩展标志位指示第三扩展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块,则判断该至少两个扩展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块被转换过,并使第四主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块的扩展标志位指示第二扩展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块,使第四主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块被转换过,该第二主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块中的块地址信息修改为查询块地址,将第三主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块中的块地址信息和缓存信息有效;修改第四扩展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块,则修改第三扩展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块中不包括第二扩展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块中的第五扩展cache块,第五扩展cache块中的扩展标志位指示第五扩展cache块中的块地址信息和该块地址信息对应的内存块的缓存信息有效,则将第五扩展cache块中的块地址信息替换为查询块地址,并将第五扩展cache块中的缓存信息替换为第一内存块的缓存信息。
在一种可能的实现方式中,上述查询缓存信息的装置还可以包括:第二修改模块。其中,第二修改模块用于在预设时间之后,若至少两个主cache块包括第四主cache块,第四主cache块的转换标志位指示第四主cache块未被转换过,且第四主cache块中的有效标志位指示第四主cache块中的块地址信息和该块地址信息对应的内存块的缓存信息有效,则退化第四主cache块,使第四主cache块中的有效标志位指示第四主cache块中的块地址信息和该块地址信息对应的内存块的缓存信息无效;若至少两组指针信息中包括第三指针信息,第三指针信息为有效指针信息,第三指针信息指向至少两个扩展cache块中的第五扩展cache块,第五扩展cache块中的扩展标志位指示第五扩展cache块中的块地址信息和该块地址信息对应的内存块的缓存信息有效,则退化第五扩展cache块,使第五扩展cache块中的扩展标志位指示第五扩展cache块中的块地址信息和该块地址信息对应的内存块的缓存信息无效;退化第三指针信息,使第三指针信息为无效指针信息。
第三方面,上述查询缓存信息的装置可以包括:一个或者多个处理器、一个或者多个存储器和总线,一个或者多个处理器和一个或者多个存储器通过总线相连;存储器用于存储计算机程序代码,该计算机程序代码包括指令,当该一个或者多个处理器执行指令时,该查询缓存信息的装置执行如第一方面以及第一方面的各种可选方式中的查询缓存信息的方法。
第四方面,提供一种计算机存储介质,计算机存储介质中存储有一个或多个计算机程序代码,当第三方面中的查询缓存信息的装置的一个或者多个处理器执行一个或多个计算机程序代码时,该查询缓存信息的装置执行如第一方面以及第一方面的各种可选方式中的查询缓存信息的方法。
需要说明的是,本申请的第三方面中的一个或多个处理器可以为第二方面中的获取模块、确定模块、判断模块、第一修改模块和第二修改模块等功能模块的集成,一个或多个处理器可以实现第二方面中的各个功能模块的功能。第二方面和第三方面中各个模块的详细描述以及有益效果分析可以参考上述第一方面及其各种可能的实现方式中的对应描述及技术效果,此处不再赘述。
附图说明
图1为本发明实施例提供的一种CC-NUMA系统的结构示意图;
图2为本发明实施例提供的一种cache的结构示意图;
图3为本发明实施例提供的另一种cache的结构示意图;
图4为本发明实施例提供的一种查询缓存信息的方法流程图;
图5为本发明实施例提供的另一种cache的结构示意图;
图6为本发明实施例提供的另一种查询缓存信息的方法流程图;
图7为本发明实施例提供的另一种cache的结构示意图;
图8为本发明实施例提供的另一种cache的结构示意图;
图9为本发明实施例提供的另一种查询缓存信息的方法流程图;
图10为本发明实施例提供的另一种查询缓存信息的方法流程图;
图11为本发明实施例提供的另一种查询缓存信息的方法流程图;
图12为本发明实施例提供的另一种查询缓存信息的方法流程图;
图13为本发明实施例提供的另一种查询缓存信息的方法流程图;
图14为本发明实施例提供的另一种查询缓存信息的方法流程图;
图15为本发明实施例提供的另一种cache的结构示意图;
图16为本发明实施例提供的一种查询缓存信息的装置的结构示意图;
图17为本发明实施例提供的另一种查询缓存信息的装置的结构示意图;
图18为本发明实施例提供的另一种查询缓存信息的装置的结构示意图;
图19为本发明实施例提供的另一种查询缓存信息的装置的结构示意图。
具体实施方式
本发明实施例提供的一种查询缓存信息的方法及装置,应用于查询高速缓冲存储器(cache)中保存的缓存信息的过程中,可以减小cache中已保存的缓存信息被删除的可能性,提高查询缓存信息过程中的缓存命中率。
本发明实施例提供的查询缓存信息的方法可以应用于支持信息缓存的计算机系统或者支持信息缓存的服务器组成的系统中。示例性的,本发明实施例提供的查询缓存信息的方法可以应用于一致性高速缓存非均匀存储访问模型(Cache Coherent Uniform NonMemory Access Architecture,CC-NUMA)系统中。
如图1所示,CC-NUMA系统可以包括多个多处理器模块和互连模块。其中,每个多处理器模块中包括多个处理器,每个处理器中包括一个缓存单元和一个内存单元。CC-NUMA系统中的所有内存单元可以分为多个内存块,互联模块中还可以包括cache,该cache用于记录每个内存块中各个内存块的缓存信息,如缓存状态,该缓存状态可以包括:共享、独占、修改和无效。缓存状态用于指示处理器是否可以处理(如读、写或者修改)对应内存块中的数据,例如,当内存块的缓存状态为独占时,当前处理器(正在处理该内存块中保存的数据的处理器)之外的其他处理器不能修改该内存块中保存的数据,当内存块的缓存状态为共享时,当前处理器之外的其他处理器仅可以读取该内存块中保存的数据。
需要说明的是,上述内存块的缓存信息可以由用户根据实际业务需求定义,如内存块的缓存信息可以为缓存状态和/或缓存数据。其中,内存块的缓存数据可以为该内存块中保存的数据。
具体的,查询缓存信息的装置可以按照内存地址将CC-NUMA系统的所有内存单元分多个内存块。其中,每个内存块的地址可以包括标签(Tag)域段、索引(Index)域段和偏移量(Offset)域段。随后,查询缓存信息的装置可以根据内存块的地址将CC-NUMA系统中的所有的内存块划分到至少一个内存组中,每一个内存组中包括至少两个内存块。其中,每个内存块所在内存组的组地址可以为该内存块地址的index域段,每个内存块的块地址可以为该内存块地址的Tag域段。
同样的,查询缓存信息的装置可以将CC-NUMA系统中的每个多处理器模块中的所有缓存单元划分为多个缓存单元块。其中,每个缓存单元块对应一个缓存地址。随后,查询缓存信息的装置可以根据缓存单元块的地址将CC-NUMA系统中的所有的缓存单元块划分到至少一个缓存单元组中,每一个缓存单元组包括至少两个缓存单元块。至少一个缓存单元组中的每一个缓存单元组对应一个组地址,每一个缓存单元组中的至少两个缓存单元块中可以保存一个内存块的内存块地址和该内存块中的数据。
其中,当内存中一个内存块中的数据保存至缓存单元中的一个缓存单元块时,该内存块中的数据保存至与该内存块所在的内存组的组地址相同的缓存单元组中的任一缓存单元块中。例如,组地址为index1的内存组中块地址为tag1的内存块(记为内存块1)中的数据可以保存在缓存单元中缓存单元组地址为index1的缓存单元组中任一缓存单元块中。此时,内存块1的所在的内存组的组地址为查询组地址,内存块1的块地址为查询块地址。
示例性的,上述查询缓存信息的装置可以为应用于支持信息缓存的系统中的个人计算机(Personal Computer,PC)和平板电脑等终端设备,或者该终端设备中的处理器,或者该终端设备中可以用于查询缓存状态和查询缓存单元中保存的数据的缓存控制器。
可选的,当上述查询缓存信息的装置为应用于计算机系统的终端设备中的处理器(如CC-NUMA系统中的多处理器模块中的处理器)时,由查询缓存信息的装置查询cache中保存的内存块的块地址和缓存信息。当cache中未保存查询地址对应的内存块的块地址(即查询块地址)和缓存信息时,该查询缓存信息的装置可以向cache中添加查询地址对应的内存块的块地址和缓存信息;当cache中保存有查询地址对应的内存块的块地址(即查询块地址)和缓存信息时,该查询缓存信息的装置可以得到查询地址对应的内存块的缓存信息。本发明实施例中仅以查询缓存信息的装置为应用于计算机系统的终端设备中的处理器(如CC-NUMA系统中的多处理器模块中的处理器)为例说明。
如图2所示,为本发明实施例提供的一种cache的结构示意图。cache中包括一级存储区域,一级存储区域中可以包括容量大小相同的M(M≥1)个cache组;该M个cache组中每个cache组中可以包括容量大小相同的N(N≥2)个主cache块,每个主cache块中包括一个有效标志位、一个块地址信息和一个内存块的缓存状态等缓存信息,如共享、独占、修改或无效等缓存状态。其中,当主cache块中的效标志位可以为一个二进制位,若主cache块中的有效标志位为1,则表示该主cache块中的数据有效;若主cache块中的有效标志位为0,则可以表示该主cache块中的数据无效或该cache块中没有数据。
其中,在上述CC-NUMA系统中cache可以与上述缓存单元为映像关系。例如,当缓存单元的一个缓存单元块中保存有内存中的一个内存块中的数据时,该缓存单元块在缓存单元中的组地址与该内存块在内存中的组地址相同的同时,与cache中保存有该内存块的块地址和缓存信息的主cache块在cache中的组地址也是相同的。
示例性的,cache中保存的内存块的缓存信息可以为该内存块的缓存状态:在查询缓存信息的装置修改一个内存块中的数据时,查询缓存信息的装置可以根据该内存块的地址(即查询地址)访问cache。具体的,查询缓存信息的装置确定出cache中的组地址与查询组地址(如index1)相同的cache组;若组地址为index1的cache组中任一有效标志位为1的主cache块中的块地址信息与查询块地址(如tag1)相同,则说明cache缓存器中保存有内存块1的块地址tag1和该内存块的缓存状态(简称缓存命中),查询缓存信息的装置根据该缓存状态处理内存块1中的数据,并将该缓存状态修改为“修改”。如cache缓存器中保存有内存块1的缓存状态为“共享”,则查询缓存信息的装置将向共享该内存块1的其他处理器发送点对点的消息,使该其他处理器向内存块1写入的数据无效,并将上述缓存状态修改为“修改”。若cache的cache组index1中任一有效标志位为1的cache块中的块地址均与tag1不相同,则说明cache缓存器中未保存内存块1的缓存状态(简称缓存未命中)。当内存块1缓存未命中时,若组地址为index1的cache组中当前包括任一有效标志位为0的主cache块,则查询缓存信息的装置可以将该主cache块中的有效标志位设置为1,将该主cache块中块地址信息设置为tag1,将该cache块中保存的缓存状态设置为内存块1的缓存状态;若cache组index1中当前不包括有效标志位为0的主cache块,则查询缓存信息的装置可以转换当前主cache块中的任一主cache块,将该任一cache块中包括的块地址信息和缓存状态修改为内存块1的块地址和缓存状态,即删除该任一主cache块中当前保存的块地址信息和缓存状态。
本发明实施例提供的一种查询缓存信息的方法,可以在cache中设置较大的扩展存储区域,以增大该cache的存储空间,使得该cache中可以保存更多的内存块的块地址和缓存信息,减小查询缓存信息的装置删除cache中已保存的内存块的块地址和缓存信息的可能性,并提高查询缓存信息的过程中的缓存命中率。
如图3所示,为本发明实施例提供的一种cache的结构示意图,该cache中不仅包括一级存储区域还包括扩展存储区域。图3中,一级存储区域中可以包括容量大小相同的M个cache组;该M个cache组中每个cache组中可以包括容量大小相同的N个主cache块,每个主cache块中可以包括一个转换标志位(如D)。扩展存储区域中可以包括W(W≥2)个扩展cache块。其中,W个扩展cache块中的每个扩展cache块中包括一个块地址信息(如Tag)和一个缓存信息(如缓存状态Dir和/或缓存数据Data),该块地址信息Tag为一个内存块的块地址,该缓存信息为该内存块的缓存信息。其中,上述扩展存储区域可以包括一个存储器,或者,扩展存储区域可以包括多个存储器。
其中,主cache块中的转换标志位D可以为一个二进制位,若主cache块中的转换标志位D=1,则可以表示该主cache块被转换过;若主cache块中的转换标志位D=0,则可以表示该主cache块没有被转换过。当一个主cache块中的转换标志位为D=1时,该主cache块中可以包括一个块地址信息Tag,该块地址信息为一个内存块的块地址信息。当一个主cache块中的转换标志位D=0时,该主cache块中包括U(U≥2且U≤W)组指针信息,该U组指针信息中的每一组指针信息可以用于指向cache中的W个扩展cache块中的一个扩展cache块,W扩展cache块中的每一个扩展cache块中可以包括一个块地址信息Tag和一个缓存信息(如Dir和/或Date),该块地址信息Tag对应一个内存块的块地址,该缓存信息为该内存块的缓存信息。
可选的,若cache中保存的一个内存块的缓存信息为缓存状态Dir:缓存状态Dir可以为至少一个比特的信息,该至少一个比特的信息可以指示该内存块的缓存状态以及可以处理该内存块中数据的处理器。一个内存块的缓存状态不同时,该缓存状态Dir的比特数是不同的。例如,当一个内存块的缓存状态为“共享”且该内存块由三个处理器所共享时,该缓存状态Dir可以包括四个比特信息,一个比特信息可以用于指示缓存状态为“共享”,另外三个比特信息可以分别指示共享该内存块的处理器。当一个内存块的缓存状态为“修改”时,该缓存状态Dir可以包括两个比特信息,一个比特信息可以用于指示缓存状态为“修改”,另一个比特信息指示可以修改该内存块中的数据的处理器。
具体的,本发明实施例提供一种查询缓存信息的方法,如图4所示,该查询缓存信息的方法可以包括:
S401、查询缓存信息的装置获取查询地址,查询地址为第一内存块的地址,查询地址中包括查询组地址和查询块地址。
其中,第一内存块可以为待处理数据在计算机系统(如CC-NUMA系统中)中所处的内存块,该查询地址中的查询组地址为第一内存块的组地址,该查询地址中的查询块地址为第一内存块的块地址。例如,当第一内存块对应的内存组的内存组地址为index1,第一内存块对应的块地址为tag1(记为内存块1)时,查询组地址为index1,查询块地址为tag1。
当cache中保存有第一内存块的块地址(即查询块地址)和缓存信息时,该第一内存块的块地址和缓存信息可以保存在cache中与第一内存块的组地址(即查询组地址)相同的cache组中。具体的,本发明实施例提供的查询缓存信息的方法还可以包括S402:
S402、查询缓存信息的装置根据查询组地址,从cache中的至少一个cache组中确定出第一cache组。
其中,第一cache组的组地址与查询组地址相同,至少一个cache组中的每个cache组对应一个组地址。例如,如图3所示的cache中的N个cache组中每一个cache组都对应一个组地址。当查询地址中的查询组地址为index1时,若cache组1的cache组地址为index1,则确定cache组1为第一cache组。
当第一cache组中保存有第一内存块的块地址(即查询块地址)时,上述查询块地址可以是保存在第一cache组中的没有被转换过的主cache块中。除此之外,上述查询块地址还可以是保存在第一cache组中被转换过的主cache块中包括的一组指针信息所指向的扩展cache块中。如此,在上述查询块地址未保存在第一cache组中的没有被转换过的主cache块中时,本发明实施例的提供的一种查询缓存信息的方法还可以包括S403:
S403、若第一cache组中的至少两个主cache块中不包括第一主cache块,查询缓存信息的装置则从至少两个主cache块中确定出第二主cache块,第二主cache块包括至少两组指针信息。
其中,第一主cache块的转换标志位指示第一主cache块未被转换过,即第一主cache块的转换标志位D=0,并且第一主cache块中的块地址信息与查询块地址相同。第二主cache块的转换标志位指示第二主cache块被转换过,即第二主cache块的转换标志位为1,第二主cache块包括至少两组指针信息,该至少两组指针信息用于指向cache中的至少两个扩展cache块。示例性的,如图3所示,主cache块3可以为查询缓存信息的装置确定出的一个第二主cache块。
可选的,cache的一级存储区域中的所有主cache块都可以转换为第二主cache块,或者,一级存储区域的部分主cache块可以转换为第二主cache块。本发明实施例中仅以cache的一级存储区域中所有主cache块都可以转换为第二主cache块为例说明。也就是说,cache的一级存储区域中的所有主cache块都可能包括指向扩展存储区域的至少两组指针信息。
需要说明的是,cache中的一级存储区域中可以包括一个或者多个第二主cache块。这一个或者多个第二主cache块中的每一个第二主cache块中的一组指针信息所指向的扩展cache块都可能保存有第一内存块的块地址和缓存信息。具体的,本发明实施例的提供的一种查询缓存信息的方法还可以包括S404:
S404、查询缓存信息的装置根据查询块地址,从至少两组指针信息所指向的至少两个扩展cache块中确定出第一扩展cache块,第一扩展cache块中的块地址信息与查询块地址相同,第一扩展cache块中的缓存信息为第一内存块的缓存信息。
示例性的,如图3所示,在查询块地址为tag1时,查询缓存信息的装置可以比较出主cache块3中的指针信息1所指向扩展存储区域中的扩展cache块1中保存的块地址信息Tag与tag1相同后,确定出扩展cache块1为第一扩展cache块。其中,查询缓存信息的装置确定出第一扩展cache块的同时,便得到了第一扩展cache块中保存的缓存信息,即第一内存块的缓存信息。
本发明实施例中,由于cache中的一级存储区域中的主cache块中包括转换标志位,转换标志位所指示被转换过的主cache块中可以包括至少两组指针信息,至少两组指针信息可以指向cache中的扩展存储区域中的至少两个扩展cache块,因此,一级存储区域中的主cache块包括的指向cache中的扩展存储区域的至少两组指针信息,使得扩展存储区域为一级存储区域的下一级存储区域,即cache为分级存储结构中的二级存储结构,扩展存储区域为二级存储区域。其中,cache中的扩展存储区域为一级存储区域的下一级存储区域,使得cache的存储空间增大。这样一来,cache中可以保存较多的内存块的块地址和缓存信息,可以减小查询缓存信息的装置在查询缓存信息的过程中删除cache中已保存的内存块的块地址和缓存信息的可能性,提高查询缓存信息的过程中的缓存命中率。
并且,由于上述至少一组指针信息指向扩展存储区域的至少一个扩展cache块为扩展存储区域中的部分保存有内存块的块地址和缓存信息的扩展cache块;因此,在查询缓存信息的装置查询cache的扩展存储区域中保存的内存块的块地址和缓存信息的过程中,可以不查询扩展存储区域中所有保存有内存块的块地址和缓存信息的扩展cache块,而是通过至少两组指针信息查询扩展存储区域中部分保存有内存块的块地址和缓存信息的扩展cache块;如此,可以提高查询缓存信息的装置从cache中的扩展存储区域中查询缓存信息的效率,即提高查询缓存信息的装置从cache中查询缓存信息的效率;从而,cache中的扩展存储区域可以具有较大的存储空间,可以使得查询缓存信息的过程中的缓存命中率有较大的提高。
进一步的,如图5所示,为本发明实施例提供的一种cache的结构示意图。图5中,cache的一级存储区域的没有被转换过的主cache块中,还可以包括一个有效标志位(如V)和该主cache块中的块地址信息对应的内存块的缓存信息,该有效标志位V用于指示该主cache块中的块地址信息和该块地址信息对应的内存块的缓存信息是否有效。具体的,第一主cache块中还包括有效标志位和第一主cache块中的块地址信息对应的内存块的缓存信息,第一主cache块中的有效标志位V=1指示第一主cache块中的块地址信息和该块地址信息对应的内存块的缓存信息有效;第一主cache块中的有效标志位V=0指示第一主cache块中的块地址信息和该块地址信息对应的内存块的缓存信息无效(包括第一主cache块中未保存块地址信息和缓存信息)。
其中,在查询缓存信息的装置查询cache中保存的第一内存块的块地址和缓存信息时,可以先查找cache的一级存储区域中有效标志位V=1的主cache块,查询有效标志位V=1的主cache块中保存的内存块的块地址和缓存信息,而可以不查询有效标志位V=0的主cache块。如此,一级存储区域的主cache块中包括有效标志位,方便查询缓存信息的装置查询cache中一级存储区域中已保存的内存块的块地址和缓存信息,可以提高查询缓存信息的装置查询缓存信息的效率。
如图6所示,结合图4,本发明实施例提供的查询缓存信息的方法还可以包括S601:
S601、查询缓存信息的装置根据查询块地址,从至少两个主cache块中确定出第一主cache块,第一主cache块中的缓存信息为第一内存块的缓存信息。
示例性的,当查询块地址为tag1时,查询缓存信息的装置可以比较出至少主cache块1中保存的块地址信息Tag与tag1相同后,确定出主cache块1为第一主cache块。其中,查询缓存信息的装置确定出第一主cache块的同时,便得到了第一主cache块中保存的缓存信息,即第一内存块的缓存信息。
其中,查询缓存信息的装置可以查询一级存储区域中没有被转换过(D=0)的主cache块中、有效标志位指示该主cache块中的块地址信息和缓存信息有效(V=1)的主cache块中保存的块地址,以确定出第一cache块。
进一步的,如图7所示,为本发明实施例提供的一种cache的结构示意图。图7中,cache的一级存储区域的一个被转换过的主cache块(即第二主cache块)中,至少两组指针信息中的每组指针信息中可以包括一个指针标志位(如v1、v2~vU中的任一指针标志位)和一个指针(如pt1、pt2~ptU中的任一指针)。其中,一组指针信息中的指针标志位可以用于指示该组指针信息中的指针是否有效,如指针信息1中的指针标志位v1=1,指示指针信息1中的指针pt1有效。一组指针信息指向一个扩展cache块,可以是指针标志位指示指针有效的一组指针中的指针指向该扩展cache块,如指针信息1中的指针pt1指向扩展存储区域中的扩展cache块1。
其中,查询缓存信息的装置在确定出第一扩展cache块之前,可以根据一级存储区域的第二主cache块中包括的指针标志位取值为1的指针信息中的指针确定扩展存储器中包括第一扩展cache块,以得到第一扩展cache块中包括的缓存信息。如此,在cache的一级存储区域的第一cache组中未保存第一内存块对应的块地址(即查询块地址)和缓存信息时,第一cache组中的第二主cache块中包括的至少一组指针信息查询扩展存储器区域中部分保存有内存块的块地址的扩展cache块,便可以提高查询缓存信息的装置查询cache中的扩展存储区域的效率。
进一步的,如图8所示,为本发明实施例提供的一种cache的结构示意图。如图8所示,结合图7,本发明实施例提供的扩展存储区域的至少两个扩展cache块中的每个扩展cache块中还可以包括一个扩展标志位(如V')。其中,当一个扩展cache块中的扩展标志位V'=1时,表示该扩展cache块中的保存的块地址信息Tag和缓存信息有效;当一个扩展cache块中的扩展标志位V'=0时,表示该扩展cache块中的保存的块地址信息Tag和缓存信息无效(包括扩展cache块中的未保存的块地址信息Tag和缓存信息)。此时,扩展存储区域中的扩展cache块中包括扩展标志位,方便查询缓存信息的装置查询cache的扩展存储区域中已保存的内存块的块地址和缓存信息,可以提高查询缓存信息的装置查询缓存信息的效率。
进一步的,查询缓存信息的装置在根据查询地址查询cache中是否保存有第一内存块的块地址(即查询块地址)和缓存信息时,若cache中未保存第一内存块的块地址和缓存信息,则查询缓存信息的装置可以在cache中添加第一内存块的块地址和缓存信息。
本发明实施例以下,以第一内存块为内存块1,查询缓存信息的装置在cache中添加内存块1的块地址和缓存信息为例,说明查询缓存信息的装置在cache中添加第一内存块的块地址和缓存信息的过程。
在本发明实施例的第一种应用场景中,cache中的组地址为index1的cache组中的N个主cache块中的转换标志位D均为0,且这N个主cache块中的所有有效标志位V=1的主cache块中的块地址信息Tag均与块地址tag1不同,即cache中未保存内存块1的块地址和缓存信息。
在本发明实施例中的第一种应用场景的第一种情形下,若组地址为index1的cache组中的N个主cache块中包括第三主cache块,该第三主cache块中的有效标志位V=0,则查询缓存信息的装置可以在第主三cache块中添加内存块1的块地址和缓存信息。具体的,如图9所示,本发明实施例提供的查询缓存信息的方法在S401-S402之后还可以包括S901:
S901、若至少两个主cache块中不包括第一主cache块且至少两个主cache块中包括第三主cache块,查询缓存信息的装置则修改第三主cache块,使第三主cache块中的块地址信息修改为查询块地址,并使第三主cache块中的缓存信息为第一内存块的缓存信息。
示例性的,查询缓存信息的装置修改第三主cache块,可以查询缓存信息的装置新建一个有效的主cache的过程,具体可以为查询缓存信息的装置将第三主cache块中的块地址信息Tag新建为查询块地址tag1,将第三主cache块中的缓存信息新建为内存块1的缓存信息,并使第三主cache块中的有效标志位V=1。
在本发明实施例的第一种应用场景的第二种情形下,组地址为index1的cache组中的N个主cache块中的每一个主cache块中均包括一个内存块的块地址和缓存信息;此时,这N个主cache块均可以为第四主cache块,第四主cache块中有效标志位V=1。如图10所示,本发明实施例提供的查询缓存信息的方法在S401-S402之后还可以包括S1001-S1003或者S1001、S1004:
S1001、若至少两个主cache块中仅包括第四主cache块且第四主cache块不为第一主cache块,查询缓存信息的装置则判断至少两个扩展cache块中是否包括至少两个第二扩展cache块,或者,至少两个扩展cache块中仅包括一个第二扩展cache块或者至少两个扩展cache块中不包括第二扩展cache块。
其中,至少两个第二扩展cache块中的每个第二扩展cache块中的扩展标志位V'=0,第二扩展cache块中包括的内存块的块地址和缓存信息无效(包括第二扩展cache块中未保存内存块的块地址和缓存信息)。
S1002、若至少两个扩展cache块中包括至少两个第二扩展cache块,查询缓存信息的装置则修改第三扩展cache块和第四扩展cache块,第三扩展cache块和第四扩展cache块为至少两个第二扩展cache块中的任意两个扩展cache块,使第三扩展cache块中的块地址信息为查询块地址,并使第三扩展cache块中的缓存信息为第一内存块的缓存信息,使第四扩展cache块中的块地址信息为第四主cache块中的块地址信息,并使第四扩展cache块中的缓存信息为第四主cache块中的缓存信息。
示例性的,上述查询缓存信息的装置修改第三扩展cache块和第四扩展cache块,为查询缓存信息的装置新建两组有效的指针信息和两个有效的扩展cache的过程。具体可以为查询缓存信息的装置使第三扩展cache块中的块地址信息Tag为查询块地址tag1,并使第三扩展cache块中的缓存信息为内存块1的缓存信息,第三扩展cache块的扩展标志位V'=1;查询缓存信息的装置使第四扩展cache块中的块地址信息Tag为第四主cache块中的块地址信息Tag,并使第四扩展cache块中的缓存信息为第四主cache块中的缓存信息,第四扩展cache块的扩展标志位V'=1。
S1003、查询缓存信息的装置修改第四主cache块,使第四主cache块包括第一指针信息和第二指针信息,第一指针信息指向第三扩展cache块,第二指针信息指向第四扩展cache块。
其中,查询缓存信息的装置修改第四主cache块,具体可以为查询缓存信息的装置使第四主cache块的转换标志位D=1。示例性的,如图8所示,第四主cache块可以为主cache块3,第四主cache块包括第一指针信息可以包括指针标志位v1=1和指针pt1,第一指针信息可以包括指针标志位v2=1和指针pt2,第一指针信息中的指针pt1指向第三扩展cache块(如扩展cache块1),第二指针信息中的指针pt2指向第四扩展cache块(如扩展cache块2)。
当cache中的扩展存储器中没有足够的存储空间时,查询缓存信息的装置可以将cache中已经保存的一个内存块的块地址和缓存信息删除,使得查询缓存信息的装置可以在cache中添加该cache中未保存的内存块的块地址和缓存信息,如内存块1的块地址和缓存信息。
具体的,本发明实施例提供的方法在S1001之后还可以包括S1004:
S1004、若至少两个扩展cache块中仅包括一个第二扩展cache块或者至少两个扩展cache块中不包括第二扩展cache块,查询缓存信息的装置则将第四主cache块中的块地址信息替换为查询块地址,并将第四主cache块中的缓存信息替换为第一内存块的缓存信息。
示例性的,查询缓存信息的装置将第四主cache块中的块地址信息Tag替换为查询块地址tag1,并使第四主cache块中的缓存信息替换为内存块1的缓存信息。
需要说明的是,S1004中查询缓存信息的装置修改第四主cache块的过程中,查询缓存信息的装置删除了第四主cache块中已经保存的块地址信息和该块地址信息对应的内存块的缓存信息。本发明实施例这里,虽然查询缓存信息的装置在cache中添加一个内存块的块地址和缓存信息的过程中,也会删除cache中已经保存的块地址信息和缓存信息,但是由于本发明实施例中的cache为带有指针信息的二级存储结构,因此使查询缓存信息的装置可以较大程度利用扩展存储区域的存储器空间,减小删除cache中已经保存的块地址信息和缓存信息的可能性。
在本发明实施例的第二种应用场景中,cache中的组地址为index1的cache组中的N个主cache块中可以包括转换标志位D=0和转换标志位D=1的主cache块,且这N个主cache块中转换标志位D=0的主cache块中的所有有效标志位V=1的主cache块中的块地址信息Tag均与块地址tag1不同,且这N个主cache块中转换标志位D=0的主cache块(第二主cache块)中的所有扩展标志位V'=1的主cache块中的块地址信息Tag均与块地址tag1不同,即cache中未保存内存块1的块地址和缓存信息。
在本发明实施例的第二种应用场景的第一种情形下,当cache中组地址为index1的cache组中第二主cache块中的至少两组指针信息均为有效指针信息时,如图11所示,查询缓存信息的方法在S401-S403之后还可以包括S1101-S1003或者S1101、S1004:
S1101、若至少两组指针信息均为有效指针信息且至少两组指针信息所指向的至少一个扩展cache块中不包括第一扩展cache块,查询缓存信息的装置则判断至少两个扩展cache块中是否包括至少两个第二扩展cache块,或者,至少两个扩展cache块中仅包括一个第二扩展cache块或者至少两个扩展cache块中不包括第二扩展cache块。
示例性的,当至少两组指针信息为图8所示主cache块3中包括的指针信息1、指针信息2和指针信息3时,指针信息1中的指针标志位v1=1,指针pt1指向扩展cache块1;指针信息2中的指针标志位v2=1,指针pt2指向扩展cache块2;指针信息3中的指针标志位v3=1,指针pt3指向扩展cache块3。查询缓存信息的装置可以判断如图8所示的扩展cache块4和扩展cache块5等其他扩展cache块中的扩展标志位V'是否为0。
在本发明实施例的第二种应用场景的第二种情形下,当cache中组地址为index1的cache组中第二主cache块中的至少两组指针信息中包括至少一组无效指针信息时,如图12所示,上述查询缓存信息的方法在S401-S403之后还可以包括S1201-S1202:
S1201、若至少两组指针信息中包括至少一组无效指针信息且至少两组指针信息所指向的至少两个扩展cache块中不包括第一扩展cache块,查询缓存信息的装置则判断至少两个扩展cache块中是否包括第二扩展cache块。
S1202、若至少两个扩展cache块中包括第二扩展cache块,查询缓存信息的装置则修改第二扩展cache块,使第二扩展cache块中的块地址信息修改为查询块地址,并使第二扩展cache块中的缓存信息为第一内存块的缓存信息。
示例性的,S1202中查询缓存信息的装置修改第二扩展cache块,具体可以为查询缓存信息的装置使得第二扩展cache块中的块地址信息Tag新建为查询块地址tag1,并使该第二扩展cache块中的缓存信息为内存块1的缓存信息,该第二扩展cache块的扩展标志位V'=1。在这种情形下,cache的扩展存储区域中包括第二扩展cache块,即扩展存储区域有足够的存储空间支持查询缓存信息的装置添加内存块1的块地址和缓存信息。
需要说明的是,在在本发明实施例的第二种应用场景的第三种情形下,当cache中组地址为index1的cache组中第二主cache块中的至少两组指针信息中包括至少一组无效指针信息,并且扩展存储区域中存储空间不足时,如图13所示,上述查询缓存信息的方法在S401-S403之后还可以包括S1301-S1302:
S1301、若至少两组指针信息中包括第三指针信息,且至少两个扩展cache块中不包括第二扩展cache块,且至少两个扩展cache块中包括第五扩展cache块,查询缓存信息的装置则将第五扩展cache块中的块地址信息替换为查询块地址,并将第五扩展cache块中的缓存信息替换为第一内存块的缓存信息。
其中,第三指针信息为有效指针信息,第五扩展cache块中的扩展标志位指示第五扩展cache块中的块地址信息和该块地址信息对应的内存块的缓存信息有效,第三指针信息指向至少两个扩展cache块中的第五扩展cache块。S1301中的查询缓存信息的装置可以将第五扩展cache块中的块地址信息Tag替换为查询块地址tag1,并将第五扩展cache块中的缓存信息替换为内存块1的缓存信息,此时第五扩展cache块的扩展标志位V'=1。
需要说明的是,在cache中的扩展存储区域中未保存内存块1的块地址和缓存信息时,查询缓存信息的装置通过判断至少两个扩展cache块中是否包括至少两个第二扩展cache块,若扩展存储区域中有足够的存储空间以支持其添加内存块1的块地址和缓存信息,查询缓存信息的装置则不会删除扩展存储区域中已经保存的一个内存块的块地址和缓存信息。这样一来,可以避免cache中当前已经保存的一个内存块的块地址和缓存信息被删除,导致查询缓存信息的装置随后查询该内存块的块地址和缓存信息时缓存未命中,即减小cache中已保存的内存块的块地址和缓存信息被删除的可能性。
进一步的,上述查询缓存信息的装置在执行查询缓存信息的方法时,为了保证cache中的存储空间的可用性,查询缓存信息的装置可以在预设条件下删除cache中部分已经保存的内存块的块地址和缓存信息,使得cache中有足够的存储空间以支持查询缓存信息的装置向cache中添加其未保存的内存块的块地址和缓存信息,如内存块1的块地址和缓存信息。
具体的,本发明实施例提供的查询缓存信息的方法还可以包括S1401或者S1402。示例性的,如图14所示,上述查询缓存信息的方法在图6中的S405或者S601之后还可以包括S1401或者S1402-S1403:
S1401、在预设条件下,若至少两个主cache块包括第四主cache块,查询缓存信息的装置则退化第四主cache块,使第四主cache块中的有效标志位指示第四主cache块中的块地址信息和该块地址信息对应的内存块的缓存信息无效。
示例性的,上述预设条件可以包括:查询缓存信息的装置每隔一段时间主动删除cache中已经保存的部分内存块的块地址和缓存信息,或者,查询缓存信息的装置在接受到用户发起的删除请求后,删除cache中已经保存的部分内存块的块地址和缓存信息。
其中,cache中可以包括一个或者多个第四主cache块,在S1401中查询缓存信息的装置修改第四主cache块,具体为查询缓存信息的装置将一个或者多个第四cache主cache块中每个第四主cache块中已经保存的一个内存块的块地址和缓存信息删除。如此,cache中就可以提供足够的存储空间以支持查询缓存信息的装置向cache中添加其未保存的内存块的块地址和缓存信息。
cache中可以包括一个或者多个被转换过的主cache块(如第二主cache块),这些主cache块中的每个主cache块中都可以包括一组或多组第三指针信息,查询缓存信息的装置可以在预设时间之后,将一组或多组第三指针信息所指向的一个或者多个第五扩展cache块中包括的内存块的块地址和缓存信息删除。
S1402、在预设条件下,若至少一组指针信息中包括第三指针信息,第三指针信息指向至少两个扩展cache块中的第五扩展cache块,查询缓存信息的装置则退化第五扩展cache块,使第五扩展cache块中的扩展标志位指示第五扩展cache块中的块地址信息和该块地址信息对应的内存块的缓存信息无效。
其中,cache中可以包括一个或者多个被转换过的主cache块(如第二主cache块),这些主cache块中的每个主cache块中都可以包括一组或多组第三指针信息。上述查询缓存信息的装置退化第五扩展cache块,可以是查询缓存信息的装置将每个被转化的主cache块中的任意一组指针信息指向的第五扩展cache块中保存的内存块的块地址和缓存信息删除。
S1403、查询缓存信息的装置退化第三指针信息,使第三指针信息为无效指针信息。
示例性的,第三指针信息可以为图8所示的指针信息3,第五扩展cache块可以为扩展存储区域中的扩展cache块3,扩展cache块3中的扩展标志位V'=1,扩展cache块3中包括一个内存块的块地址Tag和缓存信息;指针信息3中可以包括指针标志位v3=1,指针pt3指向扩展cache块3。其中,S1403中的查询缓存信息的装置退化第五扩展cache块,具体可以为查询缓存信息的装置将扩展cache块3中的块地址信息Tag和缓存信息删除,并将扩展cache块3中的扩展标志位由V'=1修改为V'=0;退化第三指针信息,具体为查询缓存信息的装置使指针标志位v3=0,即使指针pt3无效。
进一步的,为了使cache中可以保存更多的内存块的块地址和缓存信息,本发明实施例中提供的cache除了可以包括一级存储区域和扩展存储区域之外,还可以包括一个或者多个其他扩展存储区域,使得cache为分级存储结构中的多级存储结构。
示例性的,cache可以包括一级存储区域、扩展存储区域和一个其他扩展存储区域,该cache为分级存储结构中的三级存储结构。具体的,如图15所示,cache储存器中的扩展存储区域中的每个扩展cache块中可以包括扩展转换标志位D'。其他扩展存储区域中可以包括P(P≥2)个其他扩展cache块。其中,上述其他扩展存储区域可以包括一个存储器,或者,其他扩展存储区域可以包括多个存储器。
其中,扩展cache块中的扩展转换标志位D'可以为一个二进制位,若扩展cache块中的扩展转换标志位D'=1,则表示该扩展cache块被转换过;若扩展cache块中的扩展转换标志位D'=0,则表示该扩展cache块没有被转换过。当一个扩展cache块(如扩展cache块1)中的扩展转换标志位D'=0时,该扩展cache块中包括扩展标志位V'、块地址信息Tag以及缓存状态Dir和/或缓存数据Data。当一个扩展cache块(如扩展cache块3)中的扩展转换标志位D'=1时,该扩展cache块中可以包括Q(Q≥2且Q≤P)组扩展指针信息,该Q组扩展指针信息中的每一组扩展指针信息中可以包括一个扩展指针标志位(如v1'、v2'~vQ'中的任一扩展指针标志位)和一个扩展指针(如pt1'、pt2'~ptQ'中的任一扩展指针)。其中,一组扩展指针信息中的扩展指针标志位可以用于指示该组扩展指针信息中的扩展指针是否有效,如扩展指针信息1中的扩展指针标志位v1'=1,指示扩展指针信息1中的扩展指针pt1'有效。一组扩展指针信息指向一个其他扩展cache块,可以是扩展指针标志位指示扩展指针有效的扩展指针指向该其他扩展cache块,如扩展指针信息1中的扩展指针pt1'指向其他扩展存储区域中的其他扩展cache块1。
上述cache中的其他扩展存储区域中的P个其他扩展cache块中的每一个其他扩展cache块中可以包括一个其他扩展标志位V″,一个块地址信息Tag和一个缓存信息。其中,当一个其他扩展cache块中的其他扩展标志位V″=1时,表示该其他扩展cache块中的保存的块地址信息Tag和缓存信息有效;当一个其他扩展cache块中的其他扩展标志位V″=0时,表示该其他扩展cache块中的保存的块地址信息Tag和缓存信息无效(包括其他扩展cache块中的未保存的块地址信息Tag和缓存信息)。如此,其他扩展存储区域中的其他扩展cache块中包括其他扩展标志位,方便查询缓存信息的装置查询cache的其他扩展存储区域中已保存的内存块的块地址和缓存信息,可以提高查询缓存信息的装置查询缓存信息的效率。
需要说明的是,当cache中为二级存储结构之外的其他多级存储结构(如三级存储结构)时,上述查询缓存信息的装置从cache中查询缓存信息的方法可以参照上述实施例中查询缓存信息的装置从二级存储结构的cache中查询缓存信息的方法,这里不再赘述。
本发明实施例中,由于一级存储区域中的主cache块中的转换标志位和主cache块中的至少两组指针信息使得一级存储区域和扩展存储区域组成的cache为分级存储结构(如二级存储结构),因此cache可以包括较大的扩展存储区域,即cache的存储空间较大;从而,cache中可以保存更多的内存块的块地址和缓存信息,可以减小查询缓存信息的装置删除cache中已保存的内存块的块地址和缓存信息的可能性,并提高缓存命中率。
上述主要从各个网元之间交互的角度介绍了本发明实施例提供的方案。可以理解的是,各个网元,例如上述查询缓存信息的装置为了实现上述功能,其包含了执行各个功能相应的硬件结构和/或软件模块。本领域技术人员应该很容易意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,本发明能够以硬件或硬件和计算机软件的结合形式来实现。某个功能究竟以硬件还是计算机软件驱动硬件的方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
本发明实施例可以根据上述方法示例将查询缓存信息的装置划分为功能模块,例如,可以对应各个功能划分各个功能模块,也可以将两个或两个以上的功能集成在一个处理模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。需要说明的是,本发明实施例中对模块的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。
图16示出了上述实施例中所提供的查询缓存信息的装置的一种可能的结构示意图。如图16所示,查询缓存信息的装置1600可以包括获取模块1601和确定模块1602。获取模块1601用于支持查询缓存信息的装置1600执行上述实施例中的S401,和/或用于本文所描述的技术的其它过程。确定模块1602用于支持查询缓存信息的装置1600执行上述实施例中的S402、S403和S404,和/或用于本文所描述的技术的其它过程。
进一步的,如图17所示,查询缓存信息的装置1600还可以包括判断模块1603和第一修改模块1604。判断模块1603用于支持查询缓存信息的装置1600执行上述实施例中的S1001、S1101和S1201,和/或用于本文所描述的技术的其它过程。第一修改模块1604用于支持查询缓存信息的装置1600执行上述实施例中的S901、S1002、S1003、S1003、S1202和S1301,和/或用于本文所描述的技术的其它过程。
进一步的,如图18所示,查询缓存信息的装置1600还可以包括第二修改模块1605。第二修改模块1605用于支持查询缓存信息的装置1600执行上述实施例中的S1401、S1402和S1403,和/或用于本文所描述的技术的其它过程。
当然,本发明实施例提供的查询缓存信息的装置1600包括但不限于上述的功能模块,例如查询缓存信息的装置1600还包括划分模块,用于将CC-NUMA系统中多处理器模块中的所有内存单元和所有缓存单元划分为多个块,并将cache划分为多个cache块。
在采用集成模块的情况下,上述获取模块1601、确定模块1602、判断模块1603、第一修改模块1604和第二修改模块1605可以集成在一个处理模块中实现,该处理模块可以是处理器或控制器,例如可以是中央处理器(Central Processing Unit,CPU),通用处理器,数字信号处理器(Digital Signal Processor,DSP),专用集成电路(Application-Specific Integrated Circuit,ASIC),现场可编程门阵列(Field Programmable GateArray,FPGA)或者其他可编程逻辑器件、晶体管逻辑器件、硬件部件或者其任意组合。其可以实现或执行结合本发明公开内容所描述的各种举例说明逻辑方框,模块和电路。一个或多个处理模块也可以是实现计算功能的组合,例如包含一个或多个微处理器组合,DSP和微处理器的组合等等。存储模块可以是一个或多个存储器。
当上述处理模块为一个或多个处理器,存储模块为一个或多个存储器时,本发明实施例所提供的查询缓存信息的装置可以为图19所示的查询缓存信息的装置1900。
如图19所示,查询缓存信息的装置1900包括:一个或多个处理器1901、一个或多个存储器1902以及总线1903。
其中,一个或多个处理器1901、一个或多个存储器1902通过总线1903相互连接。其中,总线1903可以是外设部件互连标准(Peripheral Component Interconnect,PCI)总线或扩展工业标准结构(Extended Industry Standard Architecture,EISA)总线等。总线1903可以分为地址总线、数据总线、控制总线等。为便于表示,图19中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
本发明实施例还提供一种计算机存储介质,该计算机存储介质中存储有一个或多个计算机程序代码,当上述查询缓存信息的装置的一个或者多个处理器执行该计算机程序代码时,该查询缓存信息的装置执行如本发明实施例中的查询缓存信息的方法。
其中,本发明实施例提供的查询缓存信息的装置1900中各个模块的详细描述以及各个模块本发明实施例中相关方法步骤后所带来的技术效果可以参考本发明方法实施例中的相关描述,此处不再赘述。
通过以上的实施方式的描述,所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,仅以上述各功能模块的划分举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。上述描述的系统,装置和模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:快闪存储器、移动硬盘、只读存储器、随机存取存储器、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何在本申请揭露的技术范围内的变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。
Claims (19)
1.一种查询缓存信息的方法,其特征在于,包括:
获取查询地址,所述查询地址为第一内存块的地址,所述查询地址中包括查询组地址和查询块地址,所述第一内存块为待处理数据所在的内存块;
根据所述查询组地址,从高速缓冲存储器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块中的缓存信息为所述第一内存块的缓存信息。
2.根据权利要求1所述的方法,其特征在于,所述第一主cache块中还包括有效标志位和所述第一主cache块中的块地址信息对应的内存块的缓存信息,所述第一主cache块中的有效标志位用于指示所述第一主cache块中的块地址信息和该块地址信息对应的内存块的缓存信息有效;
所述方法还包括:
根据所述查询块地址,从至少两个主cache块中确定出所述第一主cache块,所述第一主cache块中的缓存信息为所述第一内存块的缓存信息。
3.根据权利要求1或2所述的方法,其特征在于,还包括:
若所述至少两个主cache块中的每个主cache块均未被转换过,且所述至少两个主cache块中包括第三主cache块,所述第三主cache块的转换标志位指示所述第三主cache块未被转换过,且所述第三主cache块中的有效标志位用于指示所述第三主cache块中的块地址信息和该块地址信息对应的内存块的缓存信息无效,则将所述第三主cache块中的块地址信息修改为所述查询块地址,将所述第三主cache块中的缓存信息修改为所述第一内存块的缓存信息,并使所述第三主cache块中的有效标志位指示所述第三主cache块中的块地址信息和该块地址信息对应的内存块的缓存信息有效。
4.根据权利要求1-3中任一项所述的方法,其特征在于,所述至少两个扩展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块中的块地址信息,并使所述第四扩展cache块中的缓存信息为所述第四主cache块中的缓存信息,所述第四扩展cache块的扩展标志位指示所述第四扩展cache块中的块地址信息和缓存信息有效;所述第三扩展cache块和所述第四扩展cache块为所述至少两个第二扩展cache块中的任意两个扩展cache块;
修改所述第四主cache块,使所述第四主cache块的转换标志位指示所述第四主cache块被转换过,并使所述第四主cache块中包括第一指针信息和第二指针信息,所述第一指针信息指向所述第三扩展cache块,所述第二指针信息指向所述第四扩展cache块。
5.根据权利要求1所述的方法,其特征在于,还包括:
若所述至少两组指针信息均为有效指针信息,且所述至少两组指针信息所指向的至少两个扩展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块,使所述第四主cache块的转换标志位指示所述第四主cache块被转换过,并使所述第四主cache块包括第一指针信息和第二指针信息,所述第一指针信息指向所述第三扩展cache块,所述第二指针信息指向所述第四扩展cache块。
6.根据权利要求4或5所述的方法,其特征在于,还包括:
若所述至少两个扩展cache块中仅包括一个所述第二扩展cache块或者所述至少两个扩展cache块中不包括所述第二扩展cache块,则将所述第四主cache块中的块地址信息替换为所述查询块地址,将所述第四主cache块中的缓存信息替换为所述第一内存块的缓存信息。
7.根据权利要求1所述的方法,其特征在于,还包括:
若所述至少两组指针信息中包括至少一组无效指针信息,且所述至少两组指针信息所指向的至少两个扩展cache块中不包括所述第一扩展cache块,则判断所述至少两个扩展cache块中是否包括第二扩展cache块,所述第二扩展cache块中的扩展标志位用于指示所述第二扩展cache块中的块地址信息和缓存信息无效;
若所述至少两个扩展cache块中包括所述第二扩展cache块,则修改所述第二扩展cache块,使得所述第二扩展cache块中的块地址信息为所述查询块地址,并使所述第二扩展cache块中的缓存信息为所述第一内存块的缓存信息,所述第二扩展cache块的扩展标志位指示所述第二扩展cache块中的块地址信息和缓存信息有效。
8.根据权利要求7所述的方法,其特征在于,还包括:
若所述至少两组指针信息中包括第三指针信息,且所述至少两个扩展cache块中不包括所述第二扩展cache块,且所述至少两个扩展cache块中包括第五扩展cache块,所述第三指针信息为有效指针信息,所述第三指针信息指向所述至少两个扩展cache块中的所述第五扩展cache块,所述第五扩展cache块中的扩展标志位指示所述第五扩展cache块中的块地址信息和该块地址信息对应的内存块的缓存信息有效,则将所述第五扩展cache块中的块地址信息替换为所述查询块地址,并将所述第五扩展cache块中的缓存信息替换为所述第一内存块的缓存信息。
9.根据权利要求1-8中任一项所述的方法,其特征在于,还包括:
在预设条件下,若所述至少两个主cache块包括第四主cache块,所述第四主cache块的转换标志位指示所述第四主cache块未被转换过,且所述第四主cache块中的有效标志位指示所述第四主cache块中的块地址信息和该块地址信息对应的内存块的缓存信息有效,则退化所述第四主cache块,使所述第四主cache块中的有效标志位指示所述第四主cache块中的块地址信息和该块地址信息对应的内存块的缓存信息无效;
若所述至少两组指针信息中包括第三指针信息,所述第三指针信息为有效指针信息,所述第三指针信息指向所述至少两个扩展cache块中的第五扩展cache块,所述第五扩展cache块中的扩展标志位指示所述第五扩展cache块中的块地址信息和该块地址信息对应的内存块的缓存信息有效,则退化所述第五扩展cache块,使所述第五扩展cache块中的扩展标志位指示所述第五扩展cache块中的块地址信息和该块地址信息对应的内存块的缓存信息无效;退化所述第三指针信息,使所述第三指针信息为无效指针信息。
10.一种查询缓存信息的装置,其特征在于,包括:
获取模块,用于获取查询地址,所述查询地址为第一内存块的地址,所述查询地址中包括查询组地址和查询块地址,所述第一内存块为待处理数据所在的内存块;
确定模块,用于根据所述查询组地址,从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块中的缓存信息为所述第一内存块的缓存信息。
11.根据权利要求10所述的装置,其特征在于,所述第一主cache块中还包括有效标志位和所述第一主cache块中的块地址信息对应的内存块的缓存信息,所述第一主cache块中的有效标志位用于指示所述第一主cache块中的块地址信息和该块地址信息对应的内存块的缓存信息有效;
所述确定模块,还用于根据所述查询块地址,从所述至少两个主cache块中确定出所述第一主cache块,所述第一主cache块中的缓存信息为所述第一内存块的缓存信息。
12.根据权利要求10或11所述的装置,其特征在于,还包括:
第一修改模块,用于若所述至少两个主cache块中的每个主cache块均未被转换过,且所述至少两个主cache块中包括第三主cache块,所述第三主cache块的转换标志位指示所述第三主cache块未被转换过,且所述第三主cache块中的有效标志位用于指示所述第三主cache块中的块地址信息和该块地址信息对应的内存块的缓存信息无效,则将所述第三主cache块中的块地址信息修改为所述查询块地址,将所述第三主cache块中的缓存信息修改为所述第一内存块的缓存信息,并使所述第三主cache块中的有效标志位指示所述第三主cache块中的块地址信息和该块地址信息对应的内存块的缓存信息有效。
13.根据权利要求10-12中任一项所述的装置,其特征在于,所述至少两个扩展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块中的块地址信息,并使所述第四扩展cache块中的缓存信息为所述第四主cache块中的缓存信息,所述第四扩展cache块的扩展标志位指示所述第四扩展cache块中的块地址信息和缓存信息有效;所述第三扩展cache块和所述第四扩展cache块为所述至少两个第二扩展cache块中的任意两个扩展cache块;修改所述第四主cache块,使所述第四主cache块的转换标志位指示所述第四主cache块被转换过,并使所述第四主cache块中包括第一指针信息和第二指针信息,所述第一指针信息指向所述第三扩展cache块,所述第二指针信息指向所述第四扩展cache块。
14.根据权利要求10所述的装置,其特征在于,所述判断模块,还用于若所述至少两组指针信息均为有效指针信息,且所述至少两组指针信息所指向的至少两个扩展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块,使所述第四主cache块的转换标志位指示所述第四主cache块被转换过,并使所述第四主cache块包括第一指针信息和第二指针信息,所述第一指针信息指向所述第三扩展cache块,所述第二指针信息指向所述第四扩展cache块。
15.根据权利要求13或14所述的装置,其特征在于,所述判断模块,还用于判断所述至少两个扩展cache块中是否仅包括一个所述第二扩展cache块或者所述至少两个扩展cache块中不包括所述第二扩展cache块;
所述第一修改模块,还用于若所述判断模块判断得到所述至少两个扩展cache块中仅包括一个所述第二扩展cache块或者所述至少两个扩展cache块中不包括所述第二扩展cache块,则将所述第四主cache块中的块地址信息替换为所述查询块地址,将所述第四主cache块中的缓存信息替换为所述第一内存块的缓存信息。
16.根据权利要求10所述的装置,其特征在于,所述判断模块,还用于若所述至少两组指针信息中包括至少一组无效指针信息,且所述至少两组指针信息所指向的至少两个扩展cache块中不包括所述第一扩展cache块,则判断所述至少两个扩展cache块中是否包括第二扩展cache块,所述第二扩展cache块中的扩展标志位用于指示所述第二扩展cache块中的块地址信息和缓存信息无效;
所述第一修改模块,还用于若所述判断模块判断得到所述至少两个扩展cache块中包括所述第二扩展cache块,则修改所述第二扩展cache块,使得所述第二扩展cache块中的块地址信息为所述查询块地址,并使所述第二扩展cache块中的缓存信息为所述第一内存块的缓存信息,所述第二扩展cache块的扩展标志位指示所述第二扩展cache块中的块地址信息和缓存信息有效。
17.根据权利要求16所述的装置,其特征在于,所述第一修改模块,还用于若所述至少两组指针信息中包括第三指针信息,且所述判断模块判断得到所述至少两个扩展cache块中不包括所述第二扩展cache块,且所述至少两个扩展cache块中包括第五扩展cache块,所述第三指针信息为有效指针信息,所述第三指针信息指向所述至少两个扩展cache块中的第五扩展cache块,所述第五扩展cache块中的扩展标志位指示所述第五扩展cache块中的块地址信息和该块地址信息对应的内存块的缓存信息有效,则将所述第五扩展cache块中的块地址信息替换为所述查询块地址,并将所述第五扩展cache块中的缓存信息替换为所述第一内存块的缓存信息。
18.根据权利要求10-17中任一项所述的装置,其特征在于,还包括第二修改模块,用于在预设条件下,若所述至少两个主cache块包括第四主cache块,所述第四主cache块的转换标志位指示所述第四主cache块未被转换过,且所述第四主cache块中的有效标志位指示所述第四主cache块中的块地址信息和该块地址信息对应的内存块的缓存信息有效,则退化所述第四主cache块,使所述第四主cache块中的有效标志位指示所述第四主cache块中的块地址信息和该块地址信息对应的内存块的缓存信息无效;若所述至少两组指针信息中包括第三指针信息,所述第三指针信息为有效指针信息,所述第三指针信息指向所述至少两个扩展cache块中的第五扩展cache块,所述第五扩展cache块中的扩展标志位指示所述第五扩展cache块中的块地址信息和该块地址信息对应的内存块的缓存信息有效,则退化所述第五扩展cache块,使所述第五扩展cache块中的扩展标志位指示所述第五扩展cache块中的块地址信息和该块地址信息对应的内存块的缓存信息无效;退化所述第三指针信息,使所述第三指针信息为无效指针信息。
19.一种查询缓存信息的装置,其特征在于,包括:一个或者多个处理器、一个或者多个存储器和总线通信接口,所述一个或者多个处理器和所述一个或者多个存储器通过总线相连;
所述一个或者多个存储器用于存储计算机程序代码,所述计算机程序代码包括指令,当所述一个或者多个处理器执行所述指令时,所述查询缓存信息的装置执行如权利要求1-9中任一项所述查询缓存信息的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710087475.2A CN108459970B (zh) | 2017-02-17 | 2017-02-17 | 一种查询缓存信息的方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710087475.2A CN108459970B (zh) | 2017-02-17 | 2017-02-17 | 一种查询缓存信息的方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108459970A true CN108459970A (zh) | 2018-08-28 |
CN108459970B CN108459970B (zh) | 2021-02-12 |
Family
ID=63228805
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710087475.2A Active CN108459970B (zh) | 2017-02-17 | 2017-02-17 | 一种查询缓存信息的方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108459970B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11520702B2 (en) | 2019-10-01 | 2022-12-06 | Wipro Limited | System and method for managing cache memory |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102346714A (zh) * | 2011-10-09 | 2012-02-08 | 西安交通大学 | 用于多核处理器的一致性维护装置及一致性交互方法 |
CN102395956A (zh) * | 2011-07-07 | 2012-03-28 | 华为技术有限公司 | 内存备份过程中的系统命令的处理方法和装置 |
US20130073812A1 (en) * | 2011-09-16 | 2013-03-21 | Kabushiki Kaisha Toshiba | Cache memory device, processor, and information processing apparatus |
CN104375955A (zh) * | 2013-08-16 | 2015-02-25 | 爱思开海力士有限公司 | 高速缓冲存储器设备及其控制方法 |
-
2017
- 2017-02-17 CN CN201710087475.2A patent/CN108459970B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102395956A (zh) * | 2011-07-07 | 2012-03-28 | 华为技术有限公司 | 内存备份过程中的系统命令的处理方法和装置 |
US20130073812A1 (en) * | 2011-09-16 | 2013-03-21 | Kabushiki Kaisha Toshiba | Cache memory device, processor, and information processing apparatus |
CN102346714A (zh) * | 2011-10-09 | 2012-02-08 | 西安交通大学 | 用于多核处理器的一致性维护装置及一致性交互方法 |
CN104375955A (zh) * | 2013-08-16 | 2015-02-25 | 爱思开海力士有限公司 | 高速缓冲存储器设备及其控制方法 |
Non-Patent Citations (1)
Title |
---|
艾德才: "《Pentium系列微型计算机原理与接口技术》", 31 January 2001 * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11520702B2 (en) | 2019-10-01 | 2022-12-06 | Wipro Limited | System and method for managing cache memory |
Also Published As
Publication number | Publication date |
---|---|
CN108459970B (zh) | 2021-02-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101382953B (zh) | 在用户空间访问文件系统的接口系统与文件读、写方法 | |
CN105893269B (zh) | 一种Linux系统下内存管理方法 | |
US20200117368A1 (en) | Method for achieving data copying in ftl of solid state drive, system and solid state drive | |
KR100978156B1 (ko) | 스누프 필터에서의 실효를 감소시키기 위한 라인 스와핑 스킴을 위한 방법, 장치, 시스템 및 컴퓨터 판독 가능 기록 매체 | |
CN105593828B (zh) | 管理文件的方法、分布式存储系统和管理节点 | |
CN104750624B (zh) | 群集级数据一致性模型和协议 | |
US8386746B2 (en) | Storage unit management methods and systems | |
TWI283348B (en) | Method, system, and apparatus for a hierarchical cache line replacement | |
CN110362504A (zh) | 对一致性链路和多级存储器的管理 | |
CN109154911A (zh) | 用于监视高速缓存行在不同的高速缓存级下的状态的阴影标签存储器 | |
CN106484628A (zh) | 基于事务的混合存储器模块 | |
CN105550155B (zh) | 用于多处理器系统的探听过滤器以及相关探听过滤方法 | |
CN102971727B (zh) | 在软件分布式共享存储器系统中记录脏信息 | |
CN107784121A (zh) | 一种基于非易失内存的日志文件系统的小写优化方法 | |
CN102982151B (zh) | 多个物理文件合并为一个逻辑文件的方法 | |
CN106598493A (zh) | 一种固态硬盘地址映射表管理方法 | |
CN115168259B (zh) | 一种数据存取方法、装置、设备和计算机可读存储介质 | |
WO2017114164A1 (zh) | 一种图数据的处理方法和装置 | |
CN109634873A (zh) | 固态盘存储主机系统日志信息方法、装置、设备及介质 | |
JPH09506988A (ja) | コンピュータの仮想メモリにおける補助記憶の分散制御システム | |
CN109117088A (zh) | 一种数据处理方法及系统 | |
US20070233965A1 (en) | Way hint line replacement algorithm for a snoop filter | |
CN106776361B (zh) | 一种面向大规模非易失性存储介质的缓存方法和系统 | |
JP2010515128A (ja) | 不揮発性メモリにおけるデータを管理する方法 | |
CN108763511A (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 | ||
TR01 | Transfer of patent right | ||
TR01 | Transfer of patent right |
Effective date of registration: 20211221 Address after: 450046 Floor 9, building 1, Zhengshang Boya Plaza, Longzihu wisdom Island, Zhengdong New Area, Zhengzhou City, Henan Province Patentee after: xFusion Digital Technologies Co., Ltd. Address before: 518129 Bantian HUAWEI headquarters office building, Longgang District, Guangdong, Shenzhen Patentee before: HUAWEI TECHNOLOGIES Co.,Ltd. |