CN111930650B - 一种网络流量转发方法及设备 - Google Patents
一种网络流量转发方法及设备 Download PDFInfo
- Publication number
- CN111930650B CN111930650B CN202011006291.7A CN202011006291A CN111930650B CN 111930650 B CN111930650 B CN 111930650B CN 202011006291 A CN202011006291 A CN 202011006291A CN 111930650 B CN111930650 B CN 111930650B
- Authority
- CN
- China
- Prior art keywords
- network interface
- network
- data
- interface
- mapping
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 21
- 238000013507 mapping Methods 0.000 claims abstract description 60
- 238000012545 processing Methods 0.000 claims description 51
- 239000000872 buffer Substances 0.000 abstract description 80
- 230000005540 biological transmission Effects 0.000 abstract description 3
- 238000010586 diagram Methods 0.000 description 11
- 102100040862 Dual specificity protein kinase CLK1 Human genes 0.000 description 6
- 230000003139 buffering effect Effects 0.000 description 6
- 238000004891 communication Methods 0.000 description 6
- 102100040858 Dual specificity protein kinase CLK4 Human genes 0.000 description 3
- 101000749298 Homo sapiens Dual specificity protein kinase CLK4 Proteins 0.000 description 3
- 102100040844 Dual specificity protein kinase CLK2 Human genes 0.000 description 2
- 102100040856 Dual specificity protein kinase CLK3 Human genes 0.000 description 2
- 101000749294 Homo sapiens Dual specificity protein kinase CLK1 Proteins 0.000 description 2
- 101000749291 Homo sapiens Dual specificity protein kinase CLK2 Proteins 0.000 description 2
- 101000749304 Homo sapiens Dual specificity protein kinase CLK3 Proteins 0.000 description 2
- 238000011144 upstream manufacturing Methods 0.000 description 2
- 101100328957 Caenorhabditis elegans clk-1 gene Proteins 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000015654 memory Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1668—Details of memory controller
- G06F13/1673—Details of memory controller using buffers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/50—Queue scheduling
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明实施例提供了一种网络流量转发方法及设备。其中,方法包括:确定系统周期开始;在各网络接口的指定数据读写时钟到达时,各网络接口的数据管道在上行通路将各网络接口已接收网络报文的数据依次写入各网络接口对应的多个映射SRAM上同一个地址空间的数据报文缓存区以及在下行通路依次读取各网络接口对应的多个映射SRAM上同一地址空间的数据报文缓存区存储的数据发往对应的网络接口;在各网络接口的指定描述符时钟到达时,各网络接口的描述符管道在上行通路上将各网络接口已接收网络报文的描述符依次写入各网络接口对应的多个映射SRAM上同一地址空间的描述符缓存区。可以提高SRAM与网络接口间搬运数据的效率。
Description
技术领域
本发明涉及通信技术领域,特别是涉及一种网络流量转发方法及设备。
背景技术
随着网络数据业务量的不断增长,路由器等通信设备采用高线速转发性能网络处理芯片对网络报文进行高性能硬件处理和灵活的软件处理。网络处理芯片的网络接口设置了缓冲单元(Interface Buffer ,IFBUF)作为中间模块用以缓存网络接收的连续的数据流,以防止网络处理芯片在存储数据时丢失数据。
图1所示为现有缓冲单元缓存数据的示意图。图1中,缓冲单元包括1-48个管道和1-48个物理SRAM(Static Random-Access Memory,静态随机存取存储器)用以一一对应的支持网络处理芯片1-48个网络接口。对应各网络接口的每个SRAM被划分为2个区间:用于存放数据的区间1以及用于存放BC(Burst Describe Cell,报文描述符)的区间2。网络处理芯片在每个系统时钟读写1次每个物理SRAM单元。以网络接口1为例,网络处理芯片在上行通路将网络接口1收到的数据报文的数据通过对应的管道(PIPE)P1写入到对应的SRAM1的区间1,将报文的描述符写入到SRAM1的区间2,在下行通路中读取SRAM1的区间1的数据并发送到网络接口1。
图1所示数据缓存机制中,网络接口的各管道在每个系统时钟读写一次SRAM,管道在SRAM与网络接口间搬运数据的效率不高,限制了使得网络接口转发报文的效率。此外,为支持遍历所有网络接口,缓冲单元必须提供与网络接口相同数量的SRAM以保证网络接口的网络流量不被限速。通信设备的网络接口越多,通信设备的网络处理芯片所需的SRAM的数量越大,网络处理芯片的面积也越大。
发明内容
本发明实施例的目的在于提供一种网络流量转发方法及设备,提高SRAM与网络接口间搬运数据的效率。
为实现上述目的,本发明实施例提供了一种网络流量转发方法,方法包括:
确定系统周期开始;在各网络接口的指定数据读写时钟到达时,各网络接口的数据管道在上行通路将各网络接口已接收网络报文的数据依次写入各网络接口对应的多个映射SRAM上同一个地址空间的数据报文缓存区以及在下行通路依次读取各网络接口对应的多个映射SRAM上同一地址空间的数据报文缓存区存储的数据发往对应的网络接口;
在各网络接口的指定描述符时钟到达时,各网络接口的描述符管道在上行通路上将各网络接口已接收网络报文的描述符依次写入各网络接口对应的多个映射SRAM上同一地址空间的描述符缓存区。
本发明实施例还提供了一种网络流量转发设备,该包括多个网络接口、网络处理模块,处理器模块以及存储模块。该设备中,网络处理模块,用于确定系统周期开始;在各网络接口的指定数据读写时钟到达时,所述各网络接口的数据管道在上行通路将各网络接口已接收网络报文的数据依次写入所述各网络接口对应的多个映射SRAM上同一个地址空间的数据报文缓存区以及在下行通路依次读取所述各网络接口对应的多个映射SRAM上同一地址空间的数据报文缓存区存储的数据发往对应的所述网络接口;以及用于在各网络接口的指定描述符时钟到达时,所述各网络接口的描述符管道在所述上行通路上将所述各网络接口已接收网络报文的描述符依次写入所述各网络接口对应的多个映射SRAM上同一地址空间的描述符缓存区。
本发明实施例有益效果在于,在每个指定数据读写时钟在多个SRAM和网络接口间搬运数据,提高了数据传输效率,提高了网络接口转发报文的效率。此外,各网络接口的数据被缓存在不同的SRAM的同一个地址空间的数据缓存区,而不再被缓存在单个SRAM单元,这样网络处理芯片无需提供与网络接口一一对应的SRAM,减少了网络处理芯片为支持遍历每个网络接口所需的SRAM数目。
附图说明
图1为现有缓冲单元示意图;
图2为本发明提供的网络流量转发方法的流程图;
图3为本发明提供的缓冲单元实施例示意图;
图4为本发明提供的设置网络接口读写频率实施例的示意图;
图5为本发明实施例提供的缓冲单元缓存数据的示意图;
图6为本发明提供的设置网络接口读写频率的另一实施例的示意图;
图7为本发明实施例提供的电子设备的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
基于此,本发明实施例提供了一种网络流量转发方法,如图2所示,该方法包括以下步骤:
S201,确定系统周期开始。
S202,在各网络接口的指定数据读写时钟到达时,各网络接口的数据管道在上行通路将各网络接口已接收网络报文的数据依次写入各网络接口对应的多个映射SRAM上同一个地址空间的数据报文缓存区以及在下行通路依次读取各网络接口对应的多个映射SRAM上同一地址空间的数据报文缓存区存储的数据发往对应的网络接口。
S203,在各网络接口的指定描述符时钟到达时,各网络接口的描述符管道在上行通路上将各网络接口已接收网络报文的描述符依次写入各网络接口对应的多个映射SRAM上同一地址空间的描述符缓存区。
图2所示方法的有益效果在于,在每个指定数据读写时钟在多个SRAM和网络接口间搬运数据,提高了数据传输效率,提高了网络接口转发报文的效率。此外,各网络接口的数据被缓存在不同的SRAM的同一个地址空间的数据缓存区,而不再被缓存在单个SRAM单元,这样网络处理芯片无需提供与网络接口一一对应的SRAM,减少了网络处理芯片为支持遍历每个网络接口所需的SRAM数目。
图3所示为本发明实施例提供的缓冲单元示意图。具有相同接口带宽的网络接口1-48各自使用SRAM的1-32的同一个地址区间作为网络流量缓存区间。不同接口的网络流量缓冲区间可以由其接口带宽来决定。这样,网络处理芯片的缓存单元的映射关系能够使得网络处理芯片无需集成大量的物理SRAM单元,而是根据网络接口带宽分配分布于多个SRAM上的存储空间,最大效率地使用SRAM。
图3中,缓冲单元集成了32个物理SRAM单元,假设各物理SRAM单元的参数为(1024line* 128bit),为网络接口1在32个SRAM单元上配置的相同地址空间low1-High1的数据报文缓存区和BClow1-BCHigh1描述符缓存区,分别用来缓存报文的有效网络数据和描述信息。则网络接口1在缓冲单元的缓存空间包括:数据报文缓存区:(HIGH – LOW +1)*32*(128 / 8)Byte;报文描述信息缓冲区大小:(BC HIGH – BC LOW +1)* 32 *(128 / 8)Byte。网络接口2-48在SRAM1-32的数据报文缓存区和描述符缓存区依照相同方式配置。
图3所示只是其中一种配置网络接口的多个映射SRAM的方式。可网络设备的网络接口的带宽,设置各网络接口的多个映射SRAM。
例如,网络设备的48个网络接口具有不同的接口带宽时,譬如12个400G网络接口,12个200G网络接口,12个100G网络接口,12个10G网络接口,每个网络接口仍各自使用SRAM的1-32的同一个地址区间作为网络流量缓存区间,但是400G网络接口所需的缓存空间更大,12个400G网络接口在32个SRAM上的同一地址空间对应的缓冲空间最大,其次是12个200G网络接口,再然后是12个100G网络接口,12个10G网络接口在32个SRAM的同一地址空间对应的缓冲空间最小。
例如,可以为通信设备的网络接口的不同接口带宽的分配不同个数的SRAM,譬如,为12个400G网络接口各自映射32个SRAM的同一地址空间对应的缓冲空间,为12个200G网络接口各自映射16个SRAM的同一地址空间对应的缓冲空间,为12个100G网络接口各自映射8个SRAM的同一地址空间对应的缓冲空间,为12个10G网络接口各自映射8个SRAM的同一地址空间对应的缓冲空间。
由于物理SRAM单元作为一个实际的存储设备,网络处理芯片在每个系统时钟只能对每个物理SRAM单元读写一次。因此,需要为每个网络接口分配指定的时钟,用于将各个网络接口的数据和描述信息依次写入到各网络接口映射的所有物理SRAM单元。
图3中,48个具有相同接口带宽的网络接口各自分配的数据管道数目相同。如果,48个接口具有不同的接口带宽时,基于接口带宽的大小分配各网络接口的数据管道数目,接口带宽越大的网络接口分配的数据管道数目越多,接口带宽越小的网络接口分配的数据管道越小,最小接口带宽的网络接口分配的数据管道为一个以上,这样,接口带宽越大的网络接口的数据管道越大,在每个系统时钟可以读写的SRAM单元的数目越多,缓存速率越快;譬如,400G的网络接口分配8个数据管道,200G的网络接口分配4个数据管道,100G的网络接口分配2个数据管道,10G的网络接口分配1个数据管道。
由于物理SRAM单元作为一个实际的存储设备,网络处理芯片在每个系统时钟只能对每个物理SRAM单元读写一次。图3所示缓冲单元中,每个网络接口的报文描述符BC(图中未示)使用一个内部管道缓存到各网络接的多个映射SRAM的描述符缓存区,不与网络接口映射。
本发明,每个系统周期内,读写各网络接口的多个映射SRAM的系统时钟的个数也可根据网络接口带宽灵活设置。譬如,网络设备的48个网络接口的接口带宽相同或不同,但是各网络接口的带宽权重占比相同,譬如70%,当系统周期有46个系统时钟时,各网络接口的多个映射SRAM可以被读写的次数都是32个系统时钟。或者,接口带宽越高的网络接口的带宽权重占比越大,譬如400G和200G的网络接口的带宽权重占比是70%,100G和10G的网络接口的带宽权重占比是50%,当系统周期有45个系统时钟时,400G和200G的网络接口的多个映射SRAM可以被读写的次数是32个系统时钟,100G和10G的网络接口的多个映射SRAM可以被读写的次数为23个系统时钟。
配置给各网络接口的带宽权重占比要确保在1个系统周期(TDM周期)中每个网络接口映射的数据管道的缓存性能大于接口本身的带宽。
假设,网络处理芯片的系统时钟频率为1GHz,网络接口的接口带宽分别是400G、200G、100G以及10G,但是这四种接口带宽的网络接口的带宽权重比都是70%,系统周期有46个系统时钟,每个数据管道传输128bit的网络报文数据,则这四种不同接口带宽的网络接口对应的缓存性能具体如下: 每个400G的网络接口通过8个数据管道在系统周期内缓冲性能为720Gbit/s(128bit*1GHz*8Pipe*0.7),远大于400G网络接口的接口带宽;每个200G的网络接口通过4个数据管道在系统周期内缓冲性能为360Gbit/s(128bit*1GHz*4Pipe*0.7),远大于200G网络接口的接口带宽;每个100G的网络接口通过2个数据管道在系统周期内缓冲性能为180Gbit/s(128bit*1GHz*2Pipe*0.7),远大于100G网络接口的接口带宽;每个10G的网络接口通过个数据管道在系统周期内缓冲性能为90Gbit/s(128bit*1GHz*1Pipe*0.7),远大于100G网络接口的接口带宽。
基于各网络接口的带宽权重占比确定在系统周期内读写各网络接口的多个SRAM的读写次数后,遍历各网络接口并依据分配策略从各网络接口中选择一个网络接口,为被选择的网络接口的数据通道分配用于依次读写的多个映射SRAM上的同一个地址空间的数据报文缓存区的系统时钟以及分配依次写入多个映射SRAM上的同一地址空间的描述符缓存区的系统时钟。
这样,各网络接口接收的报文的数据、描述符信息依次写入多个映射的SRAM,就可以先写入多个映射的SRAM的low address,然后依次写low address+1,依次类推,可以提高网络处理芯片SRAM的利用率。
图4所示为本发明实施例提供分配系统时钟的示意图。本实施例为便于说明,以网络接口1-3为例,网络接口1映射SRAM1-6,数据报文缓存区在SRAM1-6的同一个地址空间,描述符缓存区的在SRAM1-6的同一个地址空间;同样的网络接口2和3各自的数据报文缓存区在SRAM1-6的同一个地址空间,描述符缓存区的在SRAM1-6的同一个地址空间。为便于说明,本实施例中,网络接口1-3的网络接口带宽相同,在有20个系统时钟的系统周期内带宽权重比相同为50%,每个网络接口的SRAM的读写次数为4个。
网络处理芯片遍历3个网络接口并依据分配策略从3个网络接口中选择网络接口1。本实施例中,分配策略从具有相同缓存带宽需求的各网络接口中选择最高优先级的网络接口或者从具有相同缓存带宽需求的各网络接口中按照遍历的顺序选择网络接口。
图4a中,为网络接口1的数据管道P1-P3分配依次读写映射的SRAM1-6的数据报文缓存区的系统时钟为CLK0-CLK3,因为每个系统时钟每个SRAM只能被一个数据通道读写1次,为网络接口1的描述符管道B1分配依次读写映射的SRAM1-6的描述符缓存区的系统时钟为CLK0、CLK2、CLK4、CLK5,因为分配给网络处理芯片的CLK1用于读写SRAM5的数据报文缓存区,则无法在系统时钟CLK1读写同一个SRAM5的描述符缓存区。图4a的例子中,为分配读写网络接口1的数据报文缓存区的系统时钟在先,也可以对图4a的例子进行变化,先分配读写网络接口1的描述符缓存区的系统时钟,再分配依次读写SRAM1-6上网络接口1的数据报文缓存区的系统时钟。
图4b中,为网络接口2的数据管道P4-P6分配依次读写映射的SRAM1-6的数据报文缓存区的系统时钟为CLK3、CLK5、CLK6、CLK7,为网络接口2的描述符管道B2分配依次读写映射的SRAM1-6的描述符缓存区系统时钟为CLK4、CLK5、CLK7、CLK8。
图4c中,为网络接口3的数据管道P7-P9分配依次读写映射的SRAM1-6的数据报文缓存区的系统时钟为CLK6、CLK8、CLK9、CLK10,为网络接口2的描述符管道B3分配依次读写映射的SRAM1-6的描述符缓存区系统时钟为CLK8、CLK10、CLK11、CLK12。
图5所示为本发明提供的读写缓存单元的示意图,用以结合图4a-4c所示例子说明网络处理芯片依次读写网络接口的多个映射SRAM上同一地址空间的数据报文缓存区以及同一地址空间的描述符缓存区。图5a中,当系统周期开始时,系统时钟CLK0到达,网络处理芯片的数据管道P1-P3在上行通路将网络接口1已接收网络报文的数据依次写入SRAM1-3上同一个地址空间low1-high1对应的数据报文缓存区,网络处理芯片从低位地址(lowaddress)LOW1开始写入,如图5a空心圆圈所示的数据,依次类推。网络接口1的描述符管道B1在上行通路上将网络接口1已接收网络报文的描述符写入SRAM4上地址空间BCLOW1-BCHIGH1对应的描述符缓存区,网络处理芯片从低位地址BCLOW1开始写入。在下行通路上,网络处理芯片的数据管道P1-P3依次读取网络接口1对应的SRAM1-3上同一个地址空间low1-high1,将从低位地址LOW1开始读取数据(图中未示)发往网络接口1(图中未示)。
图5b中,系统时钟CLK1到达,网络处理芯片的数据管道P1-P3在上行通路将网络接口1已接收网络报文的数据依次写入网络接口1对应的SRAM4-6上同一个地址空间low1-high1对应的数据报文缓存区,;在下行通路上,网络处理芯片的数据管道P1-P3依次从SRAM4-6上同一个地址空间low1-high1对应的数据报文缓存区读取数据(图中未示)发往网络接口1(图中未示)。
图5c中,系统时钟CLK2到达,网络处理芯片的数据管道P1-P3在上行通路将网络接口1已接收网络报文的数据依次写入SRAM1-3上同一个地址空间low1-high1对应的数据报文缓存区,网络接口1的描述符管道B1在上行通路上将网络接口1已接收网络报文的描述符写入SRAM5上地址空间BCLOW1-BCHIGH1对应的描述符缓存区。在下行通路上,网络处理芯片的数据管道P1-P3依次读取从SRAM1-3上同一个地址空间low1-high1对应的数据报文缓存区读取数据(图中未示)发往网络接口1(图中未示)。
图5d中,系统时钟CLK3到达,网络处理芯片的数据管道P1-P3在上行通路将网络接口1已接收网络报文的数据依次写入SRAM4-6上同一个地址空间low1-high1对应的数据报文缓存区;网络处理芯片的数据管道P4-P6在上行通路将网络接口2已接收网络报文的数据依次写入网络接口2对应的SRAM1-3上同一个地址空间low2-high2对应的数据报文缓存区,;在下行通路上,网络处理芯片的数据管道P1-P3依次读取网络接口1对应的SRAM4-6上同一个地址空间low1-high1的数据(图中未示)发往发往网络接口1(图中未示);网络处理芯片的数据管道P4-P6依次SRAM1-3上同一个地址空间low2-high2的数据(图中未示)发往网络接口2(图中未示)。
图5e中,系统时钟CLK4到达,在上行通路,网络接口1的描述符管道B1在上行通路上将网络接口1已接收网络报文的描述符写入SRAM6上地址空间BCLOW1-BCHIGH1对应的描述符缓存区;网络接口2的描述符管道B2在上行通路上将网络接口2已接收网络报文的描述符写入SRAM1上地址空间BCLOW2-BCHIGH2对应的描述符缓存区。
图5f中,系统时钟CLK5到达,在上行通路,网络处理芯片通过描述符管道B1将网络接口1已接收网络报文的描述符写入SRAM1上地址空间BCLOW1-BCHIGH1对应的描述符缓存区,通过数据管道P4-P6将网络接口2已接收网络报文的数据依次写入SRAM4-6上同一个地址空间low2-high2的数据报文缓存区,通过描述符管道B2将网络接口2已接收网络报文的描述符写入SRAM2上地址空间BCLOW2-BCHIGH2对应的描述符缓存区;在下行通路上,网络处理芯片通过的数据管道P4-P6依次读取SRAM4-6上同一个地址空间low2-high2的数据(图中未示)发往网络接口2(图中未示)。
按照上述图5a-5f的方式,网络处理芯片根据图4c中所示分配的时钟,通过映射到各网络接口的数据管道在上行通路将各网络接口2和3已接收网络报文的数据依次写入网络接口2和3各自对应的多个映射SRAM上同一个地址空间的数据报文缓存区以及在下行通路依次读取网络接口2和3各自对应的多个映射SRAM上同一地址空间的数据报文缓存区存储的数据发往对应的网络接口,通过网络接口2和3各自的描述符管道在分配的指定的系统时钟到达时,在上行通路上将网络接口2和3已接收网络报文的描述符依次写入网络接口2和3各自对应的多个映射SRAM上同一地址空间的描述符缓存区。图4c中系统时钟CLK6-CLK12到达时以相同方式按照分配的读写数据缓冲区和读写描述符缓冲区的系统时钟,依次读写各网络口在多个SRAM上的数据缓冲区和描述符缓冲区,本申请不再赘述。
图6所示为本发明提供的设置网络接口读写频率的另一实施例的示意图。在本实施例中网络处理芯片中包括网络接口1-3,其中网络接口1的接口带宽为400GE,网络接口2的接口带宽为200GE,网络接口3的接口带宽为100GE。网络接口1映射SRAM0-31,数据报文缓存区在SRAM0-31的同一个地址空间,描述符缓存区在SRAM0-31的同一个地址空间;同样的网络接口2和网络接口3各自的数据报文缓存在SRAM0-31的同一个地址空间,描述缓存区的SRAM0-31的同一个地址空间。网络处理芯片遍历3个网络接口并依据分配策略从3个网络接口中选择网络接口。本实施例中,分配策略从具有不同缓存带宽需求的各网络接口中选择缓存带宽需求最高(即缓冲能力)的网络接口,由于网络接口1的缓存带宽需求最高,因此依据分配策略从3个网络接口中选择网络接口1。
图6a中,为网络接口1的数据管道P1-P8分配依次读写映射的SRAM0-31的同一个地址空间的数据报文缓存区的系统时钟为CLK0-CLK31,为网络接口1的描述符管道B1分配依次读写映射的SRAM0-31的同一个地址空间的描述符缓存区的系统时钟为CLK1-CLK3、CLK5-CLK7、CLK10-CLK12、CLK14-CLK16、CLK18-CLK19、CLK22-CLK24、CLK27-CLK-29、CLK31、CLK33-CLK43。
图6a中未分配的系统时钟可以分配至网络接口2、网络接口3的数据接口的数据管道,以使得网络接口2、网络接口3的数据管道读写映射的SRAM0-31的数据报文缓存区,因此不同网络接口的数据可以被缓存在不同的SRAM的同一个地址空间的数据缓存区,而不再被缓存在单个SRAM单元,使得SRAM的数目不需要与网络接口的数目相同。
图6b中,为网络接口2的数据管道P9-P12分配依次读写映射的SRAM0-31的同一个地址空间的数据报文缓存区的系统时钟为CLK0-CLK1、CLK3-CLK7、CLK10-CLK14、CLK17-CLK21、CLK23-CLK28、CLK30-CLK36,为网络接口2的描述符管道B2分配依次读写映射的SRAM0-31的同一个地址空间的描述符缓存区系统时钟为CLK2-CLK3、CLK5-CLK7、CLK10-CLK11、CLK13-CLK16、CLK18-CLK19、CLK22-CLK23、CLK26-CLK29、CLK2-CLK3、CLK32-44。
图6c中,为网络接口3的数据管道P13-P14分配依次读写映射的SRAM0-31的同一个地址空间的数据报文缓存区的系统时钟为CLK0、CLK3-CLK5、CLK7-CLK10、CLK12-CLK15、CLK17、CLK19-CLK20、CLK22-CLK25、CLK27-CLK30、CLK32-CLK33、CLK35-CLK41,为网络接口3的描述符管道B3分配依次读写映射的SRAM0-31的同一个地址空间的描述符缓存区的系统时钟为CLK3、CLK5-CLK6、CLK9-CLK11、CLK13-CLK16、CLK18、CLK20、CLK22、CLK24、CLK26-CLK29、CLK5-CLK6、CLK32-CLK44。
图6a-图6c所示实施例相较于现有技术的优点在于,现有技术每个网络接口映射1个SRAM单元,每个时钟脉冲读写一次SRAM单元,那么一个系统周期结束后,接口带宽低的网络接口映射的SRAM单元的已占用物理存储空间远小于接口带宽大的网络接口映射的SRAM单元的已占用物理存储空间,造成SRAM的存储资源利用率不高。基于图6a-图6c所示的实施例,不同接口带宽的网络接口分配在存储空间不同,使得网络处理芯片根据图6a-图6c所示的例子读写SRAM时,将接口带宽大的网络接口的收发报文的数据存储在更大的存储空间内,提高了SRAM的利用率,还避免了SRAM与网络接口数目一一对应导致的SRAM面积过大的问题。
图7所示为本发明提供的网络流量转发设备70的实施例,该设备70包括:用于转发报文进行网络处理的网络处理模块71、系统总线72、处理器模块73以及存储模块74。网络处理模块71可以由网络处理芯片实现具有多个网络接口(如箭头所示)以及缓冲单元,该缓冲单元设置了多个SRAM。网络处理模块71通过系统总线72与处理器模块73相互通信。网络处理模块71用于,用于确定系统周期开始;在各网络接口的指定数据读写时钟到达时,各网络接口的数据管道在上行通路将各网络接口已接收网络报文的数据依次写入各网络接口对应的多个映射SRAM上同一个地址空间的数据报文缓存区以及在下行通路依次读取各网络接口对应的多个映射SRAM上同一地址空间的数据报文缓存区存储的数据发往对应的网络接口;以及用于在各网络接口的指定描述符时钟到达时,各网络接口的描述符管道在上行通路上将各网络接口已接收网络报文的描述符依次写入各网络接口对应的多个映射SRAM上同一地址空间的描述符缓存区。
处理器模块73执行存储模块74存储的机器可执行指令,用于基于各网络接口的带宽权重占比确定在系统周期读写各网络接口的读写次数;遍历各网络接口并依据分配策略从各网络接口中选择一个网络接口;为被选择的网络接口的数据通道分配用于依次读写被选择的网络接口对应的多个映射SRAM上的同一个地址空间的数据报文缓存区且等于读写次数的指定数据读写时钟以及分配用于依次读写被选择的网络接口对应的多个映射SRAM上的同一地址空间的描述符缓存区的指定描述符时钟。
处理器模块73执行存储模块74存储的机器可执行指令,还用于接口带宽相同的各网络接口的映射相同数目的数据管道;为各网络接口映射一个以上数据管道;为各网络接口分配相同或不同的带宽权重占比;为各网络接口分配数目相同的多个映射SRAM。
处理器模块73执行存储模块74存储的机器可执行指令,还用于为不同接口带宽的各网络接口映射不同数目的数据管道且为具有最小接口带宽的网络接口映射的数据管道的数目最小且为一个以上;用于为不同接口带宽的网络接口分配不同的带宽权重占比且为接口带宽越大的网络接口分配越大的带宽权重占比;或者,处理器模块73执行存储模块74存储的机器可执行指令,还用于为不同接口带宽的各网络接口分配相同的带宽权重占比.
处理器模块73执行存储模块74存储的机器可执行指令,还用于为不同带宽的各网络接口分配相同数目的多个映射SRAM的数目;或者为不同带宽的各网络接口分配的不同数目的多个映射SRAM的数目且接口带宽越大的网络接口分配的越多的多个映射SRAM。
处理器模块73执行存储模块74存储的机器可执行指令,还用遍历各网络接口从具有相同缓存带宽需求的各网络接口中选择最高优先级的网络接口;或者;处理器模块73执行存储模块74存储的机器可执行指令,还用于遍历各网络接口从具有不同缓存带宽需求的各网络接口中选择最大缓存带宽需求的网络接口。
本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置、电子设备的实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上仅为本发明的较佳实施例,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。
Claims (10)
1.一种网络流量转发方法,其特征在于,所述方法包括:
确定系统周期开始;
在各网络接口的指定数据读写时钟到达时,所述各网络接口的数据管道在上行通路将各网络接口已接收网络报文的数据依次写入所述各网络接口对应的多个映射SRAM上同一个地址空间的数据报文缓存区以及在下行通路依次读取所述各网络接口对应的多个映射SRAM上同一地址空间的数据报文缓存区存储的数据发往对应的所述网络接口;
在各网络接口的指定描述符时钟到达时,所述各网络接口的描述符管道在所述上行通路上将所述各网络接口已接收网络报文的描述符依次写入所述各网络接口对应的多个映射SRAM上同一地址空间的描述符缓存区。
2.根据权利要求1所述的方法,其特征在于,确定系统周期开始之前,所述方法还包括:
基于所述各网络接口的带宽权重占比确定在所述系统周期读写所述各网络接口的读写次数;
遍历所述各网络接口并依据分配策略从所述各网络接口中选择一个网络接口;
为被选择的网络接口的数据通道分配用于依次读写被选择的网络接口对应的多个映射SRAM上的同一个地址空间的数据报文缓存区且等于所述读写次数的指定数据读写时钟以及分配用于依次读写被选择的网络接口对应的多个映射SRAM上的同一地址空间的描述符缓存区的指定描述符时钟。
3.根据权利要求2所述的方法,其特征在于,所述各网络接口的接口带宽相同且映射相同数目的数据管道;其中,所述各网络接口映射一个以上数据管道;
所述各网络接口的带宽权重占比相同或不同;
所述各网络接口对应的多个映射SRAM的数目相同。
4.根据权利要求2所述的方法,其特征在于,所述各网络接口中不同接口带宽的网络接口映射的数据管道的数目不同,具有最小接口带宽的网络接口映射的数据管道的数目最小且为一个以上;
具有不同接口带宽的网络接口具有不同的带宽权重占比且各所述网络接口的接口带宽越大具有越大的带宽权重占比;或者,具有不同接口带宽的网络接口具有相同的带宽权重占比;
所述各网络接口对应的多个映射SRAM的数目相同或不同。
5.根据权利要求3或4所述的方法,其特征在于,所述分配策略从具有相同缓存带宽需求的所述各网络接口中选择最高优先级的网络接口;或者;
所述分配策略从具有不同缓存带宽需求的所述各网络接口中选择最大缓存带宽需求的网络接口。
6.一种网络流量转发设备,包括多个网络接口、网络处理模块,处理器模块以及存储模块,其特征在于,
所述网络处理模块,用于确定系统周期开始;在各网络接口的指定数据读写时钟到达时,所述各网络接口的数据管道在上行通路将各网络接口已接收网络报文的数据依次写入所述各网络接口对应的多个映射SRAM上同一个地址空间的数据报文缓存区以及在下行通路依次读取所述各网络接口对应的多个映射SRAM上同一地址空间的数据报文缓存区存储的数据发往对应的所述网络接口;以及用于在各网络接口的指定描述符时钟到达时,所述各网络接口的描述符管道在所述上行通路上将所述各网络接口已接收网络报文的描述符依次写入所述各网络接口对应的多个映射SRAM上同一地址空间的描述符缓存区。
7.根据权利要求6所述的设备,其特征在于,所述存储模块存储机器可执行指令;
所述处理器模块执行所述机器可执行指令,用于基于所述各网络接口的带宽权重占比确定在所述系统周期读写所述各网络接口的读写次数;遍历所述各网络接口并依据分配策略从所述各网络接口中选择一个网络接口;为被选择的网络接口的数据通道分配用于依次读写被选择的网络接口对应的多个映射SRAM上的同一个地址空间的数据报文缓存区且等于所述读写次数的指定数据读写时钟以及分配用于依次读写被选择的网络接口对应的多个映射SRAM上的同一地址空间的描述符缓存区的指定描述符时钟。
8.根据权利要求7所述的设备,其特征在于,所述处理器模块执行所述机器可执行指令还用于,为接口带宽相同的所述各网络接口的映射相同数目的数据管道;为所述各网络接口映射一个以上数据管道;为所述各网络接口分配相同或不同的带宽权重占比;为所述各网络接口分配数目相同的多个映射SRAM。
9.根据权利要求8所述的设备,其特征在于,所述处理器模块执行所述机器可执行指令还用于,为不同接口带宽的所述各网络接口映射不同数目的数据管道且为具有最小接口带宽的网络接口映射的数据管道的数目最小且为一个以上;用于为不同接口带宽的网络接口分配不同的带宽权重占比且为接口带宽越大的网络接口分配越大的带宽权重占比;或者,
所述处理器模块执行所述机器可执行指令还用于,为不同接口带宽的所述各网络接口分配相同的带宽权重占比;
所述处理器模块执行所述机器可执行指令还用于,为不同带宽的所述各网络接口分配相同数目的多个映射SRAM的数目;或者为不同带宽的所述各网络接口分配的不同数目的多个映射SRAM的数目且接口带宽越大的网络接口分配的越多的多个映射SRAM。
10.根据权利要求8或9所述的设备,其特征在于,所述处理器模块执行所述机器可执行指令还用于,遍历所述各网络接口从具有相同缓存带宽需求的所述各网络接口中选择最高优先级的网络接口;或者;
所述处理器模块执行所述机器可执行指令还用于,遍历所述各网络接口从具有不同缓存带宽需求的所述各网络接口中选择最大缓存带宽需求的网络接口。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011006291.7A CN111930650B (zh) | 2020-09-23 | 2020-09-23 | 一种网络流量转发方法及设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011006291.7A CN111930650B (zh) | 2020-09-23 | 2020-09-23 | 一种网络流量转发方法及设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111930650A CN111930650A (zh) | 2020-11-13 |
CN111930650B true CN111930650B (zh) | 2021-01-08 |
Family
ID=73335067
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011006291.7A Active CN111930650B (zh) | 2020-09-23 | 2020-09-23 | 一种网络流量转发方法及设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111930650B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114500411A (zh) * | 2021-12-30 | 2022-05-13 | 长园深瑞继保自动化有限公司 | 数据转发系统、方法、计算设备及可编程逻辑器件 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080283995A1 (en) * | 2007-05-18 | 2008-11-20 | International Business Machines Corporation | Compact multi-port cam cell implemented in 3d vertical integration |
CN101494505A (zh) * | 2009-03-10 | 2009-07-29 | 北京科技大学 | 一种面积优化的流水结构水声扩频通信带通信号捕获电路 |
CN101582238A (zh) * | 2009-06-10 | 2009-11-18 | 大连海事大学 | 一种led显示控制系统中并行数据重构方法 |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB2337905B (en) * | 1998-05-28 | 2003-02-12 | 3Com Technologies Ltd | Buffer management in network devices |
US6760338B1 (en) * | 2000-02-14 | 2004-07-06 | Advanced Micro Devices, Inc. | Apparatus and method for monitoring data frames by a shared switching logic during simultaneous accessing of multiple network switch buffers |
CN1214592C (zh) * | 2002-08-06 | 2005-08-10 | 华为技术有限公司 | 多通道数据直接内存访问系统和方法 |
US7562366B2 (en) * | 2005-02-03 | 2009-07-14 | Solarflare Communications, Inc. | Transmit completion event batching |
US9008113B2 (en) * | 2010-12-20 | 2015-04-14 | Solarflare Communications, Inc. | Mapped FIFO buffering |
AU2013245529A1 (en) * | 2013-10-18 | 2015-05-07 | Cisco Technology, Inc. | Network Interface |
US9621653B2 (en) * | 2014-02-14 | 2017-04-11 | Western Digital Technologies, Inc. | Method and apparatus for a network connected storage system |
US10489299B2 (en) * | 2016-12-09 | 2019-11-26 | Stormagic Limited | Systems and methods for caching data |
US11580054B2 (en) * | 2018-08-24 | 2023-02-14 | Intel Corporation | Scalable network-on-chip for high-bandwidth memory |
-
2020
- 2020-09-23 CN CN202011006291.7A patent/CN111930650B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080283995A1 (en) * | 2007-05-18 | 2008-11-20 | International Business Machines Corporation | Compact multi-port cam cell implemented in 3d vertical integration |
CN101494505A (zh) * | 2009-03-10 | 2009-07-29 | 北京科技大学 | 一种面积优化的流水结构水声扩频通信带通信号捕获电路 |
CN101582238A (zh) * | 2009-06-10 | 2009-11-18 | 大连海事大学 | 一种led显示控制系统中并行数据重构方法 |
Also Published As
Publication number | Publication date |
---|---|
CN111930650A (zh) | 2020-11-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7555579B2 (en) | Implementing FIFOs in shared memory using linked lists and interleaved linked lists | |
EP1192753B1 (en) | Method and apparatus for shared buffer packet switching | |
US20050025140A1 (en) | Overcoming access latency inefficiency in memories for packet switched networks | |
US7296112B1 (en) | High bandwidth memory management using multi-bank DRAM devices | |
US20090187681A1 (en) | Buffer controller and management method thereof | |
JP2016195375A (ja) | 複数のリンクされるメモリリストを利用する方法および装置 | |
CN103780506A (zh) | 一种用于以太网设备的数据缓存系统及方法 | |
US20070086428A1 (en) | Network packet storage method and network packet transmitting apparatus using the same | |
CN111930650B (zh) | 一种网络流量转发方法及设备 | |
US20040215903A1 (en) | System and method of maintaining high bandwidth requirement of a data pipe from low bandwidth memories | |
CN111611180B (zh) | 一种支持多协议的动态共享缓冲区 | |
CN113821191A (zh) | 一种可配置fifo深度的装置及方法 | |
CA2323930A1 (en) | Ampic dram system in a telecommunication switch | |
CN113126911B (zh) | 基于ddr3 sdram的队列管理方法、介质、设备 | |
US20150006828A1 (en) | Memory architecture determining the number of replicas stored in memory banks or devices according to a packet size | |
US20040131055A1 (en) | Memory management free pointer pool | |
JP2005084907A (ja) | メモリ帯域制御装置 | |
US9658951B1 (en) | Scalable high bandwidth memory in a network device | |
CN101656586B (zh) | 提高同步数字体系虚级联延时补偿缓存效率的方法及装置 | |
US10031884B2 (en) | Storage apparatus and method for processing plurality of pieces of client data | |
US9996468B1 (en) | Scalable dynamic memory management in a network device | |
US6885591B2 (en) | Packet buffer circuit and method | |
JP2001060967A (ja) | パケットスイッチ装置 | |
US10067690B1 (en) | System and methods for flexible data access containers | |
Mutter | A novel hybrid memory architecture with parallel DRAM for fast packet buffers |
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 |