100G以太网CGMII接口的电路设计

时间:2022-04-26 04:27:08

100G以太网CGMII接口的电路设计

(东南大学无锡分校,江苏无锡 214135)

摘 要:随着云计算技术的发展,数据中心的规模和性能必须有很大提升,智能终端通信带宽也必须相应提高。100G以太网相对千兆以太网,数据位宽更大,时钟频率更高。因此,MII接口的设计和实现都面临新的挑战。本文主要研究100G以太网介质无关接口(CGMII)的设计,完成根据协议规定在全双工模式下的MAC帧数据类型的转化,以及对链路故障的处理。

关键词:以太网;100G;MAC;MII

中图分类号:TP393 文献标识码:A 文章编号:1007-9599 (2013) 09-0000-04

随着移动互联网、物流网技术的发展,应用层和业务层也发生着变革[1]。高清、3D、超高清等视频业务层出不穷,存储、共享等数据类业务需求也呈快速增长的趋势,海量数据传送的需求在日益增强。因此,进行下一代高速以太网技术的研究非常必要[2][3]。最新的IEEE802.3ba协议的100G标准,在提高速率、增加带宽的同时,能节约成本,降低功耗;为更高速的以太网应用,铺平了发展之路[4]。本文即研究基于IEEE802.3ba协议的100G以太网的介质无关接口(100Gb/sMediaIndependentInterface,即CGMII)。

1 CGMII接口概述

CGMII接口以及RS子层处于MAC和PHY之间。图1描述了RS子层和MII在OSI参考模型中的位置。

图1 RS子层和MII在OSI参考模型中的位置

GMII接口是IEEE802.3ba规定的一种与介质无关的接口。它提供独立的64bits位宽的发送和接收数据通道,仅支持全双工操作。CGMII接口是连接MAC子层与物理层之间的标准以太网接口,负责MAC和以太网PHY之间的通信。CGMII有三类信号:64bits数据信号(TXD和RXD),8bits控制信号(TXC和RXC)以及时钟信号(TX_CLK和RX_CLK)[2][5]。

64bitsTXD/RXD和8bitsTXC/RXC信号输入到8条数据通道,同方向的8条通道共用同一时钟TX_CLK/RX_CLK,8条通道使用round-robin顺序传输一个字节数据流。

CGMII数据包格式如下:

帧间距(inter-frame)是一个没有帧数据活动的区间。帧间距在终止控制字符(Terminatecontrolcharacter)之后开始传输,在开始控制字符(Startcontrolcharacter)之前结束。

前导码(preamble)和帧首定界符(startofframedelimiter即Sfd):前导码在一个帧传输之前发送,其值如下:10101010,开始控制字符表示在CGMII上MAC数据传输的开始。发送时,RS子层将前导码的第一个字节转换成开始控制字符;接收时,RS子层将开始控制字符转换成前导码的第一个字节。开始控制字符对齐在通道0上。紧接前导码之后的是帧首定界符Sfd,其值为10101011。前导码和Sfd从最左边的bits位到最右边的bits位进行串行传输。前导码和Sfd以字节按8个通道的顺序有序地通道CGMII传输,如表1所示。

表1 前导码和SFD传输图

通道0 通道1 通道2 通道3 通道4 通道5 通道6 通道7

开始字符 10101010 10101010 10101010 10101010 10101010 10101010 10101011

数据(Data):包括一系列的数据字节。

帧尾定界符(Endofframedelimiter即Efd):对于发送数据流,在某通道上根据TXC信号以及终止控制字符编码组成帧尾定界符,在接收数据流上情况相同。CGMII在任意8个通道中都能识别Efd。

2 CGMII设计

2.1 功能定义和总体结构

2.1.1 功能定义

CGMII的逻辑控制信号和功能程序的设计都是为了使不同的介质和收发器组合对于MAC子层没有任何影响[3][6]。

本文涉及的以太网100GCGMII接口主要具有以下功能:

(1)支持IEEE802.3ba协议;

(2)支持100G工作速度;

(3)支持全双工工作模式;

