CN117312197A - 报文处理方法、装置、电子设备及非易失性存储介质 - Google Patents

报文处理方法、装置、电子设备及非易失性存储介质 Download PDF

Info

Publication number
CN117312197A
CN117312197A CN202311268131.3A CN202311268131A CN117312197A CN 117312197 A CN117312197 A CN 117312197A CN 202311268131 A CN202311268131 A CN 202311268131A CN 117312197 A CN117312197 A CN 117312197A
Authority
CN
China
Prior art keywords
message
random access
forwarded
access memory
processing module
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.)
Pending
Application number
CN202311268131.3A
Other languages
English (en)
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.)
China Telecom Intelligent Network Technology Co ltd
Original Assignee
China Telecom Intelligent Network 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 China Telecom Intelligent Network Technology Co ltd filed Critical China Telecom Intelligent Network Technology Co ltd
Priority to CN202311268131.3A priority Critical patent/CN117312197A/zh
Publication of CN117312197A publication Critical patent/CN117312197A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1605Handling requests for interconnection or transfer for access to memory bus based on arbitration
    • G06F13/1642Handling requests for interconnection or transfer for access to memory bus based on arbitration with request queuing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • G06F13/1673Details of memory controller using buffers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/18Handling requests for interconnection or transfer for access to memory bus based on priority control
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2455Query execution
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/248Presentation of query results

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本申请公开了一种报文处理方法、装置、电子设备及非易失性存储介质。其中,该方法包括:确定可编程网卡中与待转发报文对应的匹配表处理模块,并将待转发报文对应的报文查询读指令缓存至匹配表处理模块的先进先出存储器中,其中,每个匹配表处理模块对应一个随机存储器控制器;在匹配表处理模块中不存在优先级大于报文查询读指令的其余读指令的情况下,将先进先出存储器中的报文查询读指令发送至随机存储器控制器;获取随机存储器控制器响应于报文查询读指令所返回的查询结果,并依据查询结果,转发待转发报文。本申请解决了由于相关技术在可编程网卡进行报文转发时,实时处理和查询转发表项的并发能力差的技术问题。

Description

