CN1221104C - 一种利用帧定位实现包方式数据高位宽到低位宽的格式转换方法 - Google Patents
一种利用帧定位实现包方式数据高位宽到低位宽的格式转换方法 Download PDFInfo
- Publication number
- CN1221104C CN1221104C CN 02126420 CN02126420A CN1221104C CN 1221104 C CN1221104 C CN 1221104C CN 02126420 CN02126420 CN 02126420 CN 02126420 A CN02126420 A CN 02126420A CN 1221104 C CN1221104 C CN 1221104C
- Authority
- CN
- China
- Prior art keywords
- data
- bag
- bit width
- packet
- signal
- 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.)
- Expired - Fee Related
Links
Images
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了一种利用帧定位实现包方式数据高位宽到低位宽的格式转换方法,其特征在于,所述方法包括以下步骤:(1)对输入的包进行超长包检测,将超过预设定包长的包处理成标准包;(2)把所述输入的包的状态信号加上包长信息转换成低位宽的帧头,存储在数据包包头的前一个地址;(3)通过对所述低位宽的数据进行帧头定位,恢复成带有状态信息的高位宽数据。本发明与不考虑以太网包数据特点的数据格式转换的方式比较,利用帧定位的方式实现以太网包的格式转换具有节约存储资源、格式变换方便、具有“自愈”功能的优点,并且逻辑实现也比较简单,不会额外增加系统的复杂度。
Description
发明领域
本发明属于一种基于包方式数据的格式转换方式,所谓包方式数据包括以太网、异步转移模式(ATM)、高阶数据链路控制规程(HDLC)、链路接入规程(LAPS)、通用帧格式处理(GFP)等这些以包为传输基本单位的数据,该格式转换方式涉及超长包、异常包的处理、特殊包的过滤以及利用帧定位的方式来实现包方式数据高位宽数据到低位宽数据转换的方法。
技术背景
包方式数据通常可以处理成状态位+数据位,加上状态位后,数据位宽发生改变,往往不利于直接存储。因此有必要把高位宽数据转换成低位宽数据,以利于数据的存储。
以以太网包数据的处理为例,在某实现以太网透传SDH芯片的流控单元设计过程中,需要对从媒体接入控制(MAC)层输入的数据进行预处理,一方面将非标准的以太网包处理成标准以太网包;另一方面,需要对以太网包数据进行格式转换,以利于缓存处理,从而达到流量控制的目的。
流控单元的核心是一个2M的32位宽同步动态随机存取存储器(SDRAM),而从MAC层输入的以太网包可以处理成5位状态位和32位数据位,数据格式如下表1:
bit 36 | bit 35 | bit 33 | bit 32~31 | bit 31~0 |
sop | eop | err | mod[1:0] | 有效数据 |
数据格式包括包头指示信号(sop)、包尾指示信号(eop)、错误指示信号(err)、有效字节指示信号(mod)以及32bit的数据位。如果不对37位宽数据处理直接存入SDRAM,考虑到SDRAM的一个存储单元以字节为单位,至少需要两片SDRAM,这就造成了存储资源的浪费,因此必须对37位宽的数据进行某种处理以使之适于用32位宽的SDRAM存储。传统的数据格式转换方式可以将37位宽的数据拆分成一个16位宽的数据和一个21位宽的数据,这样每个SDRAM存储单元(32bit)可以存储16位宽的数据或一个21位宽的数据,虽然只用一片SDRAM可以完成存储,但同样有存储资源的浪费。
发明内容
上述现有存储方式都没有考虑到包方式数据的特点,由于包方式数据可以除了数据位以外,可以用5位包状态位来描述,在一个数据包传输过程中,包状态是不变的,因此针对上述问题,本发明提出在数据包间隙时,插入一个帧头标志字节在数据流中,该帧头标志字节用来描述数据包的状态信息(包括包头指示信号sop、包尾指示信号eop、错误指示信号err、有效字节指示信号mod),然后将该数据存储在先入先出缓存器(FIFO)中,SDRAM控制器根据先入先出缓存器(FIFO)中的空满情况读取先入先出缓存器(FIFO)中的数据,并且存入的SDRAM中;在SDRAM的出口搜索帧头实现帧定位,并根据帧头信息恢复出数据包的状态信息。
本发明的目的在于提供一种以太网包格式转换的方法,与不考虑以太网包数据特点的数据格式转换的方式比较,利用加帧头的方式记录以太网包状态信息,利用帧定位的方式恢复以太网包的信息,实现数据格式的转换,一方面可以节约存储资源,另一方面这种格式转换方式具有“自愈”功能。本发明提出一种高效简洁的异常包和特殊包的处理方式,该方式对以太网包进行了封装和解封装的处理,重新生成以太网包信息,因此可以可靠处理异常包和特殊包,并且和位宽转换融为一体,不占用额外的资源。
本发明采用以下技术方案,一种利用帧定位实现包方式数据高位宽到低位宽的格式转换方法,所述输入的数据包包括数据信号和状态指示信号,所述状态指示信号包括包头指示信号、包尾指示信号、错误指示信号和有效字节指示信号,其特征在于,所述方法包括以下步骤:
(1)对所述数据包进行超长包检测,将所述数据包的数据信号写入格式转换先入先出缓存器,从而将超过预设定包长的包处理成标准包;
(2)在所述数据包的包尾处得到包长信息,当检测到数据流中包尾指示信号时,把输入数据包的错误指示信号、有效字节指示信号、包长信息,加上标志字节形成一个低位宽数据帧头,存储在所述数据包包头的前一个地址;
(3)通过对所述低位宽的数据进行帧头定位,恢复成带有状态信息的高位宽数据。
附图说明
下面,参照附图,对于熟悉本技术领域的人员而言,从对本发明方法的详细描述中,本发明的上述和其他目的、特征和优点将显而易见。
图1是实现本发明方法的流程示意图;
图2是本发明一较佳实施例的格式转换操作时序图;
图3是本发明一较佳实施例的状态获取时序图。
具体实施方式
以以太网包数据格式转换为例,该格式转换实现高位宽数据到低位宽数据的转换。如图1所示,以太网包格式转换的总体思路是这样的:首先对输入的以太网包进行超长包检测,将超过预设定包长的以太网包处理成标准以太网包。标准以太网包通过格式转换先入先出缓存器(FIFO)转换成低位宽数据,由SDRAM控制器控制SDRAM的读写,从SDRAM控制器中读出的低位宽数据经过帧定位处理后恢复成高位宽的数据,完成流控单元数据预处理和恢复。
流控单元数据预处理主要包括3个主要过程:(1)超长包检测;(2)以太网包数据的格式转换(帧格式生成);(3)以太网包数据格式恢复(帧定位)。
下面结合图1所示的流程,以37位数据总线到32位数据总线的转换为例,对整个过程进行详细说明。
步骤101,首先进行超长包检测,对以太网超长包处理是这样:首先检测输入以太网包的包长,当检测到包头指示信号(sop)时,把内部的包长计数器复位,计数器根据输入数据的写有效信号自加1记数,当计数器大于预设定超长包值时,就认为输入的数据包长超过了标准,超长包处理启动,在数据流中插入包尾指示信号(eop),同时错误指示信号(err)置1,指示该包为错包,超过预设定超长包值的数据不再写入格式转换先入先出缓存器(FIFO)。此过程相当于把输入的超长包,转换成一个标准的以太网数据包。
步骤102,超长包处理后的包可以认为是标准的以太网包,可以进行以太网包数据的格式转换,把输入的以太网包的状态信号(包括包头指示信号sop、包尾指示信号eop、错误指示信号err、有效字节指示信号mod)加上包长信息转换成低位的32位宽的帧头,存储在数据包包头的前一个地址,帧头的数据结构如下表2所示:
bit[31:12] | bit[11] | bit[10:9] | bit[8:0] |
F6F28 | 错误指示(err) | 模式指示(mod) | 包长计数值 |
具体实现是这样的:首先,检测数据流中的包头指示信号(sop),当包头指示信号(sop)和格式转换先入先出缓存器(FIFO)的写有效信号同时为高时,把内部的一个包长计数器置初值,此计数器根据先入先出缓存器(FIFO)的写使能信号加1计数,同时先入先出缓存器(FIFO)的地址指针(waddr_data)加1,当检测到数据流中包尾指示信号(eop)时,把输入以太网包的错误指示信号(err)、有效字节指示信号(mod)、包长计数器(pkg_sz)计数值,再加上标志字节(F6F28)形成一个低位32位宽的数据,存在帧头寄存器(pkg_state)中,并将该寄存器内容传到32位数据总线(wdata)上,为了实现转换后的32位宽以太网数据包的包头为帧头字节,格式转换先入先出缓存器(FIFO)的写地址指针在数据地址和帧头地址之间变换,在32位宽数据传送期间,写地址指针指向数据地址;在帧头计算结束的第一个周期,写地址指针指向帧头地址,而该帧头地址为上一个写周期数据地址的最后一位,这样就实现了在每一个包的包头插入帧头字节。
步骤103,格式转换操作时序如图2所示32位宽以太网包数据经过缓存控制后进入格式恢复步骤104,该步骤通过帧定位的方式把SDRAM控制器中的32位宽的数据恢复成带有状态信息的37位数据,即恢复出以太网数据包的包头指示信号(sop)、包尾指示信号(eop)、错误指示信号(err)、有效字节指示信号(mod)。
图2给出了在上述步骤102格式转换过程中的操作时序,wr_vld_int是上行模块写入先入先出缓存器(FIFO)的数据有效信号;wr_sop_int是上行模块写入先入先出缓存器(FIFO)的包头指示信号;wr_eop_int是上行模块写入先入先出缓存器(FIFO)的包尾指示信号;wr_err_int是上行模块写入先入先出缓存器(FIFO)的包错误指示信号;wr_sz_int是上行模块写入先入先出缓存器(FIFO)的包字节有效指示信号;pkg_sz是包长计数器;pkg_state是帧头寄存器;wdata为最终写入先入先出缓存器(FIFO)的数据,包括数据信息和帧头信息。
格式恢复步骤首先对帧头的定位,帧头状态获取是根据帧头搜索控制信号(data_norm)在低电平时,采样从SDRAM输入的数据,如果采样到的数据的前20比特是F6F28时,就认为采样到了帧头字节,帧头搜索控制信号(data_norm)置高。同时把帧头字节包含的相应信息传给内部寄存器(pkg_cnt,wr_err_tmp,wr_mod_tmp),这样就恢复出了以太网包的错误指示信号(err)、有效字节指示信号(mod)和包长信息。
帧头状态获取时序如图3所示。其中sd_rd_vld为从SDRAM中读取数据的有效指示信号,sd_rd_data为从SDRAM中读取的32bit数据信号,data_norm为帧头搜索控制信号;pkg_cnt为包长减计数器,初值由帧头中恢复;wr_err_tmp为恢复的包错误指示信号;wr_mod_tmp为恢复的字节有效指示信号。包长信息的恢复由主要是由帧头搜索控制信号(data_norm)来获得,通过该信号的上升沿和下降沿可以恢复数据包的包头指示信号(sop)、包尾指示信号(eop)信号:帧头搜索控制信号(data_norm)的上升沿产生包头指示信号(sop);帧头搜索控制信号(data_norm)的下降沿产生包尾指示信号(eop)。而帧头搜索控制信号(data_norm)的产生主要根据包长减计数器(pkg_cnt)的计数值,在包长减计数器(pkg_cnt)减计数期间,帧头搜索控制信号(data_norm)始终为高,一直到计数值为0,帧头搜索控制信号(data_norm)拉低,同时触发执行下一个搜索帧头F6F28的过程,在正常情况下,包长减计数器(pkg_cnt)减到0后,从SDRAM中读取的下一位数据必然是下一个包的帧头。在帧头搜索控制信号(data_norm)为高期间,不执行搜索帧头F6F28的过程,这样可以避免数据流中出现F6F28时误定帧。
如果进入流控单元的数据流中出现异常包时(无包头、无包尾或即无包头也无包尾),那么在帧格式生成时,帧头字节中的包长计数值必然记录着错误的包长信息,这样在格式恢复模块时,恢复的包长减计数器(pkg_cnt)的计数值就是错误的,在包长减计数器(pkg_cnt)减计数到0后,下一位数据就不会是下一个包的帧头,根据这个条件对该包的err状态位置高,表示该包是错包,这样利用帧定位方式同时实现了异常包处理。
在某些情况下,希望过滤掉特定包长的以太网包,如小于64的包和大于1518的包,在不占用系统资源的情况下,利用帧定位可以很方便的实现,具体做法是:在格式恢复模块利用帧定位提取帧头中的包长信息时,如果提取的包长值属于正常包,则对该包进行恢复;如果提取的包长信息属于特殊包(比如小于64的包和大于1518),则将恢复的包长改为正常包的包长值或者直接丢弃,由于强制性修改的包长值不符合帧搜索规律(即在包长减计数器(pkg_cnt)减计数到0后,下一位数据应该是下一个包的帧头),因此符合异常包的处理流程,系统会对恢复出的以太网包加err,因此特殊包过滤不会影响正常的包恢复过程,这样利用帧定位方式同时实现了特殊包的过滤。
这样在流控单元的入口用帧格式生成的方式实现37位以太网包数据到32位以太网包数据的转换,在出口通过帧定位,就可以将32位以太网包数据恢复成37位以太网包数据。
本发明在实现位宽变换的同时,还具有对异常包和特殊包的处理功能。对于异常包,由于采用帧定位的方式实现格式转换是以包为单位进行处理的,因此一旦出现异常包(无包头、无包尾或既无包头也无包尾),系统会做丢包处理,而不会影响正常包的传送,因而不会造成整个数据流的中断。对于特殊包,在帧定位时对包长信息进行处理,就可以过滤掉特定包长的数据包。
前面提供了对较佳实施例的描述,以使本领域内的任何技术人员可使用或利用本发明。对这些实施例的各种修改对本领域内的技术人员是显而易见的,可把这里所述的总的原理应用到其他实施例而不使用创造性。因而,本发明将不限于这里所示的实施例,而应依据符合这里所揭示的原理和新特征的最宽范围。
Claims (6)
1、一种利用帧定位实现包方式数据高位宽到低位宽的格式转换方法,所述输入的数据包包括数据信号和状态指示信号,所述状态指示信号包括包头指示信号、包尾指示信号、错误指示信号和有效字节指示信号,其特征在于,所述方法包括以下步骤:
(1)对所述数据包进行超长包检测,将所述数据包的数据信号写入格式转换先入先出缓存器,从而将超过预设定包长的包处理成标准包;
(2)在所述数据包的包尾处得到包长信息,当检测到数据流中包尾指示信号时,把输入数据包的错误指示信号、有效字节指示信号、包长信息,加上标志字节形成一个低位宽数据帧头,存储在所述数据包包头的前一个地址;
(3)通过对所述低位宽的数据进行帧头定位,恢复成带有状态信息的高位宽数据。
2、根据权利要求1所述的一种利用帧定位实现包方式数据高位宽到低位宽的格式转换方法,其特征在于,所述步骤(1)进一步包括以下步骤:
(1′)检测输入数据包的包长,当检测到包头指示信号时,将内部的包长计数器复位,计数器根据输入数据的写有效信号自加1计数;
(2′)当计数器计数值大于预定超长包值时,在数据流中插入包尾指示信号,同时错误指示信号置1,指示所述包为错包,超过预定超长包值的数据不再写入格式转换先入先出缓存器。
3、根据权利要求1所述的一种利用帧定位实现包方式数据高位宽到低位宽的格式转换方法,其特征在于,所述步骤(3)进一步包括:
根据帧头搜索控制信号在低电平时,采样从同步动态随机存取存储器输入的数据,如果采样到的数据的比特等于标志字节,就认为采样到了帧头字节,帧头搜索控制信号置高,将帧头字节包含的相应信息恢复成高位宽数据。
4、根据权利要求1所述的一种利用帧定位实现包方式数据高位宽到低位宽的格式转换方法,其特征在于,
当包头指示信号和所述格式转换先入先出缓存器的写有效信号同时为高时,把内部的一个包长计数器置初值,此计数器根据所述先入先出缓存器的写使能信号加1计数,同时所述先入先出缓存器的地址指针加1。
5、根据权利要求4所述的一种帧定位实现包方式数据高位宽到低位宽的格式转换方法,其特征在于,
格式转换先入先出缓存器的写地址指针在数据地址和帧头地址之间变换,在低位宽数据传送期间,写地址指针指向数据地址;在帧头计算结束的第一个周期,写地址指针指向帧头地址,而该帧头地址为上一个写周期数据地址的最后一位。
6、根据权利要求3所述的一种利用帧定位实现包方式数据高位宽到低位宽的格式转换方法,其特征在于,
在格式恢复过程中利用帧定位提取帧头中的包长信息时,如果提取的包长值属于正常包,则对该包进行恢复;如果提取的包长信息属于特殊包,可根据需求丢弃或透传,或将特殊包的包长改为正常包的包长值。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 02126420 CN1221104C (zh) | 2002-07-12 | 2002-07-12 | 一种利用帧定位实现包方式数据高位宽到低位宽的格式转换方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 02126420 CN1221104C (zh) | 2002-07-12 | 2002-07-12 | 一种利用帧定位实现包方式数据高位宽到低位宽的格式转换方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1467956A CN1467956A (zh) | 2004-01-14 |
CN1221104C true CN1221104C (zh) | 2005-09-28 |
Family
ID=34143299
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN 02126420 Expired - Fee Related CN1221104C (zh) | 2002-07-12 | 2002-07-12 | 一种利用帧定位实现包方式数据高位宽到低位宽的格式转换方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN1221104C (zh) |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100373346C (zh) * | 2005-11-01 | 2008-03-05 | 华为技术有限公司 | 一种位宽转换数据的检测装置及其方法 |
CN102035618B (zh) * | 2009-09-29 | 2013-04-24 | 上海华为技术有限公司 | 一种数据传输的方法、装置及系统 |
CN103780506B (zh) | 2012-10-26 | 2017-08-08 | 中兴通讯股份有限公司 | 一种用于以太网设备的数据缓存系统及方法 |
CN105141548A (zh) * | 2015-07-22 | 2015-12-09 | 江苏技睿通信科技有限公司 | 高效以太网数据帧包fifo实现方法 |
CN106557358B (zh) * | 2015-09-29 | 2020-08-11 | 北京东土军悦科技有限公司 | 一种基于双核处理器的数据存储方法及装置 |
CN108614747B (zh) * | 2016-12-12 | 2021-12-24 | 中国航空工业集团公司西安航空计算技术研究所 | 基于irig106标准存储的数据恢复方法 |
CN112825065A (zh) * | 2019-11-21 | 2021-05-21 | 北京希姆计算科技有限公司 | 数据处理电路、装置以及方法 |
CN114710453B (zh) * | 2022-03-16 | 2023-10-10 | 深圳市风云实业有限公司 | 一种高宽带低延时存储转发控制装置及其控制方法 |
CN115314157B (zh) * | 2022-07-19 | 2023-10-24 | 烽火通信科技股份有限公司 | 一种以太网成帧方法及装置 |
-
2002
- 2002-07-12 CN CN 02126420 patent/CN1221104C/zh not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
CN1467956A (zh) | 2004-01-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1221104C (zh) | 一种利用帧定位实现包方式数据高位宽到低位宽的格式转换方法 | |
CN111770023B (zh) | 基于fpga的报文去重方法、装置及fpga芯片 | |
JP3303107B2 (ja) | Sonet経路/atm物理層の送信/受信プロセッサ・システム | |
CN1282339C (zh) | 一种用于以太网无源光网络的数据帧缓存设备和方法 | |
CN102394823B (zh) | 一种多通道对齐去偏移的方法及装置 | |
US8543893B2 (en) | Receiver for error-protected packet-based frame | |
JP2684362B2 (ja) | 可変長データの記憶方式 | |
CA2124610C (en) | Integrated user network interface device | |
CN1823329A (zh) | 基于PCI Express的包结合 | |
CN1949695A (zh) | 一种帧数据传输中错帧丢弃的方法和系统 | |
CN102629235B (zh) | 一种提高ddr存储器读写速率的方法 | |
CA2453738C (en) | Transmission system for efficient transmission of protocol data | |
US6618831B2 (en) | Increasing performance with memory compression | |
CN101594305B (zh) | 一种报文处理方法及装置 | |
CN1166134C (zh) | 用于atm交换结构中的流水线式共享存储器读写方法 | |
CN101894005A (zh) | 高速接口向低速接口的异步fifo传输方法 | |
CN102404207A (zh) | 一种以太网数据的处理方法及装置 | |
CN100358320C (zh) | 一种数据包存储的管理方法和装置 | |
CN108667755A (zh) | 一种报文分片存储及重组的方法和装置 | |
CN103220168B (zh) | 一种基于定长协议数据包长度异常的处理方法 | |
CN101286873B (zh) | 一种以太网错误帧提取接口装置 | |
CN102395058B (zh) | 一种处理ODUk帧的方法及装置 | |
CN1210917C (zh) | 虚级联中序列号排序的处理方法 | |
CN1213546C (zh) | 一种数据传输过程中提高带宽利用率的方法 | |
CN1472934A (zh) | 一种实现同步数字体系链路接入处理协议的方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
C17 | Cessation of patent right | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20050928 Termination date: 20110712 |