(4)支持链路故障处理。

2.1.2 内部结构划分

以太网100GCGMII接口的设计是在IEEE802.3ba以太网协议的基础上设计一个MAC层的介质无关接口(CGMII)[7],能够在100G的速率下按照协议发送和接收PHY能够统一识别的数据帧。发送时,在发送时钟下通过CGMII接口将MAC子层发送相应的数据帧发往物理层PHY,在CGMII发送模块根据协议中的发送机制封装数据。在接收时,从物理层PHY接收到帧,按照协议的接收机制在接收模块中对帧进行处理,再将帧发送到MAC子层中。在发送和接收时支持全双工的工作模式,同时能够进行错误和故障处理、链路故障处理。根据对CGMII功能的定义,将整个CGMII划分为图2所示的结构框图,主要模块有:发送数据类型转换模块、接收数据类型转换模块、并行通道比率(8:10)转换模块、并行通道比率(10:8)转换模块[7][8]。

图2 CGMII结构框图

2.2 发送数据类型转换模块

2.2.1 发送时序

TX_CLK是由PHY提供的参考时钟,用于同步TXD和TXC以进行数据发送和状态

控制。TXC信号表示CGMII中传送的是数据或者控制字符,当一个数据字节正在传送,则相应通道上的TXC信号为低电平;当控制字符正在传送,则相应通道上的TXC信号为高电平。当传送前导码的每个字节(除了第一个字节被开始控制字符所替换)时,TXC信号为低电平。发送时序图如图3所示。

图3 发送时序图

2.2.2 发送状态机

CGMII_DATA:传送数据状态。当从MAC传入的DataValidBytes信号都为0时,表明无有效数据需要传送,状态机进入IDLE状态。根据每个CGMII的DataValidBytes信号,在帧传输结束后一个通道添加一个终止控制字符,其余的通道上传输空闲控制字符。本设计中有10个CGMII,在DATA状态中会根据所有CGMII的DataValid信号来进行数据处理。

CGMII_IDLE:空闲状态。当RS检测到RemoteFault时,状态机仍保持IDLE状态,直到不再检测到RemoteFault信号。当开始传输来自MAC层的帧,状态机进入DATA状态。

2.3 接收数据类型转换模块

2.3.1 接收时序

RX_CLK是由PHY提供的一个连续的时钟信号,用于同步RXD和RXC信号。RXC表明PHY正在向CGMII传送的是恢复或解码后的数据或者控制字符。RXC为低电平表明接收的为数据,高电平表明为控制字符,同TXC信号相同。接收时序类似于发送时序。

2.3.2 接收状态机

CGMII_DATA:接收数据状态。在DATA状态检测每个字节是否为错误控制字符(Errorcontrolcharacters),并通过RXC控制信号来决定Eop信号的变化。当某一个CGMII的Eop信号为高,则剩余的CGMII无有效数据传输。当10个CGMII都没有有效数据传输,则状态机进入IDLE状态。

CGMII_IDLE:空闲状态。当PCS模块输入信号表明alignment功能完成,并检测到第一个CGMII的第一个通道(通道0)的控制信号为1,数据信号为开始控制字符,则状态机进入接收数据状态。如果不满足以下条件,则状态机继续保持IDLE状态。

2.3.3 链路故障处理

链路故障信号在本地RS和远程RS之间产生,链路故障信号由本地RS检测到,则称之为本地故障(LocalFault)。PHY能够检测到呈现不可靠的通信链路的故障。当PHY子层显示在数据通路上检测到LocalFault并发送到RS子层,RS会停止发送MAC数据,然后在发送数据通路产生远程故障(RemoteFault)状态。当这个远程故障状态被远程RS检测到,远程RS停止发送MAC数据,然后产生空闲控制字符(Idlecontrolcharacters)。当RS不再接收到错误状态信息,就会变回正常操作,开始继续发送MAC数据[9]。该状态由八个字节的有序集表示,如表2所示。

表2 故障序列有序集

通道0 通道1 通道2 通道3 通道4 通道5 通道6 通道7 描述

