基于入口fifo和链表结构的以太网帧存储转发的方法

文档序号:7710009阅读:147来源:国知局
专利名称:基于入口fifo和链表结构的以太网帧存储转发的方法
技术领域
本发明涉及使用外部存储器进行以太网帧的存储并转发的技术,尤其涉及基于入口 FIFO和链表结构的以太网帧存储转发的方法。
背景技术
以太网芯片在处理以太网帧时,一般需要对以太网帧进行存储并转发,即首先把接收到的以太网帧存储在外部的大容量的存储器中,并提取该以太网帧的信息,例如帧的长度、帧的优先级等,然后从外部存储器中取出以太网帧,并转发。 目前在使用外部大容量存储器进行以太网帧的存储转发时,一般会首先把以太网帧存入外部存储器,在存储完一个完整的帧后,会进行帧合法性的判定,例如判定以太网帧的CRC校验是否正确、帧长度是否符合要求等;而在外部存储器中存储以太网帧时,则把存储器划分为两个存储空间一部分空间存储以太网帧的数据;另一部分空间则存储以太网帧的帧信息,例如帧的长度、帧的优先级等。这种操作模式如图1、2所示。
接收以太网帧过程芯片在IDLE状态下等待以太网帧的到来,如果有帧到来,则把以太网帧数据存入外部存储器,并判定当前帧是否接收完毕;如果没有接收完毕,则继续接收帧数据,并继续利用外部存储器存储帧数据;如果接收完毕,则开始进行帧合法性的判定,然后把帧信息写入外部存储器。 读取以太网帧过程芯片在IDLE状态下等待读取帧的请求;当有读取帧请求时,首先需要从外部存储器中读出帧的合法性信息以及帧的其他信息,然后根据帧的信息,把帧数据从外部存储器中读出。 从图1、2的操作流程可以看出,这种操作模式主要有两个不足如果以太网帧是非法的以太网帧,即不是以太网芯片所需要的帧,但仍然需要进行外部存储器的读写操作,造成存储转发效率的降低;其次,在存储或者转发一个以太网帧时,需要管理两套读写地址信息以太网帧数据的读写地址、以太网帧信息的读写地址。虽然利用外部存储器的突发操作模式,可以部分提高存储转发效率,但仍然需要两次突发的操作,无法进一步提高存储转发效率。 如果存储转发效率不高,会有大量的以太网帧无法得到及时处理,从而被丢弃,因此需要有一种高效的以太网帧存储转发方法,提高存储转发效率,减少因存储转发效率过低造成的丢包。

