CN112333024B - 融合高速网链路层与100g以太网编码层的适配装置 - Google Patents
融合高速网链路层与100g以太网编码层的适配装置 Download PDFInfo
- Publication number
- CN112333024B CN112333024B CN202011232354.0A CN202011232354A CN112333024B CN 112333024 B CN112333024 B CN 112333024B CN 202011232354 A CN202011232354 A CN 202011232354A CN 112333024 B CN112333024 B CN 112333024B
- Authority
- CN
- China
- Prior art keywords
- data
- fifo
- adaptor
- module
- ethernet
- 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.)
- Active
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/14—Network analysis or design
- H04L41/145—Network analysis or design involving simulating, designing, planning or modelling of a network
Abstract
本发明公开了一种融合高速网链路层与100G以太网编码层的适配装置,本发明包括发送转换模块(adaptor_tx_trans)、发送模块(adaptor_tx)、回环模块(adaptor_lb)、接收模块(adaptor_rx)、接收转换模块(adaptor_rx_trans)、寄存器管理模块(adaptor_csr),本发明能够实现以太网编码层和高速网链路层的融合适配,实现高速网链路层与以太网编码层的互连互通,这既有利于扩展100G以太网编码层软核IP产品在高速网设计领域的应用,又有利于基于复用100G以太网编码层设计高速网和以太网的双模融合网络端口及芯片。
Description
技术领域
本发明涉及高速网与以太网的融合设计领域,具体涉及一种融合高速网链路层与100G以太网编码层的适配装置。
背景技术
高性能计算系统(超级计算系统)采用的互连网络被称为高速网。通常,高速网由两种网络芯片构成,分别是网络接口芯片和网络交换芯片。在高速网芯片中,数据链路层(LLP)和物理编码层(h-PCS)位于事务层和物理介质之间。物理编码层(h-PCS)负责按照物理介质的特殊要求,将链路层(LLP)的数据进行编码和解码,而链路层(LLP)采用基于CRC校验的报文重传机制负责数据的可靠传输,事务层和物理介质之间的数据收发需要经过数据链路层和物理编码层才能实现。全球互联网和数据中心系统通常采用以太网作为互连基础设施。电气与电子工程师协会(IEEE)国际组织制定的802.3标准定义了以太网的物理层(PHY)和数据链路层(MAC)规范。以太网物理层(PHY)由物理编码子层(e-PCS)、物理介质接入层(PMA)和物理介质相关层(PMD)组成。以太网链路层与物理层间的接口就是其与物理编码层(e-PCS)之间的接口。
高速网链路层(LLP)和高速网编码层(h-PCS)间通常采用通用数据接口,其技术要点包括:(1)编码层向链路层发送端指示ready信号,表明是否具备发送链路层数据的基本条件;(2)编码层在具备发送链路层数据的基本条件后,通过向链路层发送端指示idle信号,表明当前是否空闲,即是否能在当前时钟周期内采样数据;(3)链路层发送端通过数据和数据有效信号向编码层发送数据;(4)编码层接收端通过数据和数据有效信号向链路层返回接收数据。
以太网链路层和以太网编码层间采用的是物理介质独立接口(MII),其技术要点包括:(1)链路层通过TXD多位宽信号向编码层发送并行数据;(2)链路层通过TXC多位宽信号向编码层发送通道控制信号。TXC的每1位数据对应TXD的1字节数据,TXC[m]=0时,表示TXD[m*8+7:m*8]上传输的是数据字符;TXC[m]=1时,表示TXD[m*8+7:m*8]上传输的是控制字符。(3)编码层通过RXD多位宽信号向链路层返回并行数据;(4)编码层通过RXC向链路层返回控制。RXC[k]=0时,表示RXD[k*8+7:k*8]上传输的是数据字符;RXC[k]=1时,表示RXD[k*8+7:k*8]上传输的是控制字符。
由上述对高速网和以太网的链路层和编码层间接口技术要点分析可知,由于接口形态和内涵上存在明显差异,无论是高速网链路层与以太网编码层之间,还是以太网链路层与高速网编码层之间,都不能直接互连互通。这至少会带来如下两个方面的负面影响。一方面,由于以太网是标准化协议,所以尽管目前有许多集成电路设计知识产权(IP)供应商已提供支持多种速率模式的以太网编码层的软核产品,但是由于接口存在明显差异,这些以太网编码层软核IP并不能直接被应用于高速网芯片设计。另一方面,当前高性能计算系统和数据中心系统呈现融合发展趋势,如何通过一套统一的硬件基础设施为高性能计算和数据中心计算业务提供支持已成为产业界和学术界关注的焦点。对于系统网络而言,设计工作模式可配置的双模网络芯片成为促进两种系统相融合的重要技术手段。现有技术的双模网络端口设计方法为:两种工作模式复用物理介质,但是既集成了高速网链路层(LLP)和高速网编码层(h-PCS),又集成以太网链路层(MAC)和以太网编码层(e-PCS)。实际上,如果能够以较小的资源开销实现高速网链路层与以太网编码层的互连互通,则可以使两种工作模式进一步复用以太网编码层(e-PCS),从而降低双模网络端口对芯片资源消耗,降低双模网络芯片设计难度。
发明内容
本发明要解决的技术问题:针对现有技术的上述问题,提供一种融合高速网链路层与100G以太网编码层的适配装置,考虑到100G以太网是当前数据中心网络的主流速率,本发明能够实现以太网编码层和高速网链路层的融合适配,实现高速网链路层(LLP)与以太网编码层(e-PCS)的互连互通,这既有利于扩展100G以太网编码层(CGPCS)软核IP产品在高速网设计领域的应用,又有利于基于复用100G以太网编码层(CGPCS)设计高速网和以太网的双模融合网络端口及芯片。
为了解决上述技术问题,本发明采用的技术方案为:
一种融合高速网链路层与100G以太网编码层的适配装置,包括发送转换模块(adaptor_tx_trans)、发送模块(adaptor_tx)、回环模块(adaptor_lb)、接收模块(adaptor_rx)、接收转换模块(adaptor_rx_trans)、寄存器管理模块(adaptor_csr),其中:
所述发送转换模块(adaptor_tx_trans)用于接收外部高速网链路层接口发送的256位宽数据,将其分拆后并行写入两个128位宽的缓冲区,以及根据发送模块(adaptor_tx)的数据读取信号轮流读取缓冲区并向其返回128位宽数据;
所述发送模块(adaptor_tx)用于从发送转换模块(adaptor_tx_trans)的缓冲区中读取128位宽数据,将其封装在以太网数据帧中并发送给回环模块(adaptor_lb),所述发送模块(adaptor_tx)与发送转换模块(adaptor_tx_trans)、回环模块(adaptor_lb)、寄存器管理模块(adaptor_csr)相连;
所述回环模块(adaptor_lb)用于根据寄存器管理模块(adaptor_csr)的回环模式控制信号,确定适配器的接收模块(adaptor_rx)接收外部以太网编码层接口的数据,还是接收适配器的发送模块(adaptor_tx)的数据;
所述接收模块(adaptor_rx)用于从回环模块(adaptor_lb)接收128位宽的以太网数据流进行接收对齐处理,去掉以太网帧的头部和尾部信息,将剩余数据写入接收转换模块(adaptor_rx_trans)的缓冲区;
所述接收转换模块(adaptor_rx_trans),用于根据接收模块(adaptor_rx)的写入信号将128位宽的数据写入缓冲区,以及从两个缓冲区中并行读出128位宽数据,将其合并后发送给外部高速网链路层接口
所述寄存器管理模块(adaptor_csr),用于配置寄存器产生的配置信号用于控制其他功能模块的行为,状态寄存器收集其他功能模块产生的状态信号用于观测,寄存器访问接口用于访问配置寄存器和状态寄存器,从而通过接口的读操作获得配置寄存器和状态寄存器的数值,通过接口的写操作改变配置寄存器的数值。
可选地,所述发送转换模块(adaptor_tx_trans)包括两个发送缓冲区(tx_fifo_0和tx_fifo_1)、发送缓冲区读写控制逻辑(tx_fifo_ctrl),两个发送缓冲区(tx_fifo_0和tx_fifo_1)的上溢信号相或形成数据发送FIFO上溢信号,并输出到寄存器管理模块(adaptor_csr);两个发送缓冲区(tx_fifo_0和tx_fifo_1)的下溢信号相或形成数据发送FIFO下溢信号,并输出到寄存器管理模块(adaptor_csr),发送缓冲区读写控制逻辑(tx_fifo_ctrl)用于控制两个发送缓冲区(tx_fifo_0和tx_fifo_1)的读写。
可选地,所述发送模块(adaptor_tx)包括发送状态机(tx_fsm),所述发送状态机(tx_fsm)用于控制以太网帧的封装和发送,发送状态机(tx_fsm)的要素包括:发送状态机(tx_fsm)的各个状态、各个状态下的操作、状态的转移条件;如果链路层的数据带宽低于编码层带宽,则将以较小的以太网帧封装数据,并且在以太网帧之间填充空闲字符(IDL)以适配带宽,如果链路层的数据带宽等于或高于编码层带宽,则将以较大的以太网帧封装数据,但单个以太网帧封装的分片数目最多不超过以太网帧包含的分片数目的最大值配置信号的限制。
可选地,所述发送状态机(tx_fsm)的各个状态包括:发送空闲(TX_SM_IDLE)状态、发送起始(TX_SM_START)状态、发送数据(TX_SM_DATA)状态、发送结束(TX_SM_TERM)状态和发送故障(TX_SM_FAULT)状态。
可选地,所述回环模块(adaptor_lb)包括9个多路选择器Mux0~Mux8,所述9个多路选择器Mux0~Mux8用于根据选择控制信号从对应的多路输入数据中选择一路数据输出,所述9个多路选择器Mux0~Mux8的控制信号来自寄存器管理模块(adaptor_csr)的回环模式控制信号(cfg_loopback_en):当该控制信号配置为1时,表示使能回环功能,此时发送模块(adaptor_tx)发出的数据直接输入到接收模块(adaptor_rx);而当该控制信号配置为0时,表示去能回环功能,此时发送模块(adaptor_tx)发出的数据输入给CGMII接口,接收模块(adaptor_rx)接收CGMII接口发送来的数据。
可选地,所述接收模块(adaptor_rx)包括含接收对齐(rx_align)、接收状态机(rx_fsm)和链路故障检测(rx_fault_detect)在内的多个子模块,所述接收对齐(rx_align)用于检测接收数据(lb_pcs_cgmii_rxd[127:0])和控制(lb_pcs_cgmii_rxc[15:0])信号中以太网帧头部信息出现的位置,并根据其位置信息进行移位操作并产生对齐数据(rxd_align[127:0])供接收状态机(rx_fsm)处理;所述接收状态机(rx_fsm)用于控制以太网帧的封装和发送,接收状态机(rx_fsm)的要素包括:接收状态机(rx_fsm)的各个状态、各个状态下的操作、状态的转移条件;所述链路故障检测(rx_fault_detect)用于统计接收数据中本地错误序列和远程错误序列出现的频次,由此控制本地链路故障(local_link_fault)信号和远程链路故障(remote_link_fault)信号值。
可选地,所述接收状态机(rx_fsm)的各个状态包括:接收空闲(RX_SM_IDLE)状态、接收头部(RX_SM_HEADER)状态、接收数据(RX_SM_DATA)状态、接收结束(RX_SM_TERM)状态以及接收错误(RX_SM_ERROR)状态。
可选地,所述接收转换模块(adaptor_rx_trans)包括两个接收缓冲区(rx_fifo_0和rx_fifo_1)、接收缓冲区读写控制逻辑(rx_fifo_ctrl),所述两个接收缓冲区(rx_fifo_0和rx_fifo_1)的上溢信号相或形成数据接收FIFO上溢信号,并输出到寄存器管理模块(adaptor_csr);所述两个接收缓冲区(rx_fifo_0和rx_fifo_1)的下溢信号相或形成数据接收FIFO下溢信号,并输出到寄存器管理模块(adaptor_csr),所述接收缓冲区读写控制逻辑(rx_fifo_ctrl)用于控制接收FIFO-0(rx_fifo_0)和接收FIFO-1(rx_fifo_1)的读写。
可选地,所述寄存器管理模块(adaptor_csr)包括配置寄存器(Config_Reg)、状态寄存器(Status_Reg)和寄存器访问接口(MDIO),所述配置寄存器(Config_Reg)产生的配置信号包括:链路可用状态延迟阈 值(cfg_up_delay_ threshold[19:0])、链路不可用状态延迟阈 值(cfg_down_delay_threshold[31:0])、以太网帧包含的分片(Flit)数目的最大值(cfg_max_flit_num[9:0])、本地错误序列阈 值(cfg_local_fault_threshold[6:0])、远程错误序列阈 值(cfg_remote_fault_threshold[6:0]);所述状态寄存器(Status_Reg)收集的状态信号包括:数据发送FIFO上溢(sts_tx_fifo_overflow)、数据发送FIFO下溢(sts_tx_fifo_underflow)、数据接收FIFO上溢(sts_rx_fifo_overflow)、数据接收FIFO下溢(sts_rx_fifo_underflow)。
此外,本发明还提供一种网络设备,包括100G以太网PCS和高速网链路层LLP,所述100G以太网PCS和高速网链路层LLP之间串接有所述融合高速网链路层与100G以太网编码层的适配装置,该适配装置一端与高速网链路层LLP相连、另一端直接与100G以太网PCS相连或通过一多路选择器MUX间接与100G以太网PCS相连。
和现有技术相比,本发明具有下述优点:本发明包括发送转换模块(adaptor_tx_trans)、发送模块(adaptor_tx)、回环模块(adaptor_lb)、接收模块(adaptor_rx)、接收转换模块(adaptor_rx_trans)、寄存器管理模块(adaptor_csr),考虑到100G以太网是当前数据中心网络的主流速率,本发明能够实现以太网编码层和高速网链路层的融合适配,实现高速网链路层(LLP)与以太网编码层(e-PCS)的互连互通,这既有利于扩展100G以太网编码层(CGPCS)软核IP产品在高速网设计领域的应用,又有利于基于复用100G以太网编码层(CGPCS)设计高速网和以太网的双模融合网络端口及芯片。
附图说明
图1为本发明实施例装置的模块结构示意图。
图2为本发明实施例装置的信号接口示意图。
图3为本发明实施例装置的数据发送状态机转换图。
图4为本发明实施例装置的数据接收状态机转换图。
图5为本发明实施例装置的数据格式示意图。
图6为本发明实施例装置的典型应用结构示意图。
具体实施方式
如图1所示,本实施例中融合高速网链路层与100G以太网编码层的适配装置包括发送转换模块(adaptor_tx_trans)、发送模块(adaptor_tx)、回环模块(adaptor_lb)、接收模块(adaptor_rx)、接收转换模块(adaptor_rx_trans)、寄存器管理模块(adaptor_csr),其中:
发送转换模块(adaptor_tx_trans)用于接收外部高速网链路层接口发送的256位宽数据,将其分拆后并行写入两个128位宽的缓冲区,以及根据发送模块(adaptor_tx)的数据读取信号轮流读取缓冲区并向其返回128位宽数据;
发送模块(adaptor_tx)用于从发送转换模块(adaptor_tx_trans)的缓冲区中读取128位宽数据,将其封装在以太网数据帧中并发送给回环模块(adaptor_lb),发送模块(adaptor_tx)与发送转换模块(adaptor_tx_trans)、回环模块(adaptor_lb)、寄存器管理模块(adaptor_csr)相连;
回环模块(adaptor_lb)用于根据寄存器管理模块(adaptor_csr)的回环模式控制信号,确定适配器的接收模块(adaptor_rx)接收外部以太网编码层接口的数据,还是接收适配器的发送模块(adaptor_tx)的数据;
接收模块(adaptor_rx)用于从回环模块(adaptor_lb)接收128位宽的以太网数据流进行接收对齐处理,去掉以太网帧的头部和尾部信息,将剩余数据写入接收转换模块(adaptor_rx_trans)的缓冲区;
接收转换模块(adaptor_rx_trans),用于根据接收模块(adaptor_rx)的写入信号将128位宽的数据写入缓冲区,以及从两个缓冲区中并行读出128位宽数据,将其合并后发送给外部高速网链路层接口
寄存器管理模块(adaptor_csr),用于配置寄存器产生的配置信号用于控制其他功能模块的行为,状态寄存器收集其他功能模块产生的状态信号用于观测,寄存器访问接口用于访问配置寄存器和状态寄存器,从而通过接口的读操作获得配置寄存器和状态寄存器的数值,通过接口的写操作改变配置寄存器的数值。
如图2所示,本实施例中融合高速网链路层和100G以太网编码层的适配装置外部接口包括:与高速网链路层的接口、与100G以太网编码层的接口、复位和寄存器访问接口。
其中,与高速网链路层的接口信号具体包括:
适配器数据传输通道空闲信号(pcs_llp_idle),1位宽;
适配器数据传输通道可用信号(pcs_llp_link_ready),1位宽;
链路层向适配器发送的数据信号(llp_pcs_data),256位宽;
链路层向适配器发送的数据有效信号(llp_pcs_data_vld),1位宽;
链路层从适配器接收的数据信号(pcs_llp_data),256位宽;
链路层从适配器接收的数据有效信号(pcs_llp_data_vld),1位宽。
其中,与100G以太网编码层的接口为标准的CGMII接口,接口信号具体包括:
编码层数据传输通道状态信号(cgpcs_link_status),1位宽;
编码层的发送端时钟使能信号(pcs_cgmii_txclk_ena),1位宽;
适配器向链路层发送的数据信号(pcs_cgmii_txd),128位宽;
适配器向链路层发送的控制信号(pcs_cgmii_txc),16位宽;
适配器从链路层接收的数据信号(pcs_cgmii_rxd),128位宽;
适配器从链路层接收的控制信号(pcs_cgmii_rxc),16位宽;
编码层的接收端时钟使能信号(pcs_cgmii_rxclk_ena),1位宽。
其中,复位和寄存器访问接口信号具体包括:
适配器模块复位信号(Reset),1位宽;
适配器模块寄存器访问采用标准的MDIO接口(MDC和MDIO),2位宽。
本实施例中,发送转换模块(adaptor_tx_trans)包括两个发送缓冲区(tx_fifo_0和tx_fifo_1)、发送缓冲区读写控制逻辑(tx_fifo_ctrl),两个发送缓冲区(tx_fifo_0和tx_fifo_1)的上溢信号相或形成数据发送FIFO上溢信号,并输出到寄存器管理模块(adaptor_csr);两个发送缓冲区(tx_fifo_0和tx_fifo_1)的下溢信号相或形成数据发送FIFO下溢信号,并输出到寄存器管理模块(adaptor_csr),发送缓冲区读写控制逻辑(tx_fifo_ctrl)用于控制两个发送缓冲区(tx_fifo_0和tx_fifo_1)的读写。
发送转换模块(adaptor_tx_trans)与外部高速网链路层接口、发送模块(adaptor_tx)、寄存器管理模块(adaptor_csr)、回环模块(adaptor_lb)相连。发送转换模块(adaptor_tx_trans)与外部的信号连接关系如下:高速网链路层LLP向本模块输入数据(llp_pcs_data[255:0])和数据有效(llp_pcs_data_vld)信号;本模块向高速网链路层LLP输出传输通道可用(pcs_llp_link_ready)和传输通道空闲(pcs_llp_idle)信号。(2)寄存器管理模块(adaptor_csr)向本模块输入链路可用状态阈 值(cfg_up_delay_threshold[19:0])和链路不可用状态阈 值(cfg_down_delay_threshold[19:0])配置信号;本模块向寄存器管理模块(adaptor_csr)输出发送FIFO上溢(sts_tx_fifo_overflow)和发送FIFO下溢(sts_tx_fifo_underflow)状态信号。(3)发送模块(adaptor_tx)向本模块输入读发送FIFO(tx_fifo_ren)信号,本模块向发送模块(adaptor_tx)输出发送FIFO空闲(tx_fifo_empty)和读数据(tx_fifo_dout[127:0])信号。(4)回环模块(adaptor_lb)向本模块输入MII发送接口可用(mii_tx_ready)信号。
作为一种优选的实施方式,本实施例中发送缓冲区采用RA或杂散寄存器组实现。发送缓冲区组织成先进先出(First In First Out,FIFO)存取方式的结构,FIFO结构的深度设置为8或16,其数据宽度设置为128位。FIFO提供:写、写数据、读、读数据、空、满、上溢、下溢、复位和时钟等接口信号。发送缓冲区的两个相同FIFO结构分别命名为发送FIFO-0(tx_fifo_0)和发送FIFO-1(tx_fifo_1)。两个FIFO的上溢信号相或形成数据发送FIFO上溢信号,并输出到寄存器管理模块(adaptor_csr);两个FIFO的下溢信号相或形成数据发送FIFO下溢信号,并输出到寄存器管理模块(adaptor_csr)。
本实施例中,发送缓冲区读写控制逻辑(tx_fifo_ctrl)控制两个发送缓冲区(tx_fifo_0和tx_fifo_1)的读写的步骤包括:
(1)FIFO数据写入:FIFO可写入数据的条件是传输通道可用(pcs_llp_link_ready=1)和传输通道空闲(pcs_llp_idle=1)。传输通道可用信号产生方法:设置两个计数器(UP_COUNT和DOWN_COUNT)且在复位时将其初值均设置为0。如果MII发送接口可用信号(mii_tx_ready)从0变1,则UP_COUNT启动计数且每个时钟周期内增加1。如果计数器值达到链路可用状态阈 值(cfg_up_delay_threshold[19:0]),则停止计数且将传输通道可用信号置1。在计数期间,如果发生MII发送接口可用信号(mii_tx_ready)从1变0,则计数器变更为初值0;如果MII发送接口可用信号(mii_tx_ready)从1变0,则DOWN_COUNT启动计数且每个时钟周期内增加1。如果计数器值达到链路不可用状态阈 值(cfg_down_delay_threshold[19:0]),则停止计数且将传输通道可用信号置0。在计数期间,如果发生MII发送接口可用信号(mii_tx_ready)从0变1,则计数器变更为初值0。传输通道空闲信号产生方法:如果FIFO-0和FIFO-1都非满,则空闲信号设置为1,否则设置为0。FIFO写入数据的方法:在写入数据条件满足时,采样输入数据和数据有效信号,如果数据有效信号为1,则将256位宽的数据(llp_pcs_data[255:0])拆分为两个128位宽数据,并将低128位数据(llp_pcs_data[127:0])写入发送FIFO-0,并同时将高128位数据(llp_pcs_data[256:128])写入发送FIFO-1。
(2)FIFO数据读出:FIFO读取由发送模块(adaptor_tx)产生的读发送FIFO(tx_fifo_ren)信号控制,而产生该信号需要以发送FIFO空闲(tx_fifo_empty)状态为前提。由于每次FIFO读操作针对的是发送FIFO-0或发送FIFO-1,所以轮流读取FIFO-0和FIFO-1的做法:设置FIFO读指针(fifo_rd_ptr)且在复位时将其初值设置为0。在每个时钟周期内,如果发生读发送FIFO(tx_fifo_ren=1),则根据FIFO读指针当前的值:如果当前值为0,则读取发送FIFO-0,在读数据(tx_fifo_dout[127:0])信号上输出FIFO-0输出的数据,并将FIFO读指针非阻塞赋值为1。如果当前值为1,则读取发送FIFO-1,在读数据(tx_fifo_dout[127:0])信号上输出FIFO-1输出的数据,并将FIFO读指针非阻塞赋值为0。产生FIFO空闲(tx_fifo_empty)信号的做法:复用FIFO读指针(fifo_rd_ptr)信号,根据FIFO读指针当前的值:如果当前值为0,则在发送FIFO空闲(tx_fifo_empty)信号上输出FIFO-0当前的空闲状态;如果当前值为1,则在发送FIFO空闲(tx_fifo_empty)信号上输出FIFO-1当前的空闲状态。
本实施例中,发送模块(adaptor_tx)包括发送状态机(tx_fsm),发送状态机(tx_fsm)用于控制以太网帧的封装和发送,发送状态机(tx_fsm)的要素包括:发送状态机(tx_fsm)的各个状态、各个状态下的操作、状态的转移条件;如果链路层的数据带宽低于编码层带宽,则将以较小的以太网帧封装数据,并且在以太网帧之间填充空闲字符(IDL)以适配带宽,如果链路层的数据带宽等于或高于编码层带宽,则将以较大的以太网帧封装数据,但单个以太网帧封装的分片数目最多不超过以太网帧包含的分片数目的最大值配置信号的限制。
发送模块(adaptor_tx)与发送转换模块(adaptor_tx_trans)、回环模块(adaptor_lb)、寄存器管理模块(adaptor_csr)相连。该模块主要由发送状态机(tx_fsm)组成。发送模块(adaptor_tx)与外部的信号连接关系如下:(1)发送转换模块(adaptor_tx_trans)向本模块输入发送FIFO空(tx_fifo_emtpy)和读数据(tx_fifo_dout[127:0])信号;本模块向发送转换模块(adaptor_tx_trans)输出读发送FIFO(tx_fifo_ren)信号。(2)寄存器管理模块(adaptor_csr)向本模块输入以太网帧包含的分片(Flit)数目的最大值配置(cfg_max_pkt_flit_num[9:0])信号。(3)回环模块(adaptor_lb)向本模块输入发送端时钟使能(lb_pcs_cgmii_txclk_ena)、远程链路故障(lb_remote_link_fault)、本地链路故障(lb_local_link_fault)和MII发送接口可用(mii_tx_ready)信号,本模块向回环模块(adaptor_lb)输出发送数据(lb_pcs_cgmii_txd[127:0])和发送控制(lb_pcs_cgmii_txc[15:0])信号。
作为一种可选的实施方式,本实施例中发送状态机(tx_fsm)的各个状态包括:发送空闲(TX_SM_IDLE)状态、发送起始(TX_SM_START)状态、发送数据(TX_SM_DATA)状态、发送结束(TX_SM_TERM)状态和发送故障(TX_SM_FAULT)状态。
如图3所示,发送状态机(tx_fsm)复位后首先进入步骤TS1(发送空闲(TX_SM_IDLE)状态),其执行的详细步骤包括:
TS1)发送空闲(TX_SM_IDLE)状态:在该状态下的执行步骤包括:
(T1.1)如果发生读发送FIFO(tx_fifo_ren=1),则向发送数据信号输出以太网帧头部信息(txd<= {PAD64,SFD,{6{PRE}},STR},即txd从右向左分别为起始字符STR、6个前导字符、定界字符、64位填充字符),并向发送控制信号输出控制信息(txc[15:0] <=16'h0001,表示该txd中最低位字节为控制字符,其余15字节为数据字符)并跳转至步骤TS2。否则执行(T1.2);
(T1.2)如果未发生读发送FIFO(tx_fifo_ren=0),且发生远程链路故障(remote_fault=1)或本地链路故障(local_fault=1),则向发送数据信号输出空闲数据(txd<={16{IDL}},即16个IDL空闲控制字符),并向发送控制信号输出控制信息(txc[15:0] <=16'hFFFF,表示该txd中所有的16字节为控制字符),并跳转至步骤TS5。否则执行(T1.3);
(T1.3)向发送数据信号输出空闲数据(txd<={16{IDL}},即16个IDL空闲控制字符),并向发送控制信号输出控制信息(txc[15:0] <=16'hFFFF,表示该txd中所有的16字节为控制字符),并且下一状态保持为TS1。
TS2)发送起始(TX_SM_START)状态:在该状态下的执行步骤包括:
(T2.1)如果发生读发送FIFO(tx_fifo_ren=1),则向发送数据信号输出FIFO读数据(txd<= fifo_data_out[127:0]),并向发送控制信号输出数据信息(txc[15:0] <=16'h0000,表示该txd中所有的16字节为数据字符),并跳转至步骤TS3。否则执行(T2.2);
(T2.2)如果未发生读发送FIFO(tx_fifo_ren=0)且发送端时钟使能(txclk_ena=1),则向发送数据信号输出FIFO读数据(txd<= fifo_data_out[127:0]),并向发送控制信号输出数据信息(txc[15:0] <=16'h0000,表示该txd中所有的16字节为数据字符),并跳转至步骤TS4。否则执行(T2.3);
(T2.3)向发送数据信号输出FIFO读数据(txd<= fifo_data_out[127:0]),并向发送控制信号输出数据信息(txc[15:0] <=16'h0000,表示该txd中所有的16字节为数据字符),并且下一状态保持为TS2。
TS3)发送数据(TX_SM_DATA)状态:在该状态下的执行步骤包括:
(T3.1)如果发生读发送FIFO(tx_fifo_ren=1),则向发送数据信号输出FIFO读数据(txd<= fifo_data_out[127:0]),并向发送控制信号输出数据信息(txc[15:0] <=16'h0000,表示该txd中所有的16字节为数据字符),并且下一状态保持为TS3。否则执行(T3.2);
(T3.2)如果未发生读发送FIFO(tx_fifo_ren=0)且发送端时钟使能(txclk_ena=1),则向发送数据信号输出FIFO读数据(txd<= fifo_data_out[127:0]),并向发送控制信号输出数据信息(txc[15:0] <=16'h0000,表示该txd中所有的16字节为数据字符),并跳转至步骤TS4。否则执行(T3.3);
(T3.3)向发送数据信号输出FIFO读数据(txd<= fifo_data_out[127:0]),并向发送控制信号输出数据信息(txc[15:0] <=16'h0000,表示该txd中所有的16字节为数据字符),并且下一状态保持为TS3。
TS4)发送结束(TX_SM_TERM)状态:在该状态下的执行步骤包括:
(T4.1)如果发送端时钟使能(txclk_ena=1)且未发生远程链路故障(remote_fault=0)且未发生本地链路故障(local_fault=1),则向发送数据信号输出以太网帧尾部信息(txd<= {{15{IDL}},TRM},即txd由从右向左分别为结束字符、15个空闲字符),并向发送控制信号输出控制信息(txc[15:0] <=16'hFFFF,表示该txd中所有的16字节为控制字符),并跳转至步骤TS1。否则执行(T4.2);
(T4.2)如果发送端时钟使能(txclk_ena=1),且发生远程链路故障(remote_fault=0)或发生本地链路故障(local_fault=1),则向发送数据信号输出以太网帧尾部信息(txd<= {{15{IDL}},TRM},即txd由从右向左分别为结束字符、15个空闲字符),并向发送控制信号输出控制信息(txc[15:0] <=16'hFFFF,表示该txd中所有的16字节为控制字符),并跳转至步骤TS5。否则执行(T4.3);
(T4.3)向发送数据信号输出以太网帧尾部信息(txd<= {{15{IDL}},TRM},即txd由从右向左分别为结束字符、15个空闲字符),并向发送控制信号输出控制信息(txc[15:0]<=16'hFFFF,表示该txd中所有的16字节为控制字符),并且下一状态保持为TS4。
TS5)发送故障(TX_SM_FAULT)状态:在该状态下执行步骤包括:
(T5.1)如果发送端时钟使能(txclk_ena=1)且发生本地链路故障(local_fault=1),则向发送数据信号输出远程错误序列(txd<= { 2{32'h0, RFT, 16'h0, SEQ}},即txd由两个相同的8字节构成,且该8字节从右向左分别为序列SEQ字符、16位全0、远程错误字符、32位全0),并向发送控制信号输出序列控制信息(txc[15:0] <=16'h0101,表示该txd中从右向左第1个和第8个字节为控制字符),并且下一状态保持为TS5。否则执行(T5.2);
(T5.2)如果发送端时钟使能(txclk_ena=1)且发生远程链路故障(remote_fault=1),则向发送数据信号输出空闲数据(txd<={{16{IDL}},即16个IDL空闲控制字符),并向发送控制信号输出控制信息(txc[15:0] <=16'hFFFF,表示该txd中所有的16字节为控制字符),并且下一状态保持为TS5。否则执行(T5.3);
(T5.3)向发送数据信号输出空闲数据(txd<={{16{IDL}},即16个IDL空闲控制字符),并向发送控制信号输出控制信息(txc[15:0] <=16'hFFFF,表示该txd中所有的16字节为控制字符),并且下一状态保持为TS1。
在上述发送状态机(tx_fsm)描述中,txd表示本模块的lb_pcs_cgmii_txd[127:0]信号,txc表示lb_pcs_cgmii_txc[15:0]信号,remote_fault表示lb_remote_link_fault信号, local_fault表示lb_local_link_fault信号,txclk_ena表示lb_pcs_cgmii_txclk_ena信号。在上述发送状态机(tx_fsm)描述中,读发送FIFO发生(tx_fifo_ren=1)的条件是:发送FIFO非空闲(~tx_fifo_empty),且发送端时钟使能(txclk_ena),且当前以太网帧封装的分片数目未超过帧大小限制(FlitCnt<cfg_max_pkt_flit_num[9:0]),且当前状态机未处于TS4状态。FlitCnt指的是以太网帧包含的数据分片(从发送FIFO读出的128位宽的数据)的数目。在上述发送状态机(tx_fsm)描述中,报文格式相关的符号具体数值定义为:起始字符STR=8'hFB、前导字符PRE=8'h55、定界字符SFD=8'hD5、64位填充字符PAD64=64'h0F0F0F0F0F0F0F0F、空闲字符IDL=8'h07、结束字符TRM=8'hFD、序列字符SEQ=8'h9C、远程错误字符RFT=8'h02。
本实施例中,回环模块(adaptor_lb)包括9个多路选择器Mux0~Mux8,9个多路选择器Mux0~Mux8用于根据选择控制信号从对应的多路输入数据中选择一路数据输出,9个多路选择器Mux0~Mux8的控制信号来自寄存器管理模块(adaptor_csr)的回环模式控制信号(cfg_loopback_en):当该控制信号配置为1时,表示使能回环功能,此时发送模块(adaptor_tx)发出的数据直接输入到接收模块(adaptor_rx);而当该控制信号配置为0时,表示去能回环功能,此时发送模块(adaptor_tx)发出的数据输入给CGMII接口,接收模块(adaptor_rx)接收CGMII接口发送来的数据。
回环模块(adaptor_lb)与发送转换模块(adaptor_tx_trans)、发送转换模块(adaptor_tx_trans)、接收转换模块(adaptor_rx_trans)、接收模块(adaptor_rx)、寄存器管理模块(adaptor_csr)、外部以太网编码层接口(CGMII)相连。作为一种优选的实施方式,多路选择器的连接关系如下:(1)Mux0选择器的第一路输入接入常数1,第二路输入接入CGMII接口的发送端时钟使能信号(pcs_cgmii_txclk_ena),其输出信号(lb_pcs_cgmii_txclk_ena)接入发送模块(adaptor_tx);如果其控制信号使能回环模式,则输出第一路输入,否则输出第二路输入。(2)Mux2选择器的第一路输入接入常数0,第二路输入接入接收模块(adaptor_rx)产生的远程链路故障信号(remote_link_fault),其输出信号(lb_remote_link_fault)接入发送模块(adaptor_tx);如果其控制信号使能回环模式,则输出第一路输入,否则输出第二路输入。(3)Mux3选择器的第一路输入接入常数0,第二路输入接入接收模块(adaptor_rx)产生的远程链路故障信号(local_link_fault),其输出信号(lb_local_link_fault)接入发送模块(adaptor_tx);如果其控制信号使能回环模式,则输出第一路输入,否则输出第二路输入。(4)Mux4选择器的第一路输入接入常数1,第二路输入接入CGMII接口的数据传输通道状态信号(cgpcs_link_status),其输出信号(mii_tx_ready)复制为两路,其中一路接入发送模块(adaptor_tx),其中另一路接入发送转换模块(adaptor_tx_trans);如果其控制信号使能回环模式,则输出第一路输入,否则输出第二路输入。(5)Mux5选择器的第一路输入接入发送模块(adaptor_tx)的发送数据信号(lb_pcs_cgmii_txd[127:0]),第二路输入接入常数{16{8’h07}},其输出信号(pcs_cgmii_txd[127:0])接入CGMII接口的同名信号;如果其控制信号使能回环模式,则输出第一路输入,否则输出第二路输入。(6)Mux6选择器的第一路输入接入发送模块(adaptor_tx)的发送数据信号(lb_pcs_cgmii_txc[15:0]),第二路输入接入常数{16’hFFFF}},其输出信号(pcs_cgmii_txc[15:0])接入CGMII接口的同名信号;如果其控制信号使能回环模式,则输出第一路输入,否则输出第二路输入。(7)Mux7选择器的第一路输入接入CGMII接口的接收端时钟使能信号(pcs_cgmii_rxclk_ena),第二路输入接入常数1,其输出信号(lb_pcs_cgmii_rxclk_ena)接入接收模块(adaptor_rx);如果其控制信号使能回环模式,则输出第一路输入,否则输出第二路输入。(8)Mux8选择器的第一路输入接入CGMII接口的接收数据信号(pcs_cgmii_rxd[127:0]),第二路输入接入发送模块(adaptor_tx)的发送数据信号(lb_pcs_cgmii_txd[127:0]),其输出信号(lb_pcs_cgmii_rxd[127:0])接入接收模块(adaptor_rx);如果其控制信号使能回环模式,则输出第二路输入,否则输出第一路输入。(9)Mux9选择器的第一路输入接入CGMII接口的接收控制信号(pcs_cgmii_rxc[15:0]),第二路输入接入发送模块(adaptor_tx)的发送控制信号(lb_pcs_cgmii_txc[15:0]),其输出信号(lb_pcs_cgmii_rxc[15:0])接入接收模块(adaptor_rx);如果其控制信号使能回环模式,则输出第二路输入,否则输出第一路输入。
本实施例中,接收模块(adaptor_rx)包括含接收对齐(rx_align)、接收状态机(rx_fsm)和链路故障检测(rx_fault_detect)在内的多个子模块,接收对齐(rx_align)用于检测接收数据(lb_pcs_cgmii_rxd[127:0])和控制(lb_pcs_cgmii_rxc[15:0])信号中以太网帧头部信息出现的位置,并根据其位置信息进行移位操作并产生对齐数据(rxd_align[127:0])供接收状态机(rx_fsm)处理;接收状态机(rx_fsm)用于控制以太网帧的封装和发送,接收状态机(rx_fsm)的要素包括:接收状态机(rx_fsm)的各个状态、各个状态下的操作、状态的转移条件;链路故障检测(rx_fault_detect)用于统计接收数据中本地错误序列和远程错误序列出现的频次,由此控制本地链路故障(local_link_fault)信号和远程链路故障(remote_link_fault)信号值。
接收模块(adaptor_rx)与回环模块(adaptor_lb)、接收转换模块(adaptor_rx_trans)、寄存器管理模块(adaptor_csr)相连。接收模块(adaptor_rx)与外部的信号连接关系如下:(1)本模块向接收转换模块(adaptor_rx_trans)输出写接收FIFO(rx_fifo_wen)、写数据(rx_fifo_din[127:0])和写启动(rx_fifo_start)信号。(2)寄存器管理模块(adaptor_csr)向本模块输入链路本地故障阈 值(cfg_local_fault_threshold[6:0])和链路远程故障阈 值(cfg_remote_fault_threshold[6:0])信号。(3)回环模块(adaptor_lb)向本模块输入接收端时钟使能(lb_pcs_cgmii_rxclk_ena)、接收数据(lb_pcs_cgmii_rxd[127:0])、接收控制(lb_pcs_cgmii_txc[15:0])信号,本模块向回环模块(adaptor_lb)输出链路本地故障(local_link_fault)和链路远程故障(remote_link_fault)信号。接收对齐(rx_align)子模块的作用:检测接收数据(lb_pcs_cgmii_rxd[127:0])和控制(lb_pcs_cgmii_rxc[15:0])信号中以太网帧头部信息出现的位置,并根据其位置信息进行移位操作并产生对齐数据(rxd_align[127:0])供接收状态机(rx_fsm)处理。其具体做法分为两种情况:(1)如果数据是对齐的,即lb_pcs_cgmii_rxd[63:0]={SFD,{6{PRE}},STR}且lb_pcs_cgmii_rxc[7:0]<=8'h01,则直接将数据(lb_pcs_cgmii_rxd[127:0])打两拍后输出到对齐数据寄存(rxd_align[127:0])。(2)如果数据是非对齐的,即lb_pcs_cgmii_rxd[127:64]={SFD,{6{PRE}},STR}且lb_pcs_cgmii_rxc[15:8]=8'h01,则将数据(lb_pcs_cgmii_rxd[127:0])打两拍,并将第二拍数据的高64位输出到对齐数据低64位(rxd_align[63:0])寄存,并将第一拍数据的低64为输出到对齐数据高64位(rxd_align[127:64])寄存。链路故障检测(rx_fault_detect)子模块的作用:统计接收数据中本地错误序列和远程错误序列出现的频次,由此控制本地链路故障(local_link_fault)信号和远程链路故障(remote_link_fault)信号值。其具体做法:一是在连续的128个64位编码数据块中统计本地错误序列出现的次数,如果次数不小于本地错误序列阈 值(cfg_local_fault_threshold[6:0]),则将本模块输出到回环模块(adaptor_lb)的本地链路故障(local_link_fault)信号置为1,否则将其置为0;二是同时在连续的128个64位编码数据块中统计远程错误序列出现的次数,如果次数不小于远程错误序列阈 值(cfg_remote_fault_threshold[6:0]),则将本模块输出到回环模块(adaptor_lb)的远程链路故障(remote_link_fault)信号置为1,否则将其置为0。上述本地错误序列是指{32'h0, 8'h01, 16'h0, 8'h9C},远程错误序列是指{32'h0, 8'h02, 16'h0, 8'h9C}。
本实施例中,接收状态机(rx_fsm)的各个状态包括:接收空闲(RX_SM_IDLE)状态、接收头部(RX_SM_HEADER)状态、接收数据(RX_SM_DATA)状态、接收结束(RX_SM_TERM)状态以及接收错误(RX_SM_ERROR)状态。
如图4所示,接收状态机(rx_fsm)复位后首先进入步骤RS1(接收空闲(RX_SM_IDLE)状态),其具体执行步骤包括:
RS1)接收空闲(RX_SM_IDLE)状态,在该状态下的执行步骤包括:
(R1.1)如果检测到以太网帧头部信息(rx_start=1),则跳转至步骤RS2。否则执行下一步;
(R1.2)否则,下一状态保持为RS1。在该状态下,不启动接收FIFO写操作(rx_fifo_wen=0)。
RS2)接收头部(RX_SM_HEADER)状态,在该状态下的执行步骤包括:
(R2.1)如果检测到以太网帧错误(rx_error=1),则跳转至步骤RS5。否则执行下一步;
(R2.2)否则,如果检测到以太网帧尾部信息(rx_term=1),则跳转至步骤RS4。否则执行下一步;
(R2.3)否则,跳转至步骤RS3。在该状态下,启动接收FIFO的写操作(rx_fifo_wen=1),并将当前的接收对齐数据写入接收FIFO(rx_fifo_din = rxd_align[127:0])。
RS3)接收数据(RX_SM_DATA)状态,在该状态下的执行步骤包括:
(R3.1)如果检测到以太网帧错误(rx_error=1),则跳转至步骤RS5。否则执行下一步;
(R3.2)否则,如果检测到以太网帧尾部信息(rx_term=1),则跳转至步骤RS4。否则下一状态保持为RS3。
在该状态下,启动接收FIFO的写操作(rx_fifo_wen=1),并将当前的接收对齐数据写入接收FIFO(rx_fifo_din = rxd_align[127:0])。
RS4)接收结束(RX_SM_TERM)状态,在该状态下,(R4.1)如果检测到以太网帧头部信息(rx_start =1),则跳转至步骤RS1。否则跳转至步骤RS2。在该状态下,不启动接收FIFO写操作(rx_fifo_wen=0)。
RS5)接收错误(RX_SM_ERROR)状态,在该状态下,如果检测到以太网帧头部信息(rx_start =1),则跳转至步骤RS1。否则,跳转至步骤RS2。
在该状态下,不启动接收FIFO写操作(rx_fifo_wen=0)。
在上述接收状态机(tx_fsm)描述中,检测到以太网帧头部信息(rx_start =1)是指回环模块(adaptor_lb)输入到接收模块(adaptor_rx)的接收数据(lb_pcs_cgmii_rxd[127:0])和控制(lb_pcs_cgmii_rxc[15:0])信号值出现如下两种情况之一:(1)lb_pcs_cgmii_rxd[63:0]= {SFD,{6{PRE}},STR}且lb_pcs_cgmii_rxc[7:0]=8'h01;(2)lb_pcs_cgmii_rxd[127:64]= {SFD,{6{PRE}},STR}且lb_pcs_cgmii_rxc[15:8]=8'h01。在上述接收状态机(tx_fsm)描述中,检测到以太网帧尾部信息(rx_term)是指回环模块(adaptor_lb)输入到接收模块(adaptor_rx)的接收数据和控制信号值出现如下两种情况之一:(1)lb_pcs_cgmii_rxd[7:0]= {TRM}且lb_pcs_cgmii_rxc[0]=1'h1;(2)lb_pcs_cgmii_rxd[71:64]= {TRM}且lb_pcs_cgmii_rxc[8]=1'h1。在上述接收状态机(tx_fsm)描述中,检测到以太网帧错误(rx_error=1)是指回环模块(adaptor_lb)输入到接收模块(adaptor_rx)的接收数据和控制信号值出现错误字符,即lb_pcs_cgmii_rxd[n*8+7:n*8]= {ERR}且lb_pcs_cgmii_rxc[n]=1'h1,其中0≤n≤7。在上述描述中,报文格式相关的符号具体数值定义为:起始字符STR=8'hFB、前导字符PRE=8'h55、定界字符SFD=8'hD5、结束字符TRM=8'hFD、错误字符ERR=8'hFE。
本实施例中,接收转换模块(adaptor_rx_trans)包括两个接收缓冲区(rx_fifo_0和rx_fifo_1)、接收缓冲区读写控制逻辑(rx_fifo_ctrl),两个接收缓冲区(rx_fifo_0和rx_fifo_1)的上溢信号相或形成数据接收FIFO上溢信号,并输出到寄存器管理模块(adaptor_csr);两个接收缓冲区(rx_fifo_0和rx_fifo_1)的下溢信号相或形成数据接收FIFO下溢信号,并输出到寄存器管理模块(adaptor_csr),接收缓冲区读写控制逻辑(rx_fifo_ctrl)用于控制接收FIFO-0(rx_fifo_0)和接收FIFO-1(rx_fifo_1)的读写。
接收转换模块(adaptor_rx_trans)与外部高速网链路层接口、接收模块(adaptor_rx)、寄存器管理模块(adaptor_csr)、回环模块(adaptor_lb)相连。接收转换模块(adaptor_rx_trans)与外部的信号连接关系如下:(1)接收模块(adaptor_rx)向本模块输入写接收FIFO(rx_fifo_wen)、写数据(rx_fifo_din[127:0])和写启动(rx_fifo_start)信号。(2)本模块向寄存器管理模块(adaptor_csr)输出接收FIFO上溢(sts_rx_fifo_overflow)和接收FIFO下溢(sts_rx_fifo_underflow)状态信号。(3)接收模块(adaptor_rx)向本模块输入写接收FIFO(rx_fifo_wen)、写数据(rx_fifo_din[127:0])和写启动(rx_fifo_start)信号。
作为一种优选的实施方式,接收缓冲区采用RA或杂散寄存器组实现。接收缓冲区组织成先进先出(First In First Out,FIFO)存取方式的结构,FIFO结构的深度设置为8或16,其数据宽度设置为128位。FIFO提供:写、写数据、读、读数据、空、满、上溢、下溢、复位和时钟等接口信号。接收缓冲区的两个相同FIFO结构分别命名为接收FIFO-0(rx_fifo_0)和接收FIFO-1(rx_fifo_1)。两个FIFO的上溢信号相或形成数据接收FIFO上溢信号,并输出到寄存器管理模块(adaptor_csr);两个FIFO的下溢信号相或形成数据接收FIFO下溢信号,并输出到寄存器管理模块(adaptor_csr)。
作为一种优选的实施方式,接收缓冲区读写控制逻辑(rx_fifo_ctrl)用于控制接收FIFO-0和接收FIFO-1的读写。(1)FIFO数据写入:由于每次FIFO写操作针对的是接收FIFO-0或接收FIFO-1,所以轮流写入FIFO-0和FIFO-1的做法:设置FIFO写指针(fifo_wt_ptr)且在复位时将其初值设置为0。在每个时钟周期内,如果发生写发送FIFO(rx_fifo_wen=1),则根据FIFO写指针当前的值:如果当前值为0,则将写数据(rx_fifo_din[127:0])写入接收FIFO-0,并将FIFO写指针非阻塞赋值为1,如果当前值为1,则将写数据(rx_fifo_din[127:0])写入接收FIFO-1,并将FIFO写指针非阻塞赋值为0。(2)FIFO数据读出:在每个时钟周期内,如果接收FIFO-0和FIFO-1同时为非空,则分别产生针对接收FIFO-0和FIFO-1的读操作,并在输出给链路层LLP接收数据低128位(pcs_llp_data[127:0])和高128(pcs_llp_data[255:128])位信号上输出FIFO-0和FIFO-1的读数据。(3)FIFO的软复位:从接收模块(adaptor_rx)输入的写启动(rx_fifo_start)是脉冲信号,用于控制两个128位数据合并产生256位数据间的同步。在每个时钟周期内,如果发生写启动(rx_fifo_start=1)且FIFO的写指针非零(fifo_wt_ptr==1),则同时软复位接收FIFO-0和FIFO-1,将写指针置为0,并且暂停FIFO的写入操作直到下次发生写启动。
寄存器管理模块(adaptor_csr)与发送转换模块(adaptor_tx_trans)、发送模块(adaptor_tx)、回环模块(adaptor_lb)、寄存器管理模块(adaptor_csr)、接收模块(adaptor_rx)、接收转换模块(adaptor_rx_trans)相连。寄存器管理模块(adaptor_csr)的作用:配置寄存器产生的配置信号用于控制其他功能模块的行为,状态寄存器收集其他功能模块产生的状态信号用于观测,寄存器访问接口用于访问配置寄存器和状态寄存器,即通过接口的读操作获得配置寄存器和状态寄存器的数值,通过接口的写操作改变配置寄存器的数值。该模块由配置寄存器(Config_Reg)、状态寄存器(Status_Reg)和寄存器访问接口(MDIO)组成。
本实施例中,寄存器管理模块(adaptor_csr)包括配置寄存器(Config_Reg)、状态寄存器(Status_Reg)和寄存器访问接口(MDIO),配置寄存器(Config_Reg)产生的配置信号包括:链路可用状态延迟阈 值(cfg_up_delay_ threshold[19:0])、链路不可用状态延迟阈 值(cfg_down_delay_threshold[31:0])、以太网帧包含的分片(Flit)数目的最大值(cfg_max_flit_num[9:0])、本地错误序列阈 值(cfg_local_fault_threshold[6:0])、远程错误序列阈 值(cfg_remote_fault_threshold[6:0]);状态寄存器(Status_Reg)收集的状态信号包括:数据发送FIFO上溢(sts_tx_fifo_overflow)、数据发送FIFO下溢(sts_tx_fifo_underflow)、数据接收FIFO上溢(sts_rx_fifo_overflow)、数据接收FIFO下溢(sts_rx_fifo_underflow)。
配置寄存器产生的配置信号包括:链路可用状态延迟阈 值(cfg_up_delay_threshold[19:0])、链路不可用状态延迟阈 值(cfg_down_delay_threshold[31:0])、以太网帧包含的分片(Flit)数目的最大值(cfg_max_flit_num[9:0])、本地错误序列阈 值(cfg_local_fault_threshold[6:0])、远程错误序列阈 值(cfg_remote_fault_threshold[6:0])。各个配置信号说明如下:(1)链路可用状态阈 值信号连接到发送转换模块(adaptor_tx_trans),具体指从接收到编码层数据传输通道可用信息到向链路层指示数据传输通道可用信息的延迟时钟周期数目,用于平滑编码层可用状态的变化对链路层可用状态变化的影响;(2)链路不可用状态延迟阈 值信号连接到发送转换模块(adaptor_tx_trans),具体指从接收到编码层数据传输通道不可用信息到向链路层指示数据传输通道不可用信息的延迟时钟周期数目,用于平滑编码层不可用状态的变化对链路层不可用状态变化的影响;(3)以太网帧包含的分片(Flit)数目的最大值信号连接到发送模块(adaptor_tx),用于限制以太网帧的大小,其具体做法在发送模块(adaptor_tx)的发送状态机中予以说明;(4)本地错误序列阈 值信号连接到接收模块(adaptor_rx),用于判断是否发生本地错误(Local Fault),其具体做法在接收模块(adaptor_rx)的链路故障状态机中予以说明;(5)远程错误序列阈 值信号连接到接收模块(adaptor_rx),用于判断是否发生远程错误(Remote Fault),其具体做法在接收模块(adaptor_rx)的链路故障状态机中予以说明。(6)回环模式控制信号连接到回环模块(adaptor_lb),用于决定适配器是否工作在回环模块(adaptor_lb),其具体做法在回环模块(adaptor_lb)中予以说明。
作为一种优选的实施方式,状态寄存器收集的状态信号包括:数据发送FIFO上溢(sts_tx_fifo_overflow)、数据发送FIFO下溢(sts_tx_fifo_underflow)、数据接收FIFO上溢(sts_rx_fifo_overflow)、数据接收FIFO下溢(sts_rx_fifo_underflow)。各个状态信号说明如下:(1)数据发送FIFO上溢信号连接来自发送转换模块(adaptor_tx_trans),用于记录数据发送FIFO的上溢错误;(2)数据发送FIFO下溢信号连接来自发送转换模块(adaptor_tx_trans),用于记录数据发送FIFO的下溢错误;(3)数据接收FIFO上溢信号连接来自接收转换模块(adaptor_rx_trans),用于记录数据接收FIFO的上溢错误;(4)数据接收FIFO下溢信号连接来自接收转换模块(adaptor_rx_trans),用于记录数据接收FIFO的下溢错误。
图5为本发明实施例装置的数据格式示意图。其中,图 5中子图(a)为发送状态机(tx_fsm)在TS1状态中发送以太网帧头部信息的格式示意,其中STR为起始控制字符(值为8'hFB),PREAMBLE为前导码(值为{6{8'h55}},即6个前导字符),SFD为帧首定界字符(值为8'hD5),PAD64为64位的0-1均衡填充数据(值为{6{8'h0F},即64'h0F0F0F0F0F0F0F0F)。图5中子图(b)为高速网链路层LLP发送给适配器N个分片(Flit)后被封装在以太网帧之后的数据结构示意,以太网帧的数据宽度为128位。图5中子图(c)为发送状态机(tx_fsm)在TS4状态中发送以太网帧尾部信息的格式示意,其中TRM为结束控制字符(值为8'hFD),IDL为空闲字符,该以太网帧尾部信息共包含15个IDL字符。图5中子图(d)为发送状态机(tx_fsm)在TS1状态中发送的空闲数据格式示意,每拍128位宽的数据中共包含16个IDL字符。图 5中子图(e)为接收状态机(rx_fsm)在RS5状态中接收到的本地链路故障数据(本地错误序列)格式示意,其中SEQ为序列控制符(其值为8'h9C),LF_DATA为本地链路故障数据(其值为{32'h0, 8'h01, 16'h0})。图 5中子图(f)为发送状态机(tx_fsm)在TS5状态中发送远程链路故障数据(远程错误序列)格式示意,其中SEQ含义同图 5中子图(e),RF_DATA为本地链路故障数据(其值为{32'h0, 8'h02, 16'h0})。
本实施例融合高速网链路层与100G以太网编码层的适配装置可产生下述技术效果:
1、参见图6中子图(a),通过采用本实施例融合高速网链路层与100G以太网编码层的适配装置,可以利用的高速网链路层LLP、和商用成熟的100G以太网编码层(e-PCS),方便地设计集成高速网端口逻辑,实现高速网链路层与以太网编码层的互连互通。从而扩展了100G以太网(e-PCS)的应用领域、扩大了高速网端口设计对编码层的可选范围。
2、参见图6中子图(b),通过采用本实施例融合高速网链路层与100G以太网编码层的适配装置,可以利用高速网链路层(LLP)、和商用成熟的100G以太网编码层(e-PCS)及链路层(MAC),方便地设计集成融合高速网和以太网的双模网络端口逻辑。通过复用以太网编码层(e-PCS),该融合设计可以有效降低双模网络接口/交换芯片的逻辑量及其面积。
3、本实施例融合高速网链路层与100G以太网编码层的适配装置功能丰富。除了提供基本的接口适配功能外,本发明适配装置还提供多种可配置的模式或参数。例如:(a)支持回环模式。当回环模式控制信号(cfg_loopback_en)配置为1时,本发明适配装置工作在回环模式。在该模式下,网络端口链路层接收的数据直接来自本端口链路层发送的数据,这可为单芯片场景核心逻辑验证与测试提供方便;(b)最大以太网帧长度受限制且可配置。如果链路层的数据带宽等于或高于编码层带宽,则将以较大的以太网帧封装链路层数据,但单个以太网帧封装的分片数目最多不超过以太网帧包含的分片数目的最大值配置信号(cfg_max_pkt_flit_num)值的限制。这可为采用本发明装置的以太网物理层与第三方以太网物理层对接提供广泛支持,避免出现因为双方网络端口对以太网最大帧定义不同而出现通信故障。(c)具备链路状态平滑机制且其参数可配置。通过配置链路可用状态阈 值信号(cfg_up_delay_threshold)值可以延迟从编码层进入可用状态到链路层进入可以状态的时间,通过配置链路不可用状态阈 值信号(cfg_down_delay_threshold)值可以延迟从编码层进入不可用状态到链路层进入不可用状态的时间。通过合理设置阈 值,上述机制能够过滤掉过于频繁的编码层状态变化对链路层状态的影响,从而起到平滑链路层状态变化的作用。(d)链路检测故障程度可配置。链路检测是在连续128个64位编码块中统计本地和远程错误序列出现的次数,并与本地错误序列阈 值(cfg_local_fault_threshold)和远程错误序列阈 值(cfg_remote_fault_threshold)相比较,以产生本地和远程链路故障信号。通过合理设置阈 值,可以扩大链路故障程度的容忍范围,结合高速网链路层的错误数据重传机制,能够有效增强网络的容错性。
此外,本实施例还提供一种网络设备,包括100G以太网PCS和高速网链路层LLP,100G以太网PCS和高速网链路层LLP之间串接有前述融合高速网链路层与100G以太网编码层的适配装置,该适配装置一端与高速网链路层LLP相连、另一端直接与100G以太网PCS相连(如图6中子图(a)所示)或通过一多路选择器MUX间接与100G以太网PCS相连(如图6中子图(b)所示)。
以上所述仅是本发明的优选实施方式,本发明的保护范围并不仅局限于上述实施例,凡属于本发明思路下的技术方案均属于本发明的保护范围。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理前提下的若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
Claims (9)
1.一种融合高速网链路层与100G以太网编码层的适配装置,其特征在于,包括发送转换模块(adaptor_tx_trans)、发送模块(adaptor_tx)、回环模块(adaptor_lb)、接收模块(adaptor_rx)、接收转换模块(adaptor_rx_trans)、寄存器管理模块(adaptor_csr),其中:
所述发送转换模块(adaptor_tx_trans)用于接收外部高速网链路层接口发送的256位宽数据,将其分拆后并行写入两个128位宽的缓冲区,以及根据发送模块(adaptor_tx)的数据读取信号轮流读取缓冲区并向其返回128位宽数据;
所述发送模块(adaptor_tx)用于从发送转换模块(adaptor_tx_trans)的缓冲区中读取128位宽数据,将其封装在以太网数据帧中并发送给回环模块(adaptor_lb),所述发送模块(adaptor_tx)与发送转换模块(adaptor_tx_trans)、回环模块(adaptor_lb)、寄存器管理模块(adaptor_csr)相连;
所述回环模块(adaptor_lb)用于根据寄存器管理模块(adaptor_csr)的回环模式控制信号,确定适配器的接收模块(adaptor_rx)接收外部以太网编码层接口的数据,还是接收适配器的发送模块(adaptor_tx)的数据;
所述接收模块(adaptor_rx)用于从回环模块(adaptor_lb)接收128位宽的以太网数据流进行接收对齐处理,去掉以太网帧的头部和尾部信息,将剩余数据写入接收转换模块(adaptor_rx_trans)的缓冲区;
所述接收转换模块(adaptor_rx_trans),用于根据接收模块(adaptor_rx)的写入信号将128位宽的数据写入缓冲区,以及从两个缓冲区中并行读出128位宽数据,将其合并后发送给外部高速网链路层接口
所述寄存器管理模块(adaptor_csr),用于配置寄存器产生的配置信号用于控制其他功能模块的行为,状态寄存器收集其他功能模块产生的状态信号用于观测,寄存器访问接口用于访问配置寄存器和状态寄存器,从而通过接口的读操作获得配置寄存器和状态寄存器的数值,通过接口的写操作改变配置寄存器的数值;
所述发送转换模块(adaptor_tx_trans)包括两个发送缓冲区(tx_fifo_0和tx_fifo_1)、发送缓冲区读写控制逻辑(tx_fifo_ctrl),两个发送缓冲区(tx_fifo_0和tx_fifo_1)的上溢信号相或形成数据发送FIFO上溢信号,并输出到寄存器管理模块(adaptor_csr);两个发送缓冲区(tx_fifo_0和tx_fifo_1)的下溢信号相或形成数据发送FIFO下溢信号,并输出到寄存器管理模块(adaptor_csr),发送缓冲区读写控制逻辑(tx_fifo_ctrl)用于控制两个发送缓冲区(tx_fifo_0和tx_fifo_1)的读写。
2.根据权利要求1所述的融合高速网链路层与100G以太网编码层的适配装置,其特征在于,所述发送模块(adaptor_tx)包括发送状态机(tx_fsm),所述发送状态机(tx_fsm)用于控制以太网帧的封装和发送,发送状态机(tx_fsm)的要素包括:发送状态机(tx_fsm)的各个状态、各个状态下的操作、状态的转移条件;如果链路层的数据带宽低于编码层带宽,则将以较小的以太网帧封装数据,并且在以太网帧之间填充空闲字符(IDL)以适配带宽,如果链路层的数据带宽等于或高于编码层带宽,则将以较大的以太网帧封装数据,但单个以太网帧封装的分片数目最多不超过以太网帧包含的分片数目的最大值配置信号的限制。
3.根据权利要求2所述的融合高速网链路层与100G以太网编码层的适配装置,其特征在于,所述发送状态机(tx_fsm)的各个状态包括:发送空闲(TX_SM_IDLE)状态、发送起始(TX_SM_START)状态、发送数据(TX_SM_DATA)状态、发送结束(TX_SM_TERM)状态和发送故障(TX_SM_FAULT)状态。
4.根据权利要求1所述的融合高速网链路层与100G以太网编码层的适配装置,其特征在于,所述回环模块(adaptor_lb)包括9个多路选择器Mux0~Mux8,所述9个多路选择器Mux0~Mux8用于根据选择控制信号从对应的多路输入数据中选择一路数据输出,所述9个多路选择器Mux0~Mux8的控制信号来自寄存器管理模块(adaptor_csr)的回环模式控制信号(cfg_loopback_en):当该控制信号配置为1时,表示使能回环功能,此时发送模块(adaptor_tx)发出的数据直接输入到接收模块(adaptor_rx);而当该控制信号配置为0时,表示去能回环功能,此时发送模块(adaptor_tx)发出的数据输入给CGMII接口,接收模块(adaptor_rx)接收CGMII接口发送来的数据。
5.根据权利要求1所述的融合高速网链路层与100G以太网编码层的适配装置,其特征在于,所述接收模块(adaptor_rx)包括含接收对齐(rx_align)、接收状态机(rx_fsm)和链路故障检测(rx_fault_detect)在内的多个子模块,所述接收对齐(rx_align)用于检测接收数据(lb_pcs_cgmii_rxd[127:0])和控制(lb_pcs_cgmii_rxc[15:0])信号中以太网帧头部信息出现的位置,并根据其位置信息进行移位操作并产生对齐数据(rxd_align[127:0])供接收状态机(rx_fsm)处理;所述接收状态机(rx_fsm)用于控制以太网帧的封装和发送,接收状态机(rx_fsm)的要素包括:接收状态机(rx_fsm)的各个状态、各个状态下的操作、状态的转移条件;所述链路故障检测(rx_fault_detect)用于统计接收数据中本地错误序列和远程错误序列出现的频次,由此控制本地链路故障(local_link_fault)信号和远程链路故障(remote_link_fault)信号值。
6.根据权利要求5所述的融合高速网链路层与100G以太网编码层的适配装置,其特征在于,所述接收状态机(rx_fsm)的各个状态包括:接收空闲(RX_SM_IDLE)状态、接收头部(RX_SM_HEADER)状态、接收数据(RX_SM_DATA)状态、接收结束(RX_SM_TERM)状态以及接收错误(RX_SM_ERROR)状态。
7.根据权利要求1所述的融合高速网链路层与100G以太网编码层的适配装置,其特征在于,所述接收转换模块(adaptor_rx_trans)包括两个接收缓冲区(rx_fifo_0和rx_fifo_1)、接收缓冲区读写控制逻辑(rx_fifo_ctrl),所述两个接收缓冲区(rx_fifo_0和rx_fifo_1)的上溢信号相或形成数据接收FIFO上溢信号,并输出到寄存器管理模块(adaptor_csr);所述两个接收缓冲区(rx_fifo_0和rx_fifo_1)的下溢信号相或形成数据接收FIFO下溢信号,并输出到寄存器管理模块(adaptor_csr),所述接收缓冲区读写控制逻辑(rx_fifo_ctrl)用于控制接收FIFO-0(rx_fifo_0)和接收FIFO-1(rx_fifo_1)的读写。
8.根据权利要求1所述的融合高速网链路层与100G以太网编码层的适配装置,其特征在于,所述寄存器管理模块(adaptor_csr)包括配置寄存器(Config_Reg)、状态寄存器(Status_Reg)和寄存器访问接口(MDIO),所述配置寄存器(Config_Reg)产生的配置信号包括:链路可用状态延迟阈 值(cfg_up_delay_threshold[19:0])、链路不可用状态延迟阈值(cfg_down_delay_threshold[31:0])、以太网帧包含的分片(Flit)数目的最大值(cfg_max_flit_num[9:0])、本地错误序列阈 值(cfg_local_fault_threshold[6:0])、远程错误序列阈 值(cfg_remote_fault_threshold[6:0]);所述状态寄存器(Status_Reg)收集的状态信号包括:数据发送FIFO上溢(sts_tx_fifo_overflow)、数据发送FIFO下溢(sts_tx_fifo_underflow)、数据接收FIFO上溢(sts_rx_fifo_overflow)、数据接收FIFO下溢(sts_rx_fifo_underflow)。
9.一种网络设备,包括100G以太网PCS和高速网链路层LLP,其特征在于,所述100G以太网PCS和高速网链路层LLP之间串接有权利要求1~8中任意一项所述融合高速网链路层与100G以太网编码层的适配装置,该适配装置一端与高速网链路层LLP相连、另一端直接与100G以太网PCS相连或通过一多路选择器MUX间接与100G以太网PCS相连。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011232354.0A CN112333024B (zh) | 2020-11-06 | 2020-11-06 | 融合高速网链路层与100g以太网编码层的适配装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011232354.0A CN112333024B (zh) | 2020-11-06 | 2020-11-06 | 融合高速网链路层与100g以太网编码层的适配装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112333024A CN112333024A (zh) | 2021-02-05 |
CN112333024B true CN112333024B (zh) | 2022-07-19 |
Family
ID=74316808
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011232354.0A Active CN112333024B (zh) | 2020-11-06 | 2020-11-06 | 融合高速网链路层与100g以太网编码层的适配装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112333024B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114338857A (zh) * | 2022-01-17 | 2022-04-12 | 中国人民解放军国防科技大学 | 一种适配高速网链路层与400g以太网物理编码子层的装置 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1258981A (zh) * | 1999-09-10 | 2000-07-05 | 信息产业部武汉邮电科学研究院 | 一种千兆以太网与波分复用体系融合的适配方法 |
CN111600813A (zh) * | 2020-05-13 | 2020-08-28 | 中国人民解放军国防科技大学 | 一种面向融合网络的多模互连接口控制器 |
CN111641622A (zh) * | 2020-05-21 | 2020-09-08 | 中国人民解放军国防科技大学 | 一种融合网络接口卡、报文编码方法及其报文传输方法 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101258719B (zh) * | 2005-07-17 | 2012-12-12 | 黑曜石研究有限公司 | 延长InfiniBand网络的实时到达的方法 |
US9628382B2 (en) * | 2014-02-05 | 2017-04-18 | Intel Corporation | Reliable transport of ethernet packet data with wire-speed and packet data rate match |
-
2020
- 2020-11-06 CN CN202011232354.0A patent/CN112333024B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1258981A (zh) * | 1999-09-10 | 2000-07-05 | 信息产业部武汉邮电科学研究院 | 一种千兆以太网与波分复用体系融合的适配方法 |
CN111600813A (zh) * | 2020-05-13 | 2020-08-28 | 中国人民解放军国防科技大学 | 一种面向融合网络的多模互连接口控制器 |
CN111641622A (zh) * | 2020-05-21 | 2020-09-08 | 中国人民解放军国防科技大学 | 一种融合网络接口卡、报文编码方法及其报文传输方法 |
Non-Patent Citations (2)
Title |
---|
The Efficient In-band Management for Interconnect Network in Tianhe-2 System;Jijun Cao;《IEEE》;20160404;全文 * |
面向高性能计算的软件定义存储网关的设计与实现;孙洪雷;《中国优秀硕士论文电子期刊网》;20180415;第2-3节 * |
Also Published As
Publication number | Publication date |
---|---|
CN112333024A (zh) | 2021-02-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
USRE48506E1 (en) | Method and system for a multi-rate gigabit media independent interface | |
US6385208B1 (en) | Serial media independent interface | |
EP1454440B1 (en) | Method and apparatus for providing optimized high speed link utilization | |
EP0980612B1 (en) | Physical layer device having a media independent interface for connecting to either media access control entities or other physical layer devices | |
US7418514B1 (en) | Multi-speed serial interface for media access control and physical layer devices | |
US7573896B2 (en) | Method and apparatus for generic interface, packet cut-through, overbooking, queue concatenation, and logical identification priority for a system packet interface device | |
EP1304850B1 (en) | Ethernet device and method for extending ethernet fifo buffer | |
US20070133615A1 (en) | Method and apparatus for parsing data streams | |
CN110493147B (zh) | 一种并行冗余以太网通信控制器及其控制方法 | |
CN109752999A (zh) | 一种基于fpga的arinc429总线通信方法 | |
US20050015518A1 (en) | Method and system for non-disruptive data capture in networks | |
CN112333024B (zh) | 融合高速网链路层与100g以太网编码层的适配装置 | |
CN111211863B (zh) | Mac发射端、mac接收端及电路、fpga芯片及数据传输系统 | |
EP0791259A1 (en) | Media attachment unit management interface | |
US7729430B2 (en) | Autodetect feature for a spacewire application | |
CN112653638B (zh) | 一种多路中频与基带高速交换路由的装置及其通信方法 | |
CN108429707B (zh) | 一种适应不同传输速率的时间触发业务转发器及方法 | |
EP1388952B1 (en) | Transceiver having shadow memory facilitating on-transceiver collection and communication of local parameters | |
US20030193894A1 (en) | Method and apparatus for early zero-credit determination in an infiniband system | |
EP0939512A2 (en) | Method and arrangement in a network repeater for automatically changing link speed | |
CN114338857A (zh) | 一种适配高速网链路层与400g以太网物理编码子层的装置 | |
CN116193055A (zh) | 一种基于fpga的rgmii或mii与gmii接口自动转换装置 | |
CN117749866A (zh) | 基于fpga的多通道独立流控aurora通信中间件及其数据收发方法 | |
KR100270703B1 (ko) | 랜 패킷용 버스 프로토콜 및 핸드쉐이킹을 위한 이더넷 패킷송수신 방법 및 장치 | |
CN117596308A (zh) | 一种以太网媒体访问控制层的数据传输方法和系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |