CN114338857A - 一种适配高速网链路层与400g以太网物理编码子层的装置 - Google Patents

一种适配高速网链路层与400g以太网物理编码子层的装置 Download PDF

Info

Publication number
CN114338857A
CN114338857A CN202210049162.9A CN202210049162A CN114338857A CN 114338857 A CN114338857 A CN 114338857A CN 202210049162 A CN202210049162 A CN 202210049162A CN 114338857 A CN114338857 A CN 114338857A
Authority
CN
China
Prior art keywords
fifo
data
ethernet
link layer
state
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.)
Pending
Application number
CN202210049162.9A
Other languages
English (en)
Inventor
曹继军
赖明澈
庞征斌
李晋文
徐佳庆
刘路
王强
熊泽宇
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
National University of Defense Technology
Original Assignee
National University of Defense Technology
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by National University of Defense Technology filed Critical National University of Defense Technology
Priority to CN202210049162.9A priority Critical patent/CN114338857A/zh
Publication of CN114338857A publication Critical patent/CN114338857A/zh
Pending legal-status Critical Current

Links

Images

Landscapes

  • Communication Control (AREA)

Abstract

本发明公开了一种适配高速网链路层与400G以太网物理编码子层的装置,包括发送转换模块、发送模块、接收模块、接收转换模块、寄存器管理模块,分别构成适配高速网链路层与400G以太网物理编码子层的数据发送通道和数据接收通道。考虑到400G以太网是未来数据中心网络的主流速率,本发明能够实现400G以太网编码子层和高速网链路层的融合适配,实现高速网链路层与以太网编码子层的互连互通,既利于扩展400G以太网编码子层软IP产品在高速网设计领域的应用,又利于基于复用400G以太网编码子层设计高速网和以太网的双模网络端口及融合网络芯片。

Description

