首页> 中国专利> 多端口的以太网接口及其实现方法和物理层接口

多端口的以太网接口及其实现方法和物理层接口

摘要

本发明公开了一种多端口的以太网接口及其实现方法和物理层接口,其中,以太网接口包括:物理层接口模块、MAC模块和应用层接口模块,其中,物理层接口模块与MAC模块和外部的N个物理层端口连接,用于以分时方式连通各物理层端口与MAC模块之间的数据传输;MAC模块用于将来自各物理层端口的数据共用一套接收组合逻辑进行运算后,输出给应用层接口模块,将应用层接口模块发送给各物理层端口的数据共用一套发送组合逻辑进行运算后,输出给物理层接口模块;应用层接口模块与MAC模块和外部N个应用层接口连接,用于以分时方式连通MAC模块与各应用层接口之间的数据传输。本发明公开的技术方案能够降低组合逻辑资源的浪费。

著录项

  • 公开/公告号CN101404645A

    专利类型发明专利

  • 公开/公告日2009-04-08

    原文格式PDF

  • 申请/专利权人 华为技术有限公司;

    申请/专利号CN200810096124.9

  • 发明设计人 李北建;胡俊;尚秋平;

    申请日2008-04-29

  • 分类号H04L29/06(20060101);H04L29/10(20060101);

  • 代理机构11018 北京德琦知识产权代理有限公司;

  • 代理人宋志强;麻海明

  • 地址 518129 广东省深圳市龙岗区坂田华为总部办公楼

  • 入库时间 2023-12-17 21:40:45

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2022-04-05

    未缴年费专利权终止 IPC(主分类):H04L29/06 专利号:ZL2008100961249 申请日:20080429 授权公告日:20111116

    专利权的终止

  • 2011-11-16

    授权

    授权

  • 2009-06-03

    实质审查的生效

    实质审查的生效

  • 2009-04-08

    公开

    公开

说明书

技术领域

本发明涉及以太网接口技术,尤其涉及一种多端口的以太网接口及其实现方法,以及一种物理层接口。

背景技术

以太网接口被广泛应用于网络芯片系统中,一般是网络芯片必不可少的接口,因此以太网接口的设计是网络系统设计的一项关键技术。

以太网接口的介质访问控制(MAC,Media Access Control)层,可分为10M、100M、1000M、10G几个带宽等级。对于和物理层(PHY)侧的常用接口,对应10M/100M的带宽等级可以分为介质无关接口(MII),简化的介质无关接口(RMII),串行介质无关接口(SMII),源同步的串行介质无关接口(SS_SMII),对应1000M的带宽等级可以分为千兆位的介质无关接口(GMII),简化的千兆位的介质无关接口(RGMII),十比特的千兆接口(TBI),简化的十比特的千兆接口(RTBI),对应10G的带宽等级可以分为万兆位的介质无关接口(XGMII),十六比特的万兆接口(XSBI),万兆位的附属单元接口(XAUI)。

通常情况下,各种带宽的MAC的协议处理都相同,不同仅仅在于带宽不同,体现在接口上,即数据宽度和时钟频率不同。例如,带宽为1000M的千兆位的介质访问控制(GMAC,Gigabit Media Access Control)的时钟频率通常为125MHz,内部处理的数据宽度为8bit;带宽为100M/10M的百兆位/十兆位的介质访问控制(FMAC,Fast Media Access Control)的时钟频率通常为25MHz/2.5MHz,内部处理数据宽度为4bit。

现有技术中,无论哪种带宽的MAC,由于协议处理都相同,在与PHY侧相连时,对于PHY的每个端口,MAC内部的一种逻辑结构可均如图1所示,包括:寄存器L、组合逻辑(图1以接收数据为例,为接收组合逻辑)和寄存器R。其中,组合逻辑通常指输出值随输入值的变化而即时变化的一套逻辑算法,如与或运算等,具体算法实现根据实际需要而定,并且对应一个端口的组合逻辑可以有几个,如寄存器R之后还可以有组合逻辑,相应地该组合逻辑之后还有相应地寄存器,依此类推,使两个寄存器之间有一个组合逻辑,寄存器的个数与组合逻辑的个数之差为1,其中,不同的组合逻辑其逻辑算法可以不同,此处不再赘述。本文中为描述方便,将对应一个端口的所有组合逻辑简称为一套组合逻辑,将对应一个端口的所有寄存器简称为一套寄存器。在接收数据时,当接收数据使能信号(rx_ena)有效时,寄存器L将来自PHY侧的数据送入组合逻辑,组合逻辑对所接收的数据进行运算后,将运算结果输出给寄存器R进行锁存,以便进行后续组合逻辑运算,直到所有组合逻辑运算结束,将结果数据通过FIFO模块(异步FIFO模块或同步FIFO模块)或其它应用层接口提供给MAC的应用侧。对于图1中示出的一个组合逻辑的情况,寄存器R中锁存的结果数据直接通过FIFO模块或其它应用层接口提供给MAC的应用侧。

发明人在研究中发现,随着产品带宽的需求越来越大,网络芯片上需要的以太网端口越来越多,并且和MAC对接的PHY芯片,也出现了很多多端口的PHY芯片,即一个PHY芯片里面有4个或者8个甚至更多个PHY端口,此时,如果按照数目去例化MAC的逻辑,即每个端口都对应MAC的一套组合逻辑,则整个网络芯片的组合逻辑面积会随着端口数目的增加而急剧增加。如图2所示,图2中示出了8个端口以太网接口的结构示意图,其中,8个端口(图示中标记为端口0~端口7)对应8个MAC的内部实现,而每个MAC的内部实现可如图1所示,则相应地,8个端口对应MAC的8套组合逻辑,而通常情况下每个端口对应的组合逻辑都是一样的,因此多个重复的组合逻辑造成了组合逻辑资源的浪费,并且增加了组合逻辑的修改和维护难度。此外,当端口过多时,有时甚至无法用现有的现场可编程门阵列(FPGA)芯片进行验证。

