WO2017219749A1 - 一种缓存管理方法、装置及计算机存储介质 - Google Patents

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

Info

Publication number
WO2017219749A1
WO2017219749A1 PCT/CN2017/081404 CN2017081404W WO2017219749A1 WO 2017219749 A1 WO2017219749 A1 WO 2017219749A1 CN 2017081404 W CN2017081404 W CN 2017081404W WO 2017219749 A1 WO2017219749 A1 WO 2017219749A1
Authority
WO
WIPO (PCT)
Prior art keywords
storage
storage block
packet
mapping relationship
block
Prior art date
Application number
PCT/CN2017/081404
Other languages
English (en)
French (fr)
Inventor
马骞
王林滨
杨洁伟
仲建锋
Original Assignee
深圳市中兴微电子技术有限公司
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 深圳市中兴微电子技术有限公司 filed Critical 深圳市中兴微电子技术有限公司
Priority to EP17814487.9A priority Critical patent/EP3474147B1/en
Publication of WO2017219749A1 publication Critical patent/WO2017219749A1/zh

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0866Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0893Caches characterised by their organisation or structure
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0877Cache access modes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1041Resource optimization
    • G06F2212/1044Space efficiency improvement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/50Control mechanisms for virtual memory, cache or TLB
    • G06F2212/502Control mechanisms for virtual memory, cache or TLB using adaptive policy

Definitions

  • the present invention relates to the field of computers, and in particular, to a cache management method, apparatus, and computer storage medium.
  • the embodiment of the invention provides a cache management method, including:
  • the second storage block includes M first storage blocks; M is an integer greater than or equal to 2;
  • the method before the at least one first storage block is allocated to the received message, the method further includes:
  • the method before performing length statistics on the packet, the method further includes:
  • the embodiment of the invention further provides a cache management device, comprising:
  • the allocating unit is configured to allocate at least one first storage block for the received message, and then occupy the next first storage block after the N storage units of the first storage block are occupied.
  • FIG. 5 is a schematic structural diagram of a cache management apparatus according to Embodiment 3 of the present invention.
  • CHUNK block
  • the basic idea is to make a plurality of storage units into one large storage unit, and the linked list management manages the cache in units of large storage units.
  • CHUNK the N small storage units shown in FIG. 1A form a large storage CHUNK, for example, the original 64 small storage units (each small storage unit is 128B).
  • the number of CHUNKs is 128K
  • the SRAM resource required to manage CHUNK is 2.25 Mbit (18 bit x 128K).
  • the easiest way is to reduce the number of small memory cells in CHUNK. For example, if each CHUNK contains 64 small storage units, and each CHUNK contains 8 small storage units, the resources of the management linked list are increased to 20 Mbit, but the utilization rate is increased by 8 times.
  • this method of reducing the number of memory cells in CHUNK faces two problems. First, the resources of the management linked list will increase accordingly. Second, as the number of memory cells in the CHUNK decreases, the linked list of CHUNKs is used to cope with the RAM access delay. The ability will be lower and lower. For example, when using the current CHUNK, it will get the CHUNK node behind the current CHUNK. If the storage unit in the current CHUNK has been used, but the subsequent CHUNK node has not yet been obtained, the linked list at this time The operation is stopped, which affects the efficiency of the linked list operation.
  • the first memory block includes N memory cells; N is an integer greater than or equal to 2.
  • the granularity of the management refers to: the smallest storage unit divided by the cache. For example, if the memory size is 1 GB and the storage unit is divided into units of 128 B, then 8 M storage units can be obtained. In this case, the granularity of the management can be understood as a storage unit of 128 B.
  • the method before performing length statistics on the packet, the method may further include:
  • At least one first storage block is allocated for the received message.
  • Step 302 Generate a first mapping relationship table based on the allocated first storage block address and the location of the storage unit occupied by the packet in the first storage block.
  • the first mapping relationship represents a storage address mapping relationship of the packet.
  • the location of the storage unit occupied by the message in the first storage block can be understood as: the storage unit occupied by the message is the first storage unit in the first storage block. It can be expressed using an offset. For example, assuming that there are a total of eight storage units in the first storage block, and the storage unit occupied by the message is the fourth storage unit in the first storage block, the corresponding offset is 4, and the first A storage block address combined with an offset can obtain a first mapping relationship of the packet.
  • Step 303 Determine, for each first storage block that is allocated, a second storage block to which it belongs; the second storage block includes M first storage blocks;
  • the value of N is determined according to the size of the cache and the size of the management.
  • the second storage block to which it belongs when the second storage block to which it belongs is determined, after the M first storage blocks of one second storage block are registered, the next second storage block is applied as the current storage.
  • the second memory block to which the block belongs Generally speaking, after each outer CHUNK is registered with M inner-layer CHUNKs, the subsequent applied CHUNK will apply for an outer CHUNK and register in the newly applied outer CHUNK to achieve The layer CHUNK address can find the corresponding inner layer CHUNK address.
  • the cache management method allocates at least one first storage block to the received message to store the packet; the first storage block includes N storage units; and N is greater than or equal to 2.
  • the first mapping relationship is generated based on the first storage block address and the location of the storage unit occupied by the packet in the first storage block; the first mapping relationship represents the storage address mapping relationship of the packet Determining, for each first storage block allocated, a second storage block to which it belongs; the second storage block includes M first storage blocks; M is an integer greater than or equal to 2; using the second storage a location of the block and a location of the first storage block in the second storage block to generate a second mapping relationship table; the second mapping relationship characterizing a first storage block address mapping relationship of the packet, and introducing a virtual storage block (Second memory block), as such, can effectively save cache management resources.
  • the number of storage units in the first block is significantly reduced compared with the existing one using a layer of CHUNK, and at the same time, Now with the same function, this can effectively improve the efficiency of the use of the cache.
  • the time for acquiring the next second storage block node can be extended to N*M storage operation cycles, and the delay for using the linked list to deal with the RAM access is increased, so that the efficiency of the linked list operation can be effectively improved.
  • the cache size is 1 GB
  • the cache is divided into 128 B storage units, that is, the management granularity is 128 B.
  • each inner layer CHUNK is determined to be 8 according to the size of the swap storage and the granularity of the cache management, and it is determined that each outer CHUNK includes 8 inner layers CHUNK. As shown in Figure 4.
  • the first internal CHUNK to be applied for will also apply for an outer CHUNK for registration. After each outer CHUNK is registered with 8 inner-level CHUNKs, the subsequent applied CHUNK will apply for a new one. Layer CHUNK and registered in the outer CHUNK of the new application. Therefore, 8 inner-layer CHUNKs are registered in the outer CHUNK, which is equivalent to 64 storage units, and the time for the outer CHUNK to acquire its next CHUNK node can be extended to 64 storage operation periods.
  • each inner layer CHUNK contains 8 storage units
  • each outer layer CHUNK contains 8 inner layer CHUNKs, which is equivalent to 64 storage units.
  • the solution provided by the embodiment of the present invention can achieve a good compromise between storage space utilization and linked list management resources and linked list operation efficiency.
  • the embodiment provides a cache management device. As shown in FIG. 5, the device includes:
  • the granularity of the management refers to: the smallest storage unit divided by the cache. For example, if the memory size is 1 GB and the storage unit is divided into units of 128 B, then 8 M storage units can be obtained. In this case, the granularity of the management can be understood as a storage unit of 128 B.
  • the first storage block needs to be allocated to the message based on the length of the message.
  • the queue corresponding to the packet is determined according to requirements.
  • the device may further include:
  • the allocating unit 51, the first generating unit 52, the first determining unit 53, the second generating unit 54, the statistic unit and the second determining unit may be processed by a processor such as a central processing unit (CPU, in the cache management device).
  • CPU central processing unit
  • MCU Microcontroller
  • DSP Digital Signal Processor
  • FPGA Field-Programmable Gate Array

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

