数据块同步加速器及快速数据块同步方法
【专利摘要】一种数据块同步加速器,应用于网络设备中,该数据块同步加速器每轮加速读入m组66位数据,对每组读入的66位数据检测每相邻两位是否为同步头,对m组66位数据累计检测结果,从而快速确定同步头位置,提高了检测效率,缩短了数据块同步的时间。
【专利说明】数据块同步加速器及快速数据块同步方法
【技术领域】
[0001]本发明涉及一种数据块同步加速器及IOG以太网物理编码子层快速数据块同步方法。
【背景技术】
[0002]随着互联网技术的高速发展和普及,数据交换高速、低成本的要求越来越迫切,持续推动着网络技术的革新。以太网技术是目前使用最为广泛的局域网技术,能够简单、经济地构建各种速率的网络。从IOMbps标准以太网、IOOMbps快速以太网、1000Mbps千兆以太网,再到10GbpS、40GbpS甚至IOOGbps超高速以太网,以太网技术快速更新换代的同时保持了良好的继承性。
[0003]IEEE于2002年正式通过了 802.3ae标准的IOGbps以太网技术。IOG高速以太网可以满足高传输带宽需求,并与之前以太网技术兼容,而且由于其全双工的工作模式不受传输距离的限制。因此,IOG以太网技术广泛应用于局域网、城域网和广域网之中,用于架构工作速率为IOGbps的高速和可靠数据网络。目前,IOG以太网技术已经广泛应用于汇聚层和骨干层网络之中。
[0004]IOG以太网技术标准由IEEE802.3ae确定。该标准规定了 IOG以太网在OSI七层网络模型中的物理层和数据链路层的MAC子层的实现方法。
[0005]物理编码子层(PCS)位于物理层上层,向上与数据链路层的MAC子层连接,向下与物理介质附 件子层(PMA)连接。根据接口以及应用场景不同,IOG以太网PCS分为三种实现方式,局域网IOG BASE-XUOG BASE-R及广域网IOG BASE-W0其中IOG BASE-X接口采用多路复用技术,汇集4路3.125Gbps形成单路lOGbps。其他两种采用单路10.3125Gbp光纤传输,是目前应用主流。IOG BASE-W是在IOG BASE-R基础上插入广域网接口子层扩展而来。因此IOG BASE-R PCS是IOG以太网中关键模块。
[0006]IOG BASE-R PCS分为发送机和接收机。发送机将来自MAC子层的64位XGMII格式数据编码成66位,然后经过扰码,形成传输码送给物理层底层。接收过程中,同步器首先对齐收到的66位传输码,即完成数据块同步,然后经过64B/66B解扰过程形成XGMII格式的64位数据。数据块同步过程利用66位传输码低两位恒有01翻转的特点实现。该特点由64B/66B编码、扰码机制保证。
[0007]现有的IOG BASE-R PCS标准数据块同步方法每次只检测读入的66位数据中某相邻两位是否为同步头,检测效率较低,数据块同步所用时间较长。
【发明内容】
[0008]鉴于以上内容,有必要提供一种数据块同步加速器及利用该数据块同步加速器实现的IOG以太网物理编码子层快速数据块同步方法,能够有效提高数据块同步的速度。
[0009]一种数据块同步加速器,应用于网络设备中,该数据块同步加速器每轮加速读入m组66位数据,依次记为RX0、RX1'…、RXnri,每读入一组66位数据RXk (k = O, I, 2,...,m_l)后,数据块同步加速器对该66位数据RXk的每相邻两位做异或运算,得到RXk的66位检测结果 TAG_TEMk,即 TAG_TEMk[i] = RXk[i]~RXk[i+l],i = O, 1,2,…,65,~ 表示异或运算,并累计本轮加速的66位检测结果TAGk = TAGJEMcATAGJEMA^TAGJEMk,其中&表示与运算,在读入第m组66位数据后,数据块同步加速器确定本轮加速的66位检测结果TAGnrl中离低位端最近的为I的位置n,从而大概率锁定同步头位置。
[0010]一种利用数据块同步加速器实现的IOG以太网物理编码子层快速数据块同步方法,该方法包括:
[0011]第一步骤,L0CK_INT状态下,置block_lock = O,表示此时数据块不同步,置test_sh = O,表示准备好读入数据块,置AC_en = I,表示打开数据块同步加速器,置AC_ready =
0,表不数据块同步加速器未完成一轮加速;
[0012]第二步骤,收到Rst信号后,无条件由L0CK_INT状态跳入RESET_CNT状态,RESET_CNT状态下,计数器sh_cnt、sh_invalid_cnt清零,准备开始新一轮监测,其中sh_cnt计数已监测数据块个 数,sh_invalid_cnt计数同步头无效的数据块个数;
[0013]第三步骤,当读入66位数据,即test_sh = I时,跳入TEST_SH状态,TEST_SH状态下,判断当前数据块的同步头是否有效,若当前数据块的同步头有效,则置sh_valid = 1,否则,若当前数据块的同步头无效,则置sh_valid = 0,完成判断后置test_sh = O。
[0014]第四步骤,当sh_valid = I 且 AC_ready = 0,进入 VALID_SH 状态,sh_cnt 加 I,
(I)当sh_cnt〈64时,表示本轮监测尚未结束,在下一次数据读入,即test_sh = I后,返回第三步骤;⑵当sh_cnt = 64且sh_invalid_cnt = O时,则本轮监测连续监测到64个有效同步头,转入状态64_G00D,置block_lock = I,表示数据块同步成功,置AC_en = O,表示关闭数据块同步加速器,返回第二步骤;(3)当sh_cnt = 64且sh_invalid_cnt>0,则本轮监测结束,但有不超过16个同步头无效的数据块,无法确定数据块是否同步,需要进一步监测,返回第二步骤;
[0015]第五步骤,当sh_valid = O 且 AC_ready = O 时,进入状态 INVALID_SH, sh_cnt 加
1,sh_invalid_cnt加I, (I)当block_lock = O时,此时数据块未同步并在同步监测过程中,判断当前同步头检测位置大概率非同步头,同步头检测位置向高位移动一位,进入新一轮监测,返回第二步骤;(2)当block_lock = I且sh_invalid_cnt = 16时,判断此时数据块不同步,置blok_lock = 0,同步头检测位置向高位移动一位,并打开数据块同步加速器即置 AC_en = I,返回第二步骤;(3)当 block_lock = I 且 sh_invalid_cnt<16 且 sh_cnt=64时,本轮监测结束,无法判断数据块是否同步,有待进一步监测,返回第二步骤;(4)当block_lock = I 且 sh_invalid_cnt〈16 且 sh_cnt〈64 时,本轮监测未结束,在下一组 66 位数据读入即test_sh = I后,跳转至第三步骤。
[0016]第六步骤,当AC_ready = 1,即数据块同步加速器完成一轮加速时,进入状态AC_LOCK,置sh_cnt = sh_cnt+m,置sh_invalid_cnt = O,同步头检测位置移动至位置η,置AC_ready = O,准备开始下一轮加速,当下一组数据读入即test_sh = I时,返回第三步骤。
[0017]本发明每轮加速读入m组66位数据,对每组读入的66位数据检测每相邻两位是否为同步头,对m组66位数据累计检测结果,从而快速确定同步头位置,提高了检测效率,缩短了数据块同步的时间。【专利附图】
【附图说明】
[0018]图1是本发明数据块同步加速器较佳实施例的原理图。
[0019]图2是66位位置锁定器的架构图。
[0020]图3是本发明IOG以太网物理编码子层快速数据块同步方法较佳实施例的状态跳转图。
【具体实施方式】
[0021]本发明所述的数据块同步加速器及IOG以太网物理编码子层快速数据块同步方法应用于网络设备中。所述网络设备可以是路由器或交换机。
[0022]参阅图1所示,是本发明数据块同步加速器较佳实施例的原理图。所述数据块同步加速器以数据读入时钟为时钟,以流水线的形式运行。数据块同步加速器每轮加速读入m组66位数据,依次记为RX。、RX1,…,RXm^1 ?当同步头未同步时,每读入一组66位数据RXk(k = O, I, 2,- ,m-Ι)后,数据块同步加速器对该66位数据RXk的每相邻两位(66对)做异或运算,得到 RXk 的 66 位检测结果 TAG_TEMk(TAG_TEMk[i] = RXk[i] ~RXk[i+l],(i =ο, 1,2,…,65)),并累计本轮加速的66位检测结果TAGk = TagjemcAtagjem1PItag.TEMk,其中&表示与运算。当读入第m组66位数据后,本轮加速的66位检测结果TAGnri中大部分位应该为0,为I的位则是可能的同步头位置。数据块同步加速器确定本轮加速的66位检测结果TAGnri中离低位端最近的为I的位置n,从而大概率锁定同步头位置。在本实施例中,所述m取值在6-10之间,即m = 6,7,8,9或10。每组66位数据即为一个数据块。
[0023]在本实施例中,所述数据块同步加速器利用异或运算门对RXk的每相邻两位做异或运算,在读入一组66位数据RXk并得到RXk的66位检测结果TAG_TEMk后,关闭TAG_TEMk中为O的位(即不可能为同步头的位置)所对应的异或运算门。这一措施可以大幅减少不必要的异或运算,节约了功耗。
[0024]在本实施例中,所述数据块同步加速器利用66位位置锁定器确定TAGnrl中离低位端最近的为I的位置η。所述66位位置锁定器的架构图参见图2所示。
[0025]参阅图2所示,是66位位置锁定器的架构图。该66位位置锁定器包括多个8位锁定器和地址仲裁器。每个8位锁定器输入8位数据,输出valid和out [2:0]。valid为I指示8位数据中至少有I位为I,最低位为I的位置为out [2:0] ;valid为O指示8位数据全为O。地址仲裁器根据8位锁定器的输出结果,依照从低位到高位的优先级顺序,输出66位输入数据TAGnrl中离低位端最近的为I的位置η。
[0026]参阅图3所示,是本发明IOG以太网物理编码子层快速数据块同步方法较佳实施例的状态跳转图。该状态跳转图描述了本发明IOG以太网物理编码子层快速数据块同步方法的流程如下:
[0027]第一步骤,L0CK_INT状态下,置block_lock = 0,表示此时数据块不同步;置test_sh = 0,表示准备好读入数据块(即66位数据);置么(:_611= 1,表示打开数据块同步加速器= O,表示数据块同步加速器未完成一轮加速。
[0028]第二步骤,收到Rst信号后,无条件由L0CK_INT状态跳入RESET_CNT状态。RESET_CNT状态下,计数器sh_cnt、sh_invalid_cnt清零,准备开始新一轮监测。sh_cnt计数已监测数据块个数,sh_invalid_cnt计数同步头无效的数据块个数。每轮监测读入64组66位数据。
[0029]第三步骤,当读入66位数据(即test_sh = I)时,跳入TEST_SH状态。TEST_SH状态下,判断当前数据块的同步头是否有效。若当前数据块的同步头有效,则置sh_valid=I ;否则,若当前数据块的同步头无效,则置sh_valid = O。完成判断后置test_sh = O。判断数据块的同步头是否有效是针对数据块中某相邻两位(即同步头检测位置)进行判断,如果数据块中该两位无01翻转,则该数据块的同步头无效。
[0030]第四步骤,当sh_valid = I 且 AC_ready = O,进入 VALID_SH 状态,sh_cnt 加 I。当sh_cnt〈64时,表示本轮监测尚未结束,在下一次数据读入(test_sh = I)后,返回第三步骤;当sh_cnt = 64且sh_invalid_cnt = O时,则本轮监测连续监测到64个有效数据块,转入状态64_G00D,置block_lock = I,表示数据块同步成功,置AC_en = O,表示关闭数据块同步加速器,返回第二步骤;当sh_cnt = 64且sh_invalid_cnt>0,则本轮监测结束,但有不超过16个同步头无效的数据块,无法确定同步头是否同步,需要进一步监测,返回第二步骤。
[0031]第五步骤,当sh_valid = O 且 AC_ready = O 时,进入状态 INVALID_SH, sh_cnt 力口
I,sh_invalid_cnt加I。当block_lock = O时,进入SLIP状态,此时数据块未同步并在同步监测过程中,判断当前同步头检测位置大概率非同步头,同步头检测位置向高位移动一位(即SLIP1),进入新一轮监测,返回第二步骤;当block_lock = I且sh_invalid_cnt=16时,进入SLIP状态,判断此时数据块不同步,置blok_lock = O,同步头检测位置向高位移动一位(即SLIP1),并打开数据块同步加速器(即置AC_en= 1),返回第二步骤;当block_lock = I且sh_invalid_cnt〈16且sh_cnt = 64时,本轮监测结束,无法判断数据块是否同步,有待进一步监测,返回第二步骤;当block_lock = I且sh_invalid_cnt〈16且sh_cnt<64时,本轮监测未结束,当下一组66位数据读入(即test_sh = I)时,跳转至第三步骤。
[0032]第六步骤,当AC_ready = 1,即数据块同步加速器完成一轮加速时,进入状态AC_LOCK。置sh_cnt = sh_cnt+m,置sh_invalid_cnt = O,同步头检测位置移动至位置n(即SLIP2),置AC_ready = O,准备开始下一轮加速。当下一组数据读入(即test_sh = I)时,返回第三步骤。将同步头检测位置移动至位置η可参看图1。
[0033]本发明IOG以太网物理编码子层快速数据块同步方法在不破坏原有标准的情况下提出,新增数据块同步加速器,AC_en = I时打开数据块同步加速器,当AC_ready = I时,表示数据块同步加速器已完成一轮加速过程,锁定同步头位置n,当AC_ready = O时数据块同步加速器开始下一轮加速过程。本发明可在原有标准电路的基础上设计辅助加速电路。当新方法无效的情况下,仍将按照标准方法正常工作。
[0034]经仿真对比实验,当m = 10时,标准数据块同步方法平均需125个时钟周期完成数据块同步,本发明IOG以太网物理编码子层快速数据块同步方法只需要70个时钟周期完成数据块同步,速度提升约44%。
【权利要求】
1.一种数据块同步加速器,应用于网络设备中,其特征在于,该数据块同步加速器每轮加速读入m组66位数据,依次记为RXp RX1^…、RXnri,每读入一组66位数据RXk(k =O,1,2,…,m-Ι)后,数据块同步加速器对该66位数据RXk的每相邻两位做异或运算,得到RXk 的 66 位检测结果 TAG_TEMk,即 TAG_TEMk[i] = RXk[i] ~RXk[i+l],i = O,1,2,…,65,~ 表示异或运算,并累计本轮加速的66位检测结果TAGk = ΤΑΟ,ΤΕΜο&ΤΑΟ,ΤΕΜΛ* * * &TAG_TEMk,其中&表示与运算,在读入第m组66位数据后,数据块同步加速器确定本轮加速的66位检测结果TAGnri中离低位端最近的为I的位置n,从而大概率锁定同步头位置。
2.如权利要求1所述的数据块同步加速器,其特征在于,该数据块同步加速器利用66位位置锁定器确定TAGlrt中离低位端最近的为I的位置η。
3.如权利要求2所述的数据块同步加速器,其特征在于,所述66位位置锁定器包括多个8位锁定器和一个地址仲裁器。
4.如权利要求1所述的数据块同步加速器,其特征在于,该数据块同步加速器利用异或运算门对RXk的每相邻两位做异或运算,在读入一组66位数据RXk并得到RXk的66位检测结果TAG_TEMk后,关闭TAG_TEMk中为O的位所对应的异或运算门。
5.如权利要求1所述的数据块同步加速器,其特征在于,所述m取值为6、7、8、9或10。
6.一种利用权利要求1所述的数据块同步加速器实现的IOG以太网物理编码子层快速数据块同步方法,其特征在于,该方法包括: 第一步骤,L0CK_INT状态下,置block_lock = O,表示此时数据块不同步,置test_sh=O,表示准备好读入数据块,置AC_en = I,表示打开数据块同步加速器,置AC_ready = O,表不数据块同步加速器未完成一轮加速; 第二步骤,收到Rst信号后,无条件由L0CK_INT状态跳入RESET_CNT状态,RESET_CNT状态下,计数器sh_cnt、sh_inval id_cnt清零,准备开始新一轮监测,其中sh_cnt计数已监测数据块个数,sh_invalid_cnt计数同步头头无效的数据块个数; 第三步骤,当读入66位数据,即test_sh = I时,跳入TEST_SH状态,TEST_SH状态下,判断当前数据块的同步头是否有效,若当前数据块的同步头有效,则置sh_valid= 1,否贝U,若当前数据块的同步头无效,则置sh_valid = 0,完成判断后置test_sh = O。 第四步骤,当 sh_valid = I 且 AC_ready = O,进入 VALID_SH 状态,sh_cnt 加 1,(1)当sh_cnt<64时,表示本轮监测尚未结束,在下一次数据读入,即test_sh = I后,返回第三步骤;(2)当sh_cnt = 64且sh_invalid_cnt = O时,则本轮监测连续监测到64个有效数据块,转入状态64_G00D,置block_lock = I,表示数据块同步成功,置AC_en = O,表示关闭数据块同步加速器,返回第二步骤;(3)当sh_cnt = 64且sh_invalid_cnt>0,则本轮监测结束,但有不超过16个同步头无效的数据块,无法确定数据块是否同步,需要进一步监测,返回第二步骤; 第五步骤,当 sh_valid = O 且 AC_ready = O 时,进入状态 INVALID_SH, sh_cnt 加 1,sh_invalid_cnt加I, (I)当block_lock = O时,此时数据块未同步并在同步监测过程中,判断当前同步头检测位置大概率非同步头,同步头检测位置向高位移动一位,进入新一轮监测,返回第二步骤;(2)当block_lock = I且sh_invalid_cnt = 16时,判断此时数据块不同步,置blok_lock = O,同步头检测位置向高位移动一位,并打开数据块同步加速器即置 AC_en = I,返回第二步骤;(3)当 block_lock = I 且 sh_invalid_cnt<16 且 sh_cnt=64时,本轮监测结束,无法判断数据块是否同步,有待进一步监测,返回第二步骤;(4)当block_lock = I 且 sh_invalid_cnt〈16 且 sh_cnt〈64 时,本轮监测未结束,在下一组 66 位数据读入即test_sh = I后,跳转至第三步骤。 第六步骤,当AC_ready = I,即数据块同步加速器完成一轮加速时,进入状态AC_LOCK,置sh_cnt = sh_cnt+m,置sh_invalid_cnt = O,同步头检测位置移动至位置η,置AC_ready=O,准备开始下一轮加速,当下一组数据读入即test_sh = I时,返回第三步骤。
7.如权利要求6所述的IOG以太网物理编码子层快速数据块同步方法,其特征在于,所述数据块同步加速器利用66位位置锁定器确定TAGnrl中离低位端最近的为I的位置η。
8.如权利要求7所述的IOG以太网物理编码子层快速数据块同步方法,其特征在于,所述66位位置锁定器包括多个8位锁定器和一个地址仲裁器。
9.如权利要求6所述的IOG以太网物理编码子层快速数据块同步方法,其特征在于,所述数据块同步加速器利用异或运算门对RXk的每相邻两位做异或运算,在读入一组66位数据RXk并得到RXk的66位检测结果TAG_TEMk后,关闭TAG_TEMk中为O的位所对应的异或运算门。
10.如权利要求6所述的IOG以太网物理编码子层快速数据块同步方法,其特征在于,所述m取值为6、7、8、9或10。
【文档编号】H04L7/00GK103957094SQ201410201789
【公开日】2014年7月30日 申请日期:2014年5月13日 优先权日:2014年5月13日
【发明者】乌力吉, 白杰, 牛赟, 张向民 申请人:深圳清华大学研究院