发明内容

本发明实施例提供了一种多端口的以太网接口、一种物理层接口及一种多端口的以太网接口的实现方法,以降低逻辑资源的浪费。

本发明实施例中提供的多端口的以太网接口,包括:物理层接口模块、介质访问控制MAC模块和应用层接口模块,其中,

所述物理层接口模块分别与MAC模块和外部的N个物理层端口连接,用于以分时方式连通各物理层端口与MAC模块之间的数据传输;

所述MAC模块用于将所述物理层接口模块发送的来自各物理层端口的数据共用一套接收组合逻辑进行运算后,输出给所述应用层接口模块;将所述应用层接口模块发送给各物理层端口的数据共用一套发送组合逻辑进行运算后,输出给所述物理层接口模块;

所述应用层接口模块与MAC模块和外部的N个应用层接口连接,用于以分时方式连通MAC模块与各应用层接口之间的数据传输;

其中,N为大于1的整数。

本发明实施例中提供的物理层接口,分别与MAC模块和N个物理层端口连接,该物理层接口包括:

计数模块,用于根据本地时钟按照预设计数间隔进行计数,得到计数结果;

使能信号生成模块,用于根据所述计数结果,生成对应物理层端口的数据使能信号;

数据传输模块,用于根据所述对应物理层端口的数据使能信号,在数据使能信号有效的物理层端口与MAC模块之间进行数据传输。

本发明实施例中提供的多端口的以太网接口的实现方法,包括:

所述以太网接口中的物理层接口模块以分时方式连通与所述物理层接口模块一侧相连的各物理层端口和与所述物理层接口模块另一侧相连的MAC模块之间的数据传输;

所述以太网接口中的MAC模块将所述物理层接口模块发送的来自各物理层端口的数据共用一套接收组合逻辑进行运算后,输出给以太网接口中的应用层接口模块,将所述应用层接口模块发送给各物理层端口的数据共用一套发送组合逻辑进行运算后,输出给所述物理层接口模块;

所述应用层接口模块以分时方式连通与所述应用层接口模块一侧相连的MAC模块和与与所述应用层接口模块另一侧相连的各应用层接口之间的数据传输;

其中,N为大于1的整数。

从上述方案可以看出,本发明中的以太网接口包括:物理层接口模块、MAC模块和应用层接口模块,其中,物理层接口模块以分时方式连通各物理层端口与MAC模块之间的数据传输;应用层接口模块以分时方式连通MAC模块与各应用层接口之间的数据传输;MAC模块将物理层接口模块发送的来自各物理层端口的数据共用一套接收组合逻辑进行运算后,输出给应用层接口模块,将应用层接口模块发送给各物理层端口的数据共用一套发送组合逻辑进行运算后,输出给物理层接口模块,可见实现了多端口复用一套组合逻辑,从而降低了逻辑资源的浪费。

附图说明

图1为现有技术中MAC内部的一种逻辑结构示意图;

图2为现有技术中8个端口以太网接口的结构示意图;

图3为本发明实施例中8个端口以太网接口的结构示意图;

图4为图3所示以太网接口中物理层接口模块的结构示意图;

图5(a)和图5(b)为本发明实施例中10个计数周期的时序图;

图6为本发明实施例中MAC模块的一种逻辑结构示意图;

图7为本发明实施例中MAC模块的又一种逻辑结构示意图。

具体实施方式

随着ASIC工艺技术的提高,逻辑时钟能够运行到125MHz等高速率已经不成问题,且FPGA器件的速度也越来越快,125MHz等高速率在FPGA中也不成问题,因此基于这些高速率器件的以太网接口可以支持高带宽的端口连接,或者可以支持分时复用的多个低带宽的端口连接,进一步地,为了提高以太网接口的灵活性,可以同时支持高带宽的端口连接以及分时复用的多个低带宽的端口连接,至于当前采用何种带宽的工作模式,可根据实际需要进行选择。例如,一个GMAC的处理带宽是10倍的100M的FMAC的处理带宽,是100倍10M的FMAC的处理带宽,因此可以采用一种分时复用的方式,用一个GMAC的组合逻辑面积和10倍的寄存器或存储模块寄存10个端口的数据,处理10个FMAC数据,这样就可以使得组合逻辑的资源大大减少,考虑到需要留给CPU配置的时间通道,以及目前的多端口PHY芯片的通道数目一般为4,8,16,24......,所以可以实现一个8端口分时复用的MAC,当然,也可以根据其它具体情况,实现不同个数的端口的分时复用。

下面对以太网接口支持分时复用多个低带宽端口的情况进行详细描述。

图3为本发明实施例中多端口分时复用的以太网接口的示例性结构图。如图3中的实线部分所示,该以太网接口包括:物理层接口模块301、MAC模块302和应用层接口模块303。

其中,物理层接口模块301与MAC模块302和N个物理层端口304连接,用于以分时方式连通各物理层端口304与MAC模块302之间的数据传输。其中,N为大于1的整数,图3中以N=8的情况为例。

