CN116185886A - 一种匹配表系统 - Google Patents
一种匹配表系统 Download PDFInfo
- Publication number
- CN116185886A CN116185886A CN202211594603.XA CN202211594603A CN116185886A CN 116185886 A CN116185886 A CN 116185886A CN 202211594603 A CN202211594603 A CN 202211594603A CN 116185886 A CN116185886 A CN 116185886A
- Authority
- CN
- China
- Prior art keywords
- matching
- cache
- hit
- matching table
- entry
- 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
- 239000000872 buffer Substances 0.000 claims abstract description 56
- 230000001133 acceleration Effects 0.000 claims abstract description 9
- 230000005012 migration Effects 0.000 claims abstract description 6
- 238000013508 migration Methods 0.000 claims abstract description 6
- 238000012423 maintenance Methods 0.000 claims description 41
- 238000000034 method Methods 0.000 claims description 27
- 230000002457 bidirectional effect Effects 0.000 claims description 20
- 239000002243 precursor Substances 0.000 claims description 14
- 238000012545 processing Methods 0.000 claims description 14
- 230000000977 initiatory effect Effects 0.000 claims description 13
- 230000008569 process Effects 0.000 claims description 11
- 235000019633 pungent taste Nutrition 0.000 claims description 10
- 230000001960 triggered effect Effects 0.000 claims description 10
- 230000001360 synchronised effect Effects 0.000 claims description 6
- 230000009191 jumping Effects 0.000 claims description 5
- 230000008859 change Effects 0.000 claims description 4
- 238000012217 deletion Methods 0.000 claims description 4
- 230000037430 deletion Effects 0.000 claims description 4
- 230000003139 buffering effect Effects 0.000 claims description 3
- 230000004044 response Effects 0.000 claims description 3
- 230000008901 benefit Effects 0.000 abstract description 2
- 230000006872 improvement Effects 0.000 description 13
- 238000010586 diagram Methods 0.000 description 12
- 238000005338 heat storage Methods 0.000 description 3
- 238000004891 communication Methods 0.000 description 2
- 230000007547 defect Effects 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 230000007704 transition Effects 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 230000009977 dual effect Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 238000003780 insertion Methods 0.000 description 1
- 230000037431 insertion Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000000737 periodic effect Effects 0.000 description 1
- 238000012163 sequencing technique Methods 0.000 description 1
Images
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/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/0292—User address space allocation, e.g. contiguous or non contiguous base addressing using tables or multilevel address translation means
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0877—Cache access modes
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer And Data Communications (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本发明提供了一种匹配表系统,所述系统包括缓存模块和匹配表;所述缓存模块基于FPGA实现;所述缓存模块包括匹配表缓存和匹配表缓存控制器;所述匹配表缓存控制器连接所述匹配表缓存和所述匹配表,维护所述匹配表缓存,实现所述匹配表的表项至所述匹配表缓存的迁移;所述匹配表向所述匹配表缓存控制器传递匹配键值对和匹配结果;所述匹配表缓存向所述匹配表缓存控制器传递命中表项索引和匹配结果;所述匹配表缓存控制器向所述匹配表缓存传递匹配键值对。本发明的优势在于:达到了加速流表匹配的目的,提升网络吞吐;易扩展为多级匹配表迁移至匹配表缓存的匹配加速方案;实现了上位机对匹配表缓存控制器的功能控制和状态查询。
Description
技术领域
本发明属于网络通信领域,具体涉及一种匹配表系统,可应用于SDN(SoftwareDefinedNetwork)软件定义网络中的网络交换设备。
背景技术
伴随着互联网技术飞速发展,CPU计算性能、通信带宽及存储容量不断优化提升,传统网络架构控制面与数据面紧密耦合的弊端日益明显,在一定程度上影响了网络的可扩展性和可迁移性,软件定义网络架构因其控制面与数据面分离的特点得到了快速发展。软件定义网络架构中控制面掌握全局拓扑,通过下发流表实现转发策略自定义,数据面存储流表,负责网络流量的高速匹配和转发,有利于解决传统网络架构现有的问题。
FPGA(FieldProgrammableGateArray现场可编程逻辑门阵列)常用于处理数据面指数增长的网络流量,其高并发、高吞吐、可编程、开发成本低、周期快等特点适合卸载数据面的流量匹配和转发,在其内部利用逻辑资源和存储资源构建Match-Action模型,可实现网络流量的线速匹配和转发。
受限于FPGA有限的存储资源,片上存储仅能用来构建匹配表缓存存储少量高热度流表,其他大量的低热度流表只能存储于片外存储,较高的访存延迟成为限制网络吞吐的瓶颈。因此,实现片上匹配表缓存和片外匹配表的互联并采用高效的缓存替换策略维护片上匹配表缓存成为加速匹配、提升网络吞吐的关键。目前,缓存替换策略可分为四类:随机替换、先进先出替换、最少频率使用替换和最近最少使用替换。随机替换策略根据产生的随机数替换缓存中的表项,先进先出替换策略总是替换最先进入缓存的表项,二者均未考虑表项优先级,一定程度上降低了缓存命中率;最少频率使用替换策略总是替换命中次数最少的表项,最近最少使用替换策略总是替换最长时间未命中的表项,二者将表项优先级纳入考虑,但现有的方案需要定制的计数器和排序算法,时间复杂度与缓存深度相关,随着缓存深度的增加,硬件开销增大。
发明内容
本发明的目的在于克服现有技术进行缓存替换时未考虑表项优先级,或者考虑表项优先级时算法复杂、硬件开销大的缺陷。
为了实现上述目的,本发明提出了一种匹配表系统,所述系统包括缓存模块和匹配表;其特征在于:
所述缓存模块基于FPGA实现;所述缓存模块包括匹配表缓存和匹配表缓存控制器;
所述匹配表缓存控制器连接所述匹配表缓存和所述匹配表,用于维护所述匹配表缓存,实现所述匹配表的表项至所述匹配表缓存的迁移;
所述匹配表向所述匹配表缓存控制器传递匹配键值对和匹配结果;
所述匹配表缓存向所述匹配表缓存控制器传递命中表项索引和匹配结果;
所述匹配表缓存控制器向所述匹配表缓存传递匹配键值对。
作为上述系统的一种改进,所述匹配表缓存控制器基于缓存替换算法完成匹配表缓存的更新和热度维护;具体包括:
当所述匹配表缓存控制器收到所述匹配表传递的匹配键值对和匹配结果后,将匹配键值对写入所述匹配表缓存,若所述匹配表缓存未满则写入空位,若已满则替换最冷表项,完成缓存更新;
当所述匹配表缓存控制器收到所述匹配表缓存传递的命中表项索引和匹配结果后,更改命中表项热度,完成热度维护。
作为上述系统的一种改进,所述匹配表缓存控制器包括先入先出单元、多路选择器、控制单元和热度存储器;其中,
所述先入先出单元,包含两路同步先入先出缓冲器;两路同步先入先出缓冲器分别用于缓冲所述匹配表和所述匹配表缓存传递的有效数据,添加边带信息标识数据来源;
所述多路选择器,用于完成所述先入先出单元中两路数据的合并,采用匹配表优先策略;
所述控制单元,用于处理多路选择器输出的数据;若数据来自匹配表,则将匹配键值对写入匹配表缓存;若数据来自匹配表缓存,则更改热度存储器中的表项热度;
所述热度存储器,用于存储匹配表缓存中表项的热度。
作为上述系统的一种改进,所述热度存储器基于双向环形链表原理存储匹配表缓存表项的热度,采用真双端口读优先模式的块随机存储器构建,包含A、B两个端口;
所述热度存储器从时间维度对所述匹配表缓存中所有表项进行排序和管理,深度与所述匹配表缓存的深度相同;
所述热度存储器中的每一存储单元存储所述匹配表缓存中相同地址表项的前驱和后继表项地址;其中存储单元的高位存储前驱表项地址,低位存储后继表项地址;
所述控制单元维护双向环形链表的头尾指针,头指针指向最冷表项,即最久未命中的表项,尾指针指向最热表项,即最新命中的表项。
作为上述系统的一种改进,所述控制单元负责接收所述多路选择器输出的请求,同时与所述热度存储器连接;
当所述匹配表缓存控制器收到所述匹配表或所述匹配表缓存的请求后,将二者经所述先入先出单元缓冲、所述多路选择器合并后交给所述控制单元处理;所述控制单元通过输出匹配键值对至所述匹配表缓存、移动头尾指针和读写所述热度存储器修改双向环形链表结构的操作,完成缓存更新和热度维护,实现匹配加速。
作为上述系统的一种改进,所述控制单元工作流程包括初始化流程、缓存更新流程和缓存热度维护流程。
作为上述系统的一种改进,所述控制单元基于有限状态机构建,包括初始化状态、等待请求状态、缓存更新状态和缓存热度维护状态;
所述控制单元启动时处于初始化状态,触发所述控制单元初始化流程,完成热度存储器和头尾指针的初始化,随后进入等待请求状态等待命中请求;
当所述控制单元收到来自所述匹配表或所述匹配表缓存的命中请求后,根据命中来源分别进行处理;若边带信息标识命中请求来自所述匹配表,则跳转至缓存更新状态,触发缓存更新流程;若边带信息标识命中请求来自所述匹配表缓存,则跳转至缓存热度维护状态,触发缓存热度维护流程;
所述控制单元完成缓存更新流程或缓存热度维护流程后回到等待请求状态,等待下一个请求。
作为上述系统的一种改进,所述控制单元的初始化流程为:按照地址顺序初始化热度存储器,依次填充各表项前驱和后继表项地址,首尾相连形成双向环形链表,头尾指针分别指向双向环形链表表头和表尾,此刻匹配表缓存为空。
作为上述系统的一种改进,所述控制单元的缓存更新流程为:
当所述匹配表被命中时,向所述匹配表缓存控制器发起命中请求,传递匹配键值对和匹配结果,触发所述控制单元的缓存更新流程;
若所述匹配表的缓存未满,将匹配键值对写入所述匹配表缓存中的空位,并更改新增表项热度为最热;若匹配表缓存已满,用匹配键值对替换最冷表项,并更改新增表项热度为最热;具体操作如下:
步骤A1:将头指针值作为写地址,将匹配键值对写入所述匹配表缓存中;
步骤A2:更新尾指针值为头指针值,向所述热度存储器端口A发起读请求,读地址为头指针值;若所述匹配表缓存未满,该操作目的是获取下一空位或最冷表项地址,若匹配表缓存已满,该操作目的是获取次冷表项地址;
步骤A3:读出头指针所指表项的后继表项地址,修改头指针值为该地址,即移动头指针指向所指表项的后继表项。
作为上述系统的一种改进,所述控制单元的缓存热度维护流程为:
所述缓存热度维护流程在所述匹配表缓存满或未满状态下均可能触发;
当所述匹配表缓存被命中时,向所述匹配表缓存控制器发起命中请求,传递命中表项索引和匹配结果,触发所述控制单元的所述缓存热度维护流程;
所述缓存热度维护流程依据命中表项索引值与头指针值和尾指针值的关系分为三种情况:
第一种情况:命中表项索引值与尾指针值相同,即命中匹配表缓存中最热表项;
第二种情况:命中表项索引值与头指针值相同,即命中匹配表缓存中最冷表项;
第三种情况:命中表项索引值与头尾指针值均不相等,即命中链表中间表项。
作为上述系统的一种改进,所述第一种情况处理过程为:不需要改变热度,所述控制单元不作处理,等待下一匹配。
作为上述系统的一种改进,所述第二种情况处理过程为:移动尾指针指向命中表项标识为最热,移动头指针指向次冷表项,不用改变链表结构;
具体操作如下:
步骤B1:修改尾指针值为头指针值,向所述热度存储器端口A发起读请求,读地址为头指针值,即获取次冷表项地址;
步骤B2:读出头指针所指表项的后继表项地址,修改头指针值为该地址,即移动头指针指向次冷表项。
作为上述系统的一种改进,所述第三种情况处理过程具体操作如下:
步骤C1:向所述热度存储器端口A发起读请求,读地址为命中表项索引值,即获取命中表项的前驱和后继表项地址;
步骤C2:收到读请求响应,向所述热度存储器端口A、B发起写请求,其中端口A写地址为命中表项的前驱表项地址,写数据为命中表项的后继表项地址,高位补零,字节使能信号标识写数据低位有效;端口B写地址为命中表项的后继表项地址,写数据为命中表项的前驱表项地址,低位补零,字节使能信号标识写数据高位有效;该操作目的是完成命中表项的表项删除,建立其前驱和后继的双向逻辑;
步骤C3:写请求完成,再次向所述热度存储器端口A、B发起写请求,其中端口A写地址为尾指针值,写数据为命中表项索引值,高位补零,字节使能信号标识写数据低位有效;端口B写地址为头指针值,写数据为命中表项索引值,低位补零,字节使能信号标识写数据高位有效;该操作目的是将命中表项插入头尾指针所指表项之间;
步骤C4:写请求完成,向热度存储器端口A发起写请求,写地址为命中表项索引值,写数据为尾指针值与头指针值的组合,尾指针在高位,头指针在低位,字节使能信号标识写数据高低位均有效;该操作目的是完成命中表项与头尾指针所指表项双向逻辑的建立;
步骤C5:修改尾指针值为命中表项索引值,将命中表项标识为最热。
作为上述系统的一种改进,所述匹配表缓存控制器还包括可读写的控制寄存器和状态寄存器;
所述控制寄存器,用于控制所述匹配表缓存控制器是否工作;
所述状态寄存器,用于查询所述匹配表、所述匹配表缓存传递有效数据次数、所述匹配表缓存控制器执行缓存更新或热度维护次数及其工作状态。
与现有技术相比,本发明的优势在于:
1、本发明采用硬件构建匹配表缓存控制器和匹配表缓存,基于但不仅限于LRU缓存替换算法维护匹配表缓存,完成匹配表表项至匹配表缓存的迁移,达到加速流表匹配的目的,提升网络吞吐。
2、本发明采用统一化接口适配多种匹配表,拥有较强的通用性和扩展性,用户可修改接口满足自身需求,易扩展为多级匹配表迁移至匹配表缓存的匹配加速方案。
3、本发明提供上位机可读写的控制与状态寄存器,实现上位机对匹配表缓存控制器的功能控制和状态查询。
附图说明
图1所示为匹配表系统结构图;
图2所示为匹配表缓存控制器的结构框图;
图3所示为热度存储器中表项热度的数据结构示意图;
图4所示为热度存储器初始状态的示意图;
图5所示为缓存更新流程引发热度存储器改变的示意图;
图6所示为缓存热度维护流程引发热度存储器改变的示意图;
图7所示为控制单元的状态转移图。
具体实施方式
本发明提出一种匹配表系统,涉及匹配表、匹配表缓存和匹配表缓存控制器;匹配表是基于片外存储实现的大容量精确匹配流表,在此基础上增加匹配表缓存和匹配表缓存控制器,匹配表缓存是基于片上存储实现的线速精确匹配流表,匹配表缓存控制器连接匹配表缓存和匹配表,维护匹配表缓存,实现匹配表表项至匹配表缓存的迁移,加速流表匹配,提升网络吞吐。
下面结合附图对本发明的技术方案进行详细的说明。
如图1所示,匹配表与匹配表缓存控制器连接,传递匹配键值对和匹配结果;匹配表缓存与匹配表缓存控制器连接,传递命中表项索引和匹配结果;匹配表缓存控制器与匹配表缓存连接,传递匹配键值对。
匹配表缓存控制器基于但不仅限于LRU(LeastRecentlyUsed)最近最少使用缓存替换算法完成匹配表缓存的更新和热度维护,进而实现匹配加速。当匹配表缓存控制器收到匹配表传递的匹配键值对和匹配结果后,将匹配键值对写入匹配表缓存,若匹配表缓存未满则写入空位,若已满则替换最冷表项,完成缓存更新。当匹配表缓存控制器收到匹配表缓存传递的命中表项索引和匹配结果后,更改命中表项热度,完成热度维护。
匹配表缓存控制器包括先入先出单元、多路选择器、控制单元和热度存储器。
先入先出单元包含两路同步先入先出缓冲器,分别缓冲匹配表和匹配表缓存传递的有效数据,添加边带信息标识数据来源。
多路选择器完成两路数据的合并,采用匹配表优先策略。
热度存储器存储匹配表缓存中表项的热度。
控制单元是匹配表缓存控制器的核心模块,处理多路选择器输出的数据:若数据来自匹配表,则将匹配键值对写入匹配表缓存;若数据来自匹配表缓存,则更改热度存储器中的表项热度。
此外,匹配表缓存控制器向上位机提供可读写的控制与状态寄存器,控制寄存器用于控制匹配表缓存控制器是否工作,状态寄存器用于查询匹配表、匹配表缓存传递有效数据次数、匹配表缓存控制器执行缓存更新或热度维护次数及其工作状态。
本发明提出的匹配表系统,实施例基于FPGA实现,匹配表缓存控制器和匹配表缓存利用片上资源构建,连接片外匹配表。
本实施例基于但不仅限于LRU缓存替换算法维护匹配表缓存,实现匹配表表项至匹配表缓存的迁移,加速流表匹配,提升网络吞吐。匹配表缓存控制器包括先入先出单元、多路选择器、控制单元和热度存储器,还包括上位机可读写的控制与状态寄存器。
匹配表系统的工作原理如下:
匹配表或匹配表缓存完成数据包匹配后发起请求,若匹配表被命中,则传递匹配键值对和匹配结果,若匹配表缓存被命中,则传递命中表项索引和匹配结果,匹配表缓存控制器接收两路请求后进行处理。在匹配表缓存控制器内部,两路请求首先到达先入先出单元,其包含两路同步先入先出缓冲器,采用周期缓冲模式缓冲有效且命中的请求并增加边带信息标识请求来源,随后输出至多路选择器。多路选择器采用匹配表优先策略:若两路请求同时有效,则优先输出匹配表请求,否则根据是否有效选择输出。之后,控制单元接收多路选择器输出,根据边带信息区分请求来源,若来自匹配表,则将匹配键值对写入匹配表缓存,完成缓存更新;若来自匹配表缓存,则修改热度存储器中的表项热度,完成热度维护。
下面结合本发明的热度存储器中表项热度的数据结构和控制单元的工作流程,详细阐述实施例的工作原理。
热度存储器基于双向环形链表原理存储匹配表缓存表项的热度,采用真双端口读优先模式的块随机存储器构建,包含A、B两端口,从时间维度对匹配表缓存中所有表项进行精准排序和细粒度管理,深度与匹配表缓存深度相同,每一存储单元存储匹配表缓存中相同地址表项的前驱和后继表项地址,其中高位存储前驱,低位存储后继。控制单元维护双向环形链表的头尾指针,头指针指向最冷表项,即最久未命中的表项,尾指针指向最热表项,即最新命中的表项。图3是热度存储器中表项热度的数据结构示意图。
控制单元是匹配表缓存控制器的核心模块,采用有限状态机实现,负责接收多路选择器输出的请求,同时与热度存储器连接。当匹配表缓存控制器收到匹配表或匹配表缓存的请求后,将二者经先入先出单元缓冲、多路选择器合并后交给控制单元处理,控制单元通过输出匹配键值对至匹配表缓存、移动头尾指针、读写热度存储器修改双向环形链表结构等操作,完成缓存更新和热度维护,实现匹配加速。控制单元工作流程包括初始化流程、缓存更新流程和缓存热度维护流程。
初始化流程,控制单元在初始化时,将按照地址顺序初始化热度存储器,依次填充各表项前驱和后继表项地址,首尾相连形成双向环形链表,头尾指针分别指向双向环形链表表头和表尾,此刻匹配表缓存为空。该流程包含一次存储器初始化操作。
图4是一个深度为8的热度存储器的初始状态示意图。
缓存更新流程,当匹配表被命中时,向匹配表缓存控制器发起命中请求,传递匹配键值对和匹配结果,触发控制单元的缓存更新流程。若匹配表缓存未满,将匹配键值对写入匹配表缓存中的空位,并更改新增表项热度为最热;若匹配表缓存已满,用匹配键值对替换最冷表项,并更改新增表项热度为最热。具体操作如下:
(1)将头指针值作为写地址,将匹配键值对写入匹配表缓存中;
(2)更新尾指针值为头指针值,向热度存储器端口A发起读请求,读地址为头指针值。若匹配表缓存未满,该操作目的是获取下一空位或最冷表项地址,若匹配表缓存已满,该操作目的是获取次冷表项地址;
(3)读回头指针所指表项的后继表项地址,修改头指针值为该地址,即移动头指针指向所指表项的后继表项。
该流程共包括1次单端口读存储器操作,只移动头尾指针并未改变链表结构,减少不必要的处理延迟。图5是8深度热度存储器表发生一次缓存更新的示意图。
缓存热度维护流程,该流程在匹配表缓存满或未满状态下均可能触发。当匹配表缓存被命中时,向匹配表缓存控制器发起命中请求,传递命中表项索引和匹配结果,触发控制单元的缓存热度维护流程。根据命中表项索引,可分为三种情况:
第一种情况,命中表项索引值与尾指针值相同,即命中匹配表缓存中最热表项。该情况的处理逻辑最为简单,不需要改变热度,控制单元不作处理,等待下一匹配,减少不必要的处理延迟。
第二种情况,命中表项索引值与头指针值相同,即命中匹配表缓存中最冷表项。该情况下,只需移动尾指针指向命中表项标识为最热,随后移动头指针指向次冷表项即可,不用改变链表结构。具体操作如下:
(1)修改尾指针值为头指针值,向热度存储器端口A发起读请求,读地址为头指针值,即获取次冷表项地址;
(2)读回头指针所指表项的后继表项地址,修改头指针值为该地址,即移动头指针指向次冷表项。
此情况下,该流程共包括1次单端口读存储器操作。
第三种情况,命中表项索引值与头尾指针值均不相等,即命中链表中间表项。该情况下,控制单元维护热度需完成两个操作,表项删除和表项插入。具体操作如下:
(1)向热度存储器端口A发起读请求,读地址为命中表项索引值,即获取命中表项的前驱和后继表项地址;
(2)收到读请求响应,向热度存储器端口A、B发起写请求,其中端口A写地址为命中表项的前驱表项地址,写数据为命中表项的后继表项地址,高位补零,字节使能信号标识写数据低位有效。端口B写地址为命中表项的后继表项地址,写数据为命中表项的前驱表项地址,低位补零,字节使能信号标识写数据高位有效。该操作目的是完成命中表项的表项删除,建立其前驱和后继的双向逻辑;
(3)写请求完成,再次向热度存储器端口A、B发起写请求,其中端口A写地址为尾指针值,写数据为命中表项索引值,高位补零,字节使能信号标识写数据低位有效。端口B写地址为头指针值,写数据为命中表项索引值,低位补零,字节使能信号标识写数据高位有效。该操作目的是将命中表项插入头尾指针所指表项之间;
(4)写请求完成,向热度存储器端口A发起写请求,写地址为命中表项索引值,写数据为尾指针值与头指针值的组合,尾指针在高位,头指针在低位,字节使能信号标识写数据高低位均有效。该操作目的是完成命中表项与头尾指针所指表项双向逻辑的建立;
(5)修改尾指针值为命中表项索引值,将命中表项标识为最热。
此情况下,该流程共包括1次单端口读存储器操作、2次双端口写存储器和1次单端口写存储器操作。图6是8深度匹配表缓存命中3号表项后,热度存储器发生热度维护的示意图。
控制单元基于有限状态机构建,包括初始化状态、等待请求状态、缓存更新状态和缓存热度维护状态。首先是初始化状态,触发控制单元初始化流程,完成热度存储器和头尾指针的初始化,随后进入等待请求状态等待命中请求。当控制单元收到来自匹配表或匹配表缓存的命中请求后,将根据命中来源处理,若边带信息标识命中请求来自匹配表,则跳转至缓存更新状态,触发缓存更新流程;若边带信息标识命中请求来自匹配表缓存,则跳转至缓存热度维护状态,触发缓存热度维护流程。控制单元基于上文的工作原理,完成匹配表缓存的更新和热度维护,实现匹配加速,最后回到等待请求状态,等待下一请求。
图7是控制单元的状态转移图。
本发明的实施例采用FPGA实现,匹配表缓存控制器和匹配表缓存基于片上资源构建,连接匹配表,执行上述步骤实现基于但不仅限于LRU算法的缓存维护,达到加速匹配的目的。实施例的LRU算法采用双向环形链表实现,时间复杂度为O(1),与匹配表缓存深度、状态无关,相比基于计数器加排序算法方案具有更少的硬件开销,相比单向链表和双向非环形链表方案具有更低的匹配延迟。此外,本发明具有较强的通用性和扩展性,适配多种匹配表,易扩展为多级匹配表表项迁移至匹配表缓存的匹配加速方案。
最后所应说明的是,以上实施例仅用以说明本发明的技术方案而非限制。尽管参照实施例对本发明进行了详细说明,本领域的普通技术人员应当理解,对本发明的技术方案进行修改或者等同替换,都不脱离本发明技术方案的精神和范围,其均应涵盖在本发明的权利要求范围当中。
Claims (14)
1.一种匹配表系统,所述系统包括缓存模块和匹配表;其特征在于:
所述缓存模块基于FPGA实现;所述缓存模块包括匹配表缓存和匹配表缓存控制器;
所述匹配表缓存控制器连接所述匹配表缓存和所述匹配表,用于维护所述匹配表缓存,实现所述匹配表的表项至所述匹配表缓存的迁移;
所述匹配表向所述匹配表缓存控制器传递匹配键值对和匹配结果;
所述匹配表缓存向所述匹配表缓存控制器传递命中表项索引和匹配结果;
所述匹配表缓存控制器向所述匹配表缓存传递匹配键值对。
2.根据权利要求1的匹配表系统,其特征在于,所述匹配表缓存控制器基于缓存替换算法完成匹配表缓存的更新和热度维护;具体包括:
当所述匹配表缓存控制器收到所述匹配表传递的匹配键值对和匹配结果后,将匹配键值对写入所述匹配表缓存,若所述匹配表缓存未满则写入空位,若已满则替换最冷表项,完成缓存更新;
当所述匹配表缓存控制器收到所述匹配表缓存传递的命中表项索引和匹配结果后,更改命中表项热度,完成热度维护。
3.根据权利要求2的匹配表系统,其特征在于,所述匹配表缓存控制器包括先入先出单元、多路选择器、控制单元和热度存储器;其中,
所述先入先出单元,包含两路同步先入先出缓冲器;两路同步先入先出缓冲器分别用于缓冲所述匹配表和所述匹配表缓存传递的有效数据,添加边带信息标识数据来源;
所述多路选择器,用于完成所述先入先出单元中两路数据的合并,采用匹配表优先策略;
所述控制单元,用于处理多路选择器输出的数据;若数据来自匹配表,则将匹配键值对写入匹配表缓存;若数据来自匹配表缓存,则更改热度存储器中的表项热度;
所述热度存储器,用于存储匹配表缓存中表项的热度。
4.根据权利要求3的匹配表系统,其特征在于,所述热度存储器基于双向环形链表原理存储匹配表缓存表项的热度,采用真双端口读优先模式的块随机存储器构建,包含A、B两个端口;
所述热度存储器从时间维度对所述匹配表缓存中所有表项进行排序和管理,深度与所述匹配表缓存的深度相同;
所述热度存储器中的每一存储单元存储所述匹配表缓存中相同地址表项的前驱和后继表项地址;其中存储单元的高位存储前驱表项地址,低位存储后继表项地址;
所述控制单元维护双向环形链表的头尾指针,头指针指向最冷表项,即最久未命中的表项,尾指针指向最热表项,即最新命中的表项。
5.根据权利要求4的匹配表系统,其特征在于,所述控制单元负责接收所述多路选择器输出的请求,同时与所述热度存储器连接;
当所述匹配表缓存控制器收到所述匹配表或所述匹配表缓存的请求后,将二者经所述先入先出单元缓冲、所述多路选择器合并后交给所述控制单元处理;所述控制单元通过输出匹配键值对至所述匹配表缓存、移动头尾指针和读写所述热度存储器修改双向环形链表结构的操作,完成缓存更新和热度维护,实现匹配加速。
6.根据权利要求5的匹配表系统,其特征在于,所述控制单元工作流程包括初始化流程、缓存更新流程和缓存热度维护流程。
7.根据权利要求6的匹配表系统,其特征在于,所述控制单元基于有限状态机构建,包括初始化状态、等待请求状态、缓存更新状态和缓存热度维护状态;
所述控制单元启动时处于初始化状态,触发所述控制单元初始化流程,完成热度存储器和头尾指针的初始化,随后进入等待请求状态等待命中请求;
当所述控制单元收到来自所述匹配表或所述匹配表缓存的命中请求后,根据命中来源分别进行处理;若边带信息标识命中请求来自所述匹配表,则跳转至缓存更新状态,触发缓存更新流程;若边带信息标识命中请求来自所述匹配表缓存,则跳转至缓存热度维护状态,触发缓存热度维护流程;
所述控制单元完成缓存更新流程或缓存热度维护流程后回到等待请求状态,等待下一个请求。
8.根据权利要求6的匹配表系统,其特征在于,所述控制单元的初始化流程为:按照地址顺序初始化热度存储器,依次填充各表项前驱和后继表项地址,首尾相连形成双向环形链表,头尾指针分别指向双向环形链表表头和表尾,此刻匹配表缓存为空。
9.根据权利要求6的匹配表系统,其特征在于,所述控制单元的缓存更新流程为:
当所述匹配表被命中时,向所述匹配表缓存控制器发起命中请求,传递匹配键值对和匹配结果,触发所述控制单元的缓存更新流程;
若所述匹配表的缓存未满,将匹配键值对写入所述匹配表缓存中的空位,并更改新增表项热度为最热;若匹配表缓存已满,用匹配键值对替换最冷表项,并更改新增表项热度为最热;具体操作如下:
步骤A1:将头指针值作为写地址,将匹配键值对写入所述匹配表缓存中;
步骤A2:更新尾指针值为头指针值,向所述热度存储器端口A发起读请求,读地址为头指针值;若所述匹配表缓存未满,该操作目的是获取下一空位或最冷表项地址,若匹配表缓存已满,该操作目的是获取次冷表项地址;
步骤A3:读出头指针所指表项的后继表项地址,修改头指针值为该地址,即移动头指针指向所指表项的后继表项。
10.根据权利要求6的匹配表系统,其特征在于,所述控制单元的缓存热度维护流程为:
所述缓存热度维护流程在所述匹配表缓存满或未满状态下均可能触发;
当所述匹配表缓存被命中时,向所述匹配表缓存控制器发起命中请求,传递命中表项索引和匹配结果,触发所述控制单元的所述缓存热度维护流程;
所述缓存热度维护流程依据命中表项索引值与头指针值和尾指针值的关系分为三种情况:
第一种情况:命中表项索引值与尾指针值相同,即命中匹配表缓存中最热表项;
第二种情况:命中表项索引值与头指针值相同,即命中匹配表缓存中最冷表项;
第三种情况:命中表项索引值与头尾指针值均不相等,即命中链表中间表项。
11.根据权利要求10的匹配表系统,其特征在于,所述第一种情况处理过程为:不需要改变热度,所述控制单元不作处理,等待下一匹配。
12.根据权利要求10的匹配表系统,其特征在于,所述第二种情况处理过程为:移动尾指针指向命中表项标识为最热,移动头指针指向次冷表项,不用改变链表结构;
具体操作如下:
步骤B1:修改尾指针值为头指针值,向所述热度存储器端口A发起读请求,读地址为头指针值,即获取次冷表项地址;
步骤B2:读出头指针所指表项的后继表项地址,修改头指针值为该地址,即移动头指针指向次冷表项。
13.根据权利要求10的匹配表系统,其特征在于,所述第三种情况处理过程具体操作如下:
步骤C1:向所述热度存储器端口A发起读请求,读地址为命中表项索引值,即获取命中表项的前驱和后继表项地址;
步骤C2:收到读请求响应,向所述热度存储器端口A、B发起写请求,其中端口A写地址为命中表项的前驱表项地址,写数据为命中表项的后继表项地址,高位补零,字节使能信号标识写数据低位有效;端口B写地址为命中表项的后继表项地址,写数据为命中表项的前驱表项地址,低位补零,字节使能信号标识写数据高位有效;该操作目的是完成命中表项的表项删除,建立其前驱和后继的双向逻辑;
步骤C3:写请求完成,再次向所述热度存储器端口A、B发起写请求,其中端口A写地址为尾指针值,写数据为命中表项索引值,高位补零,字节使能信号标识写数据低位有效;端口B写地址为头指针值,写数据为命中表项索引值,低位补零,字节使能信号标识写数据高位有效;该操作目的是将命中表项插入头尾指针所指表项之间;
步骤C4:写请求完成,向热度存储器端口A发起写请求,写地址为命中表项索引值,写数据为尾指针值与头指针值的组合,尾指针在高位,头指针在低位,字节使能信号标识写数据高低位均有效;该操作目的是完成命中表项与头尾指针所指表项双向逻辑的建立;
步骤C5:修改尾指针值为命中表项索引值,将命中表项标识为最热。
14.根据权利要求3的匹配表系统,其特征在于,所述匹配表缓存控制器还包括可读写的控制寄存器和状态寄存器;
所述控制寄存器,用于控制所述匹配表缓存控制器是否工作;
所述状态寄存器,用于查询所述匹配表、所述匹配表缓存传递有效数据次数、所述匹配表缓存控制器执行缓存更新或热度维护次数及其工作状态。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211594603.XA CN116185886B (zh) | 2022-12-13 | 2022-12-13 | 一种匹配表系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211594603.XA CN116185886B (zh) | 2022-12-13 | 2022-12-13 | 一种匹配表系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116185886A true CN116185886A (zh) | 2023-05-30 |
CN116185886B CN116185886B (zh) | 2023-10-13 |
Family
ID=86447939
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211594603.XA Active CN116185886B (zh) | 2022-12-13 | 2022-12-13 | 一种匹配表系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116185886B (zh) |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1896991A (zh) * | 2006-03-02 | 2007-01-17 | 华为技术有限公司 | 动态范围匹配表维护方法 |
CN104601468A (zh) * | 2015-01-13 | 2015-05-06 | 杭州华三通信技术有限公司 | 报文转发方法和设备 |
CN106254395A (zh) * | 2016-10-08 | 2016-12-21 | 湖南智卓创新信息产业股份有限公司 | 一种数据过滤方法及系统 |
CN106537361A (zh) * | 2014-07-17 | 2017-03-22 | 高通股份有限公司 | 用于通过组和通路将缓存灵活划分成组件缓存的方法和装置 |
CN109150752A (zh) * | 2017-06-16 | 2019-01-04 | 华为技术有限公司 | 缓存控制方法、网元及控制器 |
CN109921996A (zh) * | 2018-12-29 | 2019-06-21 | 长沙理工大学 | 一种高性能的OpenFlow虚拟流表查找方法 |
CN113746893A (zh) * | 2021-07-16 | 2021-12-03 | 苏州浪潮智能科技有限公司 | 一种基于fpga的智能网卡数据转发方法、系统及终端 |
CN114756788A (zh) * | 2021-01-11 | 2022-07-15 | 腾讯科技(深圳)有限公司 | 一种缓存更新方法、装置、设备及存储介质 |
CN115208810A (zh) * | 2021-04-12 | 2022-10-18 | 益思芯科技(上海)有限公司 | 一种转发流表加速方法及装置、电子设备和存储介质 |
-
2022
- 2022-12-13 CN CN202211594603.XA patent/CN116185886B/zh active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1896991A (zh) * | 2006-03-02 | 2007-01-17 | 华为技术有限公司 | 动态范围匹配表维护方法 |
CN106537361A (zh) * | 2014-07-17 | 2017-03-22 | 高通股份有限公司 | 用于通过组和通路将缓存灵活划分成组件缓存的方法和装置 |
CN104601468A (zh) * | 2015-01-13 | 2015-05-06 | 杭州华三通信技术有限公司 | 报文转发方法和设备 |
CN106254395A (zh) * | 2016-10-08 | 2016-12-21 | 湖南智卓创新信息产业股份有限公司 | 一种数据过滤方法及系统 |
CN109150752A (zh) * | 2017-06-16 | 2019-01-04 | 华为技术有限公司 | 缓存控制方法、网元及控制器 |
CN109921996A (zh) * | 2018-12-29 | 2019-06-21 | 长沙理工大学 | 一种高性能的OpenFlow虚拟流表查找方法 |
CN114756788A (zh) * | 2021-01-11 | 2022-07-15 | 腾讯科技(深圳)有限公司 | 一种缓存更新方法、装置、设备及存储介质 |
CN115208810A (zh) * | 2021-04-12 | 2022-10-18 | 益思芯科技(上海)有限公司 | 一种转发流表加速方法及装置、电子设备和存储介质 |
CN113746893A (zh) * | 2021-07-16 | 2021-12-03 | 苏州浪潮智能科技有限公司 | 一种基于fpga的智能网卡数据转发方法、系统及终端 |
Non-Patent Citations (3)
Title |
---|
MOSTAFA DEHGHAN: "On the Analysis of Caches with Pending Interest Tables", 《PROCEEDINGS OF THE 2ND ACM CONFERENCE ON INFORMATION-CENTRIC NETWORKING》 * |
张亚南;邓怡辰;宋强;周锡玲;: "基于缓存策略的OpenFlow流表存储优化方案研究", 电子测试, no. 21 * |
王庆桦;: "动态数据处理平台分布式缓存替换算法仿真", 计算机仿真, no. 02 * |
Also Published As
Publication number | Publication date |
---|---|
CN116185886B (zh) | 2023-10-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9183145B2 (en) | Data caching in a network communications processor architecture | |
US9218290B2 (en) | Data caching in a network communications processor architecture | |
US9444757B2 (en) | Dynamic configuration of processing modules in a network communications processor architecture | |
US6438651B1 (en) | Method, system, and program for managing requests to a cache using flags to queue and dequeue data in a buffer | |
JP4615030B2 (ja) | バッファを再要求するための方法および装置 | |
US7546399B2 (en) | Store and forward device utilizing cache to store status information for active queues | |
US8296480B2 (en) | Context execution in a media controller architecture | |
JP4078445B2 (ja) | データ識別子を複製することによって複数のコピーを送信するための方法および装置 | |
CN100524252C (zh) | 一种嵌入式系统芯片及数据读写处理方法 | |
US8949500B2 (en) | Non-blocking processor bus bridge for network processors or the like | |
US20050235072A1 (en) | Data storage controller | |
JP4275085B2 (ja) | 情報処理装置、情報処理方法、およびデータストリーム生成方法 | |
CN108366111B (zh) | 一种用于交换设备的数据包低时延缓存装置与方法 | |
US20100293353A1 (en) | Task queuing in a network communications processor architecture | |
US20110225372A1 (en) | Concurrent, coherent cache access for multiple threads in a multi-core, multi-thread network processor | |
CN103959261B (zh) | 网络处理器中的多内核互联 | |
JPH04308956A (ja) | 受信バッファ | |
JP4541454B2 (ja) | 受信データの関数としてデータの送信の開始を制御するための方法および装置 | |
US6154796A (en) | Apparatus and method in a network interface device for storing receiving frame status in a holding register | |
CN110058816B (zh) | 一种基于ddr的高速多用户队列管理器及方法 | |
US5745727A (en) | Linked caches memory for storing units of information | |
US9009415B2 (en) | Memory system including a spiral cache | |
US20030131198A1 (en) | Queue array caching in network devices | |
CN116185886B (zh) | 一种匹配表系统 | |
CN112600764B (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 |