发明内容
本发明所要解决的技术问题是,提供一种基于入口 FIFO和链表结构的以太网帧存储转发的方法。 为了解决上述技术问题,本发明中基于入口 FIFO和链表结构的以太网帧存储转发的方法,包括 (1)在外部存储器读写控制逻辑模块之前设置入口 FIFO,在从网络中接收以太网帧时,利用入口FIFO剔除不合法的以太网帧,并同时统计出以太网帧的帧信息;利用入口
FIFO,剔除不合法的以太网帧,而不是在把以太网帧存入外部存储器后再判定当前以太网
帧是否合法。通过入口 FIFO的过滤作用,可以减少外部存储器的读写次数,即针对非法以
太网帧,外部存储器不存在读写开销,从而提高外部存储器的存储转发效率; (2)将以太网帧存储至外部存储器时,把以太网帧构造成链表结构,只使用一套读
写地址信息,即只需要一次突发操作。 本发明中,所述以太网帧的帧信息包括帧长度和帧优先级。
本发明中,所述步骤(1)中包括 A、针对入口 FIFO设置寄存以太网相关信息的寄存器; B、在有以太网帧到来时,把以太网帧数据缓存在入口 FIFO中,并同时进行以太网帧长度的计数以及以太网帧的CRC32校验; C、当以太网帧接收结束时,完成对该以太网帧的长度信息、CRC32校验信息提取;同时根据以太网芯片设计的需求,对该以太网帧进行合法性的判定,并利用寄存器寄存这些信息; D、当以太网帧被判定为非法的以太网帧时,直接清空入口 FIFO,并把寄存以太网信息的寄存器复位到初始值; E、当以太网帧被判定为合法的以太网帧时,首先从寄存以太网信息的寄存器中读出以太网帧的相关信息,并写入外部存储器,然后从入口 FIFO中读取以太网帧数据,并写入外部存储器。 本发明中,步骤C所述对以太网帧进行合法性的判定,包括对帧长度和帧的目的地址是否符合需求进行判定。 本发明中,在进行入口 FIFO的读操作时,继续向入口 FIFO中写入新的以太网帧;同时为了能够线速处理以太网帧,根据设计需要调节入口 FIFO的深度,保证不会丢帧。
本发明中,所述步骤(2)中包括向外部存储器存储以太网帧的过程
a、在向外部存储器存储以太网帧时,设置帧计数器,统计当前外部存储器中存有多少个以太网帧;并设置读地址寄存器,存储以太网帧的地址信息; b、在向外部存储器存储以太网帧时,如果发现帧计数器为0,则表示当前外都存储器中没有存储以太网帧,此时,需将当前以太网帧的帧信息在外部存储器中的存储地址写入读地址寄存器中;然后把以太网帧信息以及帧数据写入外部存储器; c、在向外部存储器存储以太网帧时,如果发现上述帧计数器不为0,则直接在外部存储器中存储帧信息以及帧数据,不对读地址寄存器进行操作;
d、在向外部存储器存储以太网帧时,每存储完毕一个帧,给帧计数器加1。
本发明中,还包括从外部存储器读取以太网帧的过程 e、在从外部存储器中读取以太网帧时,如果发现此时的帧计数器为0,则表示外都存储器中没有以太网帧,取消读操作; f、在从外部存储器中读取以太网帧时,如果发现此时的帧计数器为l,则首先从读地址寄存器中取出以太网帧信息在外部存储器中的存储地址,然后根据此寄存地址信息,读取外部寄存器,获取以太网帧信息以及帧数据; g、在从外部存储器中读取以太网帧时,如果此时的帧计数器既不为0,也不为1,则首先从读地址寄存器中取出以太网帧信息在外部存储器中的存储地址,然后根据此寄存地址信息,读取外部寄存器,获取以太网帧信息以及帧数据;在读取一个帧结束后,把下一个外部存储器地址写入读地址寄存器; h、在从外部存储器中读取以太网帧时,每读取完毕一个帧,需要给帧计数器减1。
本发明中,外部存储器的数据位宽是8位、16位、32位、64位、128位或者256位,而入口 FIFO的数据位宽与外部存储器的数据位宽保持一致。
本发明的有益效果在于 本发明实现了结合入口 FIFO以及基于链表结构的以太网帧存储转发方法,本发明中的入口 FIFO与链表结构的以太网帧存储转发方法是紧密相连不可分割的两部分。采用本发明的方法,利用入口 FIFO,过滤非法的以太网帧,减少不必要的外部存储器操作次数,提高了合法以太网帧的存储转发效率;同时在利用入口 FIFO缓存接收到的以太网帧时,提取以太网帧的帧信息,例如帧长度以及帧优先级等,为基于链表结构的以太网帧存储转发方案提供基础;而基于链表结构的以太网帧存储转发方法,不再是把外部存储器分为两部分存储空间,即不需要管理两套读写地址信息,而只是管理一套读写地址信息,简化了外部存储器的控制复杂性,提高了以太网帧的存储转发效率;同时,在进行外部存储器的读写操作时,无需考虑到帧信息的读写方式,简化了外部存储器的读写操作次数,提高了以太网帧的存储转发效率。