MAC模块302用于将物理层接口模块301发送的来自各物理层端口304的数据共用一套接收组合逻辑进行运算后,输出给应用层接口模块303;将应用层接口模块303发送给各物理层端口304的数据共用一套发送组合逻辑进行运算后,输出给物理层接口模块301。

应用层接口模块303与MAC模块302和N个FIFO模块305连接,用于以分时方式连通MAC模块302与各FIFO模块305之间的数据传输。其中,FIFO模块305也可以被其它应用层接口代替,本实施例中主要以FIFO模块305为例进行描述。其中,N为大于1的整数,图3中以N=8的情况为例。

其中,8个物理层端口304可只包括GMAC、也可只包括百兆位的FMAC,还可只包括十兆位的FMAC,或者也可既包括百兆位的FMAC又包括十兆位的FMAC等,本实施例中假设端口0、2、3、5、6、7为百兆位的FMAC,端口1和4为十兆位的FMAC。

具体实现时,为了实现分时复用,物理层接口模块301的内部结构可有多种实现形式,其中一种可如图4中的实线部分所示,包括:计数模块401、使能信号生成模块402和数据传输模块403。

其中,计数模块401用于根据本地时钟按照预设计数间隔进行计数,得到计数结果。对于图3所示实施例中N为8,即8个端口分时复用的情况,可对8个物理层端口及8个FIFO模块进行编号,如编号为0~7,即图3中对PHY侧接口的8个物理层端口编号为端口0、1、2、3、4、5、6、7,对8个FIFO模块编号为FIFO模块0、1、2、3、4、5、6、7。此时,计数模块401可以进行周期循环计数,其中循环周期大于8,假设本地时钟为125MHz,则计数间隔可以为12.5MHz对应的时间间隔,对应的计数循环周期为10,相应地计数范围可为0~9,相当于将125MHz分成10个时隙。将计数结果(port_num)与8个端口分别对应,如计数结果为0时,对应的物理层端口为端口0,对应的FIFO模块为FIFO模块0,计数结果为1时,对应的物理层端口为端口1,对应的FIFO模块为FIFO模块1,以此类推,计数结果为7时,对应的物理层端口为端口7,对应的FIFO模块为FIFO模块7。此外,对于计数结果为8和9时的剩余时隙,可对以太网接口的CPU配置部分进行访问。

使能信号生成模块402用于根据计数模块401的计数结果,生成对应物理层端口的数据使能信号。其中,对于带宽一致的物理层端口304,可直接根据计数结果402将对应该物理层端口304的使能信号(rx_ena_n,n=0,1,......,7)的当前状态值置为有效,否则所述使能信号的当前状态值无效,通过判断各使能信号的状态,可确定当前对哪个物理层端口304进行操作。例如,对于图3实线部分所示8个端口(端口0~端口7),若都为百兆位的FMAC,则可在计数结果为0时,将对应的物理层端口304即端口0的数据使能信号rx_ena_0的状态值置为有效,在计数结果为1时,将对应的端口1的数据使能信号rx_ena_1的状态值置为有效;以此类推。而对于带宽不一致的物理层端口304,则还需一个辅助的计数结果,例如,对于图3实线部分所示8个端口,若其中的端口1和4为十兆位的FMAC,则由于其与百兆位的FMAC的时钟频率为10倍的关系,因此为了生成对应的使能信号,物理层接口模块301还可包括一个循环周期计数模块404,用于对计数模块401计数的循环次数进行计数,得到循环次数(ten_cycle)。则使能信号生成模块402在循环周期计数模块404每计数十次时,根据计数模块401的当前计数结果,在所述计数结果分别对应端口1和端口4时,将端口1和端口4的使能信号rx_ena_1和rx_ena_4的当前状态分别置为有效。

此时,数据传输模块403,用于根据所述使能信号生成模块402生成的对应物理层端口的数据使能信号,在数据使能信号有效的物理层端口304与MAC模块302之间进行数据传输。

进一步地,为避免对每个使能信号的状态值均进行判定,可将各物理层端口对应的数据使能信号的当前状态值逻辑或在一起,生成对应物理层端口304的总的数据使能信号(rx_ena),该总的数据使能信号用于指示当前各物理层端口304中是否存在使能信号有效的端口,如果存在,则根据计数结果可确定当前使能信号有效的端口是哪个端口,进而可对该端口进行操作。

此时,如图4中的虚线部分所示,数据传输模块403,进一步根据计数结果(port_num)及所述使能信号生成模块402生成的对应物理层端口304的总的数据使能信号,在数据使能信号有效的物理层端口304,即在所述总的数据使能信号有效时,与所述计数结果对应的物理层端口304与MAC模块302之间进行数据传输。

由于物理层端口304所支持的数据宽度与MAC模块302所支持的数据宽度可以相同,也可以不相同,因此当二者所支持的数据宽度不相同时,在物理层端口304与MAC模块302之间进行数据传输时,可将数据使能信号有效的物理层端口304的数据进行转换后发送给MAC模块,将来自MAC模块302的数据进行转换后发送给所述物理层端口304。具体实现时,该数据传输模块403可包括:数据转换子模块和数据传输子模块。

其中,数据转换子模块,用于将第一数据宽度的数据转换为第二数据宽度的数据,将第二数据宽度的数据转换为第一数据宽度的数据。

