一种软件定义的协议控制器及方法技术

技术编号:22649494 阅读:24 留言:0更新日期:2019-11-26 18:03
本发明专利技术提供一种软件定义的协议控制器及方法。该协议控制器包括:链路层发送侧功能单元,用于对用户输入接口输入的数据包进行包缓存和管理、生成控制符、以及将数据包和控制符组合发送至PCS输入并行总线;链路接收侧功能单元,用于将PCS输入并行总线上的数据分离为控制符和数据包、以及按照协议规定将数据包输出至用户输出接口;链路层状态寄存器,用于存储协议控制器链路层的状态信息。该方法包括:接收用户输入接口输入的数据包进行包缓存和管理,并选择优先发送的数据包;生成控制符;将数据包和控制符发送至PCS输入并行总线;将数据分离为控制符和数据包;将接收的数据包输出至用户输出接口。本发明专利技术增加了通信接口的灵活性。

A protocol controller and method defined by software

The invention provides a protocol controller and method defined by software. The protocol controller includes: the function unit at the sending side of the link layer, which is used to cache and manage the data packets input by the user's input interface, generate the control symbols, and send the combination of the data packets and the control symbols to the PCs input parallel bus; the function unit at the receiving side of the link is used to separate the data on the PCs input parallel bus into the control symbols and the data packets, and in accordance with the protocol provisions The data package is output to the user output interface; the link layer status register is used to store the status information of the link layer of the protocol controller. The method includes: receiving the data packets input by the user input interface for packet caching and management, and selecting the data packets sent first; generating control symbols; sending the data packets and control symbols to the PCs input parallel bus; separating the data into control symbols and data packets; outputting the received data packets to the user output interface. The invention increases the flexibility of the communication interface.