一种适配高速网链路层与400G以太网物理编码子层的装置
技术领域
本发明涉及高速网与以太网的融合技术,具体涉及一种用于适配高速网数据链路层(DLL)与400G以太网物理编码子层(CDPCS)的装置。
背景技术
高性能计算系统采用的互连网络被称为高速网。在高速网中,数据链路层(DLL)和物理编码子层(H-PCS)位于事务层和物理介质之间。物理编码子层(H-PCS)负责按照物理介质的特殊要求,将链路层DLL的数据进行编码和解码,而链路层DLL采用基于CRC校验的报文重传机制负责数据的可靠传输,事务层和物理介质之间的数据收发需要经过数据链路层和物理编码子层才能实现。全球互联网和数据中心系统通常采用以太网作为互连基础设施。电气与电子工程师协会(IEEE)国际组织制定的802.3标准定义了以太网的物理层(PHY)和数据链路层(MAC)规范。以太网物理层(PHY)由物理编码子层(E-PCS)、物理介质接入层(PMA)和物理介质相关层(PMD)组成。以太网链路层MAC与物理层间的接口就是其与物理编码子层(E-PCS)之间的接口。
高速网链路层DLL和高速网编码子层H-PCS间通常采用通用数据接口,其技术要点包括:(1)编码子层向链路层发送端指示ready信号,表明是否具备发送链路层数据的基本条件;(2)编码子层在具备发送链路层数据的基本条件后,通过向链路层发送端指示idle信号,表明当前是否空闲,即是否能在当前时钟周期内采样数据;(3)链路层发送端通过数据和数据有效信号向编码子层发送数据;(4)编码子层接收端通过数据和数据有效信号向链路层返回接收数据。(5)编码子层的初始化过程由本子层启动完成,然后将数据接口开放给链路层使用。
以太网链路层和以太网编码子层间采用的是物理介质独立接口(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]上传输的是控制字符。(5)编码子层的初始化过程需要链路层向数据接口发送初始化控制报文启动完成,然后将数据接口开放给链路层发送数据报文使用。
由上述对高速网和以太网的链路层和编码子层间接口技术要点分析可知,由于接口存在明显差异,无论是高速网链路层与以太网编码子层之间,还是以太网链路层与高速网编码子层之间,都不能直接互连互通。这至少带来两个方面的负面影响:一方面,由于以太网是标准化协议,所以尽管目前有许多集成电路IP供应商已提供支持多种速率模式的以太网编码子层的软IP产品,但是由于接口存在明显差异,这些以太网编码子层的软IP并不能直接被应用于高速网芯片设计。另一方面,当前高性能计算系统和数据中心系统呈现融合发展趋势,如何通过一套统一的硬件基础设施为高性能计算和数据中心计算业务提供支持已成为产业界关注的焦点。设计双模网络端口及网络芯片成为促进网络融合的重要技术手段。传统技术方法是两种模式复用物理介质,但仍然既要集成了高速网链路层DLL和高速网编码子层H-PCS,又要集成以太网链路层MAC和以太网编码子层E-PCS。实际上,如果能够实现高速网链路层与以太网编码子层的互连互通,则可以进一步复用以太网编码子层E-PCS,从而降低双模网络端口的硬件资源消耗,降低融合网络芯片设计难度和成本。
发明内容
本发明要解决的技术问题:针对现有技术的上述问题,提供一种适配高速网链路层与400G以太网物理编码子层的装置,考虑到400G以太网是未来数据中心网络的主流速率,本发明能够实现400G以太网编码子层和高速网链路层的融合适配,实现高速网链路层(DLL)与以太网编码子层(E-PCS)的互连互通,既利于扩展400G以太网编码子层(CDPCS)软IP产品在高速网设计领域的应用,又利于基于复用400G以太网编码子层(CDPCS)设计高速网和以太网的双模网络端口及融合网络芯片。
为了解决上述技术问题,本发明采用的技术方案为:
一种适配高速网链路层与400G以太网物理编码子层的装置,包括发送转换模块TX_TRANS、发送模块ADAPT_TX、接收模块ADAPT_RX、接收转换模块RX_TRANS、寄存器管理模块ADAPT_CSR,所述发送转换模块TX_TRANS、发送模块ADAPT_TX两者相互连接构成适配高速网链路层与400G以太网物理编码子层的数据发送通道,所述接收模块ADAPT_RX、接收转换模块RX_TRANS两者相互连接构成适配高速网链路层与400G以太网物理编码子层的数据接收通道,所述寄存器管理模块ADAPT_CSR分别与发送转换模块TX_TRANS、发送模块ADAPT_TX、接收模块ADAPT_RX、接收转换模块RX_TRANS相连以提供发送及接收的状态存储。
可选地,所述发送转换模块TX_TRANS包括发送FIFO读写控制逻辑TX_FIFO_CTRL、链路状态平滑控制逻辑READY_SMOOTH_CTRL以及两个发送缓冲区TX_FIFO_0和TX_FIFO_1,两个发送缓冲区TX_FIFO_0和TX_FIFO_1的上溢信号相或形成数据发送FIFO上溢信号,并输出到寄存器管理模块ADAPT_CSR;两个发送缓冲区TX_FIFO_0和TX_FIFO_1的下溢信号相或形成数据发送FIFO下溢信号,并输出到寄存器管理模块ADAPT_CSR;发送FIFO读写控制逻辑TX_FIFO_CTRL用于控制两个发送缓冲区TX_FIFO_0和TX_FIFO_1的读写;链路状态平滑控制逻辑READY_SMOOTH_CTRL用于平滑输出到外部数据链路层的传输通道可用状态;所述发送转换模块TX_TRANS用于接收外部高速网链路层接口发送的256位宽数据,将其轮流写入两个256位宽的两个发送缓冲区TX_FIFO_0和TX_FIFO_1,以及根据发送模块ADAPT_TX发出的数据读取信号,从两个发送缓冲区TX_FIFO_0和TX_FIFO_1中并行读出256位宽数据,合并为512位宽的数据后返回给发送模块ADAPT_TX。
可选地,所述发送模块ADAPT_TX包括用于控制以太网的封装和发送的发送状态机TX_FSM,所述发送状态机TX_FSM的要素包括:发送状态机TX_FSM各个状态、各个状态下的操作、状态的转移条件;如果链路层的数据带宽低于编码子层带宽,则将以较小的以太帧封装数据,并且在以太帧之间填充空闲字符IDL以适配带宽,如果链路层的数据带宽等于或高于编码子层带宽,则将以较大的以太帧封装数据,但单个以太帧封装的分片数目最多不超过以太帧包含的分片数目的最大值配置信号的限制;所述发送模块ADAPT_TX用于启动链路的初始化过程,完成后向发送转换模块发送缓冲区读信号,从而获得512位宽的数据并将其封装在以太帧中,并发送给外部以太网编码子层接口。
可选地,所述发送状态机TX_FSM各个状态包括:发送空闲TX_SM_IDLE状态、发送起始TX_SM_START状态、发送数据TX_SM_DATA状态、发送结束TX_SM_TERM状态和发送故障TX_SM_FAULT状态。
可选地,所述接收模块ADAPT_RX包含接收对齐单元RX_ALIGN、接收状态机RX_FSM和链路故障检测单元RX_FAULT_DETECT,所述接收对齐单元RX_ALIGN用于检测接收数据和控制信号中以太帧头部信息出现的位置,并根据其位置信息进行移位操作并产生对齐数据供接收状态机处理;所述接收状态机RX_FSM用于控制以太帧的封装和发送,接收状态机RX_FSM的要素包括:接收状态机RX_FSM的各个状态、各个状态下的操作、状态的转移条件;所述链路故障检测单元RX_FAULT_DETECT用于统计接收数据中本地错误序列和远程错误序列出现的频次,由此控制本地链路故障信号和远程链路故障信号;所述接收模块ADAPT_RX用于从外部以太网编码子层接口接收512位宽的以太网数据流进行接收对齐处理,去掉以太帧的头部和尾部信息后,将剩余数据写入接收转换模块RX_TRANS。
可选地,所述接收状态机RX_FSM的各个状态包括:接收空闲RX_SM_IDLE状态、接收头部RX_SM_HEADER状态、接收数据RX_SM_DATA状态、接收结束RX_SM_TERM状态以及接收错误RX_SM_ERROR状态。
可选地,所述接收转换模块RX_TRANS包括接收缓冲区读写控制逻辑RX_FIFO_CTRL以及两个接收缓冲区RX_FIFO_0和RX_FIFO_1,所述两个接收缓冲区RX_FIFO_0和RX_FIFO_1的上溢信号相或形成数据接收FIFO上溢信号,并输出到寄存器管理模块ADAPT_CSR;两个接收缓冲区RX_FIFO_0和RX_FIFO_1的下溢信号相或形成数据接收FIFO下溢信号,并输出到寄存器管理模块ADAPT_CSR;所述接收缓冲区读写控制逻辑RX_FIFO_CTRL用于控制两个接收缓冲区RX_FIFO_0和RX_FIFO_1的读写;所述接收转换模块RX_TRANS用于根据接收模块ADAPT_RX的写入信号将512位宽的数据拆分后并行写入两个接收缓冲区RX_FIFO_0和RX_FIFO_1,以及从两个接收缓冲区RX_FIFO_0和RX_FIFO_1中轮流读出256位宽数据并发送给外部高速网链路层接口。
可选地,所述寄存器管理模块ADAPT_CSR包括配置寄存器组CFG_REG、状态寄存器组STA_REG和寄存器访问接口处理单元MD,所述配置寄存器组CFG_REG产生配置信号用于控制其他功能模块的行为,状态寄存器组STA_REG收集其他功能模块产生的状态信号用于观测,寄存器访问接口处理单元MD用于访问配置寄存器和状态寄存器,从而通过接口的读操作获得配置寄存器和状态寄存器的数值,通过接口的写操作改变配置寄存器的数值;所述配置寄存器组CFG_REG产生的配置信号包括:链路可用状态延迟阀值、链路不可用状态延迟阀值、以太帧包含的分片Flit数目的最大值、本地错误序列阀值、远程错误序列阀值;所述状态寄存器组STA_REG收集的状态信号包括:数据发送FIFO上溢、数据发送FIFO下溢、数据接收FIFO上溢、数据接收FIFO下溢,所述寄存器访问接口处理单元MD用于控制配置寄存器组CFG_REG、状态寄存器组STA_REG两者的读写。
此外,本发明还提供一种网络设备,包括400G以太网PCS和高速网链路层DLL,所述400G以太网PCS、高速网链路层DLL之间串接有所述适配高速网链路层与400G以太网物理编码子层的装置,所述适配高速网链路层与400G以太网物理编码子层的装置一端与高速网链路层DLL相连、另一端直接与400G以太网PCS相连或通过多路选择器MUX间接与400G以太网PCS相连。
此外,本发明还提供一种高性能计算系统,包括400G以太网PCS和高速网链路层DLL,所述400G以太网PCS、高速网链路层DLL之间串接有所述适配高速网链路层与400G以太网物理编码子层的装置,所述适配高速网链路层与400G以太网物理编码子层的装置一端与高速网链路层DLL相连、另一端直接与400G以太网PCS相连或通过多路选择器MUX间接与400G以太网PCS相连。
和现有技术相比,本发明主要具有下述优点:本发明包括发送转换模块TX_TRANS、发送模块ADAPT_TX、接收模块ADAPT_RX、接收转换模块RX_TRANS、寄存器管理模块ADAPT_CSR,考虑到400G以太网是未来数据中心网络的主流速率,本发明能够实现以太网编码子层和高速网链路层的适配,实现高速网链路层DLL与以太网编码子层E-PCS的互连互通,既利于扩展400G以太网编码子层CDPCS软IP产品在高速网设计领域的应用,又利于基于复用400G以太网编码子层CDPCS设计高速网和以太网的双模融合网络端口及芯片。
附图说明
图1为本发明实施例装置的模块结构示意图。
图2为本发明实施例装置的信号接口示意图。
图3为本发明实施例装置的数据发送状态机转换图。
图4为本发明实施例装置的数据接收状态机转换图。
图5为本发明实施例装置的数据格式示意图。
图6为本发明实施例装置的典型应用结构示意图。
具体实施方式
如图1所示,本实施例提供一种适配高速网链路层与400G以太网物理编码子层的装置,包括发送转换模块TX_TRANS、发送模块ADAPT_TX、接收模块ADAPT_RX、接收转换模块RX_TRANS、寄存器管理模块ADAPT_CSR,所述发送转换模块TX_TRANS、发送模块ADAPT_TX两者相互连接构成适配高速网链路层与400G以太网物理编码子层的数据发送通道,所述接收模块ADAPT_RX、接收转换模块RX_TRANS两者相互连接构成适配高速网链路层与400G以太网物理编码子层的数据接收通道,所述寄存器管理模块ADAPT_CSR分别与发送转换模块TX_TRANS、发送模块ADAPT_TX、接收模块ADAPT_RX、接收转换模块RX_TRANS相连以提供发送及接收的状态存储,其中:
发送转换模块TX_TRANS用于接收外部高速网链路层接口发送的256位宽数据,将其轮流写入两个256位宽的缓冲区,以及根据发送模块发出的数据读取信号,从两个缓冲区中并行读出256位宽数据,合并为512位宽的数据后返回给发送模块;
发送模块ADAPT_TX用于启动链路的初始化过程,完成后向发送转换模块发送缓冲区读信号,从而获得512位宽的数据并将其封装在以太帧中,并发送给外部以太网编码子层接口;
接收模块ADAPT_RX用于从外部以太网编码子层接口接收512位宽的以太网数据流进行接收对齐处理,去掉以太帧的头部和尾部信息,将剩余数据写入接收转换模块的缓冲区;
接收转换模块RX_TRANS,用于根据接收模块的写入信号将512位宽的数据拆分后并行写入两个缓冲区,以及从两个缓冲区中轮流读出256位宽数据,将其发送给外部高速网链路层接口。
寄存器管理模块ADAPT_CSR用于产生的配置信号以控制其他功能模块的行为,收集其他功能模块产生的状态信号用于观测,并提供用于访问配置信号和状态信号的接口,从而通过接口的读操作获得配置信号和状态信号的数值,通过接口的写操作改变配置配置信号和状态信号的数值。
如图2所示,本实施例中适配高速网链路层和400G以太网编码子层的装置外部接口包括:与高速网链路层的接口、与400G以太网编码子层的接口、复位和寄存器访问接口。
其中,与高速网链路层的接口信号具体包括:适配器数据传输通道空闲信号pcs_dll_idle,1位宽;适配器数据传输通道可用信号pcs_dll_link_ready,1位宽;链路层向适配器发送的数据信号dll_pcs_data,256位宽;链路层向适配器发送的数据有效信号dll_pcs_data_vld,1位宽;链路层从适配器接收的数据信号pcs_dll_data,256位宽;链路层从适配器接收的数据有效信号pcs_dll_data_vld,1位宽。
其中,与400G以太网编码子层的接口为标准的CDMII发送接口,接口信号具体包括:编码子层数据传输通道状态信号cdpcs_link_status,1位宽;编码子层的发送端时钟使能信号pcs_cdmii_txclk_ena,1位宽;适配器向链路层发送的数据信号pcs_cdmii_txd,512位宽;适配器向链路层发送的控制信号pcs_cdmii_txc,64位宽;适配器从链路层接收的数据信号pcs_cdmii_rxd,512位宽;适配器从链路层接收的控制信号pcs_cdmii_rxc,64位宽;编码子层的接收端时钟使能信号pcs_cdmii_rxclk_ena,1位宽。
其中,复位和寄存器访问接口信号具体包括:适配器模块复位信号Reset,1位宽;适配器模块寄存器访问采用标准的MD接口MDC和MDIO,2位宽。
本实施例中,发送转换模块TX_TRANS包括发送FIFO读写控制逻辑TX_FIFO_CTRL、链路状态平滑控制逻辑READY_SMOOTH_CTRL以及两个发送缓冲区TX_FIFO_0和TX_FIFO_1,两个发送缓冲区TX_FIFO_0和TX_FIFO_1的上溢信号相或形成数据发送FIFO上溢信号sts_tx_fifo_overflow,并输出到寄存器管理模块ADAPT_CSR;两个发送缓冲区TX_FIFO_0和TX_FIFO_1的下溢信号相或形成数据发送FIFO下溢信号sts_tx_fifo_underflow,并输出到寄存器管理模块ADAPT_CSR;发送FIFO读写控制逻辑TX_FIFO_CTRL用于控制两个发送缓冲区TX_FIFO_0和TX_FIFO_1的读写;链路状态平滑控制逻辑READY_SMOOTH_CTRL用于平滑输出到外部数据链路层的传输通道可用状态;发送转换模块TX_TRANS用于接收外部高速网链路层接口发送的256位宽数据,将其轮流写入两个256位宽的两个发送缓冲区TX_FIFO_0和TX_FIFO_1,以及根据发送模块ADAPT_TX发出的数据读取信号,从两个发送缓冲区TX_FIFO_0和TX_FIFO_1中并行读出256位宽数据,合并为512位宽的数据后返回给发送模块ADAPT_TX。
发送转换模块TX_TRANS与外部高速网链路层接口、发送模块ADAPT_TX、寄存器管理模块ADAPT_CSR相连。发送转换模块TX_TRANS与外部的信号连接关系如下:高速网链路层DLL向本模块输入数据dll_pcs_data和数据有效dll_pcs_data_vld信号;本模块向高速网链路层DLL输出传输通道可用pcs_dll_link_ready和传输通道空闲pcs_dll_idle信号。寄存器管理模块向本模块输入链路可用状态阀值cfg_up_delay_threshold和链路不可用状态阀值cfg_down_delay_threshold配置信号;本模块向寄存器管理模块输出发送FIFO上溢sts_tx_fifo_overflow和发送FIFO下溢sts_tx_fifo_underflow状态信号。发送模块向本模块输入读FIFOtx_fifo_ren信号,本模块向发送模块输出发送FIFO空闲tx_fifo_empty和读数据tx_fifo_dout信号。
作为一种优选的实施方式,发送转换模块TX_TRANS的两个发送缓冲区TX_FIFO_0和TX_FIFO_1将存储体组织成FIFO(First In First Out,先进先出)结构以进行存取,FIFO结构的深度设置为8或16,其数据宽度设置为256位。FIFO结构提供:写、写数据、读、读数据、空、满、上溢、下溢、复位和时钟等接口信号。两个发送缓冲区TX_FIFO_0和TX_FIFO_1的两个相同FIFO结构相同,分别记为TX_FIFO_0和TX_FIFO_1以便于区分。两个发送缓冲区TX_FIFO_0和TX_FIFO_1的上溢信号相或形成数据发送FIFO上溢信号sts_tx_fifo_overflow,并输出到寄存器管理模块;两个发送缓冲区TX_FIFO_0和TX_FIFO_1的下溢信号相或形成数据发送FIFO下溢信号sts_tx_fifo_underflow,并输出到寄存器管理模块ADAPT_CSR。
本实施例中,链路状态平滑控制逻辑READY_SMOOTH_CTRL控制传输通道可用信号产生方法:设置两个计数器UP_COUNT和DOWN_COUNT且在复位时将其初值均设置为0。如果400G以太网编码子层的CDMII发送接口的CDMII发送接口可用信号mii_tx_ready从0变1,则计数器UP_COUNT启动计数且每个时钟周期内增加1。如果计数器值达到链路可用状态阀值cfg_up_delay_threshold,则停止计数且将传输通道可用信号置1。在计数期间,如果发生CDMII发送接口可用信号mii_tx_ready从1变0,则计数器改变为初值0;如果400G以太网编码子层的CDMII发送接口的CDMII发送接口可用信号mii_tx_ready从1变0,则计数器DOWN_COUNT启动计数且每个时钟周期内增加1。如果计数器值达到链路不可用状态阀值cfg_down_delay_threshold,则停止计数且将传输通道可用信号置0。在计数期间,如果发生CDMII发送接口可用信号mii_tx_ready从0变1,则计数器变更为初值0。发送缓冲区读写控制逻辑TX_FIFO_CTRL控制两个发送缓冲区TX_FIFO_0和TX_FIFO_1的读写的步骤包括:
S1:FIFO数据写入:FIFO可写入数据的条件是传输通道可用pcs_dll_link_ready=1和传输通道空闲pcs_dll_idle=1。传输通道空闲信号产生方法:如果发送缓冲区TX_FIFO_0和发送缓冲区TX_FIFO_1都非满,则空闲信号设置为1,否则设置为0。由于每次FIFO写操作针对的是发送缓冲区TX_FIFO_0或发送缓冲区TX_FIFO_1,所以轮流写入发送缓冲区TX_FIFO_0和发送缓冲区TX_FIFO_1的做法:设置FIFO写指针fifo_wt_ptr且在复位时将其初值设置为0。在每个时钟周期内,如果发生写发送FIFOtx_fifo_wen=1,则根据FIFO写指针当前的值:如果当前值为0,则将写数据tx_fifo_din写入发送缓冲区TX_FIFO_0,并将FIFO写指针非阻塞赋值为1;如果当前值为1,则将写数据tx_fifo_din写入发送缓冲区TX_FIFO_1,并将FIFO写指针非阻塞赋值为0。
S2:FIFO数据读出:FIFO读取由发送模块ADAPT_TX产生的读发送信号FIFOtx_fifo_ren控制,而产生读发送信号FIFOtx_fifo_ren需要以发送FIFO非空~tx_fifo_empty状态为前提。在每个时钟周期内,如果TX_FIFO_0和TX_FIFO_1同时为非空,则分别产生针对发送缓冲区TX_FIFO_0和发送缓冲区TX_FIFO_1的读操作,并在输出给发送转换模块的发送数据低256位tx_fifo_dout[255:0]和高256tx_fifo_dout[511:256]位信号上输出发送缓冲区TX_FIFO_0和发送缓冲区TX_FIFO_1的读数据。产生FIFO空闲tx_fifo_empty信号的做法:在发送FIFO空闲tx_fifo_empty信号上输出发送缓冲区TX_FIFO_0当前的空闲状态和发送缓冲区TX_FIFO_1当前的空闲状态相与的值。
本实施例中,发送模块ADAPT_TX包括用于控制以太网的封装和发送的发送状态机TX_FSM,所述发送状态机TX_FSM的要素包括:发送状态机TX_FSM各个状态、各个状态下的操作、状态的转移条件;如果链路层的数据带宽低于编码子层带宽,则将以较小的以太帧封装数据,并且在以太帧之间填充空闲字符IDL以适配带宽,如果链路层的数据带宽等于或高于编码子层带宽,则将以较大的以太帧封装数据,但单个以太帧封装的分片数目最多不超过以太帧包含的分片数目的最大值配置信号cfg_max_pkt_flit_num的限制;所述发送模块ADAPT_TX用于启动链路的初始化过程,完成后向发送转换模块发送缓冲区读信号,从而获得512位宽的数据并将其封装在以太帧中,并发送给外部以太网编码子层接口。
发送模块ADAPT_TX与发送转换模块TX_TRANS、寄存器管理模块ADAPT_CSR相连。发送模块ADAPT_TX与外部的信号连接关系如下:发送转换模块TX_TRANS向本模块输入发送FIFO空tx_fifo_emtpy和读数据tx_fifo_dout信号;本模块向发送转换模块TX_TRANS输出读发送FIFOtx_fifo_ren信号。寄存器管理模块ADAPT_CSR向本模块输入以太帧包含的分片数目的最大值配置cfg_max_pkt_flit_num信号。
作为一种优选的实施方式,本实施例中发送状态机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、如果发生读发送FIFOtx_fifo_ren=1,则向发送数据信号输出以太帧头部信息txd<={PAD448,SFD,{6{PRE}},STR},即txd从右向左分别为起始字符STR、6个前导字符(6{PRE})、定界字符SFD、448位填充字符(PAD448),并向发送控制信号输出控制信息txc[63:0]<=64'h0000000000000001,表示该txd中最低位字节为控制字符,其余63字节为数据字符并跳转至步骤TS2。否则执行T1.2;
T1.2、如果未发生读发送FIFOtx_fifo_ren=0,且发生远程链路故障remote_fault=1或本地链路故障local_fault=1,则向发送数据信号输出空闲数据txd<={64{IDL}},即64个空闲控制字符IDL,并向发送控制信号输出控制信息txc[63:0]<=64'hFFFFFFFFFFFFFFFF,表示该txd中所有的64字节为控制字符,并跳转至步骤TS5。否则执行T1.3;
T1.3、向发送数据信号输出空闲数据txd<={64{IDL}},即64个空闲控制字符IDL,并向发送控制信号输出控制信息txc[63:0]<=64'hFFFFFFFFFFFFFFFF,表示该txd中所有的64字节为控制字符,并且下一状态保持为TS1。
TS2、发送起始TX_SM_START状态:在该状态下的执行步骤包括:
T2.1、如果发生读发送FIFOtx_fifo_ren=1,则向发送数据信号输出FIFO读数据txd<=fifo_data_out[511:0],并向发送控制信号输出数据信息txc[63:0]<=64'h0000000000000000,表示该txd中所有的64字节为数据字符,并跳转至步骤TS3。否则执行T2.2;
T2.2、如果未发生读发送FIFOtx_fifo_ren=0且发送端时钟使能txclk_ena=1,则向发送数据信号输出FIFO读数据txd<=fifo_data_out[511:0],并向发送控制信号输出数据信息txc[63:0]<=64'h0000000000000000,表示该txd中所有的64字节为数据字符,并跳转至步骤TS4。否则执行T2.3;
T2.3、向发送数据信号输出FIFO读数据txd<=fifo_data_out[511:0],并向发送控制信号输出数据信息txc[63:0]<=64'h0000000000000000,表示该txd中所有的64字节为数据字符,并且下一状态保持为TS2。
TS3、发送数据TX_SM_DATA状态:在该状态下的执行步骤包括:
T3.1、如果发生读发送FIFOtx_fifo_ren=1,则向发送数据信号输出FIFO读数据txd<=fifo_data_out[511:0],并向发送控制信号输出数据信息txc[63:0]<=64'h0000000000000000,表示该txd中所有的64字节为数据字符,并且下一状态保持为TS3。否则执行T3.2;
T3.2、如果未发生读发送FIFOtx_fifo_ren=0且发送端时钟使能txclk_ena=1,则向发送数据信号输出FIFO读数据txd<=fifo_data_out[511:0],并向发送控制信号输出数据信息txc[63:0]<=64'h0000000000000000,表示该txd中所有的64字节为数据字符,并跳转至步骤TS4。否则执行T3.3;
T3.3、向发送数据信号输出FIFO读数据txd<=fifo_data_out[511:0],并向发送控制信号输出数据信息txc[63:0]<=64'h0000000000000000,表示该txd中所有的64字节为数据字符,并且下一状态保持为TS3。
TS4、发送结束TX_SM_TERM状态:在该状态下的执行步骤包括:
T4.1、如果发送端时钟使能txclk_ena=1且未发生远程链路故障remote_fault=0且未发生本地链路故障local_fault=1,则向发送数据信号输出以太帧尾部信息txd<={{63{IDL}},TRM},即txd由从右向左分别为结束字符、63个空闲字符,并向发送控制信号输出控制信息txc[63:0]<=64'hFFFFFFFFFFFFFFFF,表示该txd中所有的64字节为控制字符,并跳转至步骤TS1。
否则执行T4.2;
T4.2、如果发送端时钟使能txclk_ena=1,且发生远程链路故障remote_fault=0或发生本地链路故障local_fault=1,则向发送数据信号输出以太帧尾部信息txd<={{63{IDL}},TRM},即txd由从右向左分别为结束字符TRM、63个空闲字符(63{IDL}),并向发送控制信号输出控制信息txc[63:0]<=64'hFFFFFFFFFFFFFFFF,表示该txd中所有的64字节为控制字符,并跳转至步骤TS5。否则执行T4.3;
T4.3、向发送数据信号输出以太帧尾部信息txd<={{63{IDL}},TRM},即txd由从右向左分别为结束字符、63个空闲字符,并向发送控制信号输出控制信息txc[63:0]<=64'hFFFFFFFFFFFFFFFF,表示该txd中所有的64字节为控制字符,并且下一状态保持为TS4。
TS5、发送故障TX_SM_FAULT状态:在该状态下执行步骤包括:
T5.1、如果发送端时钟使能txclk_ena=1且发生本地链路故障local_fault=1,则向发送数据信号输出远程错误序列txd<={8{32'h0,RFT,16'h0,SEQ}},即txd由八个相同的8字节构成,且该8字节从右向左分别为序列字符SEQ、16位全0(16'h0)、远程错误字符RFT、32位全0(32'h0),并向发送控制信号输出序列控制信息txc[63:0]<=64'h0101010101010101,表示该txd中从右向左第1个和第8个字节为控制字符,并且下一状态保持为TS5。否则执行T5.2;
T5.2、如果发送端时钟使能txclk_ena=1且发生远程链路故障remote_fault=1,则向发送数据信号输出空闲数据txd<={{64{IDL}},即64个空闲控制字符IDL,并向发送控制信号输出控制信息txc[63:0]<=64'hFFFFFFFFFFFFFFFF,表示该txd中所有的64字节为控制字符,并且下一状态保持为TS5。否则执行T5.3;
T5.3、向发送数据信号输出空闲数据txd<={{64{IDL}},即64个空闲控制字符IDL,并向发送控制信号输出控制信息txc[63:0]<=64'hFFFFFFFFFFFFFFFF,表示该txd中所有的64字节为控制字符,并且下一状态保持为TS1。
在上述发送状态机TX_FSM描述中,txd表示本模块的pcs_cdmii_txd[511:0]信号,txc表示pcs_cdmii_txc[63:0]信号,remote_fault表示remote_link_fault信号,local_fault表示local_link_fault信号,txclk_ena表示pcs_cdmii_txclk_ena信号。在上述发送状态机TX_FSM描述中,读发送FIFO发生tx_fifo_ren=1的条件是:发送FIFO非空闲~tx_fifo_empty,且发送端时钟使能txclk_ena,且当前以太帧封装的分片数目未超过帧大小限制FlitCnt<cfg_max_pkt_flit_num,且当前状态机未处于TS4状态。FlitCnt指的是以太帧包含的数据分片从发送FIFO读出的256位宽的数据的数目。在上述发送状态机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。
本实施例中,接收模块ADAPT_RX包含接收对齐单元RX_ALIGN、接收状态机RX_FSM和链路故障检测单元RX_FAULT_DETECT,所述接收对齐单元RX_ALIGN用于检测接收数据pcs_cdmii_rxd[511:0]和控制信号pcs_cdmii_rxc[63:0]中以太帧头部信息出现的位置,并根据其位置信息进行移位操作并产生对齐数据rxd_align[511:0]供接收状态机处理;所述接收状态机RX_FSM用于控制以太帧的封装和发送,接收状态机RX_FSM的要素包括:接收状态机RX_FSM的各个状态、各个状态下的操作、状态的转移条件;所述链路故障检测单元RX_FAULT_DETECT用于统计接收数据中本地错误序列和远程错误序列出现的频次,由此控制本地链路故障local_link_fault信号和远程链路故障remote_link_fault信号;所述接收模块ADAPT_RX用于从外部以太网编码子层接口接收512位宽的以太网数据流进行接收对齐处理,去掉以太帧的头部和尾部信息后,将剩余数据写入接收转换模块RX_TRANS。
接收模块ADAPT_RX与接收转换模块RX_TRANS、寄存器管理模块ADAPT_CSR相连。接收模块ADAPT_RX与外部的信号连接关系如下:本模块向接收转换模块RX_TRANS输出写接收FIFOrx_fifo_wen和写数据rx_fifo_din[511:0]信号。寄存器管理模块ADAPT_CSR向本模块输入链路本地故障阀值cfg_local_fault_threshold和链路远程故障阀值cfg_remote_fault_threshold信号。以太网编码子层CDPCS向本模块输入接收端时钟使能pcs_cdmii_rxclk_ena、接收数据pcs_cdmii_rxd、接收控制pcs_cdmii_txc信号,本模块向发送模块输出链路本地故障local_link_fault和链路远程故障remote_link_fault信号。
本实施例中,接收对齐RX_ALIGN子模块的作用是检测接收数据pcs_cdmii_rxd和控制pcs_cdmii_rxc信号中以太帧头部信息出现的位置,并根据其位置信息进行移位操作并产生对齐数据rxd_align[511:0]供接收状态机处理。其具体做法分为两大类情况:1如果输入数据是对齐的,即pcs_cdmii_rxd[63:0]={SFD,{6{PRE}},STR}且pcs_cdmii_rxc[7:0]<=8'h01,则直接将数据pcs_cdmii_rxd[511:0]打两拍后输出到对齐数据寄存rxd_align[511:0]。2如果输入数据是非对齐的,即pcs_cdmii_rxd[k*64+63:k*64]={SFD,{6{PRE}},STR}且pcs_cdmii_rxc[k*8+7:k*8]=8'h01,其中1≤k≤7,则将数据pcs_cdmii_rxd[511:0]打两拍,并将第二拍数据的高512-k*64位输出到对齐数据低512-k*64位rxd_align[512-k*64-1:0]寄存,并将第一拍数据的低k*64位输出到对齐数据高k*64位rxd_align[511:512-k*64]寄存。接收对齐RX_ALIGN子模块还包括链路故障检测子模块RX_FAULT_DETECT,链路故障检测子模块RX_FAULT_DETECT的作用:统计接收数据中本地错误序列和远程错误序列出现的频次,由此控制本地链路故障local_link_fault信号和远程链路故障remote_link_fault信号值。其具体做法:一是在连续的128个64位编码数据块中统计本地错误序列出现的次数,如果次数不小于本地错误序列阀值cfg_local_fault_threshold,则将本模块输出到发送模块ADAPT_TX的本地链路故障local_link_fault信号置为1,否则置为0;二是同时在连续的128个64位编码数据块中统计远程错误序列出现的次数,如果次数不小于远程错误序列阀值cfg_remote_fault_threshold,则将本模块输出到发送模块ADAPT_TX的远程链路故障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,并将当前的接收对齐数据写入接收FIFOrx_fifo_din=rxd_align。
RS3、接收数据RX_SM_DATA状态,在该状态下的执行步骤包括:
R3.1、如果检测到以太帧错误rx_error=1,则跳转至步骤RS5。否则执行下一步;
R3.2、如果检测到以太帧尾部信息rx_term=1,则跳转至步骤RS4。否则下一状态保持为RS3。在该状态下,启动接收FIFO的写操作rx_fifo_wen=1,并将当前的接收对齐数据写入接收FIFOrx_fifo_din=rxd_align[511: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是指外部编码子层CDPCS输入到接收模块ADAPT_RX的接收数据pcs_cdmii_rxd和控制pcs_cdmii_rxc信号值出现如下情况:pcs_cdmii_rxd[i*64+63:i*64]={SFD,{6{PRE}},STR}且pcs_cdmii_rxc[i*8+7:i*8]=8'h01,其中0≤i≤7。在上述接收状态机TX_FSM描述中,检测到以太帧尾部信息rx_term是指外部编码子层CDPCS输入到接收模块ADAPT_RX的接收数据和控制信号值出现如下情况:pcs_cdmii_rxd[j*64+7:j*64]={TRM}且pcs_cdmii_rxc[j*8]=1'h1,其中0≤j≤7。在上述接收状态机TX_FSM描述中,检测到以太帧错误rx_error=1是指外部编码子层CDPCS输入到接收模块ADAPT_RX的接收数据和控制信号值出现错误字符,即pcs_cdmii_rxd[k*8+7:k*8]={ERR}且pcs_cdmii_rxc[k]=1'h1,其中0≤k≤7。在上述描述中,报文格式相关的符号具体数值定义为:起始字符STR=8'hFB、前导字符PRE=8'h55、定界字符SFD=8'hD5、结束字符TRM=8'hFD、错误字符ERR=8'hFE。
本实施例中,接收转换模块RX_TRANS包括接收缓冲区读写控制逻辑RX_FIFO_CTRL以及两个接收缓冲区RX_FIFO_0和RX_FIFO_1,所述两个接收缓冲区RX_FIFO_0和RX_FIFO_1的上溢信号相或形成数据接收FIFO上溢信号,并输出到寄存器管理模块ADAPT_CSR;两个接收缓冲区RX_FIFO_0和RX_FIFO_1的下溢信号相或形成数据接收FIFO下溢信号,并输出到寄存器管理模块ADAPT_CSR;所述接收缓冲区读写控制逻辑RX_FIFO_CTRL用于控制两个接收缓冲区RX_FIFO_0和RX_FIFO_1的读写;所述接收转换模块RX_TRANS用于根据接收模块ADAPT_RX的写入信号将512位宽的数据拆分后并行写入两个接收缓冲区RX_FIFO_0和RX_FIFO_1,以及从两个接收缓冲区RX_FIFO_0和RX_FIFO_1中轮流读出256位宽数据并发送给外部高速网链路层接口。
接收转换模块RX_TRANS与外部高速网链路层接口、接收模块ADAPT_RX、寄存器管理模块ADAPT_CSR相连。接收转换模块RX_TRANS与外部的信号连接关系如下:接收模块ADAPT_RX向本模块输入写接收FIFOrx_fifo_wen和写数据rx_fifo_din信号。本模块向寄存器管理模块输出接收FIFO上溢sts_rx_fifo_overflow和接收FIFO下溢sts_rx_fifo_underflow状态信号。接收模块ADAPT_RX向本模块输入写接收FIFOrx_fifo_wen、写数据rx_fifo_din信号。作为一种优选的实施方式,两个接收缓冲区RX_FIFO_0和RX_FIFO_1将存储体组织成,FIFO(先进先出First In First Out)结构,FIFO结构的深度设置为8或16,其数据宽度设置为256位。FIFO提供:写、写数据、读、读数据、空、满、上溢、下溢、复位和时钟等接口信号。两个接收缓冲区RX_FIFO_0和RX_FIFO_1的结构相同,且分别命名为接收RX_FIFO_0和接收RX_FIFO_1。两个FIFO结构的上溢信号相或形成数据接收FIFO上溢信号sts_rx_fifo_overflow,并输出到寄存器管理模块;两个FIFO结构的下溢信号相或形成数据接收FIFO下溢信号sts_rx_fifo_underflow,并输出到寄存器管理模块ADAPT_CSR。
本实施例中,接收缓冲区读写控制逻辑RX_FIFO_CTRL控制两个接收缓冲区RX_FIFO_0和RX_FIFO_1的读写的步骤包括:
S1、FIFO数据写入:FIFO写入由接收模块产生的写接收FIFO信号rx_fifo_wen控制,而产生该信号不需要以接收FIFO非满~tx_fifo_empty状态为前提。在每个时钟周期内,如果接收模块有数据上送到接收转换模块rx_fifo_wen=1,则分别产生针对RX_FIFO_0和RX_FIFO_1的写操作,并在输出给接收转换模块的数据低256位rx_fifo_din[255:0]和高256位rx_fifo_din[511:256]分别写入RX_FIFO_0和RX_FIFO_1。
S2、FIFO数据读出:FIFO可读取数据的条件是接收FIFO为非空~tx_fifo_empty状态。由于每次FIFO读操作针对的是接收RX_FIFO_0或接收RX_FIFO_1,所以轮流读出RX_FIFO_0和RX_FIFO_1的做法:设置FIFO读指针fifo_rd_ptr且在复位时将其初值设置为0。在每个时钟周期内,如果发生读接收FIFOrx_fifo_ren=1,则根据FIFO读指针当前的值:如果当前值为0,则将RX_FIFO_0读出的数据输出给链路层DLL接收数据信号pcs_dll_data[255:0],将链路层DLL接收数据有效信号pcs_dll_data_vld设置为1,并将FIFO读指针非阻塞赋值为1;如果当前值为1,则将RX_FIFO_1读出的数据输出给链路层DLL接收数据信号pcs_dll_data[255:0],将链路层DLL接收数据有效信号pcs_dll_data_vld设置为1,并将FIFO读指针非阻塞赋值为0。如果未发生读取FIFOrx_fifo_ren=0,则将链路层DLL接收数据有效信号pcs_dll_data_vld设置为0,且FIFO读指针值保持不变。
本实施例中,寄存器管理模块ADAPT_CSR包括配置寄存器组CFG_REG、状态寄存器组STA_REG和寄存器访问接口处理单元MD,所述配置寄存器组CFG_REG产生配置信号用于控制其他功能模块的行为,状态寄存器组STA_REG收集其他功能模块产生的状态信号用于观测,寄存器访问接口处理单元MD用于访问配置寄存器和状态寄存器,从而通过接口的读操作获得配置寄存器和状态寄存器的数值,通过接口的写操作改变配置寄存器的数值。
作为一种优选的实施方式,配置寄存器产生的配置信号包括:链路可用状态延迟阀值cfg_up_delay_threshold、链路不可用状态延迟阀值cfg_down_delay_threshold、以太帧包含的分片数目的最大值cfg_max_flit_num、本地错误序列阀值cfg_local_fault_threshold、远程错误序列阀值cfg_remote_fault_threshold。各个配置信号说明如下:1链路可用状态阀值信号连接到发送转换模块TX_TRANS,具体指从接收到编码子层数据传输通道可用信息到向链路层指示数据传输通道可用信息的延迟时钟周期数目,用于平滑编码子层可用状态的变化对链路层可用状态变化的影响,其具体做法在链路状态平滑控制逻辑READY_SMOOTH_CTRL中予以说明;2链路不可用状态延迟阀值信号连接到发送转换模块TX_TRANS,具体指从接收到编码子层数据传输通道不可用信息到向链路层指示数据传输通道不可用信息的延迟时钟周期数目,用于平滑编码子层不可用状态的变化对链路层不可用状态变化的影响,其具体做法在链路状态平滑控制逻辑READY_SMOOTH_CTRL中予以说明;3以太帧包含的分片数目的最大值信号连接到发送模块ADAPT_TX,用于限制以太帧的大小,其具体做法在发送模块ADAPT_TX的发送状态机中予以说明;4本地错误序列阀值信号连接到接收模块ADAPT_RX,用于判断是否发生本地错误local_fault,其具体做法在接收模块ADAPT_RX的链路故障状态机中予以说明;5远程错误序列阀值信号连接到接收模块ADAPT_RX,用于判断是否发生远程错误remote_fault,其具体做法在接收模块ADAPT_RX的链路故障状态机中予以说明。
作为一种优选的实施方式,状态寄存器收集的状态信号包括:数据发送FIFO上溢sts_tx_fifo_overflow、数据发送FIFO下溢sts_tx_fifo_underflow、数据接收FIFO上溢sts_rx_fifo_overflow、数据接收FIFO下溢sts_rx_fifo_underflow。各个状态信号说明如下:1数据发送FIFO上溢信号连接自发送转换模块TX_TRANS,用于记录数据发送FIFO的上溢错误;2数据发送FIFO下溢信号连接自发送转换模块TX_TRANS,用于记录数据发送FIFO的下溢错误;3数据接收FIFO上溢信号连接自接收转换模块RX_TRANS,用于记录数据接收FIFO的上溢错误;4数据接收FIFO下溢信号连接自接收转换模块RX_TRANS,用于记录数据接收FIFO的下溢错误。
图5为本实施例装置的数据格式示意图。其中,图5中的(a)为发送状态机TX_FSM在TS1状态中发送以太帧头部信息的格式示意,其中STR为起始控制字符值为8'hFB,PREAMBLE为前导码值为{6{8'h55}},即6个前导字符,SFD为定界字符值为8'hD5,PAD448为448位的0-1均衡填充数据值为{56{8'h0F}。图5中的(b)为高速网链路层DLL发送给适配器N个分片后被封装在以太帧之后的数据结构示意,以太帧的数据宽度为512位N为偶数。图5中的(c)为发送状态机TX_FSM在TS4状态中发送以太帧尾部信息的格式示意,其中TRM为结束控制字符值为8'hFD,IDL为空闲字符,该以太帧尾部信息共包含63个IDL字符。图5中的(d)为发送状态机TX_FSM在TS1状态中发送的空闲数据格式示意,每拍512位宽的数据中共包含64个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}。
本实施例适配高速网链路层与400G以太网编码子层的装置可产生下述技术效果:
1、参见图6中的(a),通过采用本实施例适配高速网链路层与400G以太网编码子层的装置,可以利用的高速网链路层DLL、和商用成熟的400G以太网编码子层E-PCS,方便地设计集成高速网端口逻辑,实现高速网链路层与以太网编码子层的互连互通。从而扩展了400G以太网E-PCS的应用领域、扩大了高速网端口设计对编码子层的可选范围。
2、参见图6中的(b),通过采用本实施例适配高速网链路层与400G以太网编码子层的装置,可以利用高速网链路层DLL、和商用成熟的400G以太网编码子层E-PCS及链路层MAC,方便地设计集成融合高速网和以太网的双模网络端口逻辑。通过复用以太网编码子层E-PCS,该融合设计可以有效降低双模网络接口/交换芯片的逻辑量及其面积,降低实现难度。
3、本实施例适配高速网链路层与400G以太网编码子层的装置功能丰富。除了提供基本的接口适配功能外,本发明适配装置还提供多种可配置的模式或参数。例如:(1)、最大以太帧长度受限制且可配置。如果链路层的数据带宽等于或高于编码子层带宽,则将以较大的以太帧封装链路层数据,但单个以太帧封装的分片数目最多不超过以太帧包含的分片数目的最大值配置信号cfg_max_pkt_flit_num值的限制。这可为采用本发明装置的以太网物理层与第三方以太网物理层对接提供广泛支持,避免出现因为双方网络端口对以太网最大帧定义不同而出现通信故障。(2)、具备链路状态平滑机制且其参数可配置。通过配置链路可用状态阀值信号cfg_up_delay_threshold值可以延迟从编码子层进入可用状态到链路层进入可以状态的时间,通过配置链路不可用状态阀值信号cfg_down_delay_threshold值可以延迟从编码子层进入不可用状态到链路层进入不可用状态的时间。通过合理设置阀值,上述机制能够过滤掉过于频繁的编码子层状态变化对链路层状态的影响,从而起到平滑链路层状态变化的作用。(3)、链路检测故障程度可配置。链路检测是在连续128个64位编码块中统计本地和远程错误序列出现的次数,并与本地错误序列阀值cfg_local_fault_threshold和远程错误序列阀值cfg_remote_fault_threshold相比较,以产生本地和远程链路故障信号。通过合理设置阀值,可以扩大链路故障程度的容忍范围,结合高速网链路层的错误数据重传机制,能够有效增强网络的容错性。
此外,本发明还提供一种网络设备,包括400G以太网PCS和高速网链路层DLL,所述400G以太网PCS、高速网链路层DLL之间串接有所述适配高速网链路层与400G以太网物理编码子层的装置,所述适配高速网链路层与400G以太网物理编码子层的装置一端与高速网链路层DLL相连、另一端直接与400G以太网PCS相连或通过多路选择器MUX间接与400G以太网PCS相连。
此外,本发明还提供一种高性能计算系统,包括400G以太网PCS和高速网链路层DLL,所述400G以太网PCS、高速网链路层DLL之间串接有所述适配高速网链路层与400G以太网物理编码子层的装置,所述适配高速网链路层与400G以太网物理编码子层的装置一端与高速网链路层DLL相连、另一端直接与400G以太网PCS相连或通过多路选择器MUX间接与400G以太网PCS相连。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可读存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
以上所述仅是本发明的优选实施方式,本发明的保护范围并不仅局限于上述实施例,凡属于本发明思路下的技术方案均属于本发明的保护范围。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理前提下的若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

