首页 / 专利库 / 电脑零配件 / 微码 / 一种软件定义的协议控制器及方法

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

阅读:141发布:2020-05-11

专利汇可以提供一种软件定义的协议控制器及方法专利检索,专利查询,专利分析的服务。并且本 发明 提供一种 软件 定义的协议 控制器 及方法。该协议控制器包括:链路层发送侧功能单元,用于对用户输入 接口 输入的数据包进行包缓存和管理、生成控制符、以及将数据包和控制符组合发送至PCS输入 并行总线 ;链路接收侧功能单元,用于将PCS输入并行总线上的数据分离为控制符和数据包、以及按照协议规定将数据包输出至用户输出接口;链路层状态寄存器,用于存储协议控制器链路层的状态信息。该方法包括:接收用户输入接口输入的数据包进行包缓存和管理,并选择优先发送的数据包;生成控制符;将数据包和控制符发送至PCS输入并行总线;将数据分离为控制符和数据包;将接收的数据包输出至用户输出接口。本发明增加了 通信接口 的灵活性。,下面是一种软件定义的协议控制器及方法专利的具体信息内容。

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输入并行总线上的数据输入至控制符解析模块;若当前PCS输入并行总线上的数据是数据包,则将PCS输入并行总线上的数据输送至数据包接收模块;
控制符解析模块,用于解析控制符,提取并处理控制符中的命令和信息;
数据包接收模块,用于对接收的数据进行对齐和校验,将校验后的数据和相关校验信息发送至接收包缓存管理模块;
接收包缓存管理模块,用于对数据包接收模块发送的数据进行存储、分类和调度,根据QoS规则选择优先发送的数据包,将优先发送的数据包输出至用户输出接口。
6.根据权利要求5所述的协议控制器,其特征在于,所述数据包接收模块包括:数据包重组子模块和CRC校验子模块;其中:
数据包重组子模块,用于对接收的数据进行重组操作,所述重组操作包括根据控制符解析模块输出的包起始信息和包结束信息,对接收的数据进行对齐,将对齐后的并行数据输入到CRC校验模块;
CRC校验子模块,用于对接收的数据进行校验,并将校验结果写入链路层状态寄存器。
7.根据权利要求5所述的协议控制器,其特征在于,所述控制符解析模块包括:第二TCAM子模块、第二微码指令存储器和第二微码指令执行子模块;其中:
第二TCAM子模块,用于存储协议规定的所有控制符;
第二微码指令存储器,用于存储逻辑运算指令;
第二微码指令执行子模块,用于根据第二微码指令存储器输出的逻辑运算指令对输入的控制符和当前链路层状态寄存器的值进行运算,并将运算结果存储至链路层状态寄存器;
其中,第二TCAM子模块根据输入的控制符得到一个唯一地址,根据所述唯一地址得到用于进行运算的所述逻辑运算指令。
8.根据权利要求1所述的协议控制器,其特征在于,所述状态信息包括:接收控制符信息、发送控制符信息、收发控制符计数、收发包计数和收发缓存空闲信息中的至少一种。
9.一种软件定义的协议控制器的控制方法,其特征在于,包括:
步骤1:接收用户输入接口输入的数据包,对所述数据包进行包缓存和管理,并选择优先发送的数据包;
步骤2:根据链路层的状态信息生成链路维护和数据包收发相关的控制符;
步骤3:将数据包和控制符发送至PCS输入并行总线;
步骤4:接收PCS输入并行总线上的数据;
步骤5:将PCS输入并行总线上的数据分离为控制符和数据包;
步骤6:对控制符进行解析;
步骤7:根据控制符的解析结果将接收的数据包进行重组和CRC校验,按照协议规定和数据包的优先级将通过CRC校验后的正确的数据包先后输出至用户输出接口。
10.一种电子设备,其特征在于,包括:
存储器和处理器,所述处理器和所述存储器通过总线完成相互间的通信;所述存储器存储有可被所述处理器执行的程序指令,所述处理器调用所述程序指令能够执行如权利要求9所述的方法。