数据传输子模块,用于接收来自数据使能信号有效的物理层端口的第一数据宽度的数据,将所述第一数据宽度的数据发送给数据转换子模块,接收来自数据转换子模块的第二数据宽度的数据,将所述第二数据宽度的数据发送给所述MAC模块;接收来自所述MAC模块的第二数据宽度的数据,将所述第二数据宽度的数据发送给数据转换子模块,接收来自数据转换子模块的第一数据宽度的数据,将所述第一数据宽度的数据发送给物理层端口。

对于本地时钟为125MHz的情况,若MAC模块302内部的数据处理宽度为8比特,而物理层端口304对应的FMAC接口的数据带宽为4比特,则数据传输模块403将数据使能信号有效的物理层端口304的4比特的数据转换为8比特的数据后发送给MAC模块302,将来自MAC模块302的8比特的数据转换为4比特的数据后发送给所述物理层端口304。

相应地,应用层接口模块303可根据所述计数结果(port_num),在与所述计数结果对应的物理层端口304的数据使能信号有效时,在与计数结果对应的FIFO模块305和所述MAC模块302之间进行数据传输。其中,图3和图4中未示出应用层接口模块303和计数模块401及信号使能模块402之间的连接关系。

其中,由于物理层端口304可有各种类型,针对不同类型的物理层端口304,物理层接口模块301在与各物理层端口304进行数据传输时也稍有不同。其中,从物理层端口304接收数据时,若物理层端口304为SMII和/或SS_SMII,则SMII和/或SS_SMII接口还会有一个转换功能,用于将SMII和/或SS_SMII接口的数据由串行转换为4比特后再传输给物理层接口模块301,而来自物理层接口模块301的数据也会由4比特转换为串行后再提供给SMII和/或SS_SMII接口,此外,由于这样的物理层端口304的接收时钟和本地时钟是同源的,因此,物理层接口模块301的数据传输模块403可直接利用本地的高速时钟(如125MHz)去采样SMII和/或SS_SMII接口的低速时钟(如25MHz或2.5MHz),在采样到对方的时钟跳变时,锁定该物理层端口304的数据;当物理层端口304为独立的MII时,由于MII本身即为4比特的数据接口,因此该物理层端口304无需转换功能,但由于MII接口的时钟与本地时钟通常不是同源的,因此采样之前,物理层接口模块301还进一步包括:异步处理模块(图4中未示出),用于先对MII接口进行异步处理,得到同步于本地时钟的接收数据。之后,在对应该物理层端口304的使能信号有效时,由数据传输模块403将来自物理层端口304的数据由4比特转换为8比特后发送给MAC模块302。

当将数据发送给物理层端口304时,对于SMII和/或SS_SMII接口的物理层端口304,由于其采用的发送时钟即为本地时钟,因此物理层接口模块301的数据传输模块403可直接根据计数结果将数据发送到对应的物理层端口304;对于MII接口的物理层端口304,则需先由异步处理模块进行异步处理后,再由数据传输模块403将数据根据计数结果发送到对应的物理层端口304。

其中,为了支持各物理层端口304的分时复用,第二数据宽度与计数间隔对应的时钟频率构成的带宽为物理层端口304对应的最大带宽,即8比特与12.5MHz构成的带宽为100M,而8个物理层端口中FMAC对应的最大带宽也为100M。

图5(a)和图5(b)示出了本发明实施例中10个计数周期的时序图。其中,图5(b)是图5(a)的局部放大图。如图5(a)和图5(b)所示,本地时钟为125MHz(图示中标记为clk_125m),对应计数结果0、2、3、5、6、7,端口0、2、3、5、6、7的使能信号rx_ena_n,n=0,2,3,5,6,7依次有效,对应计数结果1、4每10个计数周期,端口1、4的使能信号rx_ena_n,n=1,4依次有效。各端口使能信号rx_ena_n,n=1,2,......,7或在一起后的数据使能信号rx_ena在各端口使能信号任一有效时有效。

此外,具体实现时,MAC模块302的内部实现形式可有多种,下面列举其中两种:

第一种:MAC模块302包括:一套接收组合逻辑、一套接收移位寄存器组、一套发送组合逻辑和一套发送移位寄存器组。其中,每个接收移位寄存器组包括N个接收寄存器,两个接收移位寄存器组之间布置一个接收组合逻辑,每个发送移位寄存器组包括N个发送寄存器,两个发送移位寄存器组之间布置一个发送组合逻辑。所述一套接收移位寄存器组的输入端与所述物理层接口模块相连,输出端与所述应用层接口模块相连;所述一套发送移位寄存器组的输入端与所述应用层接口模块相连,输出端与所述物理层接口模块相连。

则相应地,物理层接口模块301中可如图4中的虚线部分所示,进一步包括移位标记信号生成模块405,用于在计数结果对应N个物理层端口304中的任意一个时,生成移位标记信号(shift_en),并将所述移位标记信号输出给所述MAC模块302的每个接收移位寄存器组中的各接收寄存器和每个发送移位寄存器组中的各发送寄存器。

则各接收寄存器在数据使能信号有效时,根据所述移位标记信号将锁存的数据进行移位,其中,输入端与所述物理层接口模块301相连的接收寄存器将锁存的数据移位后,接收来自所述物理层接口模块301的数据并锁存;输出端与接收组合逻辑相连的接收寄存器将锁存的数据送入所述接收组合逻辑,所述接收组合逻辑进行逻辑运算后,输出给输入端与所述接收组合逻辑相连的接收寄存器进行锁存;输出端与所述应用层接口模块相连的接收寄存器将锁存的数据输出给所述应用层接口模块303。

