CN105141548A - 高效以太网数据帧包fifo实现方法 - Google Patents
高效以太网数据帧包fifo实现方法 Download PDFInfo
- Publication number
- CN105141548A CN105141548A CN201510435832.0A CN201510435832A CN105141548A CN 105141548 A CN105141548 A CN 105141548A CN 201510435832 A CN201510435832 A CN 201510435832A CN 105141548 A CN105141548 A CN 105141548A
- Authority
- CN
- China
- Prior art keywords
- frame
- fifo
- data
- ethernet data
- data frame
- 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
Links
Classifications
-
- 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
- H04L47/62—Queue scheduling characterised by scheduling criteria
- H04L47/6245—Modifications to standard FIFO or LIFO
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning of proxy services
- H04L67/568—Storing data temporarily at an intermediate stage, e.g. caching
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F5/00—Methods or arrangements for data conversion without changing the order or content of the data handled
- G06F5/06—Methods or arrangements for data conversion without changing the order or content of the data handled for changing the speed of data flow, i.e. speed regularising or timing, e.g. delay lines, FIFO buffers; over- or underrun control therefor
- G06F5/065—Partitioned buffers, e.g. allowing multiple independent queues, bidirectional FIFO's
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Communication Control (AREA)
Abstract
本发明公开了一种高效以太网数据帧包FIFO实现方法,仅使用一个FIFO和一个帧计数器,所述FIFO用于缓存以太网数据帧,所述以太网数据帧每个数据单元包含十个数据位,其中高二位为帧状态标志位,低八位为以太网数据帧的一个字节,所述帧状态标志位的00、01、10、11四种标识状态分别对应以太网数据帧的第二至倒数第三个字节、数据帧起始字节、数据帧的倒数第二个字节以及数据帧的结束字节四种数据中的一种。本发明的高效以太网数据帧包FIFO实现方法仅使用一个FIFO即实现了数据帧的高效存储与处理,通过对以太网数据帧的倒数第二字节进行特殊标记,在不需要解析以太网数据帧内容的情况下,快速从FIFO中截取完整的以太网数据帧,节约电路资源,提高数据处理速度,适用于更多的应用场合。
Description
技术领域
本发明涉及一种数据的处理方法,特别是一种数据帧的FIFO处理方法。
背景技术
现有以太网介质访问控制层(MAC)对以太网PHY的数据存储时通常使用包先入先出缓存(FIFO),为了提高数据处理速度,通常使用乒乓缓存(PING-PONGFIFO),每个FIFO的深度至少是一个最长以太网数据帧长。而在实际数据传输过程中,数据并非在任何情况下都以最大帧长进行传输,在短帧传输的过程中,会造成较大的资源浪费,同时PING-PONGFIFO的控制部分也比较复杂。
以太网帧数据由10比特数据组成,最高比特位为1表示帧结束,次高比特位为1表示帧开始,低8位比特位表示传输的数据。在写使能有效的情况下,每个时钟的上升沿将数据存储到FIFO中。
传统FIFO的工作特性是,无论帧长占用FIFO空间的多少,一个帧结束后就不能再写入数据,直到FIFO中的数据被处理完成,这样会浪费存储空间。
为了加快数据处理速率,通常会使用两块FIFO,如附图1所示,当其中一个FIFO写入数据完成之后,由控制单元将写数据的控制权交给另一个FIFO。同时后级处理单元可以从前一个FIFO中读出数据,这样依次交替循环进行读写操作。
发明内容
发明目的:为了克服现有技术中存在的不足,本发明提供了一种仅使用一个FIFO和一个帧计数器的方案实现与乒乓缓存同等功能的方法。
技术方案:为实现上述目的,本发明的高效以太网数据帧包FIFO实现方法仅使用一个FIFO和一个帧计数器,所述FIFO用于缓存以太网数据帧,所述以太网数据帧每个数据单元包含十个数据位,其中高二位为帧状态标志位,低八位为以太网数据帧的一个字节,所述帧状态标志位的00、01、10、11四种标识状态分别对应以太网数据帧的第二至倒数第三个字节、数据帧起始字节、数据帧的倒数第二个字节以及数据帧的结束字节四种数据中的一种。
进一步地,所述FIFO的深度满足MAC处理数据的需求。
进一步地,使用同步SRAM做为FIFO的存储单元。
有益效果:本发明的高效以太网数据帧包FIFO实现方法仅使用一个FIFO即实现了数据帧的高效存储与处理,通过对以太网数据帧的倒数第二字节进行特殊标记,在不需要解析以太网数据帧内容的情况下,快速从FIFO中截取完整的以太网数据帧,节约电路资源,提高数据处理速度,适用于更多的应用场合。
附图说明
附图1为两块FIFO循环读取数据帧的原理图;
附图2为使用传统方法时FIFO中数据帧的读取原理图以及各数据部分的数据状态标志;
附图3为使用本发明方法时FIFO中数据帧的读取原理图以及各数据部分的数据状态标志;
附图4为FIFO的数据组织结构。
具体实施方式
下面结合附图对本发明作更进一步的说明。
本发明提出通过对以太网数据帧倒数第二字节进行特殊标记的方式,仅使用一个FIFO和一个帧计数器的方案实现与PING-PONGFIFO同等功能的方法。FIFO的深度满足MAC处理数据的需求即可。
在大多数的应用场景下,使用同步SRAM做为FIFO的存储单元,其特性是在时钟的上升沿给出读有效信号,在下一个时钟的上升沿可以从SRAM的输出端口采样到稳定的数据。
以太网数据以字节为单位,即8位数据位,而通常在存储数据的时候使用10位数据位,多出的2位分别用于标志帧开始和帧结束。这样数据分成3种类型,帧开始(次高比特位),帧结束(最高比特位),中间数据。
在使用一个FIFO时,FIFO中可能会有多个以太网数据帧,只有当帧的最后一个数据被读出来以后才能知道是不是帧的结束,但对于判断是否还需要立即读下一个数据来说,这实际上已经晚了。如图2所示,在读出帧结束数据的时刻(rdata的高2位是10),来不及判定是不是需要继续读数据,除非此时这个FIFO已经空了。
前面指出,有2位用于标志帧状态的标志位实际上只使用了3种状态,我们可以使用第4种状态11标记倒数第二字节。如图3所示,这样就比较容易判定下一时刻是否还需要继续读数据了。
使用上述方法,用一个FIFO即可实现现有方案的功能和效率,节约了一半的资源。
附图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字节(假设一帧数据有n个字节)。
本发明的高效以太网数据帧包FIFO实现方法仅使用一个FIFO即实现了数据帧的高效存储与处理,通过对以太网数据帧的倒数第二字节进行特殊标记,在不需要解析以太网数据帧内容的情况下,快速从FIFO中截取完整的以太网数据帧,节约电路资源,提高数据处理速度,适用于更多的应用场合。
以上所述仅是本发明的优选实施方式,应当指出:对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
Claims (3)
1.一种高效以太网数据帧包FIFO实现方法,其特征在于:仅使用一个FIFO和一个帧计数器,所述FIFO用于缓存以太网数据帧,所述以太网数据帧每个数据单元包含十个数据位,其中高二位为帧状态标志位,低八位为以太网数据帧的一个字节,所述帧状态标志位的00、01、10、11四种标识状态分别对应以太网数据帧的第二至倒数第三个字节、数据帧起始字节、数据帧的倒数第二个字节以及数据帧的结束字节四种数据中的一种。
2.根据权利要求1所述的高效以太网数据帧包FIFO实现方法,其特征在于:所述FIFO的深度满足MAC处理数据的需求。
3.根据权利要求1所述的高效以太网数据帧包FIFO实现方法,其特征在于:使用同步SRAM做为FIFO的存储单元。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510435832.0A CN105141548A (zh) | 2015-07-22 | 2015-07-22 | 高效以太网数据帧包fifo实现方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510435832.0A CN105141548A (zh) | 2015-07-22 | 2015-07-22 | 高效以太网数据帧包fifo实现方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN105141548A true CN105141548A (zh) | 2015-12-09 |
Family
ID=54726761
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510435832.0A Pending CN105141548A (zh) | 2015-07-22 | 2015-07-22 | 高效以太网数据帧包fifo实现方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105141548A (zh) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1467956A (zh) * | 2002-07-12 | 2004-01-14 | 华为技术有限公司 | 一种利用帧定位实现包方式数据高位宽到低位宽的格式转换方法 |
CN1798091A (zh) * | 2004-12-30 | 2006-07-05 | 中兴通讯股份有限公司 | 一种提高sdram处理带宽的方法 |
CN101894005A (zh) * | 2010-05-26 | 2010-11-24 | 上海大学 | 高速接口向低速接口的异步fifo传输方法 |
-
2015
- 2015-07-22 CN CN201510435832.0A patent/CN105141548A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1467956A (zh) * | 2002-07-12 | 2004-01-14 | 华为技术有限公司 | 一种利用帧定位实现包方式数据高位宽到低位宽的格式转换方法 |
CN1798091A (zh) * | 2004-12-30 | 2006-07-05 | 中兴通讯股份有限公司 | 一种提高sdram处理带宽的方法 |
CN101894005A (zh) * | 2010-05-26 | 2010-11-24 | 上海大学 | 高速接口向低速接口的异步fifo传输方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2021088466A1 (zh) | 提高网络芯片报文存储效率的方法、设备及存储介质 | |
CN104407809B (zh) | 多通道fifo缓冲器的控制方法 | |
EP3206123B1 (en) | Data caching method and device, and storage medium | |
WO2016011811A1 (zh) | 一种内存管理方法、装置及存储介质 | |
CN102395958B (zh) | 一种数据包的并发处理方法及设备 | |
CN101635682B (zh) | 一种存储管理的方法和系统 | |
CN113791994A (zh) | 一种基于AXI协议wrap访问的DDR控制器及处理方法 | |
CN107800644A (zh) | 一种可动态配置的流水化令牌桶限速方法与装置 | |
WO2016202113A1 (zh) | 一种队列管理方法、装置及存储介质 | |
CN102629235A (zh) | 一种提高ddr存储器读写速率的方法 | |
CN105446699A (zh) | 数据帧队列管理方法 | |
CN101854259B (zh) | 一种数据包的计数方法及系统 | |
CN103746940B (zh) | 一种网络设备以及解包输出报文的方法 | |
US8363653B2 (en) | Packet forwarding method and device | |
CN102629914A (zh) | 一种以太网数据包缓存方法和装置 | |
EP1508225B1 (en) | Method for data storage in external and on-chip memory in a packet switch | |
CN105141548A (zh) | 高效以太网数据帧包fifo实现方法 | |
CN100358320C (zh) | 一种数据包存储的管理方法和装置 | |
CN102497287A (zh) | 一种以太网交换芯片中实现节能统计的方法及系统 | |
CN114153758B (zh) | 具有帧计数功能的跨时钟域数据处理方法 | |
CN102571535B (zh) | 一种数据延迟装置、方法及通信系统 | |
CN106776394B (zh) | 一种数据转换的硬件系统和存储器 | |
CN101894005A (zh) | 高速接口向低速接口的异步fifo传输方法 | |
CN116204461A (zh) | 数据位宽变换方法及系统 | |
CN112685358B (zh) | 一种基于fpga的ddr3分组读写方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20151209 |