说明书全文

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

技术领域

[0001] 本发明涉及高速串行通信技术领域,尤其涉及一种软件定义的协议控制器的装置及方法。

背景技术

[0002] 目前,高速串行接口因其接口引脚较少、传输速率高、抗干扰性强、布线连线简单,成为了芯片与芯片、板卡与设备之间主要的数据通信方式,如在数据中心高性能计算、雷达处理系统、视频监控系统基础设施中都采用串行通信方式进行数据传输。但是不同的应用场景和需求下,通信的接口协议可能不一样,常用的有Ethernet接口、Fiber Channel接口、RapidIO接口、PCIe接口等。为了适应不同的需求,越来越多的高性能处理芯片都集成了多种高速串行接口硬核(IP核),比如NXP的T2080 DSP芯片,它集成了包括以太网,PCIe、RapidIO等多种协议控制器和多种频点的SerDes,增加了芯片适用性,但同时也大大增大了芯片的面积和功耗。传统的通信接口采用了专用集成电路(Application Spacific Integrated Chip, ASIC)的实现方式,其协议类型是不可改变的,大大限制了整个芯片使用范围。
[0003] 传统的高速串行接口采用刚性的协议解析逻辑,只能支持一种或者一类协议的互连通信。高速串行通信协议一般由多个层次协议组成,比如OSI(Open  System Interconnection)参考模型分成七层,分别是物理层(PMA+PCS模)、链路层(MAC)、网络层、传输层,会话层、表示层和应用层,其中物理层和链路层组成了协议控制器,主要实现协议(数据)包的可靠传输,其功能一般采用定制化的电路实现,而其他各层目前已经能够实现软件控制。如图1所示,传统协议控制器结构:包括物理层和链路层,它们的主要功能和实现方式如下:1)PMA+PCS模块:负责传输字的串并转换,编解码、位宽变换、时钟恢复和同步等功能,不同协议主要体现在传输速率、编解码规则、以及带宽等存在差异。由于不同协议的编码规则较为固定,并且当前支持宽频点多协议的PLL技术和时钟回复(SDR)技术也较成熟,这部分功能一般采用可配置的ASIC电路设计。其中,PCS:全称Physical Coding Sublayer,指物理编码子层;PMA:全称Physical Medium Attachment,指物理媒介子层。
[0004] 2)MAC模块:MAC主要负责链路的建立和维护、协议报文的收发、解析、差错控制和流量控制等,是与协议紧密相关的功能模块,不同协议有专用的IP核,当前没有通用的解决方案。
[0005] 现有的高速串行通信协议都是基于包交换的传输协议,并采用控制符实现链路维护和数据包的可靠传输,因此高速串行总线上会传输数据包和控制符内容。为了提高速率和降低功耗,协议控制器内部的链路层的功能一般采用ASIC设计,只能支持一种或者一类协议的链路建立和报文收发功能,因此其适用范围也受到了限制,主要存在3个方面的缺陷:(1)端口协议控制器处理的报文协议固定,不能根据需求进行变换;(2)现有芯片为了适应不同的应用场景,需要集成多种协议的控制器,增加芯片面积和成本;(3)无法根据需求进行自定义协议。

发明内容

