CN114996023B - 目标缓存装置、处理装置、网络设备及表项获取方法 - Google Patents

目标缓存装置、处理装置、网络设备及表项获取方法 Download PDF

Info

Publication number
CN114996023B
CN114996023B CN202210844411.3A CN202210844411A CN114996023B CN 114996023 B CN114996023 B CN 114996023B CN 202210844411 A CN202210844411 A CN 202210844411A CN 114996023 B CN114996023 B CN 114996023B
Authority
CN
China
Prior art keywords
target
entry
storage
cache
cache device
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
Application number
CN202210844411.3A
Other languages
English (en)
Other versions
CN114996023A (zh
Inventor
汪春宇
孙向东
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
New H3C Semiconductor Technology Co Ltd
Original Assignee
New H3C Semiconductor Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by New H3C Semiconductor Technology Co Ltd filed Critical New H3C Semiconductor Technology Co Ltd
Priority to CN202210844411.3A priority Critical patent/CN114996023B/zh
Publication of CN114996023A publication Critical patent/CN114996023A/zh
Application granted granted Critical
Publication of CN114996023B publication Critical patent/CN114996023B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/505Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the load
    • 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
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/067Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Software Systems (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本申请实施例提供了一种目标缓存装置、处理装置、网络设备及表项获取方法,涉及通信技术领域。目标缓存装置所属的网络设备还包括处理装置和多个存储单元,多个存储单元包含多个存储有相同的表项的复制存储空间;目标缓存装置包括缓存存储器和第一仲裁模块;当接收到待处理报文时,处理装置确定对应的目标表项在多个复制存储空间中的物理存储地址,向目标缓存装置发送携带有物理存储地址的表项获取请求;缓存存储器接收表项获取请求,并向第一仲裁模块发送表项获取请求;第一仲裁模块从多个存储单元中确定当前的业务负载最小的目标存储单元;基于物理存储地址,从目标存储单元中的复制存储空间中获取目标表项。如此,能够提高表项获取的效率。

Description

目标缓存装置、处理装置、网络设备及表项获取方法
技术领域
本申请涉及通信技术领域,特别是涉及一种目标缓存装置、处理装置、网络设备及表项获取方法。
背景技术
随着通信技术的发展,在网络架构中可以通过网络设备,例如,NP(NetworkProcessor,网络处理器)对报文进行转发。NP在获取到待处理报文后,可以在本地查找待处理报文对应的表项,进而,基于该表项对待处理报文进行转发。
一种实现方式中,处理器可以确定待处理报文对应的表项在存储单元中的存储地址。其中,存储单元可以为DDR(Double Data Rate,双倍速率同步动态随机存储器)颗粒。进而,根据该存储地址从存储单元中获取表项,以对待处理报文进行转发。然而,当NP需要同时获取同一表项时,会造成存储单元的访问通道拥堵,进而,会降低表项获取的效率。
发明内容
本申请实施例的目的在于提供一种目标缓存装置、处理装置、网络设备及表项获取方法,以提高表项获取的效率。具体技术方案如下:
在本申请实施例的第一方面,首先提出了一种目标缓存装置,所述目标缓存装置所属的网络设备还包括处理装置和多个存储单元,所述多个存储单元包含多个复制存储空间,所述多个复制存储空间中存储有相同的表项;所述目标缓存装置包括缓存存储器和第一仲裁模块;其中:
所述缓存存储器,用于接收所述处理装置发送的表项获取请求,并向所述第一仲裁模块发送所述表项获取请求;其中,所述表项获取请求中携带有待处理报文对应的目标表项在所述多个复制存储空间中的物理存储地址;所述物理存储地址为所述处理装置接收到所述待处理报文时,基于所述待处理报文的报文信息确定的;
所述第一仲裁模块,用于从所述多个存储单元中确定当前的业务负载最小的目标存储单元;基于所述物理存储地址,从所述目标存储单元中的复制存储空间中获取所述目标表项。
可选的,每一存储单元包含至少一个复制存储空间,每一复制存储空间包含至少一个存储子单元;
所述第一仲裁模块,用于基于所述物理存储地址,确定所述目标存储单元中的复制存储空间中存储有所述目标表项的存储子单元,作为备选存储子单元;
确定当前的业务负载最小的备选存储子单元,作为目标存储子单元;
基于所述物理存储地址,从所述目标存储子单元获取所述目标表项。
可选的,所述缓存存储器,用于基于所述物理存储地址,判断是否已缓存所述目标表项;
若已缓存所述目标表项,则获取已缓存的所述目标表项;
在未缓存所述目标表项的情况下,向所述第一仲裁模块发送所述表项获取请求。
可选的,所述第一仲裁模块,还用于在从所述目标存储单元获取所述目标表项后,向所述缓存存储器发送所述目标表项;
所述缓存存储器,还用于在从所述第一仲裁模块获取所述目标表项后,若所述目标表项对应的待处理数目大于第一预设阈值,则对所述目标表项进行缓存;其中,所述待处理数目表示在接收到所述表项获取请求时,所述缓存存储器待处理的针对所述目标表项的表项获取请求的总数目。
可选的,所述缓存存储器,还用于在从所述第一仲裁模块获取所述目标表项后,若所述待处理数目不大于所述第一预设阈值,则获取一个随机数;
若获取的随机数满足预设条件,则对所述目标表项进行缓存。
可选的,所述网络设备还包括除所述目标缓存装置以外的其他缓存装置;所述网络设备中的各缓存装置分为多个缓存装置组,每一缓存装置组与一个复制存储空间对应;
所述表项获取请求为:在所述物理存储地址对应的各缓存装置中当前的业务负载最小的缓存装置为所述目标缓存装置的情况下,所述处理装置向所述目标缓存装置发送的。
在本申请实施例的第二方面,提供了一种处理装置,所述处理装置所属的网络设备还包括目标缓存装置和多个存储单元,所述多个存储单元包含多个复制存储空间,所述多个复制存储空间中存储有相同的表项;其中:
所述处理装置,用于当接收到待处理报文时,基于所述待处理报文的报文信息,确定所述待处理报文对应的目标表项在所述多个复制存储空间中的物理存储地址;
向所述目标缓存装置发送携带有所述物理存储地址的表项获取请求,以使所述目标缓存装置在接收到所述表项获取请求时,从所述多个存储单元中确定当前的业务负载最小的目标存储单元,以及基于所述物理存储地址,从所述目标存储单元中的复制存储空间中获取所述目标表项。
可选的,所述处理装置包括处理器和第二仲裁模块;
所述处理器,用于当接收到待处理报文时,基于所述待处理报文的报文信息,确定所述待处理报文对应的目标表项在所述多个复制存储空间中的物理存储地址,并向所述第二仲裁模块发送携带有所述物理存储地址的表项获取请求;
所述第二仲裁模块,用于向所述目标缓存装置发送携带有所述物理存储地址的表项获取请求,以使所述目标缓存装置在接收到所述表项获取请求时,从所述多个存储单元中确定当前的业务负载最小的目标存储单元,以及基于所述物理存储地址,从所述目标存储单元中的复制存储空间中获取所述目标表项。
可选的,所述网络设备还包括除所述目标缓存装置以外的其他缓存装置;所述网络设备中的各缓存装置分为多个缓存装置组,每一缓存装置组与一个复制存储空间对应;
所述第二仲裁模块,还用于在向所述目标缓存装置发送携带有所述物理存储地址的表项获取请求之前,从每一缓存装置组中确定与所述物理存储地址对应的缓存装置,作为备选缓存装置;从各备选缓存装置中,确定当前的业务负载最小的缓存装置,作为所述目标缓存装置。
在本申请实施例的第三方面,提供了一种网络设备,所述网络设备包括多个存储单元、第一方面任一所述的目标缓存装置,以及第二方面任一所述的处理装置;所述多个存储单元包含多个复制存储空间,所述多个复制存储空间中存储有相同的表项。
在本申请实施例的第四方面,提供了一种表项获取方法,所述方法应用于网络设备中的目标缓存装置,所述网络设备还包括处理装置和多个存储单元,所述多个存储单元包含多个复制存储空间,所述多个复制存储空间中存储有相同的表项;所述方法包括:
接收所述处理装置发送的表项获取请求;其中,所述表项获取请求中携带有待处理报文对应的目标表项在所述多个复制存储空间中的物理存储地址;所述物理存储地址为所述处理装置接收到待处理报文时,基于所述待处理报文的报文信息确定的;
从所述多个存储单元中确定当前的业务负载最小的目标存储单元;
基于所述物理存储地址,从所述目标存储单元中的复制存储空间中获取所述目标表项。
在本申请实施例的第五方面,提供了一种表项获取方法,所述方法应用于网络设备中的处理装置,所述网络设备还包括目标缓存装置和多个存储单元,所述多个存储单元包含多个复制存储空间,所述多个复制存储空间中存储有相同的表项;所述方法包括:
当接收到待处理报文时,基于所述待处理报文的报文信息,确定所述待处理报文对应的目标表项在所述多个复制存储空间中的物理存储地址;
向所述目标缓存装置发送携带有所述物理存储地址的表项获取请求,以使所述目标缓存装置在接收到所述表项获取请求时,从所述多个存储单元中确定当前的业务负载最小的目标存储单元,以及基于所述物理存储地址,从所述目标存储单元中的复制存储空间中获取所述目标表项。
在本申请实施例的第六方面,提供了一种计算机可读介质,所述计算机可读介质内存储有计算机程序,所述计算机程序被执行时实现上述任一所述的表项获取方法步骤。
在本申请实施例的第七方面,提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述任一所述的表项获取方法。
本申请实施例有益效果:
本申请实施例提供的网络设备,处理装置能够基于待处理报文的报文信息,确定待处理报文对应的目标表项在多个复制存储空间中的物理存储地址,并向目标缓存装置发送携带有物理存储地址的表项获取请求。目标缓存装置在接收表项获取请求后,从各存储单元中确定当前的业务负载最小的目标存储单元,然后基于物理存储地址,从目标存储单元中的复制存储空间中获取目标表项。基于上述处理,可以在不同的存储单元中存储多份相同的表项,进而,当接收到针对同一表项的多个表项获取请求,可以将表项获取请求分配至当前的业务负载最小的存储单元,也就能够在一定程度上降低存储单元的访问通道拥堵的程度,能够提高表项获取的效率。
当然,实施本申请的任一产品或方法并不一定需要同时达到以上所述的所有优点。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,还可以根据这些附图获得其他的实施例。
图1为相关技术中一种网络设备对报文进行处理的原理示意图;
图2为本申请实施例提供的一种表项存储的示意图;
图3为相关技术中一种获取表项的流程示意图;
图4为本申请实施例提供的第一种表项获取方法的交互图;
图5为本申请实施例提供的第二种表项获取方法的交互图;
图6为本申请实施例提供的第一种表项获取的流程示意图;
图7为本申请实施例提供的第三种表项获取方法的交互图;
图8为本申请实施例提供的第二种表项获取的流程示意图;
图9为本申请实施例提供的一种表项缓存的原理示意图;
图10为本申请实施例提供的第三种表项获取的流程示意图;
图11为本申请实施例提供的一种表项获取的原理示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员基于本申请所获得的所有其他实施例,都属于本申请保护的范围。
网络设备获取到待处理报文对应的表项后,可以基于该表项对待处理报文进行转发。其中,表项的类型有多种,例如:MAC(Media Access Control,介质访问控制)表、IPV4(Internet Protocol version 4,互联网通信协议第四版)表、IPV6(Internet Protocolversion 6,互联网通信协议第六版)表以及自定义的表项。
表项可以存储在不同类型的存储单元中。例如,存储单元可以为SRAM(StaticRandom-Access Memory,静态随机存取存储器),SRAM的存储空间小,访问速度快,SRAM位于芯片的内部;或,存储单元也可以为TCAM(Ternary Content Addressable Memory,三态内容寻址存储器),TCAM为芯片外接的专用存储器,容量小,价格昂贵,访问速度比SRAM慢;或,存储单元也可以为DDR(Double Data Rate,双倍速率同步动态随机存储器),DDR为芯片外接的存储器,容量大,访问速度比SRAM、TCAM慢。
随着通信技术的发展,网络设备需处理的表项数量在不断增加,由于SRAM和TCAM资源有限,不能满足表项的存储需求,因此,本申请实施例中的存储单元以DDR或DDR颗粒为例,相应的,本申请提供的技术方案也适用于其他类型的存储单元。
相关技术中,网络设备一般采用多线程架构,多线程并行处理业务,以提升网络设备的转发性能。即,网络设备可以并行接收多个报文,并对报文进行转发处理。在一个实施例中,参见图1,图1为相关技术中一种网络设备对报文进行处理的原理示意图。
该网络设备包含CPU(Central Processing Unit,中央处理器),L2C(Level TwoCache,二级缓存存储器)、MC(Memory Controller,内存控制器)和DDR。本申请中,CPU也可以称为处理器,L2C也可以称为缓存存储器。
图1中,处理器在接收到报文后,可以缓存报文,并解析该报文的报文头,进行查表。即,根据报文中的关键字段获取报文对应的表项的物理存储地址,即,图1中的DDRaddress(DDR地址)。该物理存储地址表示表项在DDR中的存储地址。
然后,CPU向L2C发送携带有该物理存储地址的表项获取请求。L2C接收到表项获取请求后,将携带有DDR address的表项获取请求发送至MC。MC接收到表项获取请求后,从DDR(存储单元)中获取报文对应的表项,并将表项发送至L2C。然后,L2C将接收到的表项发送至CPU。CPU在接收到表项后,可以解析该表项中的表项信息,得到目的地址(即该报文对应的目标端口),然后,基于缓存的报文的报文数据进行报文转发,即,将报文转发至目的端口。
由上述流程内容可知,当网络设备中存在大量的内存访问时,即,存在大量针对DDR的访问请求时,会增加访问延迟。尤其是,当网络设备多线程同时获取同一表项时,会造成DDR的访问通道拥堵,从而降低了表项获取的效率,导致网络设备处理性能的下降。
另外,相关技术中,为了降低网络设备获取同一表项时造成的内存访问压力,可以将同一表项复制多份。例如,存储在不同的DDR颗粒或DDR颗粒的不同bank中,从而降低了网络设备在多线程获取同一目标表项时访问同一地址的概率。
基于上述方式,在下载或更新表项时,可以将每条表项依次保存至各复制存储空间中。其中,每一个复制存储空间中可以包含一个或多个存储单元,每一个复制存储空间中存储单元的数量可以由技术人员自行设置,此处不做限定。
相关技术中,可以将同一表项复制多份,并分别存储在不同的DDR颗粒中。参见图2,图2为本申请实施例提供的一种表项存储的示意图。
图2中,DDR1和DDR2可以分别表示不同DDR颗粒,COPY1、COPY2、COPY3和COPY4分别为不同的复制存储空间。DDR1中包含COPY1和COPY2两个复制存储空间,COPY1中包含bank0、bank1、bank2和bank3,COPY2中包含bank4、bank5、bank6和bank7。相应的,DDR2中包含COPY3和COPY4两个复制存储空间,COPY3中包含bank0、bank1、bank2和bank3,COPY4中包含bank4、bank5、bank6和bank7。也就是说,针对一个表项,可以将该表项复制四份,分别存储在COPY1、COPY2、COPY3和COPY4中。
相应的,相关技术中,针对一个表项,当网络设备需要通过多线程并发获取该表项时,可以通过轮询的方式,依次在每一DDR颗粒中进行查找。例如,参见图3,图3为相关技术中一种获取表项的流程示意图。
如图3所示,网络设备中包含多个CPU(CPU0、CPU1、CPU2和CPUN等),并且该多个CPU构成CPU集群。网络设备中也包含多个L2C(L2C0、L2C1和L2CM等)、多个MC(MC0、MC1、MC2和MCK等)以及多个DDR颗粒(DDR0、DDR1、DDR2和DDRK等)。其中,MC与DDR颗粒是一一对应的,即,通过一个MC,只能够获取该MC对应的DDR颗粒中的表项。L2C与MC并不存在一一对应的关系,即,同一个L2C通过不同的MC获取其对应的DDR颗粒中的表项。
具体的,相关技术中,当处理器接收到待处理报文后,处理器对待处理报文进行解析,然后,计算出待处理报文对应的目标表项的物理存储地址。相应的,基于目标表项的物理存储地址,处理器可以确定物理存储地址对应的L2C,并向该L2C发送表项获取请求。然后,该L2C可以通过轮询的方式,确定当前需要查询的DDR颗粒对应的MC,并向确定出的MC发送表项获取请求。进而,该MC可以从对应的DDR颗粒中获取目标表项,并向L2C发送。
然而,为了提升网络设备的转发能力,现有技术中,网络设备包含的CPU的数量也越来越多。因此存在某个DDR访问通道中包含多个CPU的表项获取请求的情况,极有可能造成该访问通道的拥堵,从而降低表项获取的效率。另外,由于网络设备中的内存资源是共用的,即,上述各DDR颗粒中也会存储其他模块所需要的数据。而上述的相关技术的方案中,仅基于轮询的方式,将获取同一表项的多个表项获取请求依次分配到不同的DDR颗粒中,并未考虑当前针对DDR颗粒中存储的其他数据的访问请求的数目,因此,其仍会导致DDR访问通道的拥堵,导致查表延时,影响整个网络设备的处理性能,甚至会引起断流。
因此,相关技术中还可以通过增加表项的复制份数以避免上述情况。然而,若复制份数较大时,如,表项的数据量为K,复制份数为N,则共需要内存空间N*K,相对于未进行复制,其多占用(N-1)/N的内存资源。一方面,从芯片整体价格和功耗考虑,内存资源一般有限,可能没有过多资源来存储表项。另一方面,出现多线程访问同一表项导致网络拥塞的情况并不多,为了避免小概率问题而过多占用内存资源,会造成资源浪费。
为了解决上述问题,本申请实施例提供了一种网络设备,该网络设备包括处理装置、目标缓存装置和多个存储单元。多个存储单元包含多个复制存储空间,多个复制存储空间中存储有相同的表项。
处理装置,用于当接收到待处理报文时,基于待处理报文的报文信息,确定待处理报文对应的目标表项在多个复制存储空间中的物理存储地址;并向目标缓存装置发送携带有物理存储地址的表项获取请求。
目标缓存装置,用于接收表项获取请求;从各存储单元中确定当前的业务负载最小的目标存储单元;基于物理存储地址,从目标存储单元中的复制存储空间中获取目标表项。
本申请实施例提供的网络设备,可以在多个不同的存储单元中存储多份相同的表项,进而,当接收到针对同一表项的多个表项获取请求,可以将表项获取请求分配至当前的业务负载最小的存储单元,也就能够在一定程度上降低存储单元的访问通道拥堵的程度,能够提高表项获取的效率。
其中,本申请中的一个存储单元可以为一个DDR;或者,一个存储单元也可以为DDR中的一个DDR颗粒。
一种实现方式中,针对每一表项,网络设备可以将该表项复制N份,然后,将复制后的N份目标表项分别存储在N个不同的复制存储空间中。其中,若一个复制存储空间中存储的表项的数目为K,每个表项的大小为B字节,则每一个复制存储空间中存储的表项的大小为K*B字节。相应的,N个复制存储空间中表项所占的大小为N*K*B字节。另外,针对每一表项,当需要删除该表项时,可以同时删除N个复制存储空间中的该表项。
基于相同的发明构思,本申请实施例还提供了一种表项获取方法,该方法可以应用于处理装置和目标缓存装置。该处理装置可以为上述网络设备中的处理装置;该目标缓存装置可以为上述网络设备中的目标缓存装置;该多个存储单元可以为上述网络设备中的多个存储单元。参见图4,图4为本申请实施例提供的第一种表项获取方法的交互图,该方法可以包括以下步骤:
S401:当处理装置接收到待处理报文时,基于待处理报文的报文信息,处理装置确定待处理报文对应的目标表项在多个复制存储空间中的物理存储地址。
S402:处理装置向目标缓存装置发送携带有物理存储地址的表项获取请求。
S403:目标缓存装置从各存储单元中确定当前的业务负载最小的目标存储单元。
S404:基于物理存储地址,目标缓存装置从目标存储单元中的复制存储空间中获取目标表项。
其中,多个存储单元包含多个复制存储空间,多个复制存储空间中存储有相同的表项。
基于本申请实施例提供的表项获取方法,可以在多个不同的存储单元中存储多份相同的表项,进而,当接收到针对同一表项的多个表项获取请求,可以将表项获取请求分配至当前的业务负载最小的存储单元,也就能够在一定程度上降低存储单元的访问通道拥堵的程度,能够提高表项获取的效率。
针对步骤S401,针对某一报文对应的表项,在将该表项存储多个复制存储空间时,可以获取该报文中的指定字段,并基于预设的映射方式(可以称为第一映射方式),对该指定字段进行映射处理,得到对应的映射结果。然后,将该表项存储在该映射结果指示的物理存储地址对应的位置处。相应的,当处理装置接收到该报文后,对该报文进行解析,得到该报文的指定字段,按照第一映射方式,计算该指定字段对应的映射结果,也就得到该报文对应的表项的物理存储地址。例如,该物理存储地址可以为表项在不同复制存储空间中的偏移地址。
例如,指定字段可以为报文的目的IP地址,针对某一报文对应的表项,在将该表项存储多个复制存储空间时,可以获取该报文中的目的IP地址。进而,处理装置基于第一映射方式,从该目的IP地址中选择第一指定数目个位,得到映射结果。例如,可以按照从高位到低位的顺序,从目的IP中选择前第一指定数目个位。相应的,当处理装置接收到该报文后,对该报文进行解析,得到该报文的目的IP地址,按照第一映射方式,从该目的IP地址中选择第一指定数目个位,得到映射结果,即,得到该报文对应的表项的物理存储地址。
针对步骤S402,处理装置能够与多个缓存装置进行通信,相应的,处理装置可以基于预先设置的选择方式,从多个缓存装置中选择目标缓存装置。
一种实现方式中,处理装置可以选择轮询的方式,从多个缓存装置中选择一个缓存装置,作为目标缓存装置。
另一种实现方式中,参见图5,图5为本申请实施例提供的第二种表项获取方法的交互图,其中,网络设备还包括除目标缓存装置以外的其他缓存装置;网络设备中的各缓存装置分为多个缓存装置组,每一缓存装置组与一个复制存储空间对应,在步骤S402之前,该方法还包括:
S405:处理装置从每一缓存装置组中确定与物理存储地址对应的缓存装置,作为备选缓存装置。
S406:处理装置从各备选缓存装置中,确定当前的业务负载最小的缓存装置,作为目标缓存装置。
其中,一个缓存装置当前的业务负载表示该缓存装置当前待处理的请求的数目。
在一些实施例中,可以为每一缓存装置组中的缓存装置设置相应的标识,一个缓存装置组中的各缓存装置的标识不同,且各缓存装置组中存在相同标识的缓存装置。例如,各缓存装置组包含的缓存装置的数目相同,且包含的缓存装置的标识也相同。
处理装置确定目标表项的物理存储地址后,基于预设的地址映射方式(可以称为第二映射方式),对该物理存储地址进行映射处理,得到对应的标识。然后,将各缓存装置组中具有该标识的缓存装置作为备选缓存装置。也就是说,针对同一个表项,在不同时间段内接收到针对该表项的多个表项获取请求时,可以确定出相同的标识,也就可以确定出相同的备选缓存装置。
一种实现方式中,当处理装置确定目标表项的物理存储地址后,按照第二映射方式,可以按照一个缓存装置组包含的缓存装置的数目对该物理存储地址取余,将得到的余数作为映射结果。进而,确定出标识为该映射结果的缓存装置,作为备选缓存装置。
例如,每一缓存装置组中包含10个缓存装置,每一缓存装置组中缓存装置的标识分别为0、1、2…9。然后,可以将目标表项的物理存储地址除以10,得到的余数即为备选缓存装置对应的标识。
一种实现方式中,当处理装置确定目标表项的物理存储地址后,按照第二映射方式,可以确定该物理存储地址所属的存储地址区间(可以称为目标存储地址区间),进而,可以从预设的存储地址区间与缓存装置的标识对应关系,确定目标存储地址区间对应的标识,并将具有该标识的缓存装置,作为备选缓存装置。
可以理解的是,若各缓存装置组包含的缓存装置的数目相同,且包含的缓存装置的标识也相同,确定出备选缓存装置的个数与缓存装置组的个数相同。
基于上述处理可知,针对同一表项的多个表项获取请求,可以得到相同的标识,即,在不同的时刻,可以通过同一个缓存装置获取该表项。而该缓存装置可以对该表项进行缓存。因此,若该缓存装置已缓存该表项,当需要再次获取该表项时,通过该缓存装置可以直接获取已缓存的该表项,而无需从存储单元中获取该表项,也就能够进一步提高表项获取的效率。
一种实现方式中,本申请中的一个处理装置可以为一个处理器,相应的,该处理器执行上述步骤S401-S402,以及S405-S406。
另一种实现方式中,本申请中的一个处理装置可以包括一个处理器和第二仲裁模块(也可以称为L2C仲裁模块)。其中,该L2C仲裁模块可以以软件的形式实现,或者,也可以硬件的形式实现,例如,该L2C仲裁模块可以以逻辑器件的形式实现。例如,L2C仲裁模块可以位于CPU与L2C之间。在该情况下,一个处理装置中的处理器执行上述步骤S401,该处理装置中的L2C仲裁模块执行上述步骤S402,以及S405-S406。
例如,网络设备可以包含多个处理装置,多个处理装置包含的L2C仲裁模块相同,也就是说,网络设备可以包含一个L2C仲裁模块。或者,多个处理装置包含的L2C仲裁模块不同,也就是说,网络设备包含的L2C仲裁模块的数目与网络设备中的处理器的数目相同。
参见图6,图6为本申请实施例提供的第一种表项获取的流程示意图,L2C仲裁模块位于CPU与L2C之间,具体的,若网络设备中的L2C数量为A,复制存储空间的数目为N≤A。针对一个表项,可以将该表项复制N份,然后,将复制后的N份表项分别存储在N个不同的复制存储空间中。在本实施例中,一个缓存装置包含一个L2C。另外,可将A个L2C分成N个缓存装置组,例如group(组)1、group2、group3…groupN。每个缓存装置组中包含的L2C数量为A/N,每一个复制存储空间对应一个缓存装置组中的A/N个L2C。表项获取流程如下:
CPU处理报文,下发查表命令。即,当处理器接收到待处理报文时,基于待处理报文的报文信息,确定待处理报文对应的目标表项的物理存储地址(即PADDR(PhysicalAddress,物理地址)),并向L2C仲裁模块下发包含该物理存储地址的查表命令。
L2C仲裁模块根据PADDR计算可以访问的N个L2C:L2C0-L2CN;即,L2C仲裁模块根据PADDR按照上述第二映射方式,确定出N个L2C,该N个L2C分别位于N个缓存装置组。
进而,L2C仲裁模块获取L2C0-L2CN各自当前待处理请求的个数cnt0-cntN,即,获取L2C0-L2CN当前的业务负载cnt0-cntN。
然后,L2C仲裁模块比较cnt0-cntN,得到最小的cntK,即,确定出最小的业务负载cntK。
进而,L2C仲裁模块将请求发给L2CK处理。cntK对应的L2C为L2CK。即,向业务负载最小的L2CK发送携带有物理存储地址的表项获取请求,使得L2CK基于该物理存储地址,从存储单元获取目标表项。
针对步骤S403,一种实现方式中,每一存储单元的业务负载表示为该存储单元当前待处理的请求的数量。
一种实现方式中,目标缓存装置将表项获取请求发送至目标存储单元对应的MC。进而,基于物理存储地址,该MC从目标存储单元中获取目标表项,并将该目标表项发送至目标缓存装置。
可以理解的是,目标缓存装置可以将接收到的目标表项发送至处理装置。进而,处理装置基于目标表项,对待处理报文进行转发。
在一个实施例中,每一存储单元包含至少一个复制存储空间,每一复制存储空间包含至少一个存储子单元。相应的,参见图7,图7为本申请实施例提供的第三种表项获取方法的交互图,在图4的基础上,在步骤S404之前,该方法还可以包括:
S407:基于物理存储地址,目标缓存装置确定目标存储单元中的复制存储空间中存储有目标表项的各存储子单元,作为备选存储子单元。
S408:目标缓存装置获取各备选存储子单元当前的业务负载。
S409:目标缓存装置确定当前的业务负载最小的备选存储子单元,作为目标存储子单元。
步骤S404可以包括以下步骤:
S4041:基于物理存储地址,目标缓存装置从目标存储子单元获取目标表项。
本申请中,若存储单元为DDR颗粒,则一个存储子单元可以表示一个bank;若存储单元为DDR,则一个存储子单元可以表示一个DDR颗粒。
针对目标存储单元中的每一个复制存储空间,该复制存储空间中存在一个存储子单元,且该存储子单元中存储有目标表项。因此,目标存储单元中存储有目标表项的存储子单元至少为一个。
其中,每两个存储单元包含的复制存储空间的数量可以相同,也可以不同。
若目标存储单元只包含一个复制存储空间,相应的,目标存储单元中存储有目标表项的备选存储子单元为一个,该备选存储子单元即为负载最小的目标存储子单元。
若目标存储单元中包含多个复制存储空间,即,该目标缓存装置中存储有目标表项的备选存储子单元为多个。目标缓存装置从多个备选存储子单元中,确定业务负载最小的备选存储子单元为目标存储子单元。
基于上述处理,在目标存储单元中确定当前的业务负载最小的目标存储单元,进而,可以从当前的业务负载最小的存储单元中获取目标表项,提升了存储单元的访问通道的负载均衡能力,从而能够降低存储单元的访问通道拥堵的程度,提高表项获取的效率。
一种实现方式中,本申请中的一个缓存装置可以为一个缓存存储器,相应的,该缓存存储器执行上述步骤S403-S404,以及S407-S409。
另一种实现方式中,本申请中的一个缓存装置可以包括一个缓存存储器和第一仲裁模块(也可以称为DDR仲裁模块)。其中,该DDR仲裁模块可以以软件的形式实现,或者,也可以硬件的形式实现,例如,该DDR仲裁模块可以以逻辑器件的形式实现。例如,DDR仲裁模块可以位于缓存存储器与MC之间。在该情况下,目标缓存装置中的缓存存储器,用于接收处理装置发送的表项获取请求,并向DDR仲裁模块发送表项获取请求,相应的,DDR仲裁模块用于执行上述步骤S403-S404,以及步骤S407-S409。
例如,多个缓存装置包含的DDR仲裁模块相同,也就是说,网络设备可以包含一个DDR仲裁模块。或者,多个缓存装置包含的DDR仲裁模块不同,也就是说,网络设备包含的DDR仲裁模块的数目与网络设备中的缓存存储器的数目相同。
参见图8,图8为本申请实施例提供的第二种表项获取的流程示意图,在该实施例中,DDR仲裁模块位于L2C和MC之间。图8中,表项获取的过程包括:
L2C处理请求后,往下级模块发送请求,即,目标缓存存储器接收携带有物理存储地址的表项获取请求后,基于物理存储地址,向DDR仲裁模块发送表项获取请求。
DDR仲裁模块接收表项获取请求后,根据PADDR(即,物理存储地址),计算出包含目标表项的M个存储单元:DDR0-DDRM。即,DDR仲裁模块根据PADDR按照上述第一映射方式,确定出M个DDR。
然后,DDR仲裁模块获取DDR0-DDRM中各存储单元的当前请求个数,对各存储单元的当前请求个数进行比较,得到当前请求个数最少的DDRK。即,DDR仲裁模块获取DDR0-DDRM中各存储单元的当前的业务负载,进而,对各存储单元的当前的业务负载进行比较,得到当前的业务负载最小的DDRK(即目标存储单元)。其中,DDRK对应的MC为MCK。
然后,DDR仲裁模块获取该DDRK中存储有目标表项的多个bank以及各bank中的请求个数,并进行比较,得到请求个数最少的bankL。即,DDR仲裁模块根据PADDR,确定目标存储单元中存储有目标表项的多个bank,然后获取各bank当前的业务负载,并进行比较,得到当前的业务负载最小的bankL。
然后,DDR仲裁模块将携带有物理存储地址的表项获取请求发送给MCK,以使MCK从bankL中获取到目标表项。
在一个实施例中,在图4的基础上,在步骤S404之前,该方法还可以包括:
步骤一:基于物理存储地址,目标缓存装置判断是否已缓存目标表项。
步骤二:若已缓存目标表项,则目标缓存装置获取已缓存的目标表项。
步骤S404包括以下步骤:
步骤三:在未缓存目标表项的情况下,基于物理存储地址,目标缓存装置从目标存储单元中的复制存储空间中获取目标表项。
一种实现方式中,目标缓存装置可以基于cache line(缓存行)对表项进行缓存。表项的大小一般为cache line的整数倍。参见图9,图9为本申请实施例提供的一种表项缓存的原理示意图。图9中,目标缓存装置包含多个cache line,分别为cache line0-cachelineN。其中,将表项1存储在cache line0中;将表项2存储在cache line1、cache line2和cache line3中;以及将表项3存储在cache line4至cache line7。可见,图9中将M个表项分别存储在N个cache line中。
一种实现方式中,在目标缓存装置从存储单元获取某一表项,且需要对该表项进行缓存时,则目标缓存装置可以获取该表项的物理存储地址,并基于第三映射方式,对该物理存储地址进行地址映射,将映射结果作为该表项的Tag(标签)。然后,可以将该表项缓存至cache line,并为该cache line设置标签。
例如,在目标缓存装置需要对某一表项进行缓存时,目标缓存器可以获取该表项的物理存储地址。然后,目标缓存装置基于第三映射方式,从该物理存储地址中选择第二指定数目个位,得到映射结果。例如,可以按照从低位至高位的顺序,从物理存储地址中选择前第二指定数目个位。相应的,可以将该映射结果作为该表项的标签。然后,目标缓存装置将该表项缓存至cache line,并为该cache line设置标签。
进而,当目标缓存装置接收到携带有物理存储地址的表项获取请求时,可以基于该物理存储地址,对物理存储地址进行地址映射的处理,得到标签(可以称为待查询标签)。进而,目标缓存装置可以查询是否存在具有待查询标签的cache line。若存在,确定已缓存该表项,并从具有待查询标签的cache line获取该表项;若不存在,确定未缓存,相应的,目标可以从若未查找到待查询标签,则确定目标缓存装置中未缓存目标表项。进而,基于物理存储地址,目标缓存装置从存储单元中获取该表项。可以理解的是,当目标缓存装置删除已缓存的某一表项时,可以同时删除存储该表项的cache line的标签。
一种实现方式中,在从目标存储单元获取目标表项后,DDR仲裁模块可以向缓存存储器发送目标表项。相应的,可以由目标缓存装置中的缓存存储器执行上述步骤一至步骤三。
基于上述处理,若目标缓存装置已缓存目标表项,则可以直接获取目标表项,无需从目标存储单元中的目标复制存储空间中获取目标表项,减少了表项获取的延迟,也就能够在一定程度上降低存储单元的访问通道拥堵的程度,能够提高表项获取的效率。
在一个实施例中,在步骤三之后,该方法还包括:
步骤四:若目标表项对应的待处理数目大于第一预设阈值,则目标缓存装置对目标表项进行缓存。
其中,待处理数目表示在接收到表项获取请求时,目标缓存装置待处理的针对目标表项的表项获取请求的总数目。
一种实现方式中,在目标缓存装置接收到每一表项获取请求时,可以将该表项获取请求添加到队列中。相应的,可以从队列依次获取表项获取请求,并进行处理。因此,在接收到针对一个表项的表项获取请求时,目标缓存装置可以确定当前队列中待处理的针对该表项的表项获取请求的总数目,得到待处理数目。其中,第一预设阈值小于上述队列允许存储的表项获取请求的最大数目。
一种实现方式中,在目标缓存装置未缓存目标表项的情况下,若待处理数目大于第一预设阈值,则基于物理存储地址从目标存储单元中获取目标表项后,目标缓存装置对目标表项进行缓存。另外,若目标表项对应的待处理数目不大于第一预设阈值,则可以不对目标表项进行缓存。
一种实现方式中,可以由目标缓存装置中的缓存存储器执行上述步骤四。
基于上述处理,在接收到针对一个表项的表项获取请求时,若待处理数目大于第一预设阈值,表明对该表项的访问率较高,因此,可以对该表项进行缓存。后续再次接收到针对该表项的表项获取请求时,可以在缓存装置中直接获取该表项,使得cache命中率为100%。即,后续无需从存储单元中获取该表项。进而,减少了表项获取的延迟,且能够在一定程度上降低存储单元的访问通道拥堵的程度,进一步提高表项获取的效率。
在一个实施例中,在步骤三之后,该方法还包括:
步骤五:若待处理数目不大于第一预设阈值,则目标缓存装置获取一个随机数。
步骤六:若获取的随机数满足预设条件,则目标缓存装置对目标表项进行缓存。
该预设条件可以表示为获取的随机数大于第二预设阈值。若第二预设阈值为T1,且0<T1<E1,相应的,可以设置获取的随机数处于0-E1的范围内。
另外,该预设条件也可以表示为获取的随机数小于第三预设阈值,若第三预设阈值为T2,且0<T2<E2,相应的,可以设置获取的随机数处于0-E2的范围内。
一种实现方式中,在目标缓存装置接收到携带有物理存储地址的表项获取请求之后,确定未缓存有目标表项,且待处理数目不大于第一预设阈值,则目标缓存装置可以判断获取的随机数是否满足预设条件。若获取的随机数满足预设条件,则在从目标存储单元获取到目标表项之后,目标缓存装置对目标表项进行缓存。
一种实现方式中,在目标缓存装置接收到携带有物理存储地址的表项获取请求之后,确定未缓存有目标表项,且待处理数目不大于第一预设阈值,则目标缓存装置从目标存储单元获取目标表项。然后,判断获取的随机数是否满足预设条件,若满足预设条件,则对该目标表项进行缓存。
一种实现方式中,可以由目标缓存装置中的缓存存储器执行上述步骤五和步骤六。
在一个实施例中,若获取的随机数不满足预设条件,则目标缓存装置可以不对目标表项进行缓存。
基于上述处理,当针对同一表项的表项获取请求次数越多时,目标缓存装置将该表项进行缓存的概率越大,即,当一个表项对应的待处理数目小于第一预设阈值时,能够实现在缓存装置中查找到该表项的cache命中率,与接收到的针对该表项的表项获取请求的数量成正比,进而,能够增大并行查表时的cache命中率。进而,减少了表项获取的延迟,且能够在一定程度上降低存储单元的访问通道拥堵的程度,进一步提高表项获取的效率。
一种实现方式中,可以通过缓存存储器中的模块(可以称为cache分配模块)实现上述步骤一至步骤六。其中,该cache分配模块可以以软件的形式实现,或者,也可以硬件的形式实现。
参见图10,图10为本申请实施例提供的第三种表项获取的流程示意图。
L2C接收针对某一表项的访问请求。即,L2C接收处理装置发送的携带有某一表项的物理存储地址的表项获取请求。
L2C在cache(缓存)中查找该表项,即,基于该物理存储地址,在L2C中查找该表项。
判断cache是否命中,若命中,则返回数据。即,判断L2C是否已缓存该表项,若已缓存,则从该L2C中直接获取已缓存的该表项,并将该表项发送至处理装置。
若Cache未命中,则L2C获取针对该表项的待处理数目M。即,若L2C未缓存该表项,则获取针对该表项的待处理数目M。
判断M是否大于K,若M大于K,则从DDR中读取数据后返回,并缓存到cache line。即,针对该表项,L2C判断待处理数目M是否大于第一预设阈值K。若大于,则在从该表项对应的存储单元中获取该表项后,L2C对该表项进行缓存。
若M不大于K,则L2C获取一个随机数R。即,若处理数目M不大于第一预设阈值K,则该L2C获取一个随机数R。
判断R是否大于T,若大于,则从DDR中读取数据后返回,并缓存到cache line。即,L2C判断随机数R是否大于第二预设阈值T。若大于,则表明该随机数满足预设条件。相应的,基于物理存储地址,从该表项对应的存储单元中获取该表项后,该L2C对该表项进行缓存。
若R不大于T,则从DDR中读取数据后返回,不进行cache缓存。即,若随机数R不大于第二预设阈值T,表明该随机数不满足预设条件。相应的,基于物理存储地址,从该表项对应的存储单元中获取该表项后,该L2C对该表项不进行缓存。
参见图11,图11为本申请实施例提供的一种表项获取的原理示意图。图11中,网络设备中包含L2C仲裁模块、DDR仲裁模块、多个处理器(CPU0、CPU1、CPU2等)、多个缓存存储器(L2C0、L2C1、L2C2等)、多个MC(MC0、MC1、MC2等),以及多个存储单元(DDR0、DDR1、DDR2等)。针对一个表项,可以向多个存储单元下发表项,即,按照多个存储单元中复制存储空间的数目对该表项进行复制,并分别存储在每一复制存储空间中。多个缓存存储器分为N个组。
其表项获取的流程如下:
当处理器接收到待处理报文后,进行查表,即,基于待处理报文的报文信息,确定待处理报文对应的目标表项的物理存储地址,向L2C仲裁模块发送携带有物理存储地址的表项获取请求。然后,L2C仲裁模块确定物理存储地址对应的多个缓存存储器,该多个缓存存储器分别属于N个组。进而,从多个缓存存储器中选择当前的业务负载最小的缓存存储器,作为目标缓存存储器。然后,L2C仲裁模块将携带有物理存储地址的表项获取请求发送至目标缓存存储器。
在接收到表项获取请求后,目标缓存存储器可以基于物理存储地址判断是否已缓存该表项。若已缓存该表项,则目标缓存存储器可以直接获取已缓存的该表项,并发送至处理器。
若未缓存该表项,则目标缓存存储器将该表项获取请求发送至DDR仲裁模块。DDR仲裁模块确定当前的业务负载最小的目标存储单元,作为目标存储单元。然后,DDR仲裁模块可以确定目标存储单元中包含该表项的各存储子单元,进而,选择当前的业务负载最小的存储子单元作为目标存储子单元。然后,DDR仲裁模块将表项获取请求发送至目标存储子单元对应的MC,即,目标存储单元对应的MC。该MC从目标存储子单元中获取该表项,并将该表项发送至目标缓存存储器。然后,目标缓存存储器将接收到的目标表项发送至处理器。进而,处理器基于该表项对待处理报文进行转发。
图11中,在目标缓存存储器未缓存该表项的情况下,目标缓存存储器可以基于cache分配模块判断针对该表项的待处理数目是否大于第一预设阈值,若大于,则目标缓存存储器在获取该表项后,对该表项进行缓存。
若不大于,基于cache分配模块可以获取一个随机数,并判断随机数是否满足预设条件。若满足预设条件,则目标缓存存储器在获取该表项后,对该表项进行缓存;若获取的随机数不满足预设条件,则目标缓存存储器在获取该表项后,无需对该表项进行缓存。
基于相同的发明构思,本申请实施例还提供了一种网络设备,所述网络设备包括多个存储单元、上述实施例中的目标缓存装置,以及上述实施例中的处理装置;所述多个存储单元包含多个复制存储空间,所述多个复制存储空间中存储有相同的表项。
基于相同的发明构思,在本申请提供的又一实施例中,还提供了一种计算机可读存储介质,该计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现上述任一表项获取方法的步骤。
基于相同的发明构思,在本申请提供的又一实施例中,还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述实施例中任一表项获取方法。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘Solid State Disk (SSD))等。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于目标缓存装置、处理装置、网络设备、计算机可读存储介质,以及计算机程序产品实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上所述仅为本申请的较佳实施例,并非用于限定本申请的保护范围。凡在本申请的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本申请的保护范围内。

Claims (10)

1.一种目标缓存装置,其特征在于,所述目标缓存装置所属的网络设备还包括处理装置和多个存储单元,所述多个存储单元包含多个复制存储空间,所述多个复制存储空间中存储有相同的表项;所述目标缓存装置包括缓存存储器和第一仲裁模块;其中:
所述缓存存储器,用于接收所述处理装置发送的表项获取请求,并向所述第一仲裁模块发送所述表项获取请求;其中,所述表项获取请求中携带有待处理报文对应的目标表项在所述多个复制存储空间中的物理存储地址;所述物理存储地址为所述处理装置接收到所述待处理报文时,基于所述待处理报文的报文信息确定的;
所述第一仲裁模块,用于从所述多个存储单元中确定当前的业务负载最小的目标存储单元;基于所述物理存储地址,从所述目标存储单元中的复制存储空间中获取所述目标表项;
所述网络设备还包括除所述目标缓存装置以外的其他缓存装置;所述网络设备中的各缓存装置分为多个缓存装置组,每一缓存装置组与一个复制存储空间对应;
所述表项获取请求为:在所述物理存储地址对应的各缓存装置中当前的业务负载最小的缓存装置为所述目标缓存装置的情况下,所述处理装置向所述目标缓存装置发送的。
2.根据权利要求1所述的目标缓存装置,其特征在于,每一存储单元包含至少一个复制存储空间,每一复制存储空间包含至少一个存储子单元;
所述第一仲裁模块,用于基于所述物理存储地址,确定所述目标存储单元中的复制存储空间中存储有所述目标表项的存储子单元,作为备选存储子单元;
确定当前的业务负载最小的备选存储子单元,作为目标存储子单元;
基于所述物理存储地址,从所述目标存储子单元获取所述目标表项。
3.根据权利要求1所述的目标缓存装置,其特征在于,所述缓存存储器,用于基于所述物理存储地址,判断是否已缓存所述目标表项;
若已缓存所述目标表项,则获取已缓存的所述目标表项;
在未缓存所述目标表项的情况下,向所述第一仲裁模块发送所述表项获取请求。
4.根据权利要求3所述的目标缓存装置,其特征在于,所述第一仲裁模块,还用于在从所述目标存储单元获取所述目标表项后,向所述缓存存储器发送所述目标表项;
所述缓存存储器,还用于在从所述第一仲裁模块获取所述目标表项后,若所述目标表项对应的待处理数目大于第一预设阈值,则对所述目标表项进行缓存;其中,所述待处理数目表示在接收到所述表项获取请求时,所述缓存存储器待处理的针对所述目标表项的表项获取请求的总数目。
5.根据权利要求4所述的目标缓存装置,其特征在于,所述缓存存储器,还用于在从所述第一仲裁模块获取所述目标表项后,若所述待处理数目不大于所述第一预设阈值,则获取一个随机数;
若获取的随机数满足预设条件,则对所述目标表项进行缓存。
6.一种处理装置,其特征在于,所述处理装置所属的网络设备还包括目标缓存装置和多个存储单元,所述多个存储单元包含多个复制存储空间,所述多个复制存储空间中存储有相同的表项;其中:
所述处理装置,用于当接收到待处理报文时,基于所述待处理报文的报文信息,确定所述待处理报文对应的目标表项在所述多个复制存储空间中的物理存储地址;
向所述目标缓存装置发送携带有所述物理存储地址的表项获取请求,以使所述目标缓存装置在接收到所述表项获取请求时,从所述多个存储单元中确定当前的业务负载最小的目标存储单元,以及基于所述物理存储地址,从所述目标存储单元中的复制存储空间中获取所述目标表项;
所述处理装置包括处理器和第二仲裁模块;
所述处理器,用于当接收到待处理报文时,基于所述待处理报文的报文信息,确定所述待处理报文对应的目标表项在所述多个复制存储空间中的物理存储地址,并向所述第二仲裁模块发送携带有所述物理存储地址的表项获取请求;
所述第二仲裁模块,用于向所述目标缓存装置发送携带有所述物理存储地址的表项获取请求,以使所述目标缓存装置在接收到所述表项获取请求时,从所述多个存储单元中确定当前的业务负载最小的目标存储单元,以及基于所述物理存储地址,从所述目标存储单元中的复制存储空间中获取所述目标表项;
所述网络设备还包括除所述目标缓存装置以外的其他缓存装置;所述网络设备中的各缓存装置分为多个缓存装置组,每一缓存装置组与一个复制存储空间对应;
所述第二仲裁模块,还用于在向所述目标缓存装置发送携带有所述物理存储地址的表项获取请求之前,从每一缓存装置组中确定与所述物理存储地址对应的缓存装置,作为备选缓存装置;从各备选缓存装置中,确定当前的业务负载最小的缓存装置,作为所述目标缓存装置。
7.一种网络设备,其特征在于,所述网络设备包括多个存储单元、如权利要求1-5任一所述的目标缓存装置,以及如权利要求6所述的处理装置;所述多个存储单元包含多个复制存储空间,所述多个复制存储空间中存储有相同的表项。
8.一种表项获取方法,其特征在于,所述方法应用于网络设备中的目标缓存装置,所述网络设备还包括处理装置和多个存储单元,所述多个存储单元包含多个复制存储空间,所述多个复制存储空间中存储有相同的表项;所述方法包括:
接收所述处理装置发送的表项获取请求;其中,所述表项获取请求中携带有待处理报文对应的目标表项在所述多个复制存储空间中的物理存储地址;所述物理存储地址为所述处理装置接收到待处理报文时,基于所述待处理报文的报文信息确定的;
从所述多个存储单元中确定当前的业务负载最小的目标存储单元;
基于所述物理存储地址,从所述目标存储单元中的复制存储空间中获取所述目标表项;
所述网络设备还包括除所述目标缓存装置以外的其他缓存装置;所述网络设备中的各缓存装置分为多个缓存装置组,每一缓存装置组与一个复制存储空间对应;
所述表项获取请求为:在所述物理存储地址对应的各缓存装置中当前的业务负载最小的缓存装置为所述目标缓存装置的情况下,所述处理装置向所述目标缓存装置发送的。
9.一种表项获取方法,其特征在于,所述方法应用于网络设备中的处理装置,所述网络设备还包括目标缓存装置和多个存储单元,所述多个存储单元包含多个复制存储空间,所述多个复制存储空间中存储有相同的表项;所述方法包括:
当接收到待处理报文时,基于所述待处理报文的报文信息,确定所述待处理报文对应的目标表项在所述多个复制存储空间中的物理存储地址;
向所述目标缓存装置发送携带有所述物理存储地址的表项获取请求,以使所述目标缓存装置在接收到所述表项获取请求时,从所述多个存储单元中确定当前的业务负载最小的目标存储单元,以及基于所述物理存储地址,从所述目标存储单元中的复制存储空间中获取所述目标表项;
所述处理装置包括处理器和第二仲裁模块;
所述当接收到待处理报文时,基于所述待处理报文的报文信息,确定所述待处理报文对应的目标表项在所述多个复制存储空间中的物理存储地址,包括:
当接收到待处理报文时,所述处理器基于所述待处理报文的报文信息,确定所述待处理报文对应的目标表项在所述多个复制存储空间中的物理存储地址;
所述方法还包括:
所述处理器向所述第二仲裁模块发送携带有所述物理存储地址的表项获取请求;
所述向所述目标缓存装置发送携带有所述物理存储地址的表项获取请求,包括:
所述第二仲裁模块向所述目标缓存装置发送携带有所述物理存储地址的表项获取请求,以使所述目标缓存装置在接收到所述表项获取请求时,从所述多个存储单元中确定当前的业务负载最小的目标存储单元,以及基于所述物理存储地址,从所述目标存储单元中的复制存储空间中获取所述目标表项;
所述网络设备还包括除所述目标缓存装置以外的其他缓存装置;所述网络设备中的各缓存装置分为多个缓存装置组,每一缓存装置组与一个复制存储空间对应;
在所述第二仲裁模块向所述目标缓存装置发送携带有所述物理存储地址的表项获取请求之前,所述方法还包括:
所述第二仲裁模块从每一缓存装置组中确定与所述物理存储地址对应的缓存装置,作为备选缓存装置;从各备选缓存装置中,确定当前的业务负载最小的缓存装置,作为所述目标缓存装置。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被执行时实现权利要求8-9任一所述的方法步骤。
CN202210844411.3A 2022-07-19 2022-07-19 目标缓存装置、处理装置、网络设备及表项获取方法 Active CN114996023B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210844411.3A CN114996023B (zh) 2022-07-19 2022-07-19 目标缓存装置、处理装置、网络设备及表项获取方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210844411.3A CN114996023B (zh) 2022-07-19 2022-07-19 目标缓存装置、处理装置、网络设备及表项获取方法

Publications (2)

Publication Number Publication Date
CN114996023A CN114996023A (zh) 2022-09-02
CN114996023B true CN114996023B (zh) 2022-11-22

Family

ID=83022804

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210844411.3A Active CN114996023B (zh) 2022-07-19 2022-07-19 目标缓存装置、处理装置、网络设备及表项获取方法

Country Status (1)

Country Link
CN (1) CN114996023B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117093267B (zh) * 2023-10-17 2023-12-22 北京开源芯片研究院 分支指令跳转地址的存储方法、装置、设备及存储介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6594648B1 (en) * 1998-12-04 2003-07-15 Francotyp-Postalia Ag & Co. Kg Method for processing variable service data structures and display texts in a processing module and arrangement for the implementation of the method
CN101119417A (zh) * 2006-07-31 2008-02-06 株式会社东芝 通信系统以及用在该系统中的语音消息处理方法
CN109710195A (zh) * 2019-01-08 2019-05-03 郑州云海信息技术有限公司 一种全闪存储负载均衡方法、装置及存储系统
CN112737954A (zh) * 2019-10-14 2021-04-30 华为技术有限公司 报文处理方法、装置、系统、设备及存储介质
CN113377689A (zh) * 2021-08-12 2021-09-10 新华三技术有限公司 一种路由表项查找、存储方法及网络芯片

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6397324B1 (en) * 1999-06-18 2002-05-28 Bops, Inc. Accessing tables in memory banks using load and store address generators sharing store read port of compute register file separated from address register file
US20060047926A1 (en) * 2004-08-25 2006-03-02 Zheng Calvin G Managing multiple snapshot copies of data
CN101237405B (zh) * 2008-03-06 2012-10-17 华为技术有限公司 数据缓存方法和装置
CN101631086B (zh) * 2009-08-10 2012-09-26 武汉烽火网络有限责任公司 并行ip路由查找的路由表分区和放置方法
WO2019105029A1 (zh) * 2017-11-29 2019-06-06 北京忆恒创源科技有限公司 去分配命令处理方法及其存储设备

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6594648B1 (en) * 1998-12-04 2003-07-15 Francotyp-Postalia Ag & Co. Kg Method for processing variable service data structures and display texts in a processing module and arrangement for the implementation of the method
CN101119417A (zh) * 2006-07-31 2008-02-06 株式会社东芝 通信系统以及用在该系统中的语音消息处理方法
CN109710195A (zh) * 2019-01-08 2019-05-03 郑州云海信息技术有限公司 一种全闪存储负载均衡方法、装置及存储系统
CN112737954A (zh) * 2019-10-14 2021-04-30 华为技术有限公司 报文处理方法、装置、系统、设备及存储介质
CN113377689A (zh) * 2021-08-12 2021-09-10 新华三技术有限公司 一种路由表项查找、存储方法及网络芯片

Also Published As

Publication number Publication date
CN114996023A (zh) 2022-09-02

Similar Documents

Publication Publication Date Title
US10938581B2 (en) Accessing composite data structures in tiered storage across network nodes
CN105282215B (zh) 用于通过内容中心网络转发并响应兴趣的基于声誉的策略
US20210112003A1 (en) Network interface for data transport in heterogeneous computing environments
US20160132541A1 (en) Efficient implementations for mapreduce systems
US6430190B1 (en) Method and apparatus for message routing, including a content addressable memory
US10303618B2 (en) Power savings via dynamic page type selection
US20200136971A1 (en) Hash-table lookup with controlled latency
US9384072B2 (en) Distributed queue pair state on a host channel adapter
US20160044126A1 (en) Probabilistic lazy-forwarding technique without validation in a content centric network
US20200379922A1 (en) Adaptive routing for pooled and tiered data architectures
WO2015110046A1 (zh) Cache的管理方法及装置
Fukuda et al. Caching memcached at reconfigurable network interface
CN114996023B (zh) 目标缓存装置、处理装置、网络设备及表项获取方法
CN101620623A (zh) 内容可寻址存储器表项管理方法和装置
EP2568386A1 (en) Method for accessing cache and fictitious cache agent
CN106294191B (zh) 处理表的方法、访问表的方法和装置
US10684960B2 (en) Managing cache memory in a network element based on costs associated with fetching missing cache entries
CN101599910A (zh) 报文发送的方法及设备
Pan et al. Nb-cache: Non-blocking in-network caching for high-performance content routers
CN115334013B (zh) 一种流量统计方法、网卡及电子设备
CN116126528A (zh) 资源分配方法、缓存状态控制方法及相关设备
WO2021008552A1 (zh) 数据读取方法和装置、计算机可读存储介质
CN112631789B (zh) 面向短视频数据的分布式内存系统及视频数据管理方法
Qiu et al. Ultra-low-latency and flexible in-memory key-value store system design on CPU-FPGA
WO2021112947A1 (en) Apparatus and methods for managing packet transfer across a memory fabric physical layer interface

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