各发送寄存器在数据使能信号有效时,根据所述移位标记信号将锁存的数据进行移位,其中,输入端与所述应用层接口模块303相连的发送寄存器将锁存的数据移位后,接收来自所述应用层接口模块303的数据并锁存;输出端与发送组合逻辑相连的发送寄存器将锁存的数据送入所述发送组合逻辑,所述发送组合逻辑进行逻辑运算后,输出给输入端与所述发送组合逻辑相连的发送寄存器进行锁存;输出端与所述物理层接口模块相连的发送寄存器将锁存的数据输出给所述物理层接口模块301。

下面以MAC模块302从物理层端口304接收数据时的情况为例,假设仍对图3实线部分所示的8个端口进行分时复用,且假设一套接收组合逻辑中只有一个接收组合逻辑,则一套接收移位寄存器组有两个接收移位寄存器组。如图6所示,图6示出了本发明实施例中MAC模块的一种逻辑结构示意图。其中,输出端与接收组合逻辑相连的接收移位寄存器组中包括8个寄存器,即寄存器L0~L7,输入端与接收组合逻辑相连的接收移位寄存器组中也包括8个寄存器,即寄存器R0~R7,在数据使能信号及移位标记信号有效时,两个移位寄存器组中的每个寄存器分别将自身锁存的数据进行移位。其中,寄存器L7将自身锁存的数据输出给寄存器L6,接收来自物理层接口模块301的数据并锁存;寄存器L6将自身锁存的数据输出给寄存器L5,接收来自寄存器L7的数据并锁存;以此类推;寄存器L0将锁存的数据送入所述接收组合逻辑,接收来自寄存器L1的数据并锁存。接收组合逻辑进行逻辑运算后,将数据输出给寄存器R7;寄存器R7将锁存的数据输出给寄存器R6后,接收来自接收组合逻辑的数据并锁存;寄存器R6将自身锁存的数据输出给寄存器R5后,接收来自寄存器R7的数据并锁存;以此类推;寄存器R0将锁存的数据输出给应用层接口模块后,接收来自寄存器R1的数据并锁存。

可见,经过上述处理后,某物理层端口304的数据经过接收组合逻辑处理之后,结果被锁存起来,等到下一个属于该端口304的计数结果到来时,锁存的结果从移位寄存器中移出,并发送给应用层接口模块303。

第二种:MAC模块302包括:一套接收组合逻辑、一套接收存储模块、一套发送组合逻辑和一套发送存储模块。其中,每个接收存储模块包括N个地址的存储空间,接收存储模块的个数小于等于接收组合逻辑与1的和,每个发送存储模块包括N个地址的存储空间,发送存储模块的个数小于等于发送组合逻辑与1的和。

此时,物理层接口模块301中的计数模块401进一步将得到的计数结果提供给所述MAC模块302的每个接收存储模块和每个发送存储模块。

其中,存储模块可以是随机存储器(RAM),由于对于RAM这类存储模块,其数据的读取需要一个过程,因此在从RAM中读取数据时可根据其读取数据的时延提前读取。例如,对于上述计数范围为0~9的情况,若RAM的读取时延需要两拍,则当需要从RAM中获取端口3寄存的数据时,需要提前2个节拍进行读取,即在计数结果为1时,开始读取RAM中端口3寄存的数据,以此类推,计数结果为8时,开始读取RAM中端口0寄存的数据,计数结果为6和7时,不进行读取。

则每个接收存储模块用于基于先读取后写入的原则,在与所述计数结果对应的物理层端口的数据使能信号有效时,接收来自所述物理层接口模块的数据并写入与所述计数结果对应的地址存储空间,和/或,将根据读取时延预先读取的与所述计数结果对应的地址存储空间内的数据送入接收组合逻辑,和/或,将来自接收组合逻辑的数据写入与所述计数结果对应的地址存储空间,和/或,将根据读取时延预先读取的与所述计数结果对应的地址存储空间内的数据输出给所述应用层接口模块。

每个发送存储模块用于基于先读取后写入的原则,在与所述计数结果对应的物理层端口的数据使能信号有效时,接收来自所述应用层接口模块的数据并写入与所述计数结果对应的地址存储空间,和/或,将根据读取时延预先读取的与所述计数结果对应的地址存储空间内的数据送入发送组合逻辑,和/或,将来自发送组合逻辑的数据写入与所述计数结果对应的地址存储空间,和/或,将根据读取时延预先读取的与所述计数结果对应的地址存储空间内的数据输出给所述物理层接口模块。

下面以MAC模块从物理层端口接收数据时的情况为例,当接收存储模块只有一个时,则存储模块的宽度为所有需要寄存的信息的数据总宽度,并且该存储模块的总宽度空间内的不同宽度空间存储不同的信息,假设从物理层接口模块接收的数据的宽度为n1,经第一个接收组合逻辑运算后的数据的宽度为n2,......,经最后一个,即第x个接收组合逻辑运算后的数据的宽度为nx,则存储模块的宽度为n1+n2+...+nx,并且存储模块每个地址存储空间内的前n1宽度用于存放来自物理层接口模块的数据,n1宽度之后的n2宽度内存放经第一个接收组合逻辑运算后的数据,......,最后nx宽度内存放经第x个接收组合逻辑运算后的数据。例如,假设计数结果为0且数据使能信号有效,则该存储模块基于先读取后写入的原则,将根据读取时延预先读取的地址0存储空间内的前n1宽度内的数据送入第一个接收组合逻辑,接收来自物理层接口模块的数据并写入地址0存储空间内的前n1宽度的空间内;将根据读取时延预先读取的地址0存储空间内n1宽度之后的n2宽度内的数据送入第二个接收组合逻辑,接收来自第一个接收组合逻辑的数据并写入地址0存储空间内n1宽度之后的n2宽度内;......;将根据读取时延预先读取的地址0存储空间内的后nx宽度内的数据输出给应用层接口模块,接收来自第x个接收组合逻辑的数据并写入地址0存储空间内的nx宽度内。