本发明公开了一种缓存管理方法,包括:为接收到的报文分配至少一个第一存储块,以存储所述报文;所述第一存储块包含N个存储单元;N为大于或等于2的整数;基于分配的第一存储块地址以及报文所占据的存储单元在第一存储块中的位置,生成第一映射关系表;所述第一映射关系表征所述报文的存储地址映射关系;为分配的每个第一存储块,确定其所属的第二存储块;所述第二存储块包含M个第一存储块;M为大于或等于2的整数;利用所述的第二存储块的地址及第一存储块在第二存储块中的位置,生成第二映射关系表;所述第二映射关系表表征存储所述报文的第一存储块地址映射关系。本发明同时还公开了一种缓存管理装置及计算机存储介质。

Description

一种缓存管理方法、装置及计算机存储介质
相关申请的交叉引用
本申请基于申请号为201610454789.7、申请日为2016年06月21日的中国专利申请提出,并要求该中国专利申请的优先权,该中国专利申请的全部内容在此引入本申请作为参考。
技术领域
本发明涉及计算机领域,尤其涉及一种缓存管理方法、装置及计算机存储介质。
背景技术
使用缓存(例如静态随机存取存储器(SRAM,Static Random AccessMemory)/动态随机存取存储器(DRAM,Dynamic Random Access Memory)等)时,都需要对缓存进行管理,简单的如先入先出队列(FIFO,First InputFirst Output),复杂的如各种链表。
而对缓存管理时面临着两个问题:一个问题是随着缓存容量的增加,管理缓存所需的资源就会增加;另一个问题是为了降低管理缓存所消耗的资源,通常会将缓存管理的粒度增大,这样就牺牲了缓存的利用率。
因此,如何能节省缓存管理的资源,同时又能兼顾缓存的利用率是目前亟待解决的问题。
发明内容
为解决现有存在的技术问题,本发明实施例提供一种缓存管理方法及装置。
本发明实施例的技术方案是这样实现的:
本发明实施例提供了一种缓存管理方法,包括:
为接收到的报文分配至少一个第一存储块,以存储所述报文;所述第一存储块包含N个存储单元;N为大于或等于2的整数;
基于分配的第一存储块地址以及报文所占据的存储单元在第一存储块中的位置,生成第一映射关系表;所述第一映射关系表征所述报文的存储地址映射关系;
为分配的每个第一存储块,确定其所属的第二存储块;所述第二存储块包含M个第一存储块;M为大于或等于2的整数;
利用所述的第二存储块的地址及第一存储块在第二存储块中的位置,生成第二映射关系表;所述第二映射关系表征存储所述报文的第一存储块地址映射关系。
上述方案中,为接收到的报文分配至少一个第一存储块之前,所述方法还包括:
对所述报文进行长度统计,得到第一信息,所述第一信息表征所述报文的长度信息;
相应地,根据所述第一信息,为接收到的报文分配至少一个第一存储块。
上述方案中,对所述报文进行长度统计之前,所述方法还包括:
依据所述报文的类型,确定所述报文所属的第一队列;
将所述报文加入至所述第一队列。
上述方案中,为接收到的报文分配至少一个第一存储块时,一个第一存储块的N个存储单元占用完毕后,再占用下一个第一存储块。
上述方案中,为分配的每个第一存储块,确定其所属的第二存储块时,一个第二存储块的M个第一存储块均被注册后,再申请下一个第二存储块作为当前存储块所属的第二存储块。
本发明实施例还提供了一种缓存管理装置,包括:
分配单元,配置为为接收到的报文分配至少一个第一存储块,以存储所述报文;所述第一存储块包含N个存储单元;N为大于或等于2的整数;
第一生成单元,配置为基于分配的第一存储块地址以及报文所占据的存储单元在第一存储块中的位置,生成第一映射关系表;所述第一映射关系表征所述报文的存储地址映射关系;
第一确定单元,配置为为分配的每个第一存储块,确定其所属的第二存储块;所述第二存储块包含M个第一存储块;M为大于或等于2的整数;
第二生成单元,配置为利用所述的第二存储块的地址及第一存储块在第二存储块中的位置,生成第二映射关系表;所述第二映射关系表表征存储所述报文的第一存储块地址映射关系。
上述方案中,所述装置还包括:
统计单元,配置为对所述报文进行长度统计,得到第一信息,所述第一信息表征所述报文的长度信息;
相应地,所述分配单元,配置为根据所述第一信息,为接收到的报文分配至少一个第一存储块。
上述方案中,所述装置还包括:
第二确定单元,配置为依据所述报文的类型,确定所述报文所属的第一队列;以及将所述报文加入至所述第一队列。
上述方案中,所述分配单元,配置为为接收到的报文分配至少一个第一存储块时,一个第一存储块的N个存储单元占用完毕后,再占用下一个第一存储块。
上述方案中,所述第一确定单元,配置为为分配的每个第一存储块,确定其所属的第二存储块时,一个第二存储块的M个第一存储块均被注册后,再申请下一个第二存储块作为当前存储块所属的第二存储块。
本发明实施例还提供了一种计算机存储介质,所述计算机存储介质包括一组指令,当执行所述指令时,引起至少一个处理器执行上述的缓存管理方法。
本发明实施例提供的缓存管理方法、装置及计算机存储介质,为接收到的报文分配至少一个第一存储块,以存储所述报文;所述第一存储块包含N个存储单元;N为大于或等于2的整数;基于分配的第一存储块地址 以及报文所占据的存储单元在第一存储块中的位置,生成第一映射关系表;所述第一映射关系表征所述报文的存储地址映射关系;为分配的每个第一存储块,确定其所属的第二存储块;所述第二存储块包含M个第一存储块;M为大于或等于2的整数;利用所述的第二存储块的地址及第一存储块在第二存储块中的位置,生成第二映射关系表;所述第二映射关系表征存储所述报文的第一存储块地址映射关系,引入了虚拟存储块(第二存储块),如此,可以有效地节省缓存管理资源。
同时,由于采用第一映射关系表及第二映射关系表,与现有的采用一层CHUNK的方式相比,第一块中存储单元的数量明显减少,同时还能实现与其相同的功能,如此,可以有效地提高缓存的使用效率。
附图说明
在附图(其不一定是按比例绘制的)中,相似的附图标记可在不同的视图中描述相似的部件。具有不同字母后缀的相似附图标记可表示相似部件的不同示例。附图以示例而非限制的方式大体示出了本文中所讨论的各个实施例。
图1A-B为相关技术中一种缓存管理方法示意图;
图2A-B为相关技术中另一种缓存管理方法示意图;
图3为本发明实施例一缓存管理方法流程示意图;
图4为本发明实施例二缓存管理的方式示意图;
图5为本发明实施例三缓存管理装置结构示意图。
具体实施方式
下面结合附图及实施例对本发明再作进一步详细的描述。
目前,管理缓存通常的做法是将缓存的存储空间划分成小的存储单元,并对每个存储单元进行编址,通过对编址后的地址进行管理,从而间接实现对缓存的管理。举个例子来说,如图1A所示,将一个大小为1GB的缓存按照128B的存储单元进行划分,则可以得到8M个存储单元,那么就可 以使用23比特(bit)对8M个存储单元进行编址以便对缓存进行管理,对应的地址范围为23’h000000~23’h7FFFFF,如图1B所示。
那么,就需要184Mbit(23bit x 8M)的地址存储资源。而地址一般存储在SRAM中,基于目前比较通用的器件制作工艺(28nm的工艺(晶体管的尺寸大约为28nm))下,184Mbit的SRAM需要占用大约50mm2的面积,所以说还是占用了相当大的面积,消耗了比较大的资源。
为了解决传统缓存管理方案消耗过多资源的问题,有人提出了一种块(CHUNK)方案。其基本思想是:将多个存储单元组成一个大的存储单元,链表管理以大的存储单元为单位来管理缓存。举个例子来说,如图2A所示,将图1A所示的N个小存储单元组成一个大的存储CHUNK,比如将原来的64个小存储单元(每个小存储单元为128B)组成一个CHUNK,此时每个小存储单元的地址为:存储单元地址={Chunk_AddrX,6'd0}+offset。这样,如图2B所示,CHUNK的数量为128K,那么管理CHUNK所需要的SRAM资源为2.25Mbit(18bit x 128K)。
从上面的描述中可以看出,CHUNK方案有效地降低了链表的资源。但是,很多情况下CHUNK内的小存储单元不能共享,导致了使用CHUNK方案时,存在一定的缓存空间浪费,降低了缓存的使用效率。
为了解决CHUNK方案中存储空间浪费的问题,最简单的方法是将CHUNK内的小存储单元数量减少。举个例子来说,如果将每个CHUNK包含64个小存储单元,改为每个CHUNK包含8个小存储单元,这样管理链表的资源虽然增加到了20Mbit,但是利用率却提升了8倍。但是,这种缩减CHUNK内存储单元数量的方法会面临两个问题,一是管理链表的资源会相应增加,二是随着CHUNK内存储单元数量的减少,使用CHUNK组成的链表应对RAM访问延时的能力会越来越低,例如在使用当前CHUNK时,会去获取当前CHUNK后面的CHUNK节点,如果在当前CHUNK内的存储单元已经使用完毕,但是后面的CHUNK节点尚未获取到,此时链表的操作就要停止,从而影响链表操作的效率。
因此,如何能节省缓存管理的资源,同时又能兼顾缓存的利用率是目前亟待解决的问题。
基于此,在本发明的各种实施例中:为接收到的报文分配至少一个第一存储块,以存储所述报文;所述第一存储块包含N个存储单元;N为大于或等于2的整数;基于分配的第一存储块地址以及报文所占据的存储单元在第一存储块中的位置,生成第一映射关系表;所述第一映射关系表表征所述报文的存储地址映射关系;为分配的每个第一存储块,确定其所属的第二存储块;所述第二存储块包含M个第一存储块;M为大于或等于2的整数;利用所述的第二存储块的地址及第一存储块在第二存储块中的位置,生成第二映射关系表;所述第二映射关系表表征存储所述报文的第一存储块地址映射关系。
实施例一
本发明实施例提供一种缓存管理方法,如图3所示,该方法包括以下步骤:
步骤301:为接收到的报文分配至少一个第一存储块,以存储所述报文;
这里,所述第一存储块包含N个存储单元;N为大于或等于2的整数。
实际应用时,如图4所示,本发明实施例中,对于一个缓存,采用两层CHUNK的方式来管理,即将CHUNK划分成两层,内层CHUNK(第一存储块)由小的存储单元构成,外层CHUNK(第二存储块)由内层CHUNK组成。
其中,需要根据缓存的大小、以及管理的粒度大小来确定每个内层CHUNK所包含的存储单元的个数。换句话说,根据缓存的大小、以及管理的粒度大小来确定N的取值。
所述管理的粒度大小是指:缓存所划分的最小存储单元。举个例子来说,假设内存大小为1GB,按照每128B为单位划分存储单元,则可以得到8M个存储单元,此时所述管理的粒度可以理解为128B的存储单元。
在为接收到的报文分配至少一个第一存储块时,一个第一存储块的N个存储单元占用完毕后,再占用下一个第一存储块。通俗点讲,为报文分配内层CHUNK时,根据地址链表,先申请一个内层CHUNK,一个内层 CHUNK包含N个存储单元,即对应N个存储地址,当这N个存储地址使用完毕后,才能再去申请另一个内层CHUNK。
需要说明的是:属于同一个队列的两个报文可以共用一个内层CHUNK,而不同队列的两个报文是不能共用一个内层CHUNK的,不然会造成读取的混乱。
实际应用时,需要基于所述报文的长度来为所述报文分配第一存储块。
基于此,在一实施例中,对所述报文进行长度统计之前,该方法还可以包括:
对所述报文进行长度统计,得到第一信息,所述第一信息表征所述报文的长度信息;
相应地,根据所述第一信息,为接收到的报文分配至少一个第一存储块。
另外,实际应用时,一般报文的存储是基于队列来实现的,换句话说,每个队列维护一个地址链表,以便清楚区分各队列。
其中,根据需要确定报文所对应的队列。
基于此,在一实施例中,对所述报文进行长度统计之前,该方法还可以包括:
依据所述报文的类型,确定所述报文所属的第一队列;
将所述报文加入至所述第一队列。
步骤302:基于分配的第一存储块地址以及报文所占据的存储单元在第一存储块中的位置,生成第一映射关系表;
这里,所述第一映射关系表征所述报文的存储地址映射关系。
所述报文所占据的存储单元在第一存储块中的位置,可以理解为:所述报文所占据的存储单元是第一存储块中的第几个存储单元。可以使用偏移量(offset)来表达。举个例子来说,假设第一存储块中总共有8个存储单元,所述报文所占据的存储单元是第一存储块中的第4个存储单元,则对应的offset为4,采用第一存储块地址并结合offset,即可得到所述报文的第一映射关系。
步骤303:为分配的每个第一存储块,确定其所属的第二存储块;所述第二存储块包含M个第一存储块;
这里,M为大于或等于2的整数。
与确定N的取值方式类似,实际应用时,需要根据缓存的大小、以及管理的粒度大小来确定每个外层CHUNK(第二存储块)所包含的内层CHUNK(第一存储块的个数)。换句话说,根据缓存的大小、以及管理的粒度大小来确定M的取值。
而且,为分配的每个第一存储块,确定其所属的第二存储块时,一个第二存储块的M个第一存储块均被注册后,再申请下一个第二存储块作为当前存储块所属的第二存储块。通俗点讲,每个外层CHUNK注册有M个内层CHUNK后,后续被申请到的内层CHUNK就要新申请一个外层CHUNK,并在新申请的外层CHUNK中注册,以实现通过外层CHUNK地址即可查找到对应内层CHUNK地址。
步骤304:利用所述的第二存储块的地址及第一存储块在第二存储块中的位置,生成第二映射关系。
这里,所述第二映射关系表征存储所述报文的第一存储块地址映射关系。
本发明实施例提供的缓存管理方法,为接收到的报文分配至少一个第一存储块,以存储所述报文;所述第一存储块包含N个存储单元;N为大于或等于2的整数;基于分配的第一存储块地址以及报文所占据的存储单元在第一存储块中的位置,生成第一映射关系表;所述第一映射关系表征所述报文的存储地址映射关系;为分配的每个第一存储块,确定其所属的第二存储块;所述第二存储块包含M个第一存储块;M为大于或等于2的整数;利用所述的第二存储块的地址及第一存储块在第二存储块中的位置,生成第二映射关系表;所述第二映射关系表征存储所述报文的第一存储块地址映射关系,引入了虚拟存储块(第二存储块),如此,可以有效地节省缓存管理资源。
同时,由于采用第一映射关系表及第二映射关系表,与现有的采用一层CHUNK的方式相比,第一块中存储单元的数量明显减少,同时还能实 现与其相同的功能,如此,可以有效地提高缓存的使用效率。
另外,对于第二存储块,获取下一个第二存储块节点的时间可以延长至N*M个存储操作周期,使用链表应对RAM访问的时延会增加,如此,能有效地提高链表操作效率。
实施例二
在实施例一的基础上,本实施例以缓存大小为1GB,缓存按照128B的存储单元划分,即管理的粒度大小为128B。
依据换存储的大小以及缓存管理的粒度大小来确定每个内层CHUNK所包含的存储单元的个数为8,同时确定每个外层CHUNK包含8个内层CHUNK。如图4所示。
当一个报文加入队列后,根据报文的长度信息,先申请一个内层CHUNK,内层CHUNK包含了八个地址,分别是Addr 0~7,直到这八个地址使用完毕后才会再申请另一个内层CHUNK,并以申请的内层CHUNK和报文所占据的存储单元在内层CHUNK中的第几个存储单元(offset)为信息来注册,即生成第一映射关系表。
同时,每申请一个内层CHUNK,都要去内层到外层CHUNK表中注册一下,即生成第二映射关系表,以便可以通过外层CHUNK地址来查到该内层CHUNK地址。内层CHUNK注册时,以外层CHUNK地址和该内层CHUNK是外层CHUNK的第几个内层CHUNK为信息来注册。内层到外层CHUNK注册的这张表,可以称作内层外层映射表。
第一个被申请到的内层CHUNK,同时会申请一个外层CHUNK用于注册,每个外层CHUNK注册有8个内层CHUNK后,后续被申请到的内层CHUNK就要新申请一个外层CHUNK,并在新申请的外层CHUNK中注册。所以外层CHUNK中注册了8个内层CHUNK,相当于64个存储单元,外层CHUNK获取其下一个CHUNK节点的时间可以延长到64个存储操作周期。
从上面的描述中可以看出,外层CHUNK并不是真实存在的物理 CHUNK,可以理解为虚拟CHUNK,所以本发明实施例提供的方案可以理解为是一种虚拟CHUNK的方案。
本发明实施例提供的方案,采用两层CHUNK的方式,管理CHUNK所需要的SRAM资源可以明显减少,可以有效地节省缓存管理资源。同时,每个内层CHUNK包含8个存储单元,而每个外层CHUNK包含8个内层CHUNK,相当于64个存储单元,如此,与现有的采用一层CHUNK的方式相比,第一块中存储单元的数量明显减少,同时还能实现与其相同的功能,如此,可以有效地提高缓存的使用效率。
另外,外层CHUNK获取其下一个CHUNK节点的时间可以延长到64个存储操作周期,如此,有效地提高了链表的操作效率。
综上所述,与现有的技术方案相比,采用本发明实施例提供的方案,可以在存储空间利用率和链表管理资源以及链表操作效率之间取得很好的折中效果。
实施例三
为实现本发明实施例提供的方法,本实施例提供一种缓存管理装置,如图5所示,该装置包括:
分配单元51,配置为为接收到的报文分配至少一个第一存储块,以存储所述报文;所述第一存储块包含N个存储单元;N为大于或等于2的整数;
第一生成单元52,配置为基于分配的第一存储块地址以及报文所占据的存储单元在第一存储块中的位置,生成第一映射关系表;所述第一映射关系表征所述报文的存储地址映射关系;
第一确定单元53,配置为为分配的每个第一存储块,确定其所属的第二存储块;所述第二存储块包含M个第一存储块;M为大于或等于2的整数;
第二生成单元54,配置为利用所述的第二存储块的地址及第一存储块在第二存储块中的位置,生成第二映射关系表;所述第二映射关系表表征 存储所述报文的第一存储块地址映射关系。
其中,实际应用时,如图4所示,本发明实施例中,对于一个缓存,采用两层CHUNK的方式来管理,即将CHUNK划分成两层,内层CHUNK(第一存储块)由小的存储单元构成,外层CHUNK(第二存储块)由内层CHUNK组成。
这里,需要根据缓存的大小、以及管理的粒度大小来确定每个内层CHUNK所包含的存储单元的个数。换句话说,根据缓存的大小、以及管理的粒度大小来确定N的取值。
所述管理的粒度大小是指:缓存所划分的最小存储单元。举个例子来说,假设内存大小为1GB,按照每128B为单位划分存储单元,则可以得到8M个存储单元,此时所述管理的粒度可以理解为128B的存储单元。
在为接收到的报文分配至少一个第一存储块时,所述分配单元51一个第一存储块的N个存储单元占用完毕后,再占用下一个第一存储块。通俗点讲,为报文分配内层CHUNK时,根据地址链表,先申请一个内层CHUNK,一个内层CHUNK包含N个存储单元,即对应N个存储地址,当这N个存储地址使用完毕后,才能再去申请另一个内层CHUNK。
需要说明的是:属于同一个队列的两个报文可以共用一个内层CHUNK,而不同队列的两个报文是不能共用一个内层CHUNK的,不然会造成读取的混乱。
实际应用时,需要基于所述报文的长度来为所述报文分配第一存储块。
基于此,在一实施例中,该装置还可以包括:
统计单元,配置为对所述报文进行长度统计,得到第一信息,所述第一信息表征所述报文的长度信息;
相应地,所述分配单元51,根据所述第一信息,为接收到的报文分配至少一个第一存储块。
另外,实际应用时,一般报文的存储是基于队列来实现的,换句话说,每个队列维护一个地址链表,以便清楚区分各队列。
其中,根据需要确定报文所对应的队列。
基于此,在一实施例中,该装置还可以包括:
第二确定单元,配置为依据所述报文的类型,确定所述报文所属的第一队列;以及将所述报文加入至所述第一队列。
所述报文所占据的存储单元在第一存储块中的位置,可以理解为:所述报文所占据的存储单元是第一存储块中的第几个存储单元。可以使用offset来表达。举个例子来说,假设第一存储块中总共有8个存储单元,所述报文所占据的存储单元是第一存储块中的第4个存储单元,则对应的offset为4,采用第一存储块地址并结合offset,即可得到所述报文的第一映射关系。
与确定N的取值方式类似,实际应用时,需要根据缓存的大小、以及管理的粒度大小来确定每个外层CHUNK(第二存储块)所包含的内层CHUNK(第一存储块的个数)。换句话说,根据缓存的大小、以及管理的粒度大小来确定M的取值。
而且,为分配的每个第一存储块,确定其所属的第二存储块时,一个第二存储块的M个第一存储块均被注册后,所述第一确定单元53再申请下一个第二存储块作为当前存储块所属的第二存储块。通俗点讲,每个外层CHUNK注册有M个内层CHUNK后,后续被申请到的内层CHUNK就要新申请一个外层CHUNK,并在新申请的外层CHUNK中注册,以实现通过外层CHUNK地址即可查找到对应内层CHUNK地址。
实际应用时,所述分配单元51、第一生成单元52、第一确定单元53、第二生成单元54、统计单元以及第二确定单元可由缓存管理装置中的处理器比如中央处理器(CPU,Central Processing Unit)、微处理器(MCU,MicroControl Unit)、数字信号处理器(DSP,Digital Signal Processor)或可编程逻辑阵列(FPGA,Field-Programmable Gate Array)等实现。
本发明实施例提供的缓存管理装置,所述分配单元51为接收到的报文分配至少一个第一存储块,以存储所述报文;所述第一存储块包含N个存储单元;N为大于或等于2的整数;所述第一生成单元52基于分配的第一存储块地址以及报文所占据的存储单元在第一存储块中的位置,生成第一映射关系表;所述第一映射关系表征所述报文的存储地址映射关系;所述 第一确定单元53为分配的每个第一存储块,确定其所属的第二存储块;所述第二存储块包含M个第一存储块;M为大于或等于2的整数;所述第二生成单元54利用所述的第二存储块的地址及第一存储块在第二存储块中的位置,生成第二映射关系表;所述第二映射关系表征存储所述报文的第一存储块地址映射关系,引入了虚拟存储块(第二存储块),如此,可以有效地节省缓存管理资源。
同时,由于采用第一映射关系表及第二映射关系表,与现有的采用一层CHUNK的方式相比,第一块中存储单元的数量明显减少,同时还能实现与其相同的功能,如此,可以有效地提高缓存的使用效率。
另外,对于第二存储块,获取下一个第二存储块节点的时间可以延长至N*M个存储操作周期,使用链表应对RAM访问的时延会增加,如此,能有效地提高链表操作效率。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用硬件实施例、软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器和光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
基于此,本发明实施例还提供了一种计算机存储介质,所述计算机存储介质包括一组指令,当执行所述指令时,引起至少一个处理器执行本发明实施例的缓存管理方法。
以上所述,仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。
工业实用性
本发明实施例提供的方案,为接收到的报文分配至少一个第一存储块,以存储所述报文;所述第一存储块包含N个存储单元;N为大于或等于2的整数;基于分配的第一存储块地址以及报文所占据的存储单元在第一存储块中的位置,生成第一映射关系表;所述第一映射关系表征所述报文的存储地址映射关系;为分配的每个第一存储块,确定其所属的第二存储块;所述第二存储块包含M个第一存储块;M为大于或等于2的整数;利用所述的第二存储块的地址及第一存储块在第二存储块中的位置,生成第二映射关系表;所述第二映射关系表征存储所述报文的第一存储块地址映射关系,引入了虚拟存储块(第二存储块),如此,可以有效地节省缓存管理资源。

Claims (11)

  1. 一种缓存管理方法,所述方法包括:
    为接收到的报文分配至少一个第一存储块,以存储所述报文;所述第一存储块包含N个存储单元;N为大于或等于2的整数;
    基于分配的第一存储块地址以及报文所占据的存储单元在第一存储块中的位置,生成第一映射关系表;所述第一映射关系表征所述报文的存储地址映射关系;
    为分配的每个第一存储块,确定其所属的第二存储块;所述第二存储块包含M个第一存储块;M为大于或等于2的整数;
    利用所述的第二存储块的地址及第一存储块在第二存储块中的位置,生成第二映射关系表;所述第二映射关系表征存储所述报文的第一存储块地址映射关系。
  2. 根据权利要求1所述的方法,其中,为接收到的报文分配至少一个第一存储块之前,所述方法还包括:
    对所述报文进行长度统计,得到第一信息,所述第一信息表征所述报文的长度信息;
    相应地,根据所述第一信息,为接收到的报文分配至少一个第一存储块。
  3. 根据权利要求2所述的方法,其中,对所述报文进行长度统计之前,所述方法还包括:
    依据所述报文的类型,确定所述报文所属的第一队列;
    将所述报文加入至所述第一队列。
  4. 根据权利要求1所述的方法,其中,为接收到的报文分配至少一个第一存储块时,一个第一存储块的N个存储单元占用完毕后,再占用下一个第一存储块。
  5. 根据权利要求1所述的方法,其中,为分配的每个第一存储块,确定其所属的第二存储块时,一个第二存储块的M个第一存储块均被注册后, 再申请下一个第二存储块作为当前存储块所属的第二存储块。
  6. 一种缓存管理装置,所述装置包括:
    分配单元,配置为为接收到的报文分配至少一个第一存储块,以存储所述报文;所述第一存储块包含N个存储单元;N为大于或等于2的整数;
    第一生成单元,配置为基于分配的第一存储块地址以及报文所占据的存储单元在第一存储块中的位置,生成第一映射关系表;所述第一映射关系表征所述报文的存储地址映射关系;
    第一确定单元,配置为为分配的每个第一存储块,确定其所属的第二存储块;所述第二存储块包含M个第一存储块;M为大于或等于2的整数;
    第二生成单元,配置为利用所述的第二存储块的地址及第一存储块在第二存储块中的位置,生成第二映射关系表;所述第二映射关系表表征存储所述报文的第一存储块地址映射关系。
  7. 根据权利要求6所述的装置,其中,所述装置还包括:
    统计单元,配置为对所述报文进行长度统计,得到第一信息,所述第一信息表征所述报文的长度信息;
    相应地,所述分配单元,配置为根据所述第一信息,为接收到的报文分配至少一个第一存储块。
  8. 根据权利要求7所述的装置,其中,所述装置还包括:
    第二确定单元,配置为依据所述报文的类型,确定所述报文所属的第一队列;以及将所述报文加入至所述第一队列。
  9. 根据权利要求6所述的装置,其中,所述分配单元,配置为为接收到的报文分配至少一个第一存储块时,一个第一存储块的N个存储单元占用完毕后,再占用下一个第一存储块。
  10. 根据权利要求9所述的装置,其中,所述第一确定单元,配置为为分配的每个第一存储块,确定其所属的第二存储块时,一个第二存储块的M个第一存储块均被注册后,再申请下一个第二存储块作为当前存储块所属的第二存储块。
  11. 一种计算机存储介质,所述计算机存储介质包括一组指令,当执 行所述指令时,引起至少一个处理器执行如权利要求1至5任一项所述的缓存管理方法。
PCT/CN2017/081404 2016-06-21 2017-04-21 一种缓存管理方法、装置及计算机存储介质 WO2017219749A1 (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
EP17814487.9A EP3474147B1 (en) 2016-06-21 2017-04-21 Cache management method and device, and computer storage medium

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN201610454789.7A CN107526691B (zh) 2016-06-21 2016-06-21 一种缓存管理方法及装置
CN201610454789.7 2016-06-21

Publications (1)

Publication Number Publication Date
WO2017219749A1 true WO2017219749A1 (zh) 2017-12-28

Family

ID=60735424

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2017/081404 WO2017219749A1 (zh) 2016-06-21 2017-04-21 一种缓存管理方法、装置及计算机存储介质

Country Status (3)

Country Link
EP (1) EP3474147B1 (zh)
CN (1) CN107526691B (zh)
WO (1) WO2017219749A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11387909B2 (en) * 2018-03-14 2022-07-12 Nippon Telegraph And Telephone Corporation Optical signal transmitter

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114598669B (zh) * 2022-03-07 2024-03-19 潍柴动力股份有限公司 一种报文的存储方法、装置及设备

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1717664A (zh) * 2002-11-26 2006-01-04 先进微装置公司 包含用于支持每周期多次存取的高速缓存存储器的微处理器
CN101162441A (zh) * 2007-11-09 2008-04-16 华为技术有限公司 数据的存取装置和方法
CN101997918A (zh) * 2010-11-11 2011-03-30 清华大学 异构san环境中的海量存储资源按需分配的实现方法
CN103731368A (zh) * 2012-10-12 2014-04-16 中兴通讯股份有限公司 一种处理报文的方法和装置

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE69033262T2 (de) * 1989-04-13 2000-02-24 Sandisk Corp EEPROM-Karte mit Austauch von fehlerhaften Speicherzellen und Zwischenspeicher
US5381539A (en) * 1992-06-04 1995-01-10 Emc Corporation System and method for dynamically controlling cache management
CN101009541B (zh) * 2006-01-23 2011-04-20 华为技术有限公司 正交频分多址系统的干扰协调方法与装置
CN101504670A (zh) * 2009-03-04 2009-08-12 成都市华为赛门铁克科技有限公司 数据操作方法、系统、客户端和数据服务器
CN102360342A (zh) * 2011-10-11 2012-02-22 中国人民解放军国防科学技术大学 海量影像数据快速存储显示固态硬盘
CN102411543B (zh) * 2011-11-21 2014-12-03 华为技术有限公司 缓存地址的处理方法和装置
CN103379156B (zh) * 2012-04-24 2016-03-09 深圳市腾讯计算机系统有限公司 实现存储空间动态均衡的方法、系统和装置
CN102968381A (zh) * 2012-11-19 2013-03-13 浪潮电子信息产业股份有限公司 一种利用固态硬盘提高快照性能的方法
CN102968382A (zh) * 2012-12-06 2013-03-13 华为技术有限公司 一种空闲存储单元的查找方法及装置
GB2524433B (en) * 2013-01-25 2020-11-25 Hitachi Ltd Storage system and data management method
US9069677B2 (en) * 2013-04-29 2015-06-30 International Business Machines Corporation Input/output de-duplication based on variable-size chunks
WO2015034954A1 (en) * 2013-09-03 2015-03-12 Sandisk Technologies Inc. Process and apparatus to reduce declared capacity of a storage device by reducing a range of logical addresses
US9659023B2 (en) * 2013-11-21 2017-05-23 Upthere, Inc. Maintaining and using a cache of child-to-parent mappings in a content-addressable storage system
US9092486B2 (en) * 2014-01-02 2015-07-28 Advanced Micro Devices, Inc. Extensible I/O activity logs
CN104461390B (zh) * 2014-12-05 2017-10-24 华为技术有限公司 将数据写入叠瓦状磁记录smr硬盘的方法及装置
CN104572498B (zh) * 2014-12-26 2018-04-27 曙光信息产业(北京)有限公司 报文的缓存管理方法和装置

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1717664A (zh) * 2002-11-26 2006-01-04 先进微装置公司 包含用于支持每周期多次存取的高速缓存存储器的微处理器
CN101162441A (zh) * 2007-11-09 2008-04-16 华为技术有限公司 数据的存取装置和方法
CN101997918A (zh) * 2010-11-11 2011-03-30 清华大学 异构san环境中的海量存储资源按需分配的实现方法
CN103731368A (zh) * 2012-10-12 2014-04-16 中兴通讯股份有限公司 一种处理报文的方法和装置

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
See also references of EP3474147A4 *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11387909B2 (en) * 2018-03-14 2022-07-12 Nippon Telegraph And Telephone Corporation Optical signal transmitter

Also Published As

Publication number Publication date
EP3474147A4 (en) 2019-07-03
EP3474147B1 (en) 2020-12-02
CN107526691A (zh) 2017-12-29
EP3474147A1 (en) 2019-04-24
CN107526691B (zh) 2020-06-02

Similar Documents

Publication Publication Date Title
US7653799B2 (en) Method and apparatus for managing memory for dynamic promotion of virtual memory page sizes
US8478926B1 (en) Co-processing acceleration method, apparatus, and system
WO2017107414A1 (zh) 文件操作方法和装置
WO2016011811A1 (zh) 一种内存管理方法、装置及存储介质
US9584332B2 (en) Message processing method and device
US11231852B2 (en) Efficient sharing of non-volatile memory
US8522254B2 (en) Programmable integrated processor blocks
KR102594657B1 (ko) 비순차적 리소스 할당을 구현하는 방법 및 장치
CN105094751A (zh) 一种用于流式数据并行处理的内存管理方法
WO2014169690A1 (zh) 一种地址映射处理的方法、装置
CN110851383A (zh) 一种管理存储系统的方法及设备
TW201702870A (zh) 一種資源分配方法和裝置
US10062137B2 (en) Communication between integrated graphics processing units
WO2017219749A1 (zh) 一种缓存管理方法、装置及计算机存储介质
CN111124270A (zh) 缓存管理的方法、设备和计算机程序产品
CN105007328A (zh) 一种基于一致性hash的网络cache设计方法
US10331570B2 (en) Real time memory address translation device
CN106940712B (zh) 序列生成方法与设备
CN102411543B (zh) 缓存地址的处理方法和装置
US20130110968A1 (en) Reducing latency in multicast traffic reception
CN111857992A (zh) 一种Radosgw模块中线程资源分配方法和装置
US20060153185A1 (en) Method and apparatus for dynamically changing ring size in network processing
CN113204382B (zh) 数据处理方法、装置、电子设备以及存储介质
CN103530239A (zh) 一种使用内存池提升通信服务器性能的方法
WO2017070869A1 (zh) 一种内存配置方法、装置及系统

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 17814487

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

ENP Entry into the national phase

Ref document number: 2017814487

Country of ref document: EP

Effective date: 20190121