序列字符 0x00 0x00 0x01 0x00 0x00 0x00 0x00 本地故障

序列字符 0x00 0x00 0x02 0x00 0x00 0x00 0x00 远程故障

链路故障状态机分为四个状态,分别为:

INIT状态:当128列中不包含RemoteFault和LocalFault有序集,状态机跳转到INIT状态。当检测到错误序列(fault_sequence),状态机跳转到COUNT状态。

COUNT状态:当检测到不足三个相同类型的错误序列,状态机仍保持COUNT状态。当检测到三个以上相同类型错误序列,状态机跳转到FAULT状态。若检测到不同类型的错误序列,则跳转到NEW_FAULT_TYPE状态。

FAULT状态:继续接收到相同类型,状态机继续保持在FAULT状态。若检测到不同类型的错误序列,则跳转到NEW_FAULT_TYPE状态。

NEW_FAULT_TYPE状态:将序列计数值重置为0,然后使状态机跳转到COUNT状态。

链路故障状态机跳转图如图4所示。

图4 链路故障状态机跳转流程图

2.4 并行通道转换模块

本设计中MAC发送和接收数据采用512bits位宽,PHY采用640bits位宽,所以需要异步FIFO来进行并行通道比率转换。发送和接收数据采用相同结构的FIFO。以发送数据方向做分析,8个64bits通道转换成10个64bits通道,需要发送端频率较快。MAC子层一个周期内最多传输512bits数据,两个周期后异步FIFO中存有1024bits数据;当FIFO检测到有大且等于640bits的数据,则进行数据读取。而FIFO中剩余数据等到FIFO中数据大且等于640bits的数据,再进行读取。通过设计和计算,本设计中需要深度为72、宽度为64bits的异步FIFO,即可满足设计需求。

3 仿真结果和波形分析

通过UVM验证平台仿真结果如图5所示。当CGMII的控制信号为ff时,通道开始发送空闲控制字符。控制信号为0时,通道正常发送数据;当检测到本地故障时,CGMII发送远程故障有序集;当检测到远程故障时,CGMII给MAC发送IDLE数据。

图5 仿真时序图

4 总结

本设计虽然实现了MII操作的基本功能,但是还有一些不足和可以进一步研究的地方.主要包括:(1)一些功能的处理过于复杂,延缓了整体的工作频率,未能达到100Gb/s的要求。(2)MDIO管理接口。

参考文献:

[1]张远望.100G以太网技术和应用[J].中兴通讯技术,2009,15(5):49-52.

[2]李晖,唐留城.40G/100G超高速传送系统发展及趋势[J].现代电信科技,2010(4):28-31.

[3]高展.以太网介质访问控制器(MAC)的研究[D].西安:西北工业大学,2004.

[4]张小丹,程丹,徐晶.40G/100G以太网关键技术的研究与应用[J].光通信技术,2011,35(4):1-4.

[5]李颖.以太网大未来[N].网络世界,2011,09,12(35).

[6]曹政,李磊,陈明宇.万兆以太网MAC层控制器设计与实现[J].小型微型计算机系统,2007,28(6):974-978.

[7]汤瑞,赵文玉,吴庆伟.40G/100G标准化现状及发展趋势[J].邮电设计技术,2011(4):1-4.

[8]傅珂,马志强,李雪松.40Gb/S,100Gb/S以太网IEEEP802.3ba标准研究[J].光通信技术,2009,33(11):12-15.

[9]Ralf-PeterBraun.100GinthenetworkofDeutscheTelekom[J].OpticalFiberTechnology,2011,17(5):368-376.

[作者简介]董乾(1982-),男,江苏泰州人,工程师,硕士,研究方向:数字集成电路设计;刘勇(1979-),男,江苏沛县人,工程师,硕士,研究方向:集成电路设计与制造;赵赛(1990-),女,东南大学集成电路学院硕士研究生,研究方向:VLSI设计。

上一篇:加强机房精细化维护管理确保安全优质播出 下一篇:浅谈通信技术的发展及应用