当接收存储模块的个数等于接收组合逻辑与1的和时,存储模块的宽度为相应的需要寄存的信息的数据宽度,假设从物理层接口模块接收的数据的宽度为n1,则第一个存储模块的宽度为n1;经第一个接收组合逻辑运算后的数据的宽度为n2,则第二个存储模块的宽度为n2;......;经最后一个,即第x个接收组合逻辑运算后的数据的宽度为nx,则第x个存储模块的宽度为nx。例如,假设计数结果为0且数据使能信号有效,则第一个存储模块基于先读取后写入的原则,将根据读取时延预先写入的地址0存储空间的数据送入第一个接收组合逻辑,接收来自物理层接口模块的数据并写入地址0存储空间内;第二个存储模块基于先读取后写入的原则,将根据读取时延预先读取的地址0存储空间内的数据送入第二个接收组合逻辑,接收来自第一个接收组合逻辑的数据并写入地址0存储空间内;......;第x个存储模块基于先读取后写入的原则,将根据读取时延预先读取的地址0存储空间内的数据输出给应用层接口模块,接收来自第x个接收组合逻辑的数据并写入地址0存储空间内。

为了增进以太网接口的灵活性,本实施例中的N个物理层端口可与一个高带宽的物理层端口复用一个组合逻辑。即如图3中的虚线部分所示,物理层接口模块还可与一个高带宽的物理层端口连接,相应地,应用层接口模块也与一个对应高带宽的FIFO模块连接。其中,该高带宽的物理层端口对应的带宽大于等于N倍的N个物理层端口中单个物理层端口对应的最大带宽。例如,对于图3实线部分所示有8个物理层端口,且物理层端口为FMAC的情况,由于FMAC的最大带宽为100M,则8倍的100M带宽为800M带宽,则与之分时复用的高带宽物理层端口对应的带宽可以为1000M,即该端口可以是一个GMAC。具体实现时,该高带宽的物理层端口可无需设置单独的端口,而是可与所述N个物理层端口中的一个端口复用在一起,相应地,对应高带宽的FIFO模块也可与N个FIFO模块中的一个FIFO模块复用在一起。例如,该GMAC对应的端口可与图3实线部分所示的端口0复用在一起,相应的对应高带宽的FIFO模块可与图3实现部分所示的FIFO模块0复用在一起。

在增加了高带宽的物理层端口后,该以太网接口还可包括端口模式选择模块,用于在高带宽的物理层端口对应的高带宽工作模式和N个物理层端口对应的分时工作模式之间进行选择。

相应地,物理层接口模块进一步地,在高带宽工作模式时,在高带宽的物理层端口与MAC模块之间进行数据传输。应用层接口模块进一步地,在高带宽工作模式时,在MAC模块与所述对应高带宽的FIFO模块之间进行数据传输。

MAC模块进一步地,在高带宽工作模式时,用于将物理层接口模块发送的来自高带宽的物理层端口的数据利用所述一套接收组合逻辑进行运算后,输出给应用层接口模块,将应用层接口模块发送给高带宽的物理层端口的数据利用所述一套发送组合逻辑进行运算后,输出给物理层接口模块。

具体实现时,若MAC模块采用移位寄存器组的结构,则图6所示MAC模块的逻辑结构示意图可变为图7所示,在寄存器L0和寄存器L1之间添加了一个选择器,在寄存器R0和寄存器R1之间也添加了一个选择器。各选择器通过外部的进行工作模式选择的选择信号,使得在高带宽工作模式时,分别选通物理层接口模块与寄存器L0,接收组合逻辑与寄存器R0之间的通路,使来自物理层接口模块的数据直接发送给寄存器L0,经接收组合逻辑运算后的数据直接输出给寄存器R0;否则分别选通寄存器L1与寄存器L0,寄存器R1与寄存器R0之间的通路,则各寄存器按照前述描述的移位方法进行相应移位处理。

此外,当在高带宽工作模式时,前述描述的计数模块停止计数,或忽略其计数结果,且前述的数据使能信号也一直有效。

本实施例中,将1端口的GMAC与8端口的FMAC分时复用时,在不同工作模式下,可对MAC内部的寄存器或存储模块进行配置。

对于MAC内部的采用移位寄存器组的情况,可根据计数结果,选择相应端口对应的寄存器配置,并将所选择的配置输入到MAC模块,或者从MAC模块反馈到相应的寄存器。当工作在1端口GMAC模式时,只选择第0端口对应的寄存器进行相应配置。

对于MAC内部的采用存储模块的情况,可根据计数结果选取存储模块的地址,地址为0的存储空间中存放端口0对应的数据,地址为1的存储模块中存放端口1对应的数据,以此类推。

其中,当工作在8端口FMAC的分时工作模式时,计数结果为8或者9时,为CPU访问的时隙,如果在计数结果为0~7的时候遇到CPU访问,则锁定CPU访问的信息,等到紧接着的8或者9时隙的时候再响应CPU。

本发明实施例中以太网接口中的物理层接口模块、MAC模块和应用层接口模块均可独立作为一个相应的接口进行实现。