【技术实现步骤摘要】
一种软件定义的协议控制器及方法
本专利技术涉及高速串行通信
,尤其涉及一种软件定义的协议控制器的装置及方法。
技术介绍
目前,高速串行接口因其接口引脚较少、传输速率高、抗干扰性强、布线连线简单,成为了芯片与芯片、板卡与设备之间主要的数据通信方式,如在数据中心、高性能计算、雷达处理系统、视频监控系统等基础设施中都采用串行通信方式进行数据传输。但是不同的应用场景和需求下,通信的接口协议可能不一样,常用的有Ethernet接口、FiberChannel接口、RapidIO接口、PCIe接口等。为了适应不同的需求,越来越多的高性能处理芯片都集成了多种高速串行接口硬核(IP核),比如NXP的T2080DSP芯片,它集成了包括以太网,PCIe、RapidIO等多种协议控制器和多种频点的SerDes,增加了芯片适用性,但同时也大大增大了芯片的面积和功耗。传统的通信接口采用了专用集成电路(ApplicationSpacificIntegratedChip,ASIC)的实现方式,其协议类型是不可改变的,大大限制了整个芯片使用范围。传统的高速串行接口采用刚性的协议解析逻辑,只能支持一种或者一类协议的互连通信。高速串行通信协议一般由多个层次协议组成,比如OSI(OpenSystemInterconnection)参考模型分成七层,分别是物理层(PMA+PCS模块)、链路层(MAC)、网络层、传输层,会话层、表示层和应用层,其中物理层和链路层组成了协议控制器,主要实现协议(数据)包的可靠传输,其功能一般采用定制化的电路实现,而其他各层目前已经能够实现软件控制。如图1所示,传统协议控制器结构:包括物理层和链路层,它们的主要功能和实现方式如下:1)PMA+PCS模块:负责传输字的串并转换,编解码、位宽变换、时钟恢复和同步等功能,不同协议主要体现在传输速率、编解码规则、以及带宽等存在差异。由于不同协议的编码规则较为固定,并且当前支持宽频点多协议的PLL技术和时钟回复(SDR)技术也较成熟,这部分功能一般采用可配置的ASIC电路设计。其中,PCS:全称PhysicalCodingSublayer,指物理编码子层;PMA:全称PhysicalMediumAttachment,指物理媒介子层。2)MAC模块:MAC主要负责链路的建立和维护、协议报文的收发、解析、差错控制和流量控制等,是与协议紧密相关的功能模块,不同协议有专用的IP核,当前没有通用的解决方案。现有的高速串行通信协议都是基于包交换的传输协议,并采用控制符实现链路维护和数据包的可靠传输,因此高速串行总线上会传输数据包和控制符内容。为了提高速率和降低功耗,协议控制器内部的链路层的功能一般采用ASIC设计,只能支持一种或者一类协议的链路建立和报文收发功能,因此其适用范围也受到了限制,主要存在3个方面的缺陷:(1)端口协议控制器处理的报文协议固定,不能根据需求进行变换;(2)现有芯片为了适应不同的应用场景,需要集成多种协议的控制器,增加芯片面积和成本;(3)无法根据需求进行自定义协议。
技术实现思路
针对现有技术中存在的由于端口协议控制器处理的报文协议固定,不能根据需求进行变换、现有芯片为了适应不同的应用场景,需要集成多种协议的控制器,增加芯片面积和成本、以及无法根据需求进行自定义协议等问题,本专利技术提供一种软件定义的协议控制器及方法,目的是为了在统一柔性硬件架构下,实现协议控制器的可软件定义,增加通信接口的灵活性,以克服当前刚性的硬件架构下端口协议无法定制,灵活性低等问题。第一方面,本专利技术提供一种软件定义的协议控制器,该协议控制器包括:链路层发送侧功能单元、链路层接收侧功能单元和链路层状态寄存器;其中:链路层发送侧功能单元,用于对用户输入接口输入的数据包进行包缓存和管理、按优先级选择优先发送的数据包、生成链路维护和数据包收发相关的控制符、以及按照协议规定将数据包和控制符组合发送至PCS输入并行总线;链路接收侧功能单元,用于接收PCS输入并行总线上的数据、将PCS输入并行总线上的数据分离为控制符和数据包、对控制符进行解析、以及按照协议规定将接收的数据包输出至用户输出接口;链路层状态寄存器,用于存储协议控制器链路层的状态信息。进一步地,所述链路层发送侧功能单元包括:发送包缓存管理模块、数据包发送模块、控制符生成模块、以及控制符与数据包合并模块;其中:发送包缓存管理模块,用于对用户输入接口输入的数据进行存储、分类和调度;根据协议规定的QoS规则选择优先发送的数据包,将优先发送的数据包输出至数据包发送模块;数据包发送模块,用于接收发送包缓存管理模块输出的数据包,并在数据包发送过程中计算并插入CRC;控制符生成模块,用于根据链路层状态寄存器存储的状态信息生成控制符;控制符与数据合并模块,用于根据协议规定选择数据包发送模块和控制符生成模块的数据进行组合,将组合后的数据输出至PCS输入并行总线。进一步地,所述数据包发送模块包括:CRC插入子模块和CRC计算子模块;其中:CRC计算子模块,用于对发送的数据按包计算CRC;CRC插入子模块,根据协议规定在发送的数据包中插入所述CRC。进一步地,所述控制符生成模块包括:第一TCAM子模块、控制符存储器、第一微码指令存储器和第一微码指令执行子模块;其中:第一TCAM子模块,用于存储协议控制器链路层状态寄存器的值;控制符存储器,用于协议规定的所有控制符;第一微码指令存储器,用于存储逻辑运算指令;第一微码指令执行子模块,用于根据当前链路层状态寄存器的值和第一微码指令存储器输出的逻辑运算指令对控制符存储器输出的控制符进行修改得到最终控制符;其中,根据第一TCAM子模块输出的值查表得到一个唯一地址,根据所述唯一地址查表得到用于生成最终控制符的所述控制符和所述逻辑运算指令。进一步地,所述链路层接收侧功能单元包括:控制符与数据分离模块、控制符解析模块、数据包接收模块和接收包缓存管理模块;其中:控制符与数据分离模块,用于判断当前PCS输入并行总线上的数据类型:若当前PCS输入并行总线上的数据是控制符,将PCS输入并行总线上的数据输入至控制符解析模块;若当前PCS输入并行总线上的数据是数据包,则将PCS输入并行总线上的数据输送至数据包接收模块;控制符解析模块,用于解析控制符,提取并处理控制符中的命令和信息;数据包接收模块,用于对接收的数据进行对齐和校验,将校验后的数据和相关校验信息发送至接收包缓存管理模块;接收包缓存管理模块,用于对数据包接收模块发送的数据进行存储、分类和调度,根据QoS规则选择优先发送的数据包,将优先发送的数据包输出至用户输出接口。进一步地,所述数据包接收模块包括:数据包重组子模块和CRC校验子模块;其中:数据包重组子模块,用于对接收的数据进行重组操作,所述重组操作包括根据控制符解析模块输出的包起始信息和包结束信息,对接收的数据进行对齐,将对齐后的并本文档来自技高网
...