图1为现有技术中以太网帧的存储转发时接收帧的流程图; 图2为现有技术中以太网帧的存储转发时读取帧的流程图; 图3为本发明中以太网帧存储转发的流程图; 图4为本发明中构造的链表结构的以太网帧存储模式; 图5为本发明中以太网帧的存储转发时接收帧的流程图; 图6为本发明中以太网帧的存储转发时读取帧的流程图。
具体实施例方式
下面将结合附图,对本发明的实施例进行详细描述。 本发明中,入口FIFO、读写控制逻辑模块、帧计数器及有关的各种寄存器均为硬件实现的功能模块,其实现手段已为本领域技术人员熟知,故本发明不再对此详细阐述。
FIFO是英文First In First Out的縮写,是一种先进先出的数据缓存器。FIFO与普通存储器的区别是没有外部读写地址线,这样使用起来非常简单,但只能顺序写入数据、顺序的读出数据,其数据地址由内部读写指针自动加1完成,不能像普通存储器那样可以由地址线决定读取或写入某个指定的地址。 本发明是一种基于链表结构的高效以太网帧存储转发方法,是在基于以太网ASIC芯片设计中提出的。通过入口 FIFO以及基于链表结构的以太网帧存储转发方法,减少了外部存储器的读写次数,优化了外部存储器的读写控制逻辑模块,做到了高效的以太网帧存储转发。 本实施例的主要实施逻辑有入口 FIFO、外部存储器以及外部存储器的读写控制器,如图3所示。构造的链表结构的以太网帧存储模式如图4所示。 在写以太网帧时首先利用入口 FIF0对接收到的8位以太网帧进行缓存,由于设计中的入口 FIFO位宽是16位,因此需要把8位数据拼接成16位的数据,然后存入入口FIFO。在利用入口 FIFO缓存以太网帧时,进行CRC32的校验计算,同时对以太网帧进行帧长度计数,并提取以太网帧的帧信息,包括以太网帧的目的地址、源地址以及Length/Type域,并把这些信息写入寄存器。当以太网帧接收完毕后,首先判定当前以太网帧是否是非法的以太网帧。如果是非法以太网帧,则把入口FIFO清空,等待下一个以太网帧;从而可以减少不必要的外部存储器读写操作;如果是合法的以太网帧,则首先把以太网帧的信息写入外部存储器,然后紧接着写入以太网帧数据。以太网帧信息与以太网帧数据在外部存储器中采用连续地址存储。在写完毕后,把帧个数计数器加1。其流程如附图5所示。
在读以太网帧时,首先从读地址寄存器中得到当前需要读的以太网帧在外部存储器中的存储地址,然后根据该地址,从外部存储器中读取以太网帧信息以及帧数据。当读取完毕后,把帧个数计数器减1,同时从下一个存储地址写入读地址寄存器。其流程如附图5所示。 应该理解的是,本发明并不限于如上图示和描述的确切构造,在不背离的权利要求所定义的本发明的精神和范围,可以对发明进行各种不同的改变和修改,都被认为是本发明的保护范围。
权利要求
一种基于入口FIFO和链表结构的以太网帧存储转发的方法,包括(1)在外部存储器读写控制逻辑模块之前设置入口FIFO,在从网络中接收以太网帧时,利用入口FIFO剔除不合法的以太网帧,并同时统计出以太网帧的帧信息;(2)将以太网帧存储至外部存储器时,把以太网帧构造成链表结构,只使用一套读写地址信息,即只需要一次突发操作。
2. 根据权利要求1所述的以太网帧存储转发的方法,其特征在于,所述以太网帧的帧信息包括帧长度和帧优先级。
3. 根据权利要求l所述的以太网帧存储转发的方法,其特征在于,所述步骤(1)中包括A、 针对入口 FIFO设置寄存以太网相关信息的寄存器;B、 在有以太网帧到来时,把以太网帧数据缓存在入口 FIFO中,并同时进行以太网帧长度的计数以及以太网帧的CRC32校验;C、 当以太网帧接收结束时,完成对该以太网帧的长度信息、CRC32校验信息提取;同时根据以太网芯片设计的需求,对该以太网帧进行合法性的判定,并利用寄存器寄存这些信息;D、 当以太网帧被判定为非法的以太网帧时,直接清空入口FIFO,并把寄存以太网信息的寄存器复位到初始值;E、 当以太网帧被判定为合法的以太网帧时,首先从寄存以太网信息的寄存器中读出以太网帧的相关信息,并写入外部存储器,然后从入口FIFO中读取以太网帧数据,并写入外部存储器。
4. 根据权利要求3所述的以太网帧存储转发的方法,其特征在于,步骤C所述对以太网帧进行合法性的判定,包括对帧长度和帧的目的地址是否符合需求进行判定。
5. 根据权利要求3所述的以太网帧存储转发的方法,其特征在于,在进行入口 FIFO的读操作时,继续向入口 FIFO中写入新的以太网帧;同时为了能够线速处理以太网帧,根据设计需要调节入口 FIFO的深度,保证不会丢帧。
6. 根据权利要求l所述的以太网帧存储转发的方法,其特征在于,所述步骤(2)中包括向外部存储器存储以太网帧的过程a、 在向外部存储器存储以太网帧时,设置帧计数器,统计当前外部存储器中存有多少个以太网帧;并设置读地址寄存器,存储以太网帧的地址信息;b、 在向外部存储器存储以太网帧时,如果发现帧计数器为0,则表示当前外部存储器中没有存储以太网帧,此时,需将当前以太网帧的帧信息在外部存储器中的存储地址写入读地址寄存器中;然后把以太网帧信息以及帧数据写入外部存储器;c、 在向外部存储器存储以太网帧时,如果发现上述帧计数器不为0,则直接在外部存储器中存储帧信息以及帧数据,不对读地址寄存器进行操作;d、 在向外部存储器存储以太网帧时,每存储完毕一个帧,给帧计数器加1。
7. 根据权利要求6所述的以太网帧存储转发的方法,其特征在于,还包括从外部存储器读取以太网帧的过程e、 在从外部存储器中读取以太网帧时,如果发现此时的帧计数器为0,则表示外都存储器中没有以太网帧,取消读操作;f、 在从外部存储器中读取以太网帧时,如果发现此时的帧计数器为l,则首先从读地址寄存器中取出以太网帧信息在外部存储器中的存储地址,然后根据此寄存地址信息,读取外部寄存器,获取以太网帧信息以及帧数据;g、 在从外部存储器中读取以太网帧时,如果此时的帧计数器既不为0,也不为1,则首先从读地址寄存器中取出以太网帧信息在外部存储器中的存储地址,然后根据此寄存地址信息,读取外部寄存器,获取以太网帧信息以及帧数据;在读取一个帧结束后,把下一个外部存储器地址写入读地址寄存器;h、 在从外部存储器中读取以太网帧时,每读取完毕一个帧,需要给帧计数器减l。
8.根据权利要求1至7所述的任意一种以太网帧存储转发的方法,其特征在于,外部存储器的数据位宽是8位、16位、32位、64位、128位或者256位,而入口 FIFO的数据位宽与外部存储器的数据位宽保持一致。
全文摘要
本发明涉及使用外部存储器进行以太网帧的存储并转发的技术,旨在提供一种基于入口FIFO和链表结构的以太网帧存储转发的方法。包括在外部存储器读写控制逻辑模块之前设置入口FIFO,在从网络中接收以太网帧时,利用入口FIFO剔除不合法的以太网帧,并同时统计出以太网帧的帧信息;将以太网帧存储至外部存储器时,把以太网帧构造成链表结构,只使用一套读写地址信息,即只需要一次突发操作。本发明利用入口FIFO过滤非法的以太网帧,减少不必要的外部存储器操作次数,提高了合法以太网帧的存储转发效率;基于链表结构的以太网帧存储转发方法只是管理一套读写地址信息,简化了外部存储器的控制复杂性,提高了以太网帧的存储转发效率。
文档编号H04L29/06GK101697541SQ200910153239
公开日2010年4月21日 申请日期2009年10月29日 优先权日2009年10月29日
发明者张宇, 陈伟强 申请人:杭州钦钺科技有限公司;
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1