[0006] 针对现有技术中存在的由于端口协议控制器处理的报文协议固定,不能根据需求进行变换、现有芯片为了适应不同的应用场景,需要集成多种协议的控制器,增加芯片面积和成本、以及无法根据需求进行自定义协议等问题,本发明提供一种软件定义的协议控制器及方法,目的是为了在统一柔性硬件架构下,实现协议控制器的可软件定义,增加通信接口的灵活性,以克服当前刚性的硬件架构下端口协议无法定制,灵活性低等问题。
[0007] 第一方面,本发明提供一种软件定义的协议控制器,该协议控制器包括:链路层发送侧功能单元、链路层接收侧功能单元和链路层状态寄存器;其中:链路层发送侧功能单元,用于对用户输入接口输入的数据包进行包缓存和管理、按优先级选择优先发送的数据包、生成链路维护和数据包收发相关的控制符、以及按照协议规定将数据包和控制符组合发送至PCS输入并行总线
链路接收侧功能单元,用于接收PCS输入并行总线上的数据、将PCS输入并行总线上的数据分离为控制符和数据包、对控制符进行解析、以及按照协议规定将接收的数据包输出至用户输出接口;
链路层状态寄存器,用于存储协议控制器链路层的状态信息。
[0008] 进一步地,所述链路层发送侧功能单元包括:发送包缓存管理模块、数据包发送模块、控制符生成模块、以及控制符与数据包合并模块;其中:发送包缓存管理模块,用于对用户输入接口输入的数据进行存储、分类和调度;根据协议规定的QoS规则选择优先发送的数据包,将优先发送的数据包输出至数据包发送模块;
数据包发送模块,用于接收发送包缓存管理模块输出的数据包,并在数据包发送过程中计算并插入CRC;
控制符生成模块,用于根据链路层状态寄存器存储的状态信息生成控制符;
控制符与数据合并模块,用于根据协议规定选择数据包发送模块和控制符生成模块的数据进行组合,将组合后的数据输出至PCS输入并行总线。
[0009] 进一步地,所述数据包发送模块包括:CRC插入子模块和CRC计算子模块;其中:CRC计算子模块,用于对发送的数据按包计算CRC;
CRC插入子模块,根据协议规定在发送的数据包中插入所述CRC。
[0010] 进一步地,所述控制符生成模块包括:第一TCAM子模块、控制符存储器、第一微码指令存储器和第一微码指令执行子模块;其中:第一TCAM子模块,用于存储协议控制器链路层状态寄存器的值;
控制符存储器,用于协议规定的所有控制符;
第一微码指令存储器,用于存储逻辑运算指令;
第一微码指令执行子模块,用于根据当前链路层状态寄存器的值和第一微码指令存储器输出的逻辑运算指令对控制符存储器输出的控制符进行修改得到最终控制符;
其中,根据第一TCAM子模块输出的值查表得到一个唯一地址,根据所述唯一地址查表得到用于生成最终控制符的所述控制符和所述逻辑运算指令。
[0011] 进一步地,所述链路层接收侧功能单元包括:控制符与数据分离模块、控制符解析模块、数据包接收模块和接收包缓存管理模块;其中:控制符与数据分离模块,用于判断当前PCS输入并行总线上的数据类型:若当前PCS输入并行总线上的数据是控制符,将PCS输入并行总线上的数据输入至控制符解析模块;若当前PCS输入并行总线上的数据是数据包,则将PCS输入并行总线上的数据输送至数据包接收模块;
控制符解析模块,用于解析控制符,提取并处理控制符中的命令和信息;
数据包接收模块,用于对接收的数据进行对齐和校验,将校验后的数据和相关校验信息发送至接收包缓存管理模块;
接收包缓存管理模块,用于对数据包接收模块发送的数据进行存储、分类和调度,根据QoS规则选择优先发送的数据包,将优先发送的数据包输出至用户输出接口。
[0012] 进一步地,所述数据包接收模块包括:数据包重组子模块和CRC校验子模块;其中:数据包重组子模块,用于对接收的数据进行重组操作,所述重组操作包括根据控制符解析模块输出的包起始信息和包结束信息,对接收的数据进行对齐,将对齐后的并行数据输入到CRC校验模块;
CRC校验子模块,用于对接收的数据进行校验,并将校验结果写入链路层状态寄存器。
[0013] 进一步地,所述控制符解析模块包括:第二TCAM子模块、第二微码指令存储器和第二微码指令执行子模块;其中:第二TCAM子模块,用于存储协议规定的所有控制符;
第二微码指令存储器,用于存储逻辑运算指令;
第二微码指令执行子模块,用于根据第二微码指令存储器输出的逻辑运算指令对输入的控制符和当前链路层状态寄存器的值进行运算,并将运算结果存储至链路层状态寄存器;
其中,第二TCAM子模块根据输入的控制符得到一个唯一地址,根据所述唯一地址得到用于进行运算的所述逻辑运算指令。
[0014] 进一步地,所述状态信息包括:接收控制符信息、发送控制符信息、收发控制符计数、收发包计数和收发缓存空闲信息中的至少一种。
[0015] 第二方面,本发明提供一种软件定义的协议控制器的控制方法,包括:步骤1:接收用户输入接口输入的数据包,对所述数据包进行包缓存和管理,并选择优先发送的数据包;
步骤2:根据链路层的状态信息生成链路维护和数据包收发相关的控制符;
步骤3:将数据包和控制符发送至PCS输入并行总线;
步骤4:接收PCS输入并行总线上的数据;
步骤5:将PCS输入并行总线上的数据分离为控制符和数据包;
步骤6:对控制符进行解析;
步骤7:根据控制符的解析结果将接收的数据包进行重组和CRC校验,按照协议规定和数据包的优先级将通过CRC校验后的正确的数据包先后输出至用户输出接口。
[0016] 第三方面,本发明提供一种电子设备,该电子设备包括:存储器和处理器,所述处理器和所述存储器通过总线完成相互间的通信;所述存储器存储有可被所述处理器执行的程序指令,所述处理器调用所述程序指令能够执行如下方法:接收用户输入接口输入的数据包,对所述数据包进行包缓存和管理,并选择优先发送的数据包;根据链路层的状态信息生成链路维护和数据包收发相关的控制符;将数据包和控制符发送至PCS输入并行总线;接收PCS输入并行总线上的数据;将PCS输入并行总线上的数据分离为控制符和数据包;对控制符进行解析;根据控制符的解析结果将接收的数据包进行重组和CRC校验,按照协议规定和数据包的优先级将通过CRC校验后的正确的数据包先后输出至用户输出接口。
[0017] 第四方面,本发明提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如下方法:接收用户输入接口输入的数据包,对所述数据包进行包缓存和管理,并选择优先发送的数据包;根据链路层的状态信息生成链路维护和数据包收发相关的控制符;将数据包和控制符发送至PCS输入并行总线;接收PCS输入并行总线上的数据;将PCS输入并行总线上的数据分离为控制符和数据包;对控制符进行解析;根据控制符的解析结果将接收的数据包进行重组和CRC校验,按照协议规定和数据包的优先级将通过CRC校验后的正确的数据包先后输出至用户输出接口。
[0018] 本发明的有益效果:本发明提供的一种软件定义的协议控制器及方法,可根据协议需求,采用软件编程的方式对协议控制器硬件的定制,大大增加了接口的实用性和通用性,相比现有的固定协议控制器方案,本协议控制器具有如下好处:(1)可根据需求改变控制器的协议类型;(2)根据用户需求增加或者删除控制符、数据包格式等,实现定制化的协议通信;(3)在多种协议应用场合下,大大提高的灵活性和实用性。
附图说明
[0019] 图1为本发明实施例提供的一种软件定义的协议控制器的结构示意图;图2为本发明实施例提供的一种控制符生成模块和控制符解析模块的结构示意图;
图3为本发明实施例提供的一种数据包发送模块和数据包接收模块的结构示意图;
图4为本发明实施例提供的一种软件定义的协议控制器的控制方法的流程示意图;
图5为本发明实施例提供的一种电子设备的结构示意图;
图6为现有技术提供的传统协议控制器的结构示意图。

