本发明涉及以太网交换机技术领域,特别是涉及以太网交换芯片中帧信息物理复制方法与系统。
背景技术:
在以太网交换机芯片的设计中,多播和广播方式的帧传输模式是必须具备的基本功能。在设计中将源帧信息进行复制,并将其目的端口信息包含于复制后的帧信息中向出口(egress)方向传递,是一种合理可行的物理复制方式。
在物理复制阶段,需要控制复制处理带宽。由于egress处理器会存在一定的带宽上限,因此,一般的太网交换芯片中帧信息物理复制方式会受到带宽瓶颈限制的问题,导致帧信息物理复制效率低。
技术实现要素:
基于此,有必要针对以太网交换芯片中帧信息物理复制方式复制效率低的问题,提供一种效率高的以太网交换芯片中帧信息物理复制方法与系统。
一种以太网交换芯片中帧信息物理复制方法,包括步骤:
接收以太网帧信息,将以太网帧信息存储至以太网交换芯片中存储单元,并记录存储地址;
根据以太网帧信息携带的控制字段,判断是否丢弃以太网帧信息;
当不丢弃以太网帧信息时,根据控制字段,计数复制次数,获得复制计数值,将复制计数值写入以太网交换芯片中复制计数器存储表;
当丢弃以太网帧信息时,将预设第一值写入复制计数器存储表;
根据以太网帧信息生成多个帧复制信息,发出多个帧复制信息,并每发出单个帧复制信息时,将以太网帧信息对应的复制计数值减去预设第二值;
当存储单元中某一存储地址所对应的在复制计数器存储表中复制计数值达到预设第三值时,将该存储地址所对应的以太网帧信息在存储单元占用的空间释放。
一种以太网交换芯片中帧信息物理复制系统,包括:
存储记录模块,用于接收以太网帧信息,将以太网帧信息存储至以太网交换芯片中存储单元,并记录存储地址;
判断模块,用于根据以太网帧信息携带的控制字段,判断是否丢弃以太网帧信息;
第一处理模块,用于当不丢弃以太网帧信息时,根据控制字段,计数复制次数,获得复制计数值,将复制计数值写入以太网交换芯片中复制计数器存储表;
第二处理模块,用于当丢弃以太网帧信息时,将预设第一值写入复制计数器存储表;
计数模块,用于根据以太网帧信息生成多个帧复制信息,发出多个帧复制信息,并每发出单个帧复制信息时,将以太网帧信息对应的复制计数值减去预设第二值;
空间释放模块,用于当存储单元中某一存储地址所对应的在复制计数器存储表中复制计数值达到预设第三值时,将该存储地址所对应的以太网帧信息在存储单元占用的空间释放。
本发明以太网交换芯片中帧信息物理复制方法与系统,接收并存储以太网帧信息,记录存储地址,根据以太网帧信息携带的控制字段,判断是否丢弃以太网帧信息,当不丢弃时,根据控制字段,计数复制次数,将复制计数值写入复制计数器存储表,当丢弃时,将预设第一值写入复制计数器存储表,生成多个帧复制信息,每发出单个帧复制信息时,将复制计数值减去预设第二值,当某一存储地址对应的复制计数值达到预设第三值时,将该存储地址所对应的以太网帧信息在存储单元占用的空间释放。整个过程中,以太网帧信息的复制过程由其携带的控制字段控制,复制动作能够达到每个时钟周期一个帧信息的速率,处理带宽由太网交换芯片中时钟频率决定,不受带宽瓶颈限制,另外还将已完成的以太网帧信息占用的存储空间释放,提高以太网帧信息物理复制效率。
附图说明
图1为本发明以太网交换芯片中帧信息物理复制方法第一个实施例的流程示意图;
图2为本发明以太网交换芯片中帧信息物理复制方法第二个实施例的流程示意图;
图3为以太网交换芯片中入口帧信息字段示意图;
图4为以太网交换芯片中存储单元存储方式示意图;
图5为本发明以太网交换芯片中帧信息物理复制系统第一个实施例的结构示意图;
图6为本发明以太网交换芯片中帧信息物理复制系统第二个实施例的结构示意图。
具体实施方式
如图1所示,一种以太网交换芯片中帧信息物理复制方法,包括步骤:
S100:接收以太网帧信息,将以太网帧信息存储至以太网交换芯片中存储单元,并记录存储地址。
以太网交换芯片接收来自交换机入口(ingress)处理器的以太网帧信息,将接收到的以太网帧信息暂时存储至以太网交换芯片的存储单元中,记录下此时存储地址。存储地址用于表征以太网帧信息在存储单元的存储位置,基于存储地址即可在存储单元中读取以太网帧信息。另外由于不同的以太网帧信息是存储在不同位置中的,所以存储地址还可以当成以太网帧信息的唯一身份识别码。假设以太网帧信息存储地址为ABCDF,存储地址ABCDF与以太网帧信息形成唯一且严谨的对应关系。
S200:根据以太网帧信息携带的控制字段,判断是否丢弃以太网帧信息。
在以太网帧信息中携带有控制字段,该控制字段是根据以太网交换机行业规范协议方式预先写入至以太网帧信息中的,基于行业准则,每个以太网帧信息都会携带这部分信息,根据控制字段可以判断是否丢弃以太网帧信息。
非必要的,在步骤S200之前还包括:判断以太网帧信息存储FIFO(First Input First Output,先入先出队列)是否达到预设存储阈值上限,当达到时,丢弃以太网帧信息;当未达到时,进入步骤S200。在本实施例中,以太网帧信息采用FIFO方式在以太网芯片中进行存储与读取,当以太网芯片中专门划设的存储FIFO达到上限值时,无法对以太网帧信息进行FIFO存储,即直接丢弃以太网帧信息,当未达到时,可以对以太网帧信息进行FIFO存储与读取,即进入步骤S200。
S300:当不丢弃以太网帧信息时,根据控制字段,计数复制次数,获得复制计数值,将复制计数值写入以太网交换芯片中复制计数器存储表。
若以太网帧信息不被丢弃,则根据以太网帧信息中的控制字段计算复制次数,并将此数值写入复制计数存储表中。具体来说,这里是根据控制字段中的帧复制控制字段部分来计算复制次数的。计算得到的复制计数值会写入至以太网交换芯片中复制计数器存储表。
S400:当丢弃以太网帧信息时,将预设第一值写入复制计数器存储表。
预设第一值是预先设定的值,一般来说,针对“当丢弃以太网帧信息”这种应用场景时,预设第一值为0,以太网帧信息已经被丢弃无需复制。
S500:根据以太网帧信息生成多个帧复制信息,发出多个帧复制信息,并每发出单个帧复制信息时,将以太网帧信息对应的复制计数值减去预设第二值。
针对以太网帧信息生成多个帧复制信息,将生成的帧复制信息发出,在每发出单个帧复制信息时,将复制计数器存储表中与以太网帧信息对应的复制计数值减去预设第二值。具体来说,预设第二值是预先设定的,例如可以设置为1或2等。一般而言预设第二值设定为1。假设在步骤S300计算得到以太网帧信息的复制计数值为5,在本步骤S500当发出一次帧复制信息,即将复制计数值从5-1=4,即复制计数值变为4。
S600:当存储单元中某一存储地址所对应的在复制计数器存储表中复制计数值达到预设第三值时,将该存储地址所对应的以太网帧信息在存储单元占用的空间释放。
预设第三值是预先设定的值,一般来说其可以设置为0。对于不同的以太网帧信息在执行步骤S100至步骤S500操作后,会有相应的存储地址以及复制计数值。例如有M以太网帧信息执行步骤S100至步骤S500操作后,其存储地址为ABCDE,其复制计数值为3;有N以太网帧信息执行步骤S100至步骤S500操作后,其存储地址为ABCDF,其复制计数值为1;有PN以太网帧信息执行步骤S100至步骤S500操作后,其存储地址为ABCDG,其复制计数值为0。由于P以太网帧信息对应的复制计数值为0,在步骤S600中即从上述M、N以及P三个以太网帧信息中识别出P以太网帧信息,将P以太网帧信息在存储单元占用的空间释放。在实际应用中,当存储单元中某一存储地址所对应的在复制计数器存储表中复制计数值达到0时,将该地址所对应的以太网帧信息在存储单元中的头指针与尾指针返回给交换机入口端帧存储单元控制器,用于释放该以太网帧信息所占用的存储空间。
本发明以太网交换芯片中帧信息物理复制方法,接收并存储以太网帧信息,记录存储地址,根据以太网帧信息携带的控制字段,判断是否丢弃以太网帧信息,当不丢弃时,根据控制字段,计数复制次数,将复制计数值写入复制计数器存储表,当丢弃时,将预设第一值写入复制计数器存储表,生成多个帧复制信息,每发出单个帧复制信息时,将复制计数值减去预设第二值,当某一存储地址对应的复制计数值达到预设第三值时,将该存储地址所对应的以太网帧信息在存储单元占用的空间释放。整个过程中,以太网帧信息的复制过程由其携带的控制字段控制,复制动作能够达到每个时钟周期一个帧信息的速率,处理带宽由太网交换芯片中时钟频率决定,不受带宽瓶颈限制,另外还将已完成的以太网帧信息占用的存储空间释放,提高以太网帧信息物理复制效率。
在其中一个实施例中,将复制计数值写入以太网交换芯片中复制计数器存储表的步骤包括:以存储地址为写入地址,将复制计数值写入以太网交换芯片中复制计数器存储表。
将预设第一值写入复制计数器存储表的步骤包括:以存储地址为写入地址,将预设第一值写入复制计数器存储表。
在本实施例中,复制计数值以存储地址为写入地址写入复制计数器存储表,预设第一值也以存储地址为写入地址写入复制计数器存储表。以太网帧信息的复制计数值在复制计数器存储表的地址与以太网帧信息在存储单元中的存储地址一致,能够保证准确地在复制结束后释放存储空间。
如图2所示,在其中一个实施例中,步骤S100之前还包括:
S120:初始化以太网交换芯片,将复制计数器存储表清零。
为了确保以太网交换芯片中帧信息物理复制过程准确与高效,在每次对新的以太网帧信息执行操作之前需要初始化以太网交换芯片,将以太网交换芯片中的复制计数器存储表清零。
在其中一个实施例中,根据以太网帧信息生成多个帧复制信息,发出多个帧复制信息,并每发出单个帧复制信息时,将以太网帧信息对应的复制计数值减去预设第二值的步骤包括:
步骤一:采用FIFO方式读取以太网帧信息,根据以太网帧信息中携带的帧复制字段以及与帧复制字段相关的字段,生成对应个数的帧复制信息。
步骤二:发送对应个数的帧复制信息至以太网芯片的出口端。
步骤三:接收出口端返回的帧处理信息,帧处理信息携带已完成的以太网帧信息在存储单元中的存储地址。
步骤四:查询已完成的以太网帧信息在存储单元中的存储地址所对应的在复制计数器存储表中的复制计数值,并将查询到的复制计数值减去预设第二值。
读取以太网芯片入口端FIFO中的帧信息,根据帧信息中的帧复制字段以及其他相关字段,产生对应个数的帧复制信息并发送至出口端帧存储单元控制器,以FIFO形式接收出口端帧存储单元控制器返回的帧处理信息。该信息表示该帧的一次完整的处理已经完成。根据其中包含的帧存储地址字段,读取帧复制计数存储单元中的计数值,并将此数值减1,当帧复制计数器存储单元的某一地址所存储的计数值计数至0时,将该地址所对应的以太网帧信息在存储单元中的头指针与尾指针返回给入口端帧存储单元控制器,用于释放该帧所占用的存储空间。
为了更进一步详细解释本发明以太网交换芯片中帧信息物理复制方法的技术方案以及带来的效果,下面将采用一具体应用实例进行详细说明。
步骤一:初始化以太网交换芯片,清零复制计数存储表。
步骤二:如图3所示,入口(ingress)帧信息字段示意图所示,设计所接收的帧信息中主要包含的字段中必须反映该帧的存储信息以及该帧的复制信息。通过相关复制信息字段必须能够的出复制次数以及目的端口信息。
步骤三:如图4存储单元存储方式示意图所示,帧在存储单元中以链表方式将该帧以一个个缓存(BUFFER)的方式串接。FrameMem(框架)框架分配信息存储该帧每一个BUFFER的有效负荷(payload);MemLink(链路)链路分配信息表项用于存储该帧在FrameMem中BUFFER的顺序存储地址。根据该帧的帧信息中的头尾指针,存储单元控制器能够完整地在最后将该链表所对应FrameMem表项中的所有存储空间释放。
步骤四:接收ingress端的帧信息,存储于入口段FIFO中,由状态机控制器负责读取FIFO中的帧信息,按帧信息字段内容逐一复制并发送至出口(egress)端处理器。egress端存储单元控制器返回的帧处理结果信息被接收并用于更新帧复制计数存储表的内容。当一个源帧对应的所有复制操作全部完成后,发送包含帧在存储单元中的头尾指针的信息至ingress端帧存储单元控制器用于释放存储空间。每一个帧的复制过程为阻塞方式,亦即只有当一个帧的物理复制全部完成后,才会进行下一个帧的物理复制过程。
如图5所示,一种以太网交换芯片中帧信息物理复制系统,包括:
存储记录模块100,用于接收以太网帧信息,将以太网帧信息存储至以太网交换芯片中存储单元,并记录存储地址。
判断模块200,用于根据以太网帧信息携带的控制字段,判断是否丢弃以太网帧信息。
第一处理模块300,用于当不丢弃以太网帧信息时,根据控制字段,计数复制次数,获得复制计数值,将复制计数值写入以太网交换芯片中复制计数器存储表。
第二处理模块400,用于当丢弃以太网帧信息时,将预设第一值写入复制计数器存储表。
计数模块500,用于根据以太网帧信息生成多个帧复制信息,发出多个帧复制信息,并每发出单个帧复制信息时,将以太网帧信息对应的复制计数值减去预设第二值。
空间释放模块600,用于当存储单元中某一存储地址所对应的在复制计数器存储表中复制计数值达到预设第三值时,将该存储地址所对应的以太网帧信息在存储单元占用的空间释放。
本发明以太网交换芯片中帧信息物理复制系统,存储记录模块100接收并存储以太网帧信息,记录存储地址,判断模块200根据以太网帧信息携带的控制字段,判断是否丢弃以太网帧信息,当不丢弃时,第一处理模块300根据控制字段,计数复制次数,将复制计数值写入复制计数器存储表,当丢弃时,第二处理模块400将预设第一值写入复制计数器存储表,计数模块500生成多个帧复制信息,每发出单个帧复制信息时,将复制计数值减去预设第二值,当某一存储地址对应的复制计数值达到预设第三值时,空间释放模块600将该存储地址所对应的以太网帧信息在存储单元占用的空间释放。整个过程中,以太网帧信息的复制过程由其携带的控制字段控制,复制动作能够达到每个时钟周期一个帧信息的速率,处理带宽由太网交换芯片中时钟频率决定,不受带宽瓶颈限制,另外还将已完成的以太网帧信息占用的存储空间释放,提高以太网帧信息物理复制效率。
在其中一个实施例中,第一处理模块300以存储地址为写入地址,将复制计数值写入以太网交换芯片中复制计数器存储表。第二处理模块400以存储地址为写入地址,将预设第一值写入复制计数器存储表。
在其中一个实施例中,以太网交换芯片中帧信息物理复制系统还包括:
第三处理模块,用于当以太网帧信息存储FIFO达到预设存储阈值上限时,丢弃以太网帧信息。
如图6所示,在其中一个实施例中,以太网交换芯片中帧信息物理复制系统还包括:
初始模块120,用于初始化以太网交换芯片,将复制计数器存储表清零。
在其中一个实施例中,计数模块500包括:
帧复制信息生成单元,用于采用FIFO方式读取以太网帧信息,根据以太网帧信息中携带的帧复制字段以及与帧复制字段相关的字段,生成对应个数的帧复制信息。
发送单元,用于发送对应个数的帧复制信息至以太网芯片的出口端。
接收单元,用于接收出口端返回的帧处理信息,帧处理信息携带已完成的以太网帧信息在存储单元中的存储地址。
查询单元,用于查询已完成的以太网帧信息在存储单元中的存储地址所对应的在复制计数器存储表中的复制计数值,并将查询到的复制计数值减去预设第二值。
以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。