报文处理方法、装置、电子设备及非易失性存储介质
技术领域
本申请涉及网络技术与安全技术领域,具体而言,涉及一种报文处理方法、装置、电子设备及非易失性存储介质。
背景技术
用户面功能(User Plane Function,UPF)位于第五代移动通信技术(5thGeneration mobile networks,5G)核心网络中,承担着将用户数据从移动设备传输到目的地的任务。为了实现UPF的快速转发,在报文转发过程中引入了现场可编程逻辑门阵列(Field-Programmable Gate Array,FPGA)网卡。中央处理器(Central Processing Unit,CPU)可只做首个报文的处理,而将后续报文的转发卸载到硬件FPGA网卡进行。
相关技术中,在利用FPGA网卡进行报文转发时,大多侧重于表项查找方法的研究,例如侧重于研究利用五元组精确匹配来进行报文查找转发,对报文实时转发中的复杂情况缺乏全盘考虑,对于上层软件读写表、表项老化、实时报文转发查表等并发访问表项资源的情况的处理能力差。
针对上述的问题,目前尚未提出有效的解决方案。
发明内容
本申请实施例提供了一种报文处理方法、装置、电子设备及非易失性存储介质,以至少解决由于相关技术在可编程网卡进行报文转发时,实时处理和查询转发表项的并发能力差的技术问题。
根据本申请实施例的一个方面,提供了一种报文处理方法,包括:确定可编程网卡中与待转发报文对应的匹配表处理模块,并将待转发报文对应的报文查询读指令缓存至匹配表处理模块的先进先出存储器中,其中,每个匹配表处理模块对应一个随机存储器控制器,每个先进先出存储器对应一个随机存储器控制器对应的随机存储器中的存储区域;在匹配表处理模块中不存在优先级大于报文查询读指令的其余读指令的情况下,将先进先出存储器中的报文查询读指令发送至随机存储器控制器;获取随机存储器控制器响应于报文查询读指令所返回的查询结果,并依据查询结果,转发待转发报文,其中,查询结果用于指示待转发报文下一步计划发送至的网络端口。
可选地,确定可编程网卡中与待转发报文对应的匹配表处理模块包括:确定待转发报文的五元组信息对应的哈希值,其中,哈希值用于标识待转发报文,五元组信息包括:源互联网协议地址、目的互联网协议地址、源端口、目的端口和传输协议;依据哈希值中预设比特位的取值,确定待转发报文对应的匹配表处理模块,其中,预设比特位的不同取值分别对应不同的匹配表处理模块。
可选地,将先进先出存储器中的报文查询读指令发送至随机存储器控制器包括:确定匹配表处理模块中各个读指令所对应的优先级;在匹配表处理模块中不存在优先级大于报文查询读指令的其余读指令的情况下,将先进先出存储器中的报文查询读指令发送至随机存储器访问请求存储器中,并在随机存储器访问请求存储器中将报文查询读指令对应的第一时钟域转换为第二时钟域,其中,第一时钟域为匹配表处理模块的时钟域,第二时钟域为随机存储器的时钟域;将经过时钟域转换的报文查询读指令发送至随机存储器控制器。
可选地,获取随机存储器控制器响应于报文查询读指令所返回的查询结果包括:获取查询结果,其中,查询结果是由随机存储器控制器依据报文查询读指令所对应的待转发报文的五元组信息,查询随机存储器中存储的待转发报文对应的精确匹配表得到的,其中,精确匹配表中包括:待转发报文的五元组信息、以及与五元组信息对应的待转发报文下一步计划发送至的网络端口。
可选地,方法还包括:在可编程网卡的随机存储器中不存在待转发报文对应的精确匹配表的情况下,接收中央处理器下发的待转发报文对应的精确匹配表;依据精确匹配表,生成流表写指令,并依据待转发报文对应的哈希值中预设比特位的取值,确定待转发报文对应的匹配表处理模块;将流表写指令发送至与待转发报文对应的匹配表处理模块,其中,流表写指令用于将精确匹配表写入随机存储器中;在匹配表处理模块中不存在优先级大于流表写指令的其余写指令的情况下,将流表写指令缓存至写指令存储器中,并在匹配表处理模块中不存在读指令的情况下,将写指令存储器中的流表写指令发送至随机存储器控制器,以使随机存储器控制器将精确匹配表写入随机存储器中。
可选地,方法还包括:在可编程网卡接收待转发报文时,按照接收到待转发报文的顺序,对待转发报文进行编号,其中,每个编号对应一个重排序缓存存储器,每个重排序缓存存储器对应一个随机存储器中的存储区域;依据待转发报文的哈希值对应的存储区域,将待转发报文的查询结果,存储至存储区域对应的重排序缓存存储器中;按照重排序缓存存储器对应的编号的顺序,从重排序缓存存储器中依次读出查询结果,并依据查询结果,转发待转发报文。
可选地,方法还包括:按照预设周期向匹配表处理模块中发送老化读指令,其中,老化读指令用于读取随机存储器中精确匹配表的最后访问时间;在匹配表处理模块中不存在优先级大于报文查询读指令的其余读指令的情况下,将老化读指令发送至随机存储器访问请求存储器中,并在随机存储器访问请求存储器中将老化读指令对应的第一时钟域转换为第二时钟域,其中,第一时钟域为匹配表处理模块的时钟域,第二时钟域为随机存储器的时钟域,老化读指令的优先级高于报文查询读指令的优先级;将经过时钟域转换的老化读指令发送至随机存储器控制器,并获取随机存储器控制器相应于老化读指令所返回的最后访问时间;将最后访问时间对应的第二时钟域转换为第一时钟域,并在经过时钟域转换后的最后访问时间与当前时间的差值超出老化时间阈值的情况下,生成老化写指令,其中,老化写指令用于释放随机存储器中差值超出老化时间阈值的精确匹配表;在匹配表处理模块中不存在优先级大于老化写指令的其余写指令的情况下,将老化写指令缓存至写指令存储器中,并在匹配表处理模块中不存在读指令的情况下,将写指令存储器中的老化写指令发送至随机存储器控制器,以使随机存储器控制器释放随机存储器中对应的精确匹配表。
根据本申请实施例的另一个方面,还提供了一种报文处理装置,包括:第一指令处理模块,用于确定可编程网卡中与待转发报文对应的匹配表处理模块,并将待转发报文对应的报文查询读指令缓存至匹配表处理模块的先进先出存储器中,其中,每个匹配表处理模块对应一个随机存储器控制器,每个先进先出存储器对应一个随机存储器控制器对应的随机存储器中的存储区域;第二指令处理模块,用于在匹配表处理模块中不存在优先级大于报文查询读指令的其余读指令的情况下,将先进先出存储器中的报文查询读指令发送至随机存储器控制器;报文转发模块,用于获取随机存储器控制器响应于报文查询读指令所返回的查询结果,并依据查询结果,转发待转发报文,其中,查询结果用于指示待转发报文下一步计划发送至的网络端口。
根据本申请实施例的又一方面,还提供了一种电子设备,包括:存储器和处理器,处理器用于运行存储在存储器中的程序,其中,程序运行时执行报文处理方法。
根据本申请实施例的再一方面,还提供了一种非易失性存储介质,非易失性存储介质包括存储的计算机程序,其中,非易失性存储介质所在设备通过运行计算机程序执行报文处理方法。
在本申请实施例中,采用确定可编程网卡中与待转发报文对应的匹配表处理模块,并将待转发报文对应的报文查询读指令缓存至匹配表处理模块的先进先出存储器中,其中,每个匹配表处理模块对应一个随机存储器控制器,每个先进先出存储器对应一个随机存储器控制器对应的随机存储器中的存储区域;在匹配表处理模块中不存在优先级大于报文查询读指令的其余读指令的情况下,将先进先出存储器中的报文查询读指令发送至随机存储器控制器;获取随机存储器控制器响应于报文查询读指令所返回的查询结果,并依据查询结果,转发待转发报文,其中,查询结果用于指示待转发报文下一步计划发送至的网络端口的方式,通过将五元组精确表存储到不同的(双倍速率同步动态随机存储器(DoubleData Rate Synchronous Dynamic Random Access Memory,DDR)的存储区域BANK中,并为每一个DDR BANK建立一个对应的访问请求缓存队列。当大量用户上线业务需要访问精确表时,根据精确表的哈希地址将其访问请求入队到相应BANK的访问请求缓存队列。出队则对每个BANK的访问请求缓存队列做轮询,并通过仲裁和多级缓存读写指令,达到了将对精确表的访问请求均匀的分布在不同的DDR BANK,使得对位于不同BANK的精确表访问可以并行执行,以及支持CPU读写表项、老化表项、实时报文转发查询表项等多种功能并行无冲突访问表项的同时,仍能保证处理报文的高吞吐率和稳定的低时延的目的,进而解决了由于相关技术在可编程网卡进行报文转发时,实时处理和查询转发表项的并发能力差技术问题。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1是根据本申请实施例提供的一种用于实现报文处理的方法的计算机终端(或电子设备)的硬件结构框图;
图2是根据本申请实施例提供的一种报文处理的方法流程的示意图;
图3是根据本申请实施例提供的一种可编程网卡的模块总体架构示意图;
图4是根据本申请实施例提供的一种匹配表处理模块内部架构的示意图;
图5是根据本申请实施例提供的一种重排序模块内部的示意图;
图6是根据本申请实施例提供的一种精确匹配实时处理模块实施示例图;
图7是根据本申请实施例提供的一种报文处理装置的结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分的实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范围。
需要说明的是,本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
为了方便本领域技术人员更好地理解本申请实施例,现将本申请实施例涉及的部分技术术语或者名词解释如下:
现场可编程逻辑门阵列(Field-Programmable Gate Array,FPGA):是一种可编程逻辑器件,用于实现数字电路和逻辑功能。它由一系列可编程的逻辑块(Logic Blocks)、输入/输出引脚和内部互连资源组成。
用户面功能(User Plane Function,UPF):是5G网络的关键组件之一,负责处理用户数据流量。UPF充当无线接入网络和核心网络之间的网关。它执行数据包路由、转发和服务质量强制等功能。
向量包处理引擎(Vector Packet Processing,VPP):是一种高性能网络数据平面处理框架。
DDR BANK:内存芯片中的一个独立存储区域。每个DDR芯片通常由多个BANK组成,而每个BANK又包含多个行和列。
在相关技术中,为了实现UPF的快速转发,在报文转发过程中引入了FPGA网卡。CPU可只做首个报文的处理,而将后续报文的转发卸载到硬件FPGA网卡进行,以此来,保证报文转发的低时延和稳定性。因此,在FPGA网卡中如何实时处理和查询转发表项至关重要。
五元组精确匹配作为一种网络流量识别和过滤技术被广泛使用,然而,相关技术对于FPGA网卡进行报文转发在利用FPGA网卡进行报文转发时,大多侧重于表项查找方法的研究,例如五元组哈希值HASH,对报文实时转发中的复杂情况缺乏全盘考虑,例如,报文转发过程中表的数量受到FPGA片内RAM资源的限制;另外,相关技术对于上层软件读写表、表项老化、实时报文转发查表等并发访问表项资源的情况的处理能力差,无法保证这些并发访问能够实时响应并且不相互冲突。
为了解决上述问题,本申请实施例中提供了相关的解决方案,以下详细说明。
根据本申请实施例,提供了一种报文处理的方法实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
本申请实施例所提供的方法实施例可以在移动终端、计算机终端或者类似的运算装置中执行。图1示出了一种用于实现报文处理方法的计算机终端(或电子设备)的硬件结构框图。如图1所示,计算机终端10(或电子设备)可以包括一个或多个(图中采用102a、102b,……,102n来示出)处理器102(处理器102可以包括但不限于微处理器MCU或可编程逻辑器件FPGA等的处理装置)、用于存储数据的存储器104、以及用于通信功能的传输装置106。除此以外,还可以包括:显示器、输入/输出接口(I/O接口)、通用串行总线(USB)端口(可以作为BUS总线的端口中的一个端口被包括)、网络接口、电源和/或相机。本领域普通技术人员可以理解,图1所示的结构仅为示意,其并不对上述电子装置的结构造成限定。例如,计算机终端10还可包括比图1中所示更多或者更少的组件,或者具有与图1所示不同的配置。
应当注意到的是上述一个或多个处理器102和/或其他数据处理电路在本文中通常可以被称为“数据处理电路”。该数据处理电路可以全部或部分的体现为软件、硬件、固件或其他任意组合。此外,数据处理电路可为单个独立的处理模块,或全部或部分的结合到计算机终端10(或电子设备)中的其他元件中的任意一个内。如本申请实施例中所涉及到的,该数据处理电路作为一种处理器控制(例如与接口连接的可变电阻终端路径的选择)。
存储器104可用于存储应用软件的软件程序以及模块,如本申请实施例中的报文处理方法对应的程序指令/数据存储装置,处理器102通过运行存储在存储器104内的软件程序以及模块,从而执行各种功能应用以及数据处理,即实现上述报文处理方法。存储器104可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器104可进一步包括相对于处理器102远程设置的存储器,这些远程存储器可以通过网络连接至计算机终端10。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
传输装置106用于经由一个网络接收或者发送数据。上述的网络具体实例可包括计算机终端10的通信供应商提供的无线网络。在一个实例中,传输装置106包括一个网络适配器(Network Interface Controller,NIC),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实例中,传输装置106可以为射频(Radio Frequency,RF)模块,其用于通过无线方式与互联网进行通讯。
显示器可以例如触摸屏式的液晶显示器(LCD),该液晶显示器可使得用户能够与计算机终端10(或电子设备)的用户界面进行交互。
在上述运行环境下,本申请实施例提供了一种报文处理方法,图2是根据本申请实施例提供的一种报文处理的方法流程的示意图,如图2所示,该方法包括如下步骤:
步骤S202,确定可编程网卡中与待转发报文对应的匹配表处理模块,并将待转发报文对应的报文查询读指令缓存至匹配表处理模块的先进先出存储器中,其中,每个匹配表处理模块对应一个随机存储器控制器,每个先进先出存储器对应一个随机存储器控制器对应的随机存储器中的存储区域;
步骤S204,在匹配表处理模块中不存在优先级大于报文查询读指令的其余读指令的情况下,将先进先出存储器中的报文查询读指令发送至随机存储器控制器;
步骤S206,获取随机存储器控制器响应于报文查询读指令所返回的查询结果,并依据查询结果,转发待转发报文,其中,查询结果用于指示待转发报文下一步计划发送至的网络端口。
通过上述步骤,通过将五元组精确表存储到不同的DDR的存储区域BANK中,并为每一个DDR BANK建立一个对应的访问请求缓存队列,即上述与存储区域BANK对应的先进先出存储器。当大量用户上线业务需要访问精确表时,根据精确表的哈希地址将其访问请求入队到相应BANK的访问请求缓存队列。出队则对每个BANK的访问请求缓存队列做轮询,并通过仲裁和多级缓存读写指令,达到了将对精确表的访问请求均匀的分布在不同的DDRBANK,使得对位于不同BANK的精确表访问可以并行执行,以及支持CPU读写表项、老化表项、实时报文转发查询表项等多种功能并行无冲突访问表项的同时,仍能保证处理报文的高吞吐率和稳定的低时延的目的,进而解决了由于相关技术在可编程网卡进行报文转发时,实时处理和查询转发表项的并发能力差技术问题。
在本实施例中,上述可编程网卡以FPGA为例进行说明,可以通过Verilog HDL硬件语言对FPGA进行编程设计来实现上述报文处理方法,下面对本申请实施例的步骤S202至步骤S206中报文处理方法进一步进行介绍。
图3是根据本申请实施例提供的一种可编程网卡的模块总体架构示意图,如图3所示,图3中所示的DDR4控制器即为上述随机存储器控制器,图3中所示的DDR4即为上述随机存储器。通过图3所示的可编程网卡可以执行如下三个流程:1)实时报文查询精确匹配表确定转发行为的流程,2)首包报文上送至CPU匹配后CPU下发精确匹配表的流程,3)精确匹配表老化的流程。下面对这三个流程进行介绍。
首先,在实时报文查询精确匹配表确定转发行为的流程(即报文查表流程)中,在接收到报文后,会先确定可编程网卡中与待转发报文对应的匹配表处理模块,其中,每个匹配表处理模块对应一个随机存储器控制器(DDR4控制器);
其中,确定可编程网卡中与待转发报文对应的匹配表处理模块的具体步骤如下。
在本申请的一些实施例中,确定可编程网卡中与待转发报文对应的匹配表处理模块包括以下步骤:确定待转发报文的五元组信息对应的哈希值,其中,哈希值用于标识待转发报文,五元组信息包括:源互联网协议地址、目的互联网协议地址、源端口、目的端口和传输协议;依据哈希值中预设比特位的取值,确定待转发报文对应的匹配表处理模块,其中,预设比特位的不同取值分别对应不同的匹配表处理模块。
具体地,可以通过图3中所示的报文查询分发模块查看收到的待转发报文的五元组信息对应的哈希值(HASH地址)中的某一预设比特位(例如,可以选择第16比特位),然后根据该预设比特位的取值,确定待转发报文对应的匹配表处理模块,例如,若该比特位取值为0,则选择图3中上方的匹配表处理模块,反之,若取值为1,则选择图3中下方的匹配表处理模块,其中,匹配表处理模块的个数与DDR4控制器的个数相同。
由于该预设比特位的取值具有随机性,因此可以将报文查询请求(读写指令)均匀分发到图3中的2个匹配表处理模块中,即将待转发报文对应的报文查询读指令缓存至匹配表处理模块的先进先出存储器中,然后2个匹配表处理模块通过随机存储器控制器(DDR4控制器)读取精确匹配表,然后将查询到的表项输出到重排序模块进行重排序,确保查询结果与对应的报文顺序相同,下面对匹配表处理模块内部执行的上述报文查表流程进行进一步说明。
图4是根据本申请实施例提供的一种匹配表处理模块内部架构的示意图,如图4所示,图4中所示的FIFO(0-3)即为上述先进先出存储器,其中,每个先进先出存储器对应一个随机存储器控制器(DDR4控制器)对应的随机存储器(DDR4)中的存储区域(BANK)。
在图4中所示的查询处理模块将待转发报文对应的报文查询读指令缓存至匹配表处理模块的先进先出存储器中,然后由图4中所示的读指令仲裁器仲裁,来判断在匹配表处理模块中存在优先级大于报文查询读指令的其余读指令,在本实施中,仲裁优先级如下:初始化模块>老化模块>配置模块>查询处理模块,即初始化模块发送的读指令的优先级最大,查询处理模块发送的报文查询读指令的优先级最小。
在匹配表处理模块中不存在优先级大于报文查询读指令的其余读指令的情况下,将先进先出存储器中的报文查询读指令发送至随机存储器控制器,具体步骤如下。
在本申请的一些实施例中,将先进先出存储器中的报文查询读指令发送至随机存储器控制器包括以下步骤:确定匹配表处理模块中各个读指令所对应的优先级;在匹配表处理模块中不存在优先级大于报文查询读指令的其余读指令的情况下,将先进先出存储器中的报文查询读指令发送至随机存储器访问请求存储器中,并在随机存储器访问请求存储器中将报文查询读指令对应的第一时钟域转换为第二时钟域,其中,第一时钟域为匹配表处理模块的时钟域,第二时钟域为随机存储器的时钟域;将经过时钟域转换的报文查询读指令发送至随机存储器控制器。
具体地,读指令仲裁器在匹配表处理模块中不存在优先级大于报文查询读指令的其余读指令的情况下,将先进先出存储器(FIFO)中的报文查询读指令读出至随机存储器访问请求存储器(即图4中所示的DDR访问请求FIFO)中,进行系统时钟域(即上述第一时钟域)到DDR时钟域(即上述第二时钟域)的转换,在进行完时钟域转换之后,再从随机存储器访问请求存储器读出发送至随机存储器控制器,执行该指令。
另外,在将先进先出存储器(FIFO)中的报文查询读指令读出至随机存储器访问请求存储器的同时,将报文查询读指令保存至图4中所示的读指令缓存FIFO中,以便后续返回查询结果后,读数据仲裁器依据读指令缓存FIFO中缓存的读指令来判断该查询结果所应返回的模块(查询处理模块、配置模块、老化模块等)。
在随机存储器控制器响应于报文查询读指令返回的查询结果之后,获取查询结果,其中,查询结果是由随机存储器控制器依据报文查询读指令所对应的待转发报文的五元组信息,查询随机存储器中存储的待转发报文对应的精确匹配表得到的,其中,精确匹配表中包括:待转发报文的五元组信息、以及与五元组信息对应的待转发报文下一步计划发送至的网络端口。
然后将获取到的查询结果(即读数据)先缓存至图4中所示的DDR读数据FIFO中,之后再从DDR读数据FIFO中写入图4中所示的读数据存储FIFO进行DDR时钟域(第二时钟域)到系统时钟域(第一时钟域)的转换,并将转换后的查询结果,通过读数据仲裁器返回到查询处理模块。
由于在报文查表流程中是按照DDR的BANK组轮询查精确匹配流表,因此,在输出查询结果时,包信息之间的顺序被打乱,因此,查询处理模块在接收到待转发报文的查询结果后,为了保持输出的报文查表结果与输入的报文顺序相同,可以将查询结果发送至图4所示的重排序模块进行排序,图5是根据本申请实施例提供的一种重排序模块内部的示意图,如图5所示,具体步骤如下。
在本申请的一些实施例中,方法还包括以下步骤:在可编程网卡接收待转发报文时,按照接收到待转发报文的顺序,对待转发报文进行编号,其中,每个编号对应一个重排序缓存存储器,每个重排序缓存存储器对应一个随机存储器中的存储区域;依据待转发报文的哈希值对应的存储区域,将待转发报文的查询结果,存储至存储区域对应的重排序缓存存储器中;按照重排序缓存存储器对应的编号的顺序,从重排序缓存存储器中依次读出查询结果,并依据查询结果,转发待转发报文。
具体地,在接收待转发报文时,按照接收到待转发报文的顺序对每个报文编号,例如,编号可以从0开始,逐一自增,将待转发报文的编号和其对应的哈希值对应的存储区域(BANK)的信息存入图5中所示的报文序列信息缓存FIFO中记录。
然后,收到匹配表处理模块得到的查询结果后,按照待转发报文的五元组信息对应的哈希值所对应的存储区域,将查询结果和对应的编号写入对应的重排序缓存存储器(即图5所示的重排序缓存FIFO)中,其中,每个重排序缓存存储器对应一个随机存储器中的存储区域,举例说明,图3所示的可编程网卡中有2个随机存储器控制器(DDR4控制器),每个随机存储器控制器(DDR4控制器)下的随机存储器(DDR4)有4个存储区域(BANK),因此图5中的重排序缓存存储器(重排序缓存FIFO)有8个。
在输出转发报文的查询结果,进行报文转发时,可以从报文序列信息缓存FIFO中依次读出待转发报文的信息,并该待转发报文对应的存储区域所对应的重排序缓存FIFO中读出查询结果和报文的编号,若报文序列信息缓存FIFO中记录的该报文的编号与重排序缓存FIFO中读出的该报文的编号一致,则判定重排序正确,输出查询结果,并依据查询结果,转发待转发报文,若不一致,则判定重排序错误,上报给软件层。
另外,查询处理模块将查询结果发送给重排序模块时,还生成流表更新写指令,存入存储器中(即图4中所示的写指令FIFO),然后经过DDR指令仲裁器仲裁判断匹配表处理模块中是否存在读指令,并在匹配表处理模块中不存在读指令的情况下,将写指令存储器中的流表更新写指令写入随机存储器访问请求存储器中进行时钟域转换,并在时钟域转换完成后将流表更新写指令发送至随机存储器控制器执行,在本实施例中读指令的优先级大于写指令的优先级。
下面对首包报文上送至CPU匹配后CPU下发精确匹配表的流程(即配置模块读写表流程)做进一步介绍。
在本申请的一些实施例中,方法还包括以下步骤:在可编程网卡的随机存储器中不存在待转发报文对应的精确匹配表的情况下,接收中央处理器下发的待转发报文对应的精确匹配表;依据精确匹配表,生成流表写指令,并依据待转发报文对应的哈希值中预设比特位的取值,确定待转发报文对应的匹配表处理模块;将流表写指令发送至与待转发报文对应的匹配表处理模块,其中,流表写指令用于将精确匹配表写入随机存储器中;在匹配表处理模块中不存在优先级大于流表写指令的其余写指令的情况下,将流表写指令缓存至写指令存储器中,并在匹配表处理模块中不存在读指令的情况下,将写指令存储器中的流表写指令发送至随机存储器控制器,以使随机存储器控制器将精确匹配表写入随机存储器中。
具体地,在可编程网卡的随机存储器中不存在待转发报文对应的精确匹配表的情况下,即接收到首包报文的情况下,将首包报文上送至CPU匹配确定精确匹配表,即将首包报文在上层软件进行匹配,在匹配完成确定了该报文的转发行为后,由CPU下发精确匹配表至图4中所示的配置模块,由配置模块生成流表写指令,并将流表写指令发送至与待转发报文对应的匹配表处理模块,匹配表处理模块通过随机存储器控制器来将精确匹配表写入随机存储器中存储。
需要说明的是,对于配置模块发送的流表写指令的处理流程与上述报文查表流程中对查询处理模块发送的流表更新写指令的步骤一致,在此就不再赘述;以及,配置模块同样可以发送读指令,对于配置模块发送的读指令的处理流程与上述报文查表流程中对查询处理模块发送的报文查询读指令的步骤一致,区别点仅在与得到读指令对应的查询结果后,所返回的模块不同(即配置模块发送的读指令对应的查询结果应返回给配置模块),同样不再赘述。可以参见上述报文查表流程的相关解释说明。
下面精确匹配表老化的流程做进一步介绍。
在本申请的一些实施例中,方法还包括以下步骤:按照预设周期向匹配表处理模块中发送老化读指令,其中,老化读指令用于读取随机存储器中精确匹配表的最后访问时间;在匹配表处理模块中不存在优先级大于报文查询读指令的其余读指令的情况下,将老化读指令发送至随机存储器访问请求存储器中,并在随机存储器访问请求存储器中将老化读指令对应的第一时钟域转换为第二时钟域,其中,第一时钟域为匹配表处理模块的时钟域,第二时钟域为随机存储器的时钟域,老化读指令的优先级高于报文查询读指令的优先级;将经过时钟域转换的老化读指令发送至随机存储器控制器,并获取随机存储器控制器相应于老化读指令所返回的最后访问时间;将最后访问时间对应的第二时钟域转换为第一时钟域,并在经过时钟域转换后的最后访问时间与当前时间的差值超出老化时间阈值的情况下,生成老化写指令,其中,老化写指令用于释放随机存储器中差值超出老化时间阈值的精确匹配表;在匹配表处理模块中不存在优先级大于老化写指令的其余写指令的情况下,将老化写指令缓存至写指令存储器中,并在匹配表处理模块中不存在读指令的情况下,将写指令存储器中的老化写指令发送至随机存储器控制器,以使随机存储器控制器释放随机存储器中对应的精确匹配表。
具体地,由图4中所示的老化模块按照预设时间周期发送老化读指令,读取随机存储器中存储的精确匹配表的最后访问时间,并判断最后访问时间与当前时间的差值手否超出老化时间阈值,若超出,则生成老化写指令发送至随机存储器控制器,来释放随机存储器中超出老化时间阈值的精确匹配表。当某个精确匹配表的表项被老化后,还会通过消息上送模块发送老化消息给CPU,保证软件与FPGA网卡的表项同步。
需要说明的是,对于老化模块发送的老化读指令和老化写指令的处理流程与上述报文查表流程中对查询处理模块发送的报文查询读指令和流表更新写指令的步骤一致,区别点仅在与得到读指令对应的查询结果后,所返回的模块不同(即老化模块发送的老化读指令对应的查询结果应返回给老化模块),在此不再赘述。可以参见上述报文查表流程的相关解释说明。
本申请方案可以在FPGA网络设备(例如FPGA网卡)中作为网络报文转发处理流程中的一环进行实施,下面进行举例说明。
图6是根据本申请实施例提供的一种精确匹配实时处理模块实施示例图,如图6所示,FPGA网卡结合网络报文软件处理框架(例如VPP)进行报文转发处理的过程如下。
具体地,首包报文经过光端口进入FPGA网卡,精确匹配不命中,即FPGA网卡的随机存储器中不存在该报文对应的精确匹配表的情况下,通过网口上送至CPU交给VPP处理。VPP确定报文处理行为(如转发行为),并将对应的精确匹配表通过PCIE总线下发至FPGA网卡的精确匹配实时处理模块(匹配表处理模块),将精确匹配表写入FPGA网卡的随机存储器中。
之后,首包报文下发至FPGA网卡时,重新进行精确匹配,命中匹配表,送至查询结果中标识的目的光口(即在精确匹配表中查询到报文对应的查询结果)转发。
后续,光口接收同类的非首包报文,查询精确匹配表命中表项,送至查询结果中标识的目的光口转发。
本申请方案通过外挂的DDR存储精确匹配表,来支持业务大容量流表(千万级)的处理需求;将五元组精确表存储到不同的DDR BANK中,并为每一个DDR BANK建立一个对应的访问请求缓存队列。当大量用户上线业务需要访问精确表时,根据精确表的哈希地址(HASH)将其访问请求入队到相应BANK的访问请求缓存队列。出队则对每个BANK的访问请求缓存队列做轮询,HASH的随机性可以保证对精确表的访问请求均匀的分布在不同的DDRBANK;而对每个BANK的访问请求缓存队列做轮询出队则避免了连续访问同一个DDR BANK导致的额外行预充电时间和行命中延迟,使得对位于不同BANK的精确表访问可以并行执行,无需等待一个BANK的数据返回再发送另一个BANK的访问请求,提高了带宽利用率;并通过仲裁和多级缓存读写指令,达到了支持CPU读写表项、老化表项、实时报文转发查询表项等多种功能并行无冲突访问表项的同时,仍能保证处理报文的高吞吐率和稳定的低时延的目的。
根据本申请实施例,还提供了一种报文处理装置的实施例。图7是根据本申请实施例提供的一种报文处理装置的结构示意图。如图7所示,该装置包括:
第一指令处理模块70,用于确定可编程网卡中与待转发报文对应的匹配表处理模块,并将待转发报文对应的报文查询读指令缓存至匹配表处理模块的先进先出存储器中,其中,每个匹配表处理模块对应一个随机存储器控制器,每个先进先出存储器对应一个随机存储器控制器对应的随机存储器中的存储区域;
第二指令处理模块72,用于在匹配表处理模块中不存在优先级大于报文查询读指令的其余读指令的情况下,将先进先出存储器中的报文查询读指令发送至随机存储器控制器;
报文转发模块74,用于获取随机存储器控制器响应于报文查询读指令所返回的查询结果,并依据查询结果,转发待转发报文,其中,查询结果用于指示待转发报文下一步计划发送至的网络端口。
需要说明的是,上述报文处理装置中的各个模块可以是程序模块(例如是实现某种特定功能的程序指令集合),也可以是硬件模块,对于后者,其可以表现为以下形式,但不限于此:上述各个模块的表现形式均为一个处理器,或者,上述各个模块的功能通过一个处理器实现。
需要说明的是,本实施例中所提供的报文处理装置可用于执行图2所示的报文处理方法,因此,对上述报文处理方法的相关解释说明也适用于本申请实施例中,在此不再赘述。
本申请实施例还提供了一种非易失性存储介质,非易失性存储介质包括存储的计算机程序,其中,非易失性存储介质所在设备通过运行计算机程序执行以下报文处理方法:确定可编程网卡中与待转发报文对应的匹配表处理模块,并将待转发报文对应的报文查询读指令缓存至匹配表处理模块的先进先出存储器中,其中,每个匹配表处理模块对应一个随机存储器控制器,每个先进先出存储器对应一个随机存储器控制器对应的随机存储器中的存储区域;在匹配表处理模块中不存在优先级大于报文查询读指令的其余读指令的情况下,将先进先出存储器中的报文查询读指令发送至随机存储器控制器;获取随机存储器控制器响应于报文查询读指令所返回的查询结果,并依据查询结果,转发待转发报文,其中,查询结果用于指示待转发报文下一步计划发送至的网络端口。
上述本申请实施例序号仅仅为了描述,不代表实施例的优劣。
在本申请的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本申请所提供的几个实施例中,应该理解到,所揭露的技术内容,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如单元的划分,可以为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。
作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本申请各个实施例方法的全部或部分步骤。而前述的存储介质包括:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
以上仅是本申请的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本申请的保护范围。

Claims (10)

1.一种报文处理方法,其特征在于,包括:
确定可编程网卡中与待转发报文对应的匹配表处理模块,并将所述待转发报文对应的报文查询读指令缓存至所述匹配表处理模块的先进先出存储器中,其中,每个所述匹配表处理模块对应一个随机存储器控制器,每个所述先进先出存储器对应一个所述随机存储器控制器对应的随机存储器中的存储区域;
在所述匹配表处理模块中不存在优先级大于所述报文查询读指令的其余读指令的情况下,将所述先进先出存储器中的所述报文查询读指令发送至所述随机存储器控制器;
获取所述随机存储器控制器响应于所述报文查询读指令所返回的查询结果,并依据所述查询结果,转发所述待转发报文,其中,所述查询结果用于指示所述待转发报文下一步计划发送至的网络端口。
2.根据权利要求1所述的报文处理方法,其特征在于,确定可编程网卡中与待转发报文对应的匹配表处理模块包括:
确定所述待转发报文的五元组信息对应的哈希值,其中,所述哈希值用于标识所述待转发报文,所述五元组信息包括:源互联网协议地址、目的互联网协议地址、源端口、目的端口和传输协议;
依据所述哈希值中预设比特位的取值,确定所述待转发报文对应的所述匹配表处理模块,其中,所述预设比特位的不同取值分别对应不同的所述匹配表处理模块。
3.根据权利要求2所述的报文处理方法,其特征在于,将所述先进先出存储器中的所述报文查询读指令发送至所述随机存储器控制器包括:
确定所述匹配表处理模块中各个读指令所对应的优先级;
在所述匹配表处理模块中不存在优先级大于所述报文查询读指令的其余读指令的情况下,将所述先进先出存储器中的所述报文查询读指令发送至随机存储器访问请求存储器中,并在所述随机存储器访问请求存储器中将所述报文查询读指令对应的第一时钟域转换为第二时钟域,其中,所述第一时钟域为所述匹配表处理模块的时钟域,所述第二时钟域为所述随机存储器的时钟域;
将经过时钟域转换的所述报文查询读指令发送至所述随机存储器控制器。
4.根据权利要求3所述的报文处理方法,其特征在于,获取所述随机存储器控制器响应于所述报文查询读指令所返回的查询结果包括:
获取所述查询结果,其中,所述查询结果是由所述随机存储器控制器依据所述报文查询读指令所对应的待转发报文的所述五元组信息,查询所述随机存储器中存储的所述待转发报文对应的精确匹配表得到的,其中,所述精确匹配表中包括:所述待转发报文的五元组信息、以及与所述五元组信息对应的所述待转发报文下一步计划发送至的网络端口。
5.根据权利要求4所述的报文处理方法,其特征在于,所述方法还包括:
在所述可编程网卡的所述随机存储器中不存在所述待转发报文对应的精确匹配表的情况下,接收中央处理器下发的所述待转发报文对应的所述精确匹配表;
依据所述精确匹配表,生成流表写指令,并依据所述待转发报文对应的所述哈希值中预设比特位的取值,确定所述待转发报文对应的所述匹配表处理模块;
将所述流表写指令发送至与所述待转发报文对应的所述匹配表处理模块,其中,所述流表写指令用于将所述精确匹配表写入所述随机存储器中;
在所述匹配表处理模块中不存在优先级大于所述流表写指令的其余写指令的情况下,将所述流表写指令缓存至写指令存储器中,并在所述匹配表处理模块中不存在读指令的情况下,将所述写指令存储器中的所述流表写指令发送至所述随机存储器控制器,以使所述随机存储器控制器将所述精确匹配表写入所述随机存储器中。
6.根据权利要求4所述的报文处理方法,其特征在于,所述方法还包括:
在所述可编程网卡接收所述待转发报文时,按照接收到所述待转发报文的顺序,对所述待转发报文进行编号,其中,每个所述编号对应一个重排序缓存存储器,每个所述重排序缓存存储器对应一个所述随机存储器中的存储区域;
依据所述待转发报文的所述哈希值对应的所述存储区域,将所述待转发报文的所述查询结果,存储至所述存储区域对应的所述重排序缓存存储器中;
按照所述重排序缓存存储器对应的所述编号的顺序,从所述重排序缓存存储器中依次读出所述查询结果,并依据所述查询结果,转发所述待转发报文。
7.根据权利要求1所述的报文处理方法,其特征在于,所述方法还包括:
按照预设周期向所述匹配表处理模块中发送老化读指令,其中,所述老化读指令用于读取所述随机存储器中精确匹配表的最后访问时间;
在所述匹配表处理模块中不存在优先级大于所述报文查询读指令的其余读指令的情况下,将所述老化读指令发送至随机存储器访问请求存储器中,并在所述随机存储器访问请求存储器中将所述老化读指令对应的第一时钟域转换为第二时钟域,其中,所述第一时钟域为所述匹配表处理模块的时钟域,所述第二时钟域为所述随机存储器的时钟域,所述老化读指令的优先级高于所述报文查询读指令的优先级;
将经过时钟域转换的所述老化读指令发送至所述随机存储器控制器,并获取所述随机存储器控制器相应于所述老化读指令所返回的所述最后访问时间;
将所述最后访问时间对应的所述第二时钟域转换为所述第一时钟域,并在所述经过时钟域转换后的所述最后访问时间与当前时间的差值超出老化时间阈值的情况下,生成老化写指令,其中,所述老化写指令用于释放所述随机存储器中所述差值超出老化时间阈值的所述精确匹配表;
在所述匹配表处理模块中不存在优先级大于所述老化写指令的其余写指令的情况下,将所述老化写指令缓存至写指令存储器中,并在所述匹配表处理模块中不存在读指令的情况下,将所述写指令存储器中的所述老化写指令发送至所述随机存储器控制器,以使所述随机存储器控制器释放所述随机存储器中对应的所述精确匹配表。
8.一种报文处理装置,其特征在于,包括:
第一指令处理模块,用于确定可编程网卡中与待转发报文对应的匹配表处理模块,并将所述待转发报文对应的报文查询读指令缓存至所述匹配表处理模块的先进先出存储器中,其中,每个所述匹配表处理模块对应一个随机存储器控制器,每个所述先进先出存储器对应一个所述随机存储器控制器对应的随机存储器中的存储区域;
第二指令处理模块,用于在所述匹配表处理模块中不存在优先级大于所述报文查询读指令的其余读指令的情况下,将所述先进先出存储器中的所述报文查询读指令发送至所述随机存储器控制器;
报文转发模块,用于获取所述随机存储器控制器响应于所述报文查询读指令所返回的查询结果,并依据所述查询结果,转发所述待转发报文,其中,所述查询结果用于指示所述待转发报文下一步计划发送至的网络端口。
9.一种电子设备,其特征在于,包括:存储器和处理器,所述处理器用于运行存储在所述存储器中的程序,其中,所述程序运行时执行权利要求1至7中任意一项所述的报文处理方法。
10.一种非易失性存储介质,其特征在于,所述非易失性存储介质包括存储的计算机程序,其中,所述非易失性存储介质所在设备通过运行所述计算机程序执行权利要求1至7中任意一项所述报文处理方法。
CN202311268131.3A 2023-09-27 2023-09-27 报文处理方法、装置、电子设备及非易失性存储介质 Pending CN117312197A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202311268131.3A CN117312197A (zh) 2023-09-27 2023-09-27 报文处理方法、装置、电子设备及非易失性存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202311268131.3A CN117312197A (zh) 2023-09-27 2023-09-27 报文处理方法、装置、电子设备及非易失性存储介质

Publications (1)

Publication Number Publication Date
CN117312197A true CN117312197A (zh) 2023-12-29

Family

ID=89249376

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202311268131.3A Pending CN117312197A (zh) 2023-09-27 2023-09-27 报文处理方法、装置、电子设备及非易失性存储介质

Country Status (1)

Country Link
CN (1) CN117312197A (zh)

Similar Documents

Publication Publication Date Title
US6307789B1 (en) Scratchpad memory
US8656071B1 (en) System and method for routing a data message through a message network
US8972630B1 (en) Transactional memory that supports a put with low priority ring command
US9069602B2 (en) Transactional memory that supports put and get ring commands
US9841913B2 (en) System and method for enabling high read rates to data element lists
US9032162B1 (en) Systems and methods for providing memory controllers with memory access request merging capabilities
US11425057B2 (en) Packet processing
US7447872B2 (en) Inter-chip processor control plane communication
CN111538694B (zh) 一种用于网络接口支持多链接和重传的数据缓存方法
CN115361336B (zh) 具有缓存的路由器、路由交换网络系统、芯片及路由方法
US9785367B2 (en) System and method for enabling high read rates to data element lists
WO2022127873A1 (zh) 实现网络芯片高速调度的方法、设备及存储介质
CN108090018A (zh) 数据交换方法及系统
CN104486258B (zh) 一种基于交换通道的交换电路
CN117707991B (zh) 一种数据读写方法、系统、设备及存储介质
US9292456B2 (en) System and method for data synchronization across digital device interfaces
CN116955247B (zh) 一种缓存描述符管理装置及其方法、介质、芯片
US9342313B2 (en) Transactional memory that supports a get from one of a set of rings command
CN116155828B (zh) 一种多个虚拟队列的报文保序方法及其装置、存储介质、电子设备
US9703739B2 (en) Return available PPI credits command
CN117312197A (zh) 报文处理方法、装置、电子设备及非易失性存储介质
WO2022199357A1 (zh) 数据处理方法及装置、电子设备、计算机可读存储介质
CN116185649A (zh) 存储控制方法、存储控制器、存储芯片、网卡、可读介质
US9548947B2 (en) PPI de-allocate CPP bus command
WO2024001414A1 (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