高效以太网数据帧包fifo实现方法
【技术领域】
[0001]本发明涉及一种数据的处理方法,特别是一种数据帧的FIFO处理方法。
【背景技术】
[0002]现有以太网介质访问控制层(MAC)对以太网PHY的数据存储时通常使用包先入先出缓存(FIFO),为了提高数据处理速度,通常使用乒乓缓存(PING-PONG FIFO),每个FIFO的深度至少是一个最长以太网数据帧长。而在实际数据传输过程中,数据并非在任何情况下都以最大帧长进行传输,在短帧传输的过程中,会造成较大的资源浪费,同时PING-PONGFIFO的控制部分也比较复杂。
[0003]以太网帧数据由10比特数据组成,最高比特位为I表示帧结束,次高比特位为I表示帧开始,低8位比特位表示传输的数据。在写使能有效的情况下,每个时钟的上升沿将数据存储到FIFO中。
[0004]传统FIFO的工作特性是,无论帧长占用FIFO空间的多少,一个帧结束后就不能再写入数据,直到FIFO中的数据被处理完成,这样会浪费存储空间。
[0005]为了加快数据处理速率,通常会使用两块FIF0,如附图1所示,当其中一个FIFO写入数据完成之后,由控制单元将写数据的控制权交给另一个FIFO。同时后级处理单元可以从前一个FIFO中读出数据,这样依次交替循环进行读写操作。
【发明内容】
[0006]发明目的:为了克服现有技术中存在的不足,本发明提供了一种仅使用一个FIFO和一个帧计数器的方案实现与乒乓缓存同等功能的方法。
[0007]技术方案:为实现上述目的,本发明的高效以太网数据帧包FIFO实现方法仅使用一个FIFO和一个帧计数器,所述FIFO用于缓存以太网数据帧,所述以太网数据帧每个数据单元包含十个数据位,其中高二位为帧状态标志位,低八位为以太网数据帧的一个字节,所述帧状态标志位的00、01、10、11四种标识状态分别对应以太网数据帧的第二至倒数第三个字节、数据帧起始字节、数据帧的倒数第二个字节以及数据帧的结束字节四种数据中的一种。
[0008]进一步地,所述FIFO的深度满足MAC处理数据的需求。
[0009]进一步地,使用同步SRAM做为FIFO的存储单元。
[0010]有益效果:本发明的高效以太网数据帧包FIFO实现方法仅使用一个FIFO即实现了数据帧的高效存储与处理,通过对以太网数据帧的倒数第二字节进行特殊标记,在不需要解析以太网数据帧内容的情况下,快速从FIFO中截取完整的以太网数据帧,节约电路资源,提高数据处理速度,适用于更多的应用场合。
【附图说明】
[0011]附图1为两块FIFO循环读取数据帧的原理图;
[0012]附图2为使用传统方法时FIFO中数据帧的读取原理图以及各数据部分的数据状态标志;
[0013]附图3为使用本发明方法时FIFO中数据帧的读取原理图以及各数据部分的数据状态标志;
[0014]附图4为FIFO的数据组织结构。
【具体实施方式】
[0015]下面结合附图对本发明作更进一步的说明。
[0016]本发明提出通过对以太网数据帧倒数第二字节进行特殊标记的方式,仅使用一个FIFO和一个帧计数器的方案实现与PING-PONG FIFO同等功能的方法。FIFO的深度满足MAC处理数据的需求即可。
[0017]在大多数的应用场景下,使用同步SRAM做为FIFO的存储单元,其特性是在时钟的上升沿给出读有效信号,在下一个时钟的上升沿可以从SRAM的输出端口采样到稳定的数据。
[0018]以太网数据以字节为单位,即8位数据位,而通常在存储数据的时候使用10位数据位,多出的2位分别用于标志帧开始和帧结束。这样数据分成3种类型,帧开始(次高比特位),帧结束(最高比特位),中间数据。
[0019]在使用一个FIFO时,FIFO中可能会有多个以太网数据帧,只有当帧的最后一个数据被读出来以后才能知道是不是帧的结束,但对于判断是否还需要立即读下一个数据来说,这实际上已经晚了。如图2所示,在读出帧结束数据的时刻(rdata的高2位是10),来不及判定是不是需要继续读数据,除非此时这个FIFO已经空了。
[0020]前面指出,有2位用于标志帧状态的标志位实际上只使用了 3种状态,我们可以使用第4种状态11标记倒数第二字节。如图3所示,这样就比较容易判定下一时刻是否还需要继续读数据了。
[0021]使用上述方法,用一个FIFO即可实现现有方案的功能和效率,节约了一半的资源。
[0022]附图4所示为FIFO的数据组织结构,bit[9:8]是表示数据帧的高二位,作为数据状态标志来表示数据在一帧中的位置,bit[7:0]表示数据帧的低八位。如图4所示,bit [9:8]为01的时候,bit [7:0]表示一帧数组的开始,而bit [9:8]为10的时候,bit [7:0]表示一帧数组的结束,这里使用bit[9:8]为11的时候表示一帧数据的倒数第二字节,而bit [9:8]为00的时候表示数据处理一帧的2?n-2字节(假设一帧数据有η个字节)。
[0023]本发明的高效以太网数据帧包FIFO实现方法仅使用一个FIFO即实现了数据帧的高效存储与处理,通过对以太网数据帧的倒数第二字节进行特殊标记,在不需要解析以太网数据帧内容的情况下,快速从FIFO中截取完整的以太网数据帧,节约电路资源,提高数据处理速度,适用于更多的应用场合。
[0024]以上所述仅是本发明的优选实施方式,应当指出:对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
【主权项】
1.一种高效以太网数据帧包FIFO实现方法,其特征在于:仅使用一个FIFO和一个帧计数器,所述FIFO用于缓存以太网数据帧,所述以太网数据帧每个数据单元包含十个数据位,其中高二位为帧状态标志位,低八位为以太网数据帧的一个字节,所述帧状态标志位的00、01、10、11四种标识状态分别对应以太网数据帧的第二至倒数第三个字节、数据帧起始字节、数据帧的倒数第二个字节以及数据帧的结束字节四种数据中的一种。2.根据权利要求1所述的高效以太网数据帧包FIFO实现方法,其特征在于:所述FIFO的深度满足MAC处理数据的需求。3.根据权利要求1所述的高效以太网数据帧包FIFO实现方法,其特征在于:使用同步SRAM做为FIFO的存储单元。
【专利摘要】本发明公开了一种高效以太网数据帧包FIFO实现方法,仅使用一个FIFO和一个帧计数器,所述FIFO用于缓存以太网数据帧,所述以太网数据帧每个数据单元包含十个数据位,其中高二位为帧状态标志位,低八位为以太网数据帧的一个字节,所述帧状态标志位的00、01、10、11四种标识状态分别对应以太网数据帧的第二至倒数第三个字节、数据帧起始字节、数据帧的倒数第二个字节以及数据帧的结束字节四种数据中的一种。本发明的高效以太网数据帧包FIFO实现方法仅使用一个FIFO即实现了数据帧的高效存储与处理,通过对以太网数据帧的倒数第二字节进行特殊标记,在不需要解析以太网数据帧内容的情况下,快速从FIFO中截取完整的以太网数据帧,节约电路资源,提高数据处理速度,适用于更多的应用场合。
【IPC分类】H04L12/863, H04L29/08
【公开号】CN105141548
【申请号】CN201510435832
【发明人】冯广影, 黄锋, 李焱
【申请人】江苏技睿通信科技有限公司
【公开日】2015年12月9日
【申请日】2015年7月22日