具体实施方式

[0020] 为使本发明的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0021] 通过对不同协议的链路层功能进行分析,链路层主要完成链路维护和包的收发,其中链路维护一般通过几种格式相对固定的控制符或者控制序列实现的,比如RapidIO协议的包起始控制符、结束控制符、状态控制符、链路请求控制符、链路响应控制符、包确认控制符等。链路层通过接收和发送相应的控制符实现链路的维护和包的收发;包的收发功能主要是在接收端根据包起始控制符和结束控制符判断数据包的起始和结束,对输入的并行数据进行对齐重组和校验,根据校验结果,包的接收过程会触发发送侧发送相应的控制符告知对端接口数据包是否正确接收或者出现错误;在发送端,根据链路中数据通路位宽对发送包缓存中的数据包进行顺序发送,并且在发送数据包的过程中在数据包头添加包起始控制符,在包尾添加结束控制符,控制符和数据包共享链路层与PCS层之间的并行数据收发通路。通过分析链路层的功能,本发明提出一种新的基于软件定义的协议控制器架构。
[0022] 本发明实施例提供的一种软件定义的协议控制器包括:链路层发送侧功能单元、链路层接收侧功能单元和链路层状态寄存器;其中:链路层发送侧功能单元,用于对用户输入接口输入的数据包进行包缓存和管理、按优先级选择优先发送的数据包、生成链路维护和数据包收发相关的控制符、以及按照协议规定将数据包和控制符组合发送至PCS输入并行总线;
链路接收侧功能单元,用于接收PCS输入并行总线上的数据、将PCS输入并行总线上的数据分离为控制符和数据包、对控制符进行解析、以及按照协议规定将接收的数据包输出至用户输出接口;
链路层状态寄存器,用于存储协议控制器链路层的状态信息。
[0023] 具体地,本发明实施例提供的协议控制器的工作流程为:首先,链路层发送侧功能单元接收用户输入接口输入的数据包,对所述数据包进行包缓存和管理,并选择优先发送的数据包;然后,链路层发送侧功能单元根据链路层的状态信息生成链路维护和数据包收发相关的控制符,并将需要优先发送的数据包和生成的控制符发送至PCS输入并行总线;接着,链路接收侧功能单元接收PCS输入并行总线上的数据,并将PCS输入并行总线上的数据分离为控制符和数据包,并将分离出来的数据包进行重组形成完整的数据包存入缓存;最后,链路接收侧功能单元对控制符进行解析,根据控制符的解析结果按照协议规定将接收的数据包输出至用户输出接口。
[0024] 其中,PCS:全称Physical Coding Sublayer,指物理编码子层;如图1所示,本发明实施例提供有一种软件定义的协议控制器,包括:链路层发送侧功能单元11、链路层接收侧功能单元12和链路层状态寄存器13。其中:
所述链路层发送侧功能单元11包括:发送包缓存管理模块111、数据包发送模块112、控制符生成模块113和控制符与数据合并模块114;发送包缓存管理模块111用于对用户输入接口输入的数据进行存储、分类和调度;根据协议规定的QoS规则选择优先发送的数据包,将优先发送的数据包输出至数据包发送模块112;数据包发送模块112用于接收发送包缓存管理模块111输出的数据包,并在数据包数据包发送过程中计算并插入CRC;控制符生成模块113用于根据链路层状态寄存器13存储的状态信息生成控制符;控制符与数据合并模块
114用于根据协议规定选择数据包发送模块112和控制符生成模块113的数据进行组合,然后将组合后的数据输出至PCS输入并行总线。
[0025] 所述链路层接收侧功能单元12包括:控制符与数据分离模块121、控制符解析模块122、数据包接收模块123和接收包缓存管理模块124;控制符与数据分离模块121用于判断当前PCS输入并行总线上的数据类型:若当前PCS输入并行总线上的数据是控制符,将PCS输入并行总线上的数据输入至控制符解析模块122;若当前PCS输入并行总线上的数据是数据包,则将PCS输入并行总线上的数据输送至数据包接收模块123;控制符解析模块122用于解析控制符,提取并处理控制符中的命令和信息;数据包接收模块123用于对接收的数据进行对齐和校验,将校验后的数据和相关校验信息发送至接收包缓存管理模块124;接收包缓存管理模块124用于对数据包接收模块123发送的数据进行存储、分类和调度,根据QoS规则选择优先发送的数据包,将优先发送的数据包输出至用户输出接口。
[0026] 具体地,本发明实施例提供的协议控制器在发送侧的工作流程为:首先,发送包缓存管理模块111接收用户由用户输入接口输入的数据,对输入的数据进行存储、分类和调度;并根据QoS规则选择优先发送的数据包,将该数据包输出至数据包发送模块112;然后,数据包发送模块112接收发送包缓存管理模块111输出的数据包,将接收到的数据包发送至控制符与数据合并模块114,并在数据包发送过程中计算并插入CRC;接着,控制符生成模块113根据链路层状态寄存器13存储的状态信息生成控制符,并将该控制符发送至控制符与数据合并模块114;最后,控制符与数据合并模块114接收数据包发送模块112输出的数据包和控制符生成模块113输出的控制符,将接收的两个模块的数据输出至PCS输入并行总线。
[0027] 本发明实施例的协议控制器在接收侧的工作流程为:首先,控制符与数据分离模块121接收PCS输入并行总线上的数据,判断当前PCS输入并行总线上的数据类型:若当前PCS输入并行总线上的数据是控制符,将PCS输入并行总线上的数据输入至控制符解析模块122;若当前PCS输入并行总线上的数据是数据包,则将PCS输入并行总线上的数据输送至数据包接收模块123;然后,控制符解析模块122接收控制符与数据分离模块121输出的控制符,对该控制符进行解析,提取并处理控制符中的命令和信息;接着,数据包接收模块123接收控制符与数据分离模块121输出的数据包,对接收的并行数据进行对齐和校验,将校验后的并行数据和相关校验信息发送至接收包缓存管理模块124;最后,接收包缓存管理模块
124接收数据包接收模块123输出的数据,根据QoS规则选择优先发送的数据包,将优先发送的数据包输出至用户输出接口。
[0028] 举例解释一下控制符解析模块122提取并处理控制符中的命令和信息:比如包起始控制符,控制符解析模块122需要告知数据包接收模块123从包起始控制符后续的数据是数据包的开始。如果是链路状态请求控制符,需要触发发送侧根据当前的状态发送状态控制符。如果是包确认控制符,那么根据不同协议的定义,就需要更新信用量寄存器或者告知发送数据包缓存管理模块释放相应的存储空间。
[0029] 链路层状态寄存器13存储的状态信息包括:接收控制符信息、发送控制符信息、收发控制符计数、收发包计数和收发缓存空闲信息中的至少一种。
[0030] 其中,QoS:全称Quality of Service,指服务质量
[0031] 另外,发送包缓存管理模块111需要配合接收侧的控制符解析模块122来实现流量控制。
[0032] 在上述实施例的基础上,如图2所示,本发明实施例提供一种控制符生成模块113和控制符解析模块122。其中:所述控制符生成模块113包括:第一TCAM子模块1131、控制符存储器1132、第一微码指令存储器1133和第一微码指令执行子模块1134;第一TCAM子模块1131用于存储协议控制器链路层状态寄存器13的值;控制符存储器1132用于协议规定的所有控制符;第一微码指令存储器1133用于存储逻辑运算指令;第一微码指令执行子模块1134用于根据当前链路层状态寄存器13的值和第一微码指令存储器1133输出的逻辑运算指令对控制符存储器1132输出的控制符进行修改得到最终控制符;其中,根据第一TCAM子模块1131输出的值查表得到一个唯一地址,根据所述唯一地址查表得到用于生成最终控制符的所述控制符和所述逻辑运算指令。
[0033] 所述控制符解析模块122包括:第二TCAM子模块1221、第二微码指令存储器1222和第二微码指令执行子模块1223;第二TCAM子模块1221用于存储协议规定的所有控制符;第二微码指令存储器1222用于存储逻辑运算指令;第二微码指令执行子模块1223用于根据第二微码指令存储器1222输出的逻辑运算指令对输入的控制符和当前链路层状态寄存器13的值进行运算,并将运算结果存储至链路层状态寄存器13;其中,第二TCAM子模块1131根据输入的控制符得到一个唯一地址,根据所述唯一地址得到用于进行运算的所述逻辑运算指令。
[0034] 具体地,在控制符生成模块113中,第一TCAM子模块1131存储了协议控制器链路层相关状态寄存器的内容,首先,根据状态寄存器的值,第一TCAM子模块1131可通过查表输出一个唯一地址,该地址同时索引第一微码指令存储器1133和控制符存储器1132,其中控制符存储器1132存储了该协议所有的控制符;然后,控制符存储器1132根据该地址可通过查表输出一个初始控制符至第一微码指令执行子模块1134,第一微码指令存储器1133根据该地址可通过查表输出一条用于逻辑运算的微码指令至第一微码指令执行子模块1134;最后,第一微码指令执行子模块1134根据当前链路层状态寄存器13的值和微码指令对初始控制符进行修改,输出最终的控制符,并同时更新相关状态寄存器的值。
[0035] 在控制符解析模块122中,第二TCAM子模块1221存储了协议所有的控制符,首先,第二TCAM子模块1221根据输入的控制符可通过查表得到一个唯一地址,该地址索引第二微码指令存储器1222;然后,第二微码指令存储器1222根据该地址可通过查表输出相应的微码指令至第二微码执行子模块;最后,第二微码指令执行子模块1223根据该微码指令对当前链路层状态寄存器13的值和输入的控制符进行相应的运算,并将运算结果写入到相应的链路层状态寄存器13当中。
[0036] 微码指令主要包括可以对微码指令执行子模块的输入数据的任意位段进行加、减、与、或、异或、移位、置位、清除等逻辑运算的指令。
[0037] TCAM :全称为Ternary Content AddressableMemory,是一种三态内容寻址存储器。
[0038] 需要说明的是,不同协议链路层的区别主要体现在控制符和包格式的不同,但是每一种协议的控制符和包格式都相对固定。
[0039] 由上述内容可知,本发明实施例采用TCAM+可编程微码指令的方式实现接收端控制符的解析以及发送端控制符的生成,可根据协议的需求对链路层的控制符进行编程和定制实现软件定义协议控制器。
[0040] 在上述各实施例的基础上,如图3所示,本发明实施例提供一种可根据需要进行配置的数据包发送模块112和数据包接收模块123。其中:所述数据包发送模块112包括:CRC计算子模块1121和CRC插入子模块1122;CRC计算子模块1121用于对接收的数据按包计算CRC;CRC插入子模块1122用于根据协议规定在发送的数据包中插入所述CRC。
[0041] 所述数据包接收模块123包括:数据包重组子模块1231和CRC校验子模块1232;数据包重组子模块1231用于对接收的数据进行重组操作,所述重组操作包括根据控制符解析模块122输出的包起始信息和包结束信息,对接收的数据进行对齐,将对齐后的并行数据输入到CRC校验模块;CRC校验子模块1232用于对接收的数据进行校验,并将校验结果写入链路层状态寄存器13。
[0042] 具体地,数据包发送模块112主要完成数据包CRC计算、计数和发送;数据包接收模块123主要完成并行数据的重组、计数和校验。
[0043] 在发送侧:首先,CRC计算子模块1121对输入的并行数据按包进行CRC计算;然后,CRC插入子模块1122根据协议规定在数据包中或者结尾添加计算所得的CRC,完成链路层数据包的封装。
[0044] 在接收侧:首先,数据包重组子模块1231根据输入的并行数据和相应的控制符信息对输入的并行数据进行重组,重组操作包括根据控制符解析模块122给出的包起始信息和包结束信息,对输入的并行数据(中间可能有气泡)进行对齐,对齐之后的并行数据输入到CRC校验子模块1232;然后,CRC校验子模块1232接收数据包重组子模块1231输出的数据,对该数据进行校验,并将校验结果写入相应的链路层状态寄存器13。
[0045] 需要说明的是,数据包接收模块123和数据包发送模块112都会对数据包的长度进行统计,确保接收和发送的数据包总长度不会大于协议要求的最大包长。
[0046] 由上述内容可知,本发明实施例可根据协议的需要对数据包的长度和CRC计算规则进行定制实现软件定义协议控制器。
[0047] 如图4所示,本发明实施例提供一种软件定义的协议控制器的控制方法,该方法包括:S101:协议控制器接收用户输入接口输入的数据包,对所述数据包进行包缓存和管理,并选择优先发送的数据包;
S102:协议控制器根据链路层的状态信息生成链路维护和数据包收发相关的控制符;
S103:协议控制器将数据包和控制符发送至PCS输入并行总线;
S104:协议控制器接收PCS输入并行总线上的数据;
S105:协议控制器将PCS输入并行总线上的数据分离为控制符和数据包;
S106:协议控制器对控制符进行解析;
S107:协议控制器根据控制符的解析结果将接收的数据包进行重组和CRC校验,按照协议规定和数据包的优先级将通过CRC校验后的正确的数据包先后输出至用户输出接口。
[0048] 图5为本发明实施例提供的电子设备的结构框图。如图5所示,该电子设备包括:存储器502和处理器501,所述处理器501和所述存储器502通过总线503完成相互间的通信;所述存储器502存储有可被所述处理器执行的程序指令,所述处理器501调用所述程序指令能够执行如下方法,例如包括:接收用户输入接口输入的数据包,对所述数据包进行包缓存和管理,并选择优先发送的数据包;根据链路层的状态信息生成链路维护和数据包收发相关的控制符;将数据包和控制符发送至PCS输入并行总线;接收PCS输入并行总线上的数据;将PCS输入并行总线上的数据分离为控制符和数据包;对控制符进行解析;根据控制符的解析结果将接收的数据包进行重组和CRC校验,按照协议规定和数据包的优先级将通过CRC校验后的正确的数据包先后输出至用户输出接口。
[0049] 本发明实施例还提供一种计算机程序产品,所述计算机程序产品包括存储在非暂态计算机可读存储介质上的计算机程序,所述计算机程序包括程序指令,当所述程序指令被计算机执行时,计算机能够执行上述各方法实施例所提供的方法,例如包括:接收用户输入接口输入的数据包,对所述数据包进行包缓存和管理,并选择优先发送的数据包;根据链路层的状态信息生成链路维护和数据包收发相关的控制符;将数据包和控制符发送至PCS输入并行总线;接收PCS输入并行总线上的数据;将PCS输入并行总线上的数据分离为控制符和数据包;对控制符进行解析;根据控制符的解析结果将接收的数据包进行重组和CRC校验,按照协议规定和数据包的优先级将通过CRC校验后的正确的数据包先后输出至用户输出接口。
[0050] 本发明实施例还提供一种计算机可读存储介质,所述计算机可读存储介质存储计算机指令,所述计算机指令使所述计算机执行上述各方法实施例所提供的方法,例如包括:接收用户输入接口输入的数据包,对所述数据包进行包缓存和管理,并选择优先发送的数据包;根据链路层的状态信息生成链路维护和数据包收发相关的控制符;将数据包和控制符发送至PCS输入并行总线;接收PCS输入并行总线上的数据;将PCS输入并行总线上的数据分离为控制符和数据包;对控制符进行解析;根据控制符的解析结果将接收的数据包进行重组和CRC校验,按照协议规定和数据包的优先级将通过CRC校验后的正确的数据包先后输出至用户输出接口。
[0051] 对异构协议终端进行互连互通,还可以基于现场可编程级阵列(FPGA)的方案,但是FPGA是细粒度的可编程器件,其资源消耗大,面积大,并且不适合集成在传统的处理器芯片上。相比于基于FPGA的方案,本发明的协议控制器架构支持软件定义,通过软件编程就能改变协议控制器支持的协议类型,实现方式灵活,修改简单。
[0052] 最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