一种以太网数据发送装置的制作方法

文档序号:7902129阅读:338来源:国知局
专利名称:一种以太网数据发送装置的制作方法
技术领域
本申请涉及一种降低传输功耗的以太网数据发送装置及数据传输方法,尤其涉及 以太网传输领域的接口技术。
背景技术
当前社会,节能减排已经成为人类共同的目标。目前全球的能源供应有限,各式天 然资源存量纷纷出现吃紧现况,例如,发电所需的燃油与天然气数量不断减少,而号称洁净 能源的各式新能源,开发速度又无法随即补上能源缺口,如何减缓能源短缺问题造成的影 响,已成为各类技术、产品或应用积极努力目标。此外,减少电能消耗,就意味着更少的二氧 化碳排放量,这在倡导“绿色,环保”的当前经济环境下已成为人们关注的重点。作为日常 或商业活动不可或缺的以太网,也在这波节能趋势下成为首要改善重点。以往针对以太网络的相关技术与讨论,大多集中在如何增加网络传输效能,如何 设计更快更高速的网络芯片,同时使产品成本更低廉。而提高网络芯片的传输和处理能力, 最直接的方法就是设计更快速的芯片,提高芯片的主频,增加IO管脚的数量等。但这些均 将带来功耗上的损失,花在加强每1个网络接口的处理能力的提升,往往会导致整个网络 设备的功耗设计余量入不敷出。而网络交换器因为功耗用电增加,自然也会让机体温度提 升,当机体温度增加时自然主、被动散热机制的成本就会提高,例如驱动强制气冷的散热风 扇也会用电,而大量使用交换器、网络设备的网络、资料中心机房,也会为了维持机房最佳 运作温度,而让空调负荷加重,造成更多能源消耗。另一方面,从应用层的角度出发,网络和服务的不断融合,更加重了网络处理设备 的功耗负担。目前的IT与3C应用对网络的依赖性不断加深,例如现在推行的web2.0和各 种视频,音频应用(如IPTV,在线音乐,VOD视频点播等),使用者对网络数据的存取数量和 频率均相对于以往的应用有了指数式的增长,直接影响着网络硬件的处理数据量和消耗功 率。在商业应用部份,各大公司均在推行的云计算(Cloud Computing)、虚拟化、集群运算 (Cluster Computing)、在线购物、企业电子商务等应用,也加速了数据中心对于高速,低功 耗网络的急迫需求。但是反观目前的网络处理硬件,很多仍还是在追求性能,以太网从最初的10Mb, 100Mb,发展到现在的1Gb,IOGb甚至是100Gb,带宽以指数上升,芯片的处理能力不停的翻 倍,同时,其功耗消耗也在以可观的比例同步上涨,这对注重性能/功耗比的应用场合(如 嵌入式应用,数据中心)提出了极大的挑战。图1显示了一个网络处理卡的基本结构,网络处理卡由以太网电缆RJ-45接口,变 压器,物理层(PHY)芯片,以太网控制器构成。通过RJ-45接口输入/输出的电信号通过变 压器耦合至PHY芯片。典型的以太网phy芯片如broadcom公司的BCM5461以及marvell 公司的88E1111等芯片,以太网PHY芯片通过GMII接口(RGMII接口,SGMII接口 )和以太 网控制器相连。GMII 是GIGABIT Medium Independent Interface 的意思,是指不用考虑媒体是铜轴、光纤、电缆等,因为这些媒体处理的相关工作都有PHY或者叫做MAC的芯片完成。GMII 是IEEE-802. 3定义的以太网行业标准,用于Fast Ethernet MAC_block与各种类型的PH 连接。它包括一个数据接口,以及一个MAC和PHY之间的管理接口。GMII支持1000兆的操作,它的支持还是比较灵活的,但是有一个缺点是因为它一 个端口用的信号线太多,所以现代的交换机的制作都会用到其它的一些从GMII简化出来 的标准,比如RGMII、SGMII等。管理接口 MDIO是个双信号接口 一个是时钟信号MDC,另一个是数据信号MDI0。 通过管理接口,上层能监视和控制PHY。RGMII是简化的GMII接口,在数据的收发上它比MII接口少了一倍的信号线。 SGMII比RMII更少的信号线数目,S表示串行的意思。因为它只用一根信号线传送发送数 据,一根信号线传输接受数据,它的时钟频率很高。在网络芯片应用中,IO消耗的功耗已经占了总功耗相当大的一部分,据测算,一个 普通的网络芯片,有近30%的功耗是消耗在外部的IOswitching上,但是同时,网络芯片又 要面对越来越高的IO速度的要求,这就和功耗形成了一对矛盾,面对这样的问题,本发明 提出了一种创新的解决传输功耗的方法。
发明内容本发明所要解决的技术问题是提供一种降低以太网phy接口芯片和mac芯片之间 数据传输的功耗。本发明为了解决上述技术问题而采用的技术方案是提供一种以太网数据发送装 置,包括一异步FIFO,用于存储从控制器核心发出的数据报文,并转换时钟域;一功耗计算及控制模块,用于从所述异步FIFO中读取当前报文,计算当前报文的 功耗数据,选择当前报文的数据传输通道;一 Sbit数据位宽以太网媒体接入控制器模块,耦接在所述功耗计算及控制模块 及GMII接口之间;一 4bit数据位宽以太网媒体接入控制器模块,耦接在所述功耗计算及控制模块 及RGMII接口之间;一 Ibit数据位宽以太网媒体接入控制器模块,耦接在所述功耗计算及控制模块 及SGMII接口之间;一锁相环模块,用以产生GMII接口,RGMII接口以及SGMII接口所需的数据时钟;一 MDIO控制器模块,用以对PHY芯片进行数据读取和控制,所述异步FIFO包含一高水位标志,用以指明FIFO内数据量是否达到一定的门 限;所述功耗计算模块包含一控制模块,一 Sbit功耗计算模块,一 4bit功耗计算模 块,一 Ibit功耗计算模块以及数据缓存器,控制模块根据所述的3个功耗计算模块的计算 结果选择数据报文输出至所述的8bit数据位宽以太网媒体接入控制器模块或者4bit数据 位宽以太网媒体接入控制器模块或者Ibit数据位宽以太网媒体接入控制器模块之一。本发明为了解决上述技术问题还提供一种用于以太网phy接口芯片和mac芯片之 间传输数据的方法,该方法执行以下步骤[0023]Α.依次从fifo中读取网络包的每个字节,按每1个bit统计其中0、1翻转的个 数,累加一整帧并乘以一加权系数得到的值作为SGMII接口传输所需功耗数据;按每4个 bit—组统计其中0、1翻转的个数,累加一整帧作为RGMII接口传输所需功耗数据;按每8 个bit —组统计其中0、1翻转的个数,累加一整帧作为GMII接口传输所需功耗数据,并选 择上述3个接口传输所需功耗数据中的最小值;B.判断当前发送 端fifo内的数据是否达到了高水位阈值;C.如果当前发送端fifo内的数据达到了高水位阈值,则表明当前网络处于忙状 态,维持当前的数据传送端口 ;D.如果当前发送端fifo内的数据未达到高水位阈值,则表明当前网络处于不忙 状态,根据所述最小值选择数据通过GMII接口、RGMII接口或者SGMII接口进行数据传输, 并通过MDIO总线给出选择控制指令至phy芯片;E.选择相应的端口进行数据包的发送。