以上对本发明实施例中的以太网接口进行了详细描述,下面再对本发明实施例中以太网接口的实现方法进行详细描述。

设置包括物理层接口模块、介质访问控制MAC模块和应用层接口模块的以太网接口,所述物理层接口模块与MAC模块和N个物理层端口连接,所述应用层接口模块与MAC模块和N个FIFO模块(或其它应用层接口)连接。

物理层接口模块以分时方式连通各物理层端口与MAC模块之间的数据传输;MAC模块将物理层接口模块发送的来自各物理层端口的数据共用一套接收组合逻辑进行运算后,输出给应用层接口模块,将应用层接口模块发送给各物理层端口的数据共用一套发送组合逻辑进行运算后,输出给物理层接口模块;应用层接口模块以分时方式连通MAC模块与各FIFO模块之间的数据传输;其中,N为大于1的整数。

其中,物理层接口模块以分时方式连通各物理层端口与MAC模块之间的数据传输可包括:物理层接口模块根据本地时钟按照预设计数间隔进行计数,得到计数结果;根据所述计数结果,生成对应物理层端口的数据使能信号;根据所述计数结果,在与所述计数结果对应的物理层端口的数据使能信号有效时,将与所述计数结果对应的物理层端口的第一数据宽度的数据转换为第二数据宽度后发送给所述MAC模块,将来自所述MAC模块的第二数据宽度的数据转换为第一数据宽度后发送给所述物理层端口。各步骤的具体操作可与上述以太网接口的实施例中描述的具体操作一致,此处不再一一赘述。

其中,第二数据宽度与计数间隔对应的时钟频率构成的带宽为物理层端口对应的最大带宽。

此外,应用层接口模块以分时方式连通MAC模块与各FIFO模块(或其它应用层接口)之间的数据传输可以为:应用层接口模块根据所述物理层接口模块的计数结果,在与所述计数结果对应的物理层端口的数据使能信号有效时,在与所述计数结果对应的FIFO模块和所述MAC模块之间进行数据传输。相应地,该步骤的操作也可与上述以太网接口的实施例中描述的具体操作一致,此处不再一一赘述。

其中,按照预设计数间隔进行计数时,可以采用循环计数,例如循环周期可以为10,计数范围可以为0~9。则根据计数结果,生成对应物理层端口的数据使能信号可以为:对于带宽一致的物理层端口,可直接根据计数结果将对应该物理层端口的数据使能信号的当前状态值置为有效,否则所述数据使能信号的当前状态值无效,通过判断各数据使能信号的状态,可确定当前对哪个物理层端口进行操作。例如,对于图3所示8个端口(端口0~端口7),若都为百兆位的FMAC,则可在计数结果为0时,将对应的物理层端口即端口0的数据使能信号rx_ena_0的状态值置为有效,在计数结果为1时,将对应的端口1的数据使能信号rx_ena_1的状态值置为有效;以此类推。而对于带宽不一致的物理层端口,则还需一个辅助的计数结果,例如,对于图3所示8个端口,若其中的端口1和4为十兆位的FMAC,则由于其与百兆位的FMAC的时钟频率为10倍的关系,因此为了生成对应的数据使能信号,该方法可进一步包括:对进行计数的循环次数进行计数,得到循环计数结果(ten_cycle)。则使能信号生成模块在循环周期计数模块每计数十个循环周期时,根据计数模块的当前计数结果,在所述计数结果分别对应端口1和端口4时,将端口1和端口4的数据使能信号rx_ena_1和rx_ena_4的当前状态分别置为有效。

进一步地,为避免对每个数据使能信号的状态值均进行判定,可将各物理层端口对应的数据使能信号的当前状态值逻辑或在一起,生成对应物理层端口的总的数据使能信号(rx_ena),该总的数据使能信号用于指示当前各物理层端口中是否存在数据使能信号有效的端口,如果存在,则根据计数结果可确定当前数据使能信号有效的端口是哪个端口,进而可对该端口进行操作。

其中,MAC模块在具体实现时,可与上述以太网接口的实施例中描述的具体实现一致。即在其中一种情况中,MAC模块可包括:一套接收组合逻辑、一套接收移位寄存器组、一套发送组合逻辑和一套发送移位寄存器组。其中,每个接收移位寄存器组包括N个接收寄存器,两个接收移位寄存器组之间布置一个接收组合逻辑,每个发送移位寄存器组包括N个发送寄存器,两个发送移位寄存器组之间布置一个发送组合逻辑。

则该方法中可进一步包括:物理层接口模块在计数结果对应N个物理层端口中的任意一个时,生成移位标记信号。

则MAC模块将物理层接口模块发送的来自各物理层端口的数据共用一套接收组合逻辑进行运算,输出给应用层接口模块可包括:各接收寄存器在所述数据使能信号有效时,根据所述移位标记信号将锁存的数据进行移位,其中,输入端与所述物理层接口模块相连的接收寄存器将锁存的数据移位后,接收来自所述物理层接口模块的数据并锁存;输出端与接收组合逻辑相连的接收寄存器将锁存的数据送入所述接收组合逻辑,所述接收组合逻辑进行逻辑运算后,输出给输入端与所述接收组合逻辑相连的接收寄存器进行锁存;输出端与所述应用层接口模块相连的接收寄存器将锁存的数据输出给所述应用层接口模块。