Claims (10)

1.一种适配高速网链路层与400G以太网物理编码子层的装置,其特征在于,包括发送转换模块(TX_TRANS)、发送模块(ADAPT_TX)、接收模块(ADAPT_RX)、接收转换模块(RX_TRANS)、寄存器管理模块(ADAPT_CSR),所述发送转换模块(TX_TRANS)、发送模块(ADAPT_TX)两者相互连接构成适配高速网链路层与400G以太网物理编码子层的数据发送通道,所述接收模块(ADAPT_RX)、接收转换模块(RX_TRANS)两者相互连接构成适配高速网链路层与400G以太网物理编码子层的数据接收通道,所述寄存器管理模块(ADAPT_CSR)分别与发送转换模块(TX_TRANS)、发送模块(ADAPT_TX)、接收模块(ADAPT_RX)、接收转换模块(RX_TRANS)相连以提供发送及接收的状态存储。
2.根据权利要求1所述的适配高速网链路层与400G以太网物理编码子层的装置,其特征在于,所述发送转换模块(TX_TRANS)包括发送FIFO读写控制逻辑(TX_FIFO_CTRL)、链路状态平滑控制逻辑(READY_SMOOTH_CTRL)以及两个发送缓冲区(TX_FIFO_0和TX_FIFO_1),两个发送缓冲区(TX_FIFO_0和TX_FIFO_1)的上溢信号相或形成数据发送FIFO上溢信号,并输出到寄存器管理模块(ADAPT_CSR);两个发送缓冲区(TX_FIFO_0和TX_FIFO_1)的下溢信号相或形成数据发送FIFO下溢信号,并输出到寄存器管理模块(ADAPT_CSR);发送FIFO读写控制逻辑(TX_FIFO_CTRL)用于控制两个发送缓冲区(TX_FIFO_0和TX_FIFO_1)的读写;链路状态平滑控制逻辑(READY_SMOOTH_CTRL)用于平滑输出到外部数据链路层的传输通道可用状态;所述发送转换模块(TX_TRANS)用于接收外部高速网链路层接口发送的256位宽数据,将其轮流写入两个256位宽的两个发送缓冲区(TX_FIFO_0和TX_FIFO_1),以及根据发送模块(ADAPT_TX)发出的数据读取信号,从两个发送缓冲区(TX_FIFO_0和TX_FIFO_1)中并行读出256位宽数据,合并为512位宽的数据后返回给发送模块(ADAPT_TX)。
3.根据权利要求2所述的适配高速网链路层与400G以太网物理编码子层的装置,其特征在于,所述发送模块(ADAPT_TX)包括用于控制以太网的封装和发送的发送状态机(TX_FSM),所述发送状态机(TX_FSM)的要素包括:发送状态机(TX_FSM)各个状态、各个状态下的操作、状态的转移条件;如果链路层的数据带宽低于编码子层带宽,则将以较小的以太帧封装数据,并且在以太帧之间填充空闲字符(IDL)以适配带宽,如果链路层的数据带宽等于或高于编码子层带宽,则将以较大的以太帧封装数据,但单个以太帧封装的分片数目最多不超过以太帧包含的分片数目的最大值配置信号的限制;所述发送模块(ADAPT_TX)用于启动链路的初始化过程,完成后向发送转换模块发送缓冲区读信号,从而获得512位宽的数据并将其封装在以太帧中,并发送给外部以太网编码子层接口。
4.根据权利要求3所述的适配高速网链路层与400G以太网物理编码子层的装置,其特征在于,所述发送状态机(TX_FSM)各个状态包括:发送空闲(TX_SM_IDLE)状态、发送起始(TX_SM_START)状态、发送数据(TX_SM_DATA)状态、发送结束(TX_SM_TERM)状态和发送故障(TX_SM_FAULT)状态。
5.根据权利要求4所述的适配高速网链路层与400G以太网物理编码子层的装置,其特征在于,所述接收模块(ADAPT_RX)包含接收对齐单元(RX_ALIGN)、接收状态机(RX_FSM)和链路故障检测单元(RX_FAULT_DETECT),所述接收对齐单元(RX_ALIGN)用于检测接收数据和控制信号中以太帧头部信息出现的位置,并根据其位置信息进行移位操作并产生对齐数据供接收状态机处理;所述接收状态机(RX_FSM)用于控制以太帧的封装和发送,接收状态机(RX_FSM)的要素包括:接收状态机(RX_FSM)的各个状态、各个状态下的操作、状态的转移条件;所述链路故障检测单元(RX_FAULT_DETECT)用于统计接收数据中本地错误序列和远程错误序列出现的频次,由此控制本地链路故障信号和远程链路故障信号;所述接收模块(ADAPT_RX)用于从外部以太网编码子层接口接收512位宽的以太网数据流进行接收对齐处理,去掉以太帧的头部和尾部信息后,将剩余数据写入接收转换模块(RX_TRANS)。
6.根据权利要求5所述的适配高速网链路层与400G以太网物理编码子层的装置,其特征在于,所述接收状态机(RX_FSM)的各个状态包括:接收空闲(RX_SM_IDLE)状态、接收头部(RX_SM_HEADER)状态、接收数据(RX_SM_DATA)状态、接收结束(RX_SM_TERM)状态以及接收错误(RX_SM_ERROR)状态。
7.根据权利要求6所述的适配高速网链路层与400G以太网物理编码子层的装置,其特征在于,所述接收转换模块(RX_TRANS)包括接收缓冲区读写控制逻辑(RX_FIFO_CTRL)以及两个接收缓冲区(RX_FIFO_0和RX_FIFO_1),所述两个接收缓冲区(RX_FIFO_0和RX_FIFO_1)的上溢信号相或形成数据接收FIFO上溢信号,并输出到寄存器管理模块(ADAPT_CSR);两个接收缓冲区(RX_FIFO_0和RX_FIFO_1)的下溢信号相或形成数据接收FIFO下溢信号,并输出到寄存器管理模块(ADAPT_CSR);所述接收缓冲区读写控制逻辑(RX_FIFO_CTRL)用于控制两个接收缓冲区(RX_FIFO_0和RX_FIFO_1)的读写;所述接收转换模块(RX_TRANS)用于根据接收模块(ADAPT_RX)的写入信号将512位宽的数据拆分后并行写入两个接收缓冲区(RX_FIFO_0和RX_FIFO_1),以及从两个接收缓冲区(RX_FIFO_0和RX_FIFO_1)中轮流读出256位宽数据并发送给外部高速网链路层接口。
8.根据权利要求7所述的适配高速网链路层与400G以太网物理编码子层的装置,其特征在于,所述寄存器管理模块(ADAPT_CSR)包括配置寄存器组(CFG_REG)、状态寄存器组(STA_REG)和寄存器访问接口处理单元(MD),所述配置寄存器组(CFG_REG)产生配置信号用于控制其他功能模块的行为,状态寄存器组(STA_REG)收集其他功能模块产生的状态信号用于观测,寄存器访问接口处理单元(MD)用于访问配置寄存器和状态寄存器,从而通过接口的读操作获得配置寄存器和状态寄存器的数值,通过接口的写操作改变配置寄存器的数值;所述配置寄存器组(CFG_REG)产生的配置信号包括:链路可用状态延迟阀值、链路不可用状态延迟阀值、以太帧包含的分片(Flit)数目的最大值、本地错误序列阀值、远程错误序列阀值;所述状态寄存器组(STA_REG)收集的状态信号包括:数据发送FIFO上溢、数据发送FIFO下溢、数据接收FIFO上溢、数据接收FIFO下溢,所述寄存器访问接口处理单元(MD)用于控制配置寄存器组(CFG_REG)、状态寄存器组(STA_REG)两者的读写。
9.一种网络设备,包括400G以太网PCS和高速网链路层DLL,其特征在于,所述400G以太网PCS、高速网链路层DLL之间串接有权利要求1~8中任意一项所述适配高速网链路层与400G以太网物理编码子层的装置,所述适配高速网链路层与400G以太网物理编码子层的装置一端与高速网链路层DLL相连、另一端直接与400G以太网PCS相连或通过多路选择器MUX间接与400G以太网PCS相连。
10.一种高性能计算系统,包括400G以太网PCS和高速网链路层DLL,其特征在于,所述400G以太网PCS、高速网链路层DLL之间串接有权利要求1~8中任意一项所述适配高速网链路层与400G以太网物理编码子层的装置,所述适配高速网链路层与400G以太网物理编码子层的装置一端与高速网链路层DLL相连、另一端直接与400G以太网PCS相连或通过多路选择器MUX间接与400G以太网PCS相连。
CN202210049162.9A 2022-01-17 2022-01-17 一种适配高速网链路层与400g以太网物理编码子层的装置 Pending CN114338857A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210049162.9A CN114338857A (zh) 2022-01-17 2022-01-17 一种适配高速网链路层与400g以太网物理编码子层的装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210049162.9A CN114338857A (zh) 2022-01-17 2022-01-17 一种适配高速网链路层与400g以太网物理编码子层的装置