【技术保护点】
1.一种软件定义的协议控制器,其特征在于,包括:链路层发送侧功能单元、链路层接收侧功能单元和链路层状态寄存器;其中:/n链路层发送侧功能单元,用于对用户输入接口输入的数据包进行包缓存和管理、按优先级选择优先发送的数据包、生成链路维护和数据包收发相关的控制符、以及按照协议规定将数据包和控制符组合发送至PCS输入并行总线;/n链路接收侧功能单元,用于接收PCS输入并行总线上的数据、将PCS输入并行总线上的数据分离为控制符和数据包、对控制符进行解析、以及按照协议规定将接收的数据包输出至用户输出接口;/n链路层状态寄存器,用于存储协议控制器链路层的状态信息。/n

【技术特征摘要】
1.一种软件定义的协议控制器,其特征在于,包括:链路层发送侧功能单元、链路层接收侧功能单元和链路层状态寄存器;其中:
链路层发送侧功能单元,用于对用户输入接口输入的数据包进行包缓存和管理、按优先级选择优先发送的数据包、生成链路维护和数据包收发相关的控制符、以及按照协议规定将数据包和控制符组合发送至PCS输入并行总线;
链路接收侧功能单元,用于接收PCS输入并行总线上的数据、将PCS输入并行总线上的数据分离为控制符和数据包、对控制符进行解析、以及按照协议规定将接收的数据包输出至用户输出接口;
链路层状态寄存器,用于存储协议控制器链路层的状态信息。


2.根据权利要求1所述的协议控制器,其特征在于,所述链路层发送侧功能单元包括:发送包缓存管理模块、数据包发送模块、控制符生成模块、以及控制符与数据包合并模块;其中:
发送包缓存管理模块,用于对用户输入接口输入的数据进行存储、分类和调度;根据协议规定的QoS规则选择优先发送的数据包,将优先发送的数据包输出至数据包发送模块;
数据包发送模块,用于接收发送包缓存管理模块输出的数据包,并在数据包发送过程中计算并插入CRC;
控制符生成模块,用于根据链路层状态寄存器存储的状态信息生成控制符;
控制符与数据合并模块,用于根据协议规定选择数据包发送模块和控制符生成模块的数据进行组合,将组合后的数据输出至PCS输入并行总线。


3.根据权利要求2所述的协议控制器,其特征在于,所述数据包发送模块包括:CRC计算子模块和CRC插入子模块;其中:
CRC计算子模块,用于对接收的数据按包计算CRC;
CRC插入子模块,用于根据协议规定在发送的数据包中插入所述CRC。


4.根据权利要求2所述的协议控制器,其特征在于,所述控制符生成模块包括:第一TCAM子模块、控制符存储器、第一微码指令存储器和第一微码指令执行子模块;其中:
第一TCAM子模块,用于存储协议控制器链路层状态寄存器的值;
控制符存储器,用于协议规定的所有控制符;
第一微码指令存储器,用于存储逻辑运算指令;
第一微码指令执行子模块,用于根据当前链路层状态寄存器的值和第一微码指令存储器输出的逻辑运算指令对控制符存储器输出的控制符进行修改得到最终控制符;
其中,根据第一TCAM子模块输出的值查表得到一个唯一地址,根据所述唯一地址查表得到用于生成最终控制符的所述控制符和所述逻辑运算指令。


5.根据权利要求1至4任一所述的协议控制器,其特征在于,所述链路层接收侧功能单元包括:控制符与数据分离模块、控制符解析模块、数据包接收模块和接收包缓存管理模块;其中:
控制符与数据分离模块,用于判断当前PCS输入并行总线上的数据类型:若当前PCS输入并行总线上的数据是控制符,将PCS输入并...

【专利技术属性】
技术研发人员:陈艇刘勤让吕平李沛杰沈剑良刘冬培董春雷张文建汤先拓张丽
申请(专利权)人:中国人民解放军战略支援部队信息工程大学
类型:发明
国别省市:河南;41

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1