MAC模块将应用层接口模块发送给各物理层端口的数据共用一套发送组合逻辑进行运算,输出给物理层接口模块包括:各发送寄存器在所述数据使能信号有效时,根据所述移位标记信号将锁存的数据进行移位,其中,输入端与所述应用层接口模块相连的发送寄存器将锁存的数据移位后,接收来自所述应用层接口模块的数据并锁存;输出端与发送组合逻辑相连的发送寄存器将锁存的数据送入所述发送组合逻辑,所述发送组合逻辑进行逻辑运算后,输出给输入端与所述发送组合逻辑相连的发送寄存器进行锁存;输出端与所述物理层接口模块相连的发送寄存器将锁存的数据输出给所述物理层接口模块。

在另一种情况中,MAC模块可包括:一套接收组合逻辑、一套接收存储模块、一套发送组合逻辑和一套发送存储模块。其中,每个接收存储模块包括N个地址的存储空间,接收存储模块的个数小于等于接收组合逻辑与1的和,每个发送存储模块包括N个地址的存储空间,发送存储模块的个数小于等于发送组合逻辑与1的和。

则相应地MAC模块将物理层接口模块发送的来自各物理层端口的数据共用一套接收组合逻辑进行运算后,输出给应用层接口模块可包括:每个接收存储模块基于先读取后写入的原则,在与所述计数结果对应的物理层端口的数据使能信号有效时,接收来自所述物理层接口模块的数据并写入与所述计数结果对应的地址存储空间,和/或,将根据读取时延预先读取的与所述计数结果对应的地址存储空间内的数据送入接收组合逻辑,和/或,将来自接收组合逻辑的数据写入与所述计数结果对应的地址存储空间,和/或,将根据读取时延预先读取的与所述计数结果对应的地址存储空间内的数据输出给所述应用层接口模块。

相应地,MAC模块将应用层接口模块发送给各物理层端口的数据共用一套发送组合逻辑进行运算后,输出给物理层接口模块可包括:每个发送存储模块基于先读取后写入的原则,在与所述计数结果对应的物理层端口的数据使能信号有效时,接收来自所述应用层接口模块的数据并写入与所述计数结果对应的地址存储空间,和/或,将根据读取时延预先读取的与所述计数结果对应的地址存储空间内的数据送入发送组合逻辑,和/或,将来自发送组合逻辑的数据写入与所述计数结果对应的地址存储空间,和/或,将根据读取时延预先读取的与所述计数结果对应的地址存储空间内的数据输出给所述物理层接口模块。

与本发明实施例中描述的以太网接口一致。本实现方法中,所述物理层接口模块还可与一个高带宽的物理层端口连接,相应地,所述应用层接口模块还可与一个对应高带宽的FIFO模块连接。其中,所述高带宽的物理层端口对应的带宽大于等于N倍的所述N个物理层端口中单个物理层端口对应的最大带宽。其中,高带宽的物理层端口与所述N个物理层端口中的一个端口复用在一起。

则该方法中,物理层接口模块以分时方式连通各物理层端口与MAC模块之间的数据传输之前,可进一步包括:在高带宽的物理层端口对应的高带宽工作模式和N个物理层端口对应的分时工作模式之间进行选择,在选择结果为分时工作模式时,执行所述以分时方式连通各物理层端口与MAC模块之间的数据传输。

在选择结果为高带宽工作模式时,该方法可进一步包括:物理层接口模块在高带宽的物理层端口与MAC模块之间进行数据传输;MAC模块将物理层接口模块发送的来自高带宽的物理层端口的数据利用所述一套接收组合逻辑进行运算后,输出给应用层接口模块,将应用层接口模块发送给高带宽的物理层端口的数据利用所述一套发送组合逻辑进行运算后,输出给物理层接口模块;应用层接口模块在MAC模块与所述对应高带宽的FIFO模块之间进行数据传输。

该方法中,N个物理层端口可以为8个FMAC端口,高带宽的物理层端口可以为GMAC端口;或者,N个物理层端口可以为8个GMAC端口,高带宽的物理层端口可以为万兆位的介质访问控制(10GEMAC)端口。

当N个物理层端口为8个FMAC端口,高带宽的物理层端口可以为GMAC端口时,第一数据宽度为4比特;所述第二数据宽度为8比特。其中,根据本地时钟按照预设计数间隔进行计数可以为:根据频率为125MHz的本地时钟,按照12.5MHz的时钟频率对应的计数间隔进行周期循环计数,计数循环周期为10。则与计数结果对应的物理层端口为:预先设置的与10个计数结果中的8个计数结果分别对应的8个物理层端口中,与当前计数结果对应的物理层端口。其中,在计数结果为与物理层端口不相对应的计数结果时,对以太网接口的CPU配置部分进行访问。

其中,将与计数结果对应的物理层端口的第一数据宽度的数据转换为第二数据宽度后发送给MAC模块之前,进一步包括:当N个物理层端口为SMII和/或SS_SMII时,利用本地的125MHz的高速时钟采用所述物理层端口对应的25MHz或2.5MHz的低速时钟,当采用到低速时钟发生跳变时,锁定该物理层端口的数据;当N个物理层端口为独立的MII时,对所述物理层端口进行异步处理,得到同步于本地时钟的数据。之后,在对应该物理层端口的数据使能信号有效时,执行上述将与计数结果对应的物理层端口的第一数据宽度的数据转换为第二数据宽度后发送给MAC模块。

本发明实施例中的以太网接口的实现方法是基于本发明实施例中的以太网接口进行实现的,相关具体描述可参见本发明实施例中的以太网接口的相关描述,此处不再对本发明实施例中的以太网接口的实现方法进行详述。

以上所述的具体实施例,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号