Publications (1)

Publication Number Publication Date
CN114338857A true CN114338857A (zh) 2022-04-12

Family

ID=81028920

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210049162.9A Pending CN114338857A (zh) 2022-01-17 2022-01-17 一种适配高速网链路层与400g以太网物理编码子层的装置

Country Status (1)

Country Link
CN (1) CN114338857A (zh)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111600813A (zh) * 2020-05-13 2020-08-28 中国人民解放军国防科技大学 一种面向融合网络的多模互连接口控制器
CN112333024A (zh) * 2020-11-06 2021-02-05 中国人民解放军国防科技大学 融合高速网链路层与100g以太网编码层的适配装置

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111600813A (zh) * 2020-05-13 2020-08-28 中国人民解放军国防科技大学 一种面向融合网络的多模互连接口控制器
CN112333024A (zh) * 2020-11-06 2021-02-05 中国人民解放军国防科技大学 融合高速网链路层与100g以太网编码层的适配装置

Similar Documents

Publication Publication Date Title
US6539488B1 (en) System with a plurality of media access control circuits with a shared memory for storing data and synchronizing data from a clock domain to a host clock domain
US7573896B2 (en) Method and apparatus for generic interface, packet cut-through, overbooking, queue concatenation, and logical identification priority for a system packet interface device
US7221650B1 (en) System and method for checking data accumulators for consistency
US8619781B2 (en) Backplane interface adapter with error control and redundant fabric
US5802287A (en) Single chip universal protocol multi-function ATM network interface
US6862293B2 (en) Method and apparatus for providing optimized high speed link utilization
US5446726A (en) Error detection and correction apparatus for an asynchronous transfer mode (ATM) network device
US5668809A (en) Single chip network hub with dynamic window filter
US20140348177A1 (en) Managing flow control buffer
US7193994B1 (en) Crossbar synchronization technique
US20050138238A1 (en) Flow control interface
US7688839B2 (en) Data link/physical layer packet buffering and flushing
US20050015518A1 (en) Method and system for non-disruptive data capture in networks
US7415031B2 (en) Data link/physical layer packet diversion and insertion
CN112333024B (zh) 融合高速网链路层与100g以太网编码层的适配装置
US7729430B2 (en) Autodetect feature for a spacewire application
CN111211863A (zh) Mac发射端、mac接收端及电路、fpga芯片及数据传输系统
US20030193894A1 (en) Method and apparatus for early zero-credit determination in an infiniband system
CN112653638A (zh) 一种多路中频与基带高速交换路由的装置及其通信方法
CN114338857A (zh) 一种适配高速网链路层与400g以太网物理编码子层的装置
US6954466B1 (en) Link-layer receiver
US7519728B1 (en) Merge systems and methods for transmit systems interfaces
US7512075B1 (en) Method and apparatus for collecting statistical information from a plurality of packet processing blocks
CN112631985B (zh) 一种链路共享的片上网络
Arenas et al. Design and implementation of packet switching capabilities on 10GbE MAC core

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