图1是网络处理接口卡的实现框图。图2是本发明的以太网控制器内部的数据发送方向接口电路结构图。图3是本发明的功耗计算及控制模块的内部电路结构图。图4是本发明的Sbit功耗计算模块的内部电路逻辑图。图5是本发明的4bit功耗计算模块的内部电路逻辑图。图6是本发明的Ibit功耗计算模块的内部电路逻辑图。
具体实施方式
图2显示了以太网控制器内部的数据发送方向接口电路结构图。发送方向数据 通路包括发送端fifo (TX FIFO)、功耗计算及控制模块、PLL模块、MDIO控制器模块、SGMII MAC模块、RGMII MAC模块以及GMII MAC模块。TX FIFO模块是以包为单位的异步先入先出队列缓冲区,从以太网控制器内核输 出的以太网报文首先输入至TX FIFO模块中,等待控制模块的调度输出。TX FIFO模块设 置一个水位标记,表明当前fifo内的数据的多少。在一个实施例中,fifo的深度为16KB, 可以存储约10个1500B的最长以太网报文,水位标记可以设置在一半的fifo深度位置,例 如8KB,当fifo内的报文总量超过8KB的时候,高水位标记置为1,当fifo内的报文总量 小于8KB的时候,高水位标记设置为0。注意这里8KB只是一个示意值,在具体的芯片实 现中,可以将高水位判断值设置成固定值,或者设置为一个寄存器,通过主控CPU或者其他 方式来配置。TX FIFO的报文输入总线宽度为8bit,每个时钟周期可以输入一个字节的数 据。TX FIFO作用有2个,其一是缓存输出的报文数据,其二是用来做时钟域的转换,将以 太网控制器的内部时钟域数据传递到以太网接口时钟域上,一个可能的配置例如内部时钟 为lOOMhz,接口时钟域固定为125Mhz。TX FIFO的输出端口也为8bit,可以在控制器的读 信号作用下,以125M的时钟速率每周期输出一个报文数据。功耗计算及控制模块是本实施例的核心。图3显示了功耗计算及模块的内部结 构,报文读取逻辑根据TX FIFO的空满状态去获取数据报文。TX FIFO按完整的报文进行统计,初始状态下,TX FIFO为空,当有一个完整的数据报文输入TX FIFO后,TX FIFO指示控 制模块fifo当前状态非空。报文读取逻辑判断当前状态为可发包状态后,发出读信号,保 持使能直到一个报文的尾标记被获得。报文读取逻 辑输出Sbit的并行报文数据给Sbit功耗计算模块,4bit功耗计算模 块以及Ibit功耗计算模块。这3个功耗计算模块分别计算出当前完整的报文在3种发送 模式下的发送功耗统计。图4描述Sbit功耗计算模块的内部结构。Sbit功耗计算模块包括当前状态寄存 器和上一状态寄存器,当前状态寄存器保存当前周期的报文数据,上一状态寄存器保存上 一周期的报文数据,如果当前周期是一个报文的起始周期,则上一状态寄存器内保存的是 上一个通过GMII端口发送的报文数据的最后一个字节数据。在每个有效报文数据周期,异 或逻辑1计算上一状态寄存器中存储的8bit数据和当前状态寄存器中存储的Sbit的报文 数据中对应的bit位是否相同(不同意味着发生了数据翻转,也就是传输中会产生功耗), 对于其中不为0的bit的个数相加得到当前的功耗值,并在累加器中累加每个周期所对应 的功耗值。这样对一整帧报文数据进行连续的计算,当最后一个报文数据通过当前状态寄 存器后,累加器输出完整的数据包的功耗数据至控制模块。在每一个数据包的开始位置,累 加器被清零。图5描述4bit功耗计算模块的内部结构。4bit功耗计算模块包括当前状态寄存 器和上一状态寄存器,当前状态寄存器保存当前周期的报文数据,上一状态寄存器保存上 一周期的报文数据的低4bit,如果当前周期是一个报文的起始周期,则上一状态寄存器内 保存的是上一个通过RGMII端口发送的报文数据的最后一个字节数据的低4bit。在每个有 效报文数据周期,异或逻辑1计算上一状态寄存器中存储的4bit数据和当前状态寄存器中 存储的高4位的报文数据中对应的bit位是否相同(不同意味着发生了数据翻转,也就是 传输中会产生功耗),异或逻辑2计算当前状态寄存器中存储的高4bit数据和当前状态寄 存器中存储的低4位的报文数据中对应的bit位是否相同(不同意味着发生了数据翻转, 也就是传输中会产生功耗),2组异或逻辑分别输出每个周期不同的bit个数,对于其中不 为0的bit的个数相加后并在累加器中累加。这样对一整帧报文数据进行连续的计算,当 最后一个报文数据通过当前状态寄存器后,累加器输出完整的数据包的功耗数据至控制模 块。在每一个数据包的开始位置,累加器被清零。图6描述Ibit功耗计算模块的内部结构。Ibit功耗计算模块包括当前状态寄存 器和上一状态寄存器,当前状态寄存器保存当前周期的报文数据,上一状态寄存器保存上 一周期的报文数据的低lbit,如果当前周期是一个报文的起始周期,则上一状态寄存器内 保存的是上一个通过SGMII端口发送的报文数据的最后一个字节数据的低lbit。在每个有 效报文数据周期,异或逻辑1计算上一状态寄存器中存储的Ibit数据和当前状态寄存器中 存储的第7位的报文数据中对应的bit位是否相同(不同意味着发生了数据翻转,也就是 传输中会产生功耗),异或逻辑2计算当前状态寄存器中存储的第7bit数据和当前状态寄 存器中存储的第6bit的报文数据中对应的bit位是否相同(不同意味着发生了数据翻转, 也就是传输中会产生功耗),异或逻辑3计算当前状态寄存器中存储的第6bit数据和当前 状态寄存器中存储的第5bit的报文数据中对应的bit位是否相同(不同意味着发生了数 据翻转,也就是传输中会产生功耗),异或逻辑4计算当前状态寄存器中存储的第5bit数据和当前状态寄存器中存储的第4bit的报文数据中对应的bit位是否相同(不同意味着 发生了数据翻转,也就是传输中会产生功耗),异或逻辑5计算当前状态寄存器中存储的第 4bit数据和当前状态寄存器中存储的第3bit的报文数据中对应的bit位是否相同(不同 意味着发生了数据翻转,也就是传输中会产生功耗),异或逻辑6计算当前状态寄存器中 存储的第3bit数据和当前状态寄存器中存储的第2bit的报文数据中对应的bit位是否相 同(不同意味着发生了数据翻转,也就是传输中会产生功耗),异或逻辑7计算当前状态寄 存器中存储的第2bit数据和当前状态寄存器中存储的第Ibit的报文数据中对应的bit位 是否相同(不同意味着发生了数据翻转,也就是传输中会产生功耗),异或逻辑8计算当前 状态寄存器中存储的第Ibit数据和当前状态寄存器中存储的第Obit的报文数据中对应的 bit位是否相同(不同意味着发生了数据翻转,也就是传输中会产生功耗),8组异或逻辑 分别输出每个周期不同的bit个数,对于其中不为0的bit的个数相加后并在累加器中累 力口。这样对一整帧报文数据进行连续的计算,当最后一个报文数据通过当前状态寄存器后, 累加器输出完整的数据包的功耗数据至控制模块。在每一个数据包的开始位置,累加器被 清零。由于SGMII是采用的LVDS差分标准电平,和GMII以及RGMII的2. 5V单端电平标准 不一致,因此,还需要进行一次修正操作,将Ibit功耗计算模块的输出结果乘以一个加权 系数以折算到和GMII以及RGMII端口同样的功耗标准上,以获得SGMII接口的功耗数据。 当一个报文完整的通过3个功耗计算模块后,控制模块分别读取3个功耗计算模 块最后获得的功耗数据,并进行比较,选择上述3个接口传输所需功耗数据中的最小值。控 制模块根据所述最小值和当前的fifo深度来进行通道选择,通道选择的算法如下当fifo高水位标记不为1的时候,如果所述最小值来自于Sbit功耗计算模块,则 当前网络报文通过GMII接口进行发送;如果所述最小值来自于4bit功耗计算模块,则当前 网络报文通过RGMII接口进行发送;如果所述最小值来自于Ibit功耗计算模块,则当前网 络报文通过SGMII接口进行发送。当fifo高水位标记为1的情况下,当前报文从上一报文所选通道进行发送,忽略 当前报文的功耗数据。控制逻辑在做出当前发送通道的选择后,发出MDIO控制器的控制指令,控制PHY 侧接口的SGMII/RGMII/GMII端口选择寄存器,使PHY芯片对片外数据通道进行切换至相应 的端口(注意,有些PHY芯片需要在设置完通道参数后进行软复位才能使配置生效,为了应 用本发明的功耗节省方法,需要对此类Phy芯片的逻辑进行修改),当配置完PHY的控制寄 存器后,控制逻辑发送缓存内的报文至对应的发送通道。为了进一步节省功耗,分别实现一个Sbit位宽输入的千兆以太网MAC模块,一个 4bit位宽输入的千兆以太网MAC模块以及一个Ibit位宽输入的千兆以太网MAC模块,分 别串接在功耗计算及控制模块和GMII接口,RGMII接口以及SGMII接口之间。三个MAC模 块的功能相同,区别仅在于输入/输出的位宽以及时钟频率。Ibit位宽输入的千兆以太网 MAC模块的时钟频率是8bit位宽输入的千兆以太网MAC模块的8倍。4bit位宽输入的千兆 以太网MAC模块的时钟频率是Sbit位宽输入的千兆以太网MAC模块的2倍。每个以太网 MAC控制器的时钟均由锁相环对应的输出驱动。由于本发明在选择数据通路的时候已经考 虑了功耗数据,因此,数据在经过MAC处理的时候,也同样能节省大量的功耗。所述MAC模块实现的功能和IEEE802. 3规范中所规定的标准的千兆以太网媒体接入控制器功能相同,在此不再详细描述。
虽然本发明已以较佳实施例揭示如上,然其并非用以限定本发明,任何本领域技 术人员,在不脱离本发明的精神和范围内,当可作些许的修改和完善,因为本发明的保护 范围当以权利要求所界定的为准。
权利要求1. 一种以太网数据发送装置,包括一异步FIFO,用于存储从控制器核心发出的数据报文,并转换时钟域; 一功耗计算及控制模块,用于从所述异步FIFO中读取当前报文,计算当前报文的功耗 数据,选择当前报文的数据传输通道;一 Sbit数据位宽以太网媒体接入控制器模块,耦接在所述功耗计算及控制模块及 GMII接口之间;一 4bit数据位宽以太网媒体接入控制器模块,耦接在所述功耗计算及控制模块及 RGMII接口之间;一 Ibit数据位宽以太网媒体接入控制器模块,耦接在所述功耗计算及控制模块及 SGMII接口之间;一锁相环模块,用以产生GMII接口,RGMII接口以及SGMII接口所需的数据时钟; 一 MDIO控制器模块,用以对PHY芯片进行数据读取和控制, 其特征在于所述异步FIFO包含一高水位标志,用以指明FIFO内数据量是否达到一定的门限; 所述功耗计算模块包含一控制模块,一 Sbit功耗计算模块,一 4bit功耗计算模块,一 Ibit功耗计算模块以及数据缓存器,控制模块根据所述3个功耗计算模块的计算结果选择 数据报文输出至所述的8bit数据位宽以太网媒体接入控制器模块或者4bit数据位宽以太 网媒体接入控制器模块或者Ibit数据位宽以太网媒体接入控制器模块之一。
专利摘要本实用新型公开一种以太网数据发送装置,包括异步FIFO、功耗计算及控制模块、8bit数据位宽以太网媒体接入控制器模块、4bit数据位宽以太网媒体接入控制器模块、1bit数据位宽以太网媒体接入控制器模块、锁相环模块以及MDIO控制器模块,所述异步FIFO包含一高水位标志;所述功耗计算模块包含控制模块,8bit功耗计算模块,4bit功耗计算模块,1bit功耗计算模块以及数据缓存器,控制模块根据所述的3个功耗计算模块的计算结果选择数据报文输出至所述的8bit数据位宽以太网媒体接入控制器模块或者4bit数据位宽以太网媒体接入控制器模块或者1bit数据位宽以太网媒体接入控制器模块之一。有益效果通过充分利用数据的功耗分析,降低传输功耗并保证数据传输的效率。
文档编号H04L12/28GK201878176SQ20102021268
公开日2011年6月22日 申请日期2010年6月2日 优先权日2010年6月2日
发明者孟路, 马建锋 申请人:上海融亿信息技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1