一种RapidIO协议到FC协议的转换方法与流程

文档序号:16276641发布日期:2018-12-14 22:37阅读:535来源:国知局
一种RapidIO协议到FC协议的转换方法与流程

本发明属于网络通信技术领域,尤其是涉及一种rapidio协议到fc协议的转换系统及方法。

背景技术

随着现代技术的发展,异构网络之间实现高速实时通信的需求越来越急迫。fc是一种高性能的、基于帧交换的5层体系协议,最初为了满足服务器和存储设备之间传送业务而高度优化的开放式网络通道技术。rapidio是一种基于高性能包交换的互联技术,主要功能是完成在一个节点系统内的微处理器、dsp、系统存储器以及外设之间的高速传输数据。

现有技术主要在rapidio和fc之间设计了一个桥接模块,实现rapidioip核用户接口信号与fc核用户接口信号的转接,转接部分以fifo的形式实现。rapidio端点发送nwrite包,分别使用数据fifo和命令fifo传输数据和控制信号。最终完成rapidio端点与fc端点的连接与通信。这种转接方式未对包头作映射处理,直接提取rapidio包负载封装为fc帧,只实现了一种rapidio包类型的协议转换,且未对错帧进行校验筛选,而是直接进行了转换。



技术实现要素:

有鉴于此,本发明旨在提出一种rapidio协议到fc协议的转换系统及方法,通过对rapidio包进行事务检错、包头解析和拼包处理,实现多种类包的协议转换以及包头的解析和映射,同时实现了挤气泡和拼包处理,提高了转换效率。

为达到上述目的,本发明的技术方案是这样实现的:

一种rapidio协议到fc协议的转换系统,包括rapidio协议包处理模块(loe_r)、协议转换查表模块(match)、fc-ae-asm协议组包模块(aoe_t)和缓冲模块(buffer);

所述rapidio协议包处理模块(loe_r)用以事务检错、包头解析和拼包处理,该rapidio协议包处理模块(loe_r)解析包头信息,识别有效事务,丢弃无效事务,对有效事务的负载进行拼包处理后连同有效事务的包头信息输出至保存负载的缓冲模块(buffer);

所述缓冲模块(buffer)将其内的包头信息输出至协议转换查表模块(match),同时将其内的负载按照fc-ae-asm单个帧的最大长度切包处理,并将切出的负载输出至fc-ae-asm协议组包模块(aoe_t);

所述协议转换查表模块(match)通过查表法将rapidio协议的包头信息转换成对应fc-ae-asm协议的包头信息,输出至fc-ae-asm协议组包模块(aoe_t);

所述fc-ae-asm协议组包模块(aoe_t)根据协议转换查表模块(match)输出的包头信息字段、寄存器输出的可配字段和该fc-ae-asm协议组包模块(aoe_t)的自定义字段,组成fc-ae-asm帧头,结合所述缓冲模块(buffer)输出的负载拼成一个完成的fc-ae-asm帧。

进一步的,所述rapidio协议包处理模块(loe_r)、协议转换查表模块(match)、fc-ae-asm协议组包模块(aoe_t)和缓冲模块(buffer)之间均通过128bit的axi-stream总线进行数据的传输。

一种rapidio协议到fc协议的转换方法,包括以下步骤:

(1)包头解析与事务检错,用以解析包头信息,识别rapidio包中的有效事务,丢弃无效事务,并将有效事务的包头信息存入缓冲模块(buffer);

(2)拼包处理,对有效事务的负载进行拼包处理后存入缓冲模块(buffer);

(3)查表映射及切包处理,缓冲模块(buffer)将其内的包头信息输出至协议转换查表模块(match),协议转换查表模块(match)通过查表法将rapidio协议的包头信息转换成对应fc-ae-asm协议的包头信息输出,同时该缓冲模块(buffer)将其内的负载按照fc-ae-asm单个帧的最大长度切包输出;

(4)组包处理,根据查表映射的对应fc-ae-asm协议的包头信息字段、寄存器输出的可配字段和组包自定义字段,组成fc-ae-asm帧头,结合所述缓冲模块(buffer)输出的负载拼成一个完成的fc-ae-asm帧。

进一步的,所述rapidio包包括nwrite+nwrite_r组合和message,所述nwrite+nwrite_r组合指的是rapidio端点发送多个nwrite事务,以一个nwrite_r事务作为结束。

进一步的,所述事务检错由rapidio协议包处理模块(loe_r)处理,包括以下步骤:

(11)rapidio协议包处理模块(loe_r)接收rapidio包,提取其包头信息,若rapidio包为nwrite+nwrite_r组合,则进行步骤(12),若rapidio包为message,则进行步骤(13);

(12)在同一个nwrite+nwrite_r组合中,以第一个事务为基准,所有事务的sourceid和destionationid对应相同,并且包与包之间的物理地址连续,后一个包的物理地址等于前一个包的物理地址加上其负载字节数,rapidio协议包处理模块(loe_r)判断事务是否满足以上条件,并进行步骤(14);

(13)同一个message中,同样以第一个事务为基准,所有事务的sourceid和destinationid以及信箱(mbox)和信件(letter)对应相同,rapidio协议包处理模块(loe_r)判断事务是否满足以上条件,并进行步骤(14);

(14)若事务满足上述条件,则为有效事务,若事务不满足上述条件,则为无效事务,rapidio协议包处理模块(loe_r)丢弃其负载。

进一步的,所述拼包处理由rapidio协议包处理模块(loe_r)进行,包括以下步骤:

(21)识别有效事务负载中的字节掩码;

(22)将字节掩码后方负载的有效字节移至高位;

(23)将有效负载拼成128bit输出至缓冲模块(buffer)。

进一步的,查表映射过程由协议转换查表模块(match)进行,该协议转换查表模块(match)通过hash查表法将rapidio协议的包头信息转换成对应fc-ae-asm协议的sourceid和destinationid以及优先级输出。

进一步的,所述组包处理由fc-ae-asm协议组包模块(aoe_t)进行,该fc-ae-asm协议组包模块(aoe_t)根据协议转换查表模块(match)输出的对应fc-ae-asm协议的sourceid和destinationid以及优先级、寄存器输出的可配字段和该fc-ae-asm协议组包模块(aoe_t)的自定义字段,组成fc-ae-asm帧头,结合所述缓冲模块(buffer)输出的负载拼成一个完成的fc-ae-asm帧。

相对于现有技术,本发明所述的rapidio协议到fc协议的转换系统及方法具有以下优势:

(1)本发明所述的rapidio协议到fc协议的转换系统及方法,实现了对二层协议的处理,即rapidio的逻辑层和fc-ae-asm的seuqence。

(2)本发明所述的rapidio协议到fc协议的转换系统及方法,以组合拳为颗粒度,实现nwrite+nwrite_r组合和message到sequence的转换。

(3)本发明所述的rapidio协议到fc协议的转换系统及方法,实现了多种类型包的协议转换,实现了包头的解析和映射,而不是协议的承载(over),实现了挤气泡和拼包处理,提高了转换效率。

附图说明

构成本发明的一部分的附图用来提供对本发明的进一步理解,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:

图1为本发明实施例所述的rapidio协议到fc协议的转换系统及方法的模块结构示意图。

具体实施方式

需要说明的是,在不冲突的情况下,本发明中的实施例及实施例中的特征可以相互组合。

在本发明的描述中,需要理解的是,术语“中心”、“纵向”、“横向”、“上”、“下”、“前”、“后”、“左”、“右”、“竖直”、“水平”、“顶”、“底”、“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。此外,术语“第一”、“第二”等仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”等的特征可以明示或者隐含地包括一个或者更多个该特征。在本发明的描述中,除非另有说明,“多个”的含义是两个或两个以上。

在本发明的描述中,需要说明的是,除非另有明确的规定和限定,术语“安装”、“相连”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通。对于本领域的普通技术人员而言,可以通过具体情况理解上述术语在本发明中的具体含义。

下面将参考附图并结合实施例来详细说明本发明。

如图1所示,本发明所述的rapidio协议到fc协议的转换系统包括rapidio协议包处理模块(loe_r)、协议转换查表模块(match)、fc-ae-asm协议组包模块(aoe_t)和缓冲模块(buffer);

所述rapidio协议包处理模块(loe_r)用以事务检错、包头解析和拼包处理,该rapidio协议包处理模块(loe_r)解析包头信息,识别有效事务,丢弃无效事务,对有效事务的负载进行拼包处理后连同有效事务的包头信息输出至保存负载的缓冲模块(buffer);

所述缓冲模块(buffer)将其内的包头信息输出至协议转换查表模块(match),同时将其内的负载按照fc-ae-asm单个帧的最大长度切包处理,并将切出的负载输出至fc-ae-asm协议组包模块(aoe_t);

所述协议转换查表模块(match)通过查表法将rapidio协议的包头信息转换成对应fc-ae-asm协议的包头信息,输出至fc-ae-asm协议组包模块(aoe_t);

所述fc-ae-asm协议组包模块(aoe_t)根据协议转换查表模块(match)输出的包头信息字段、寄存器输出的可配字段和该fc-ae-asm协议组包模块(aoe_t)的自定义字段,组成fc-ae-asm帧头,结合所述缓冲模块(buffer)输出的负载拼成一个完成的fc-ae-asm帧。

进一步的,所述rapidio协议包处理模块(loe_r)、协议转换查表模块(match)、fc-ae-asm协议组包模块(aoe_t)和缓冲模块(buffer)之间均通过128bit的axi-stream总线进行数据的传输。

本发明所述的rapidio协议到fc协议的转换方法,可以完成rapidio的nwrite+nwrite_r组合和message向fc-ae-asm的seuqence的转换,将rapidio包的源、目地址以及优先级字段通过查找协议转换表获取转换后的对应字段,完成协议转换过程必要的包头替换,形成fc-ae-asm包头,然后结合rapidio包负载组成fc-ae-asm协议包,该方法包括以下步骤:

(1)包头解析与事务检错,用以解析包头信息,识别rapidio包中的有效事务,丢弃无效事务,并将有效事务的包头信息存入缓冲模块(buffer);

(2)拼包处理,对有效事务的负载进行拼包处理后存入缓冲模块(buffer);

(3)查表映射及切包处理,缓冲模块(buffer)将其内的包头信息输出至协议转换查表模块(match),协议转换查表模块(match)通过查表法将rapidio协议的包头信息转换成对应fc-ae-asm协议的包头信息输出,同时该缓冲模块(buffer)将其内的负载按照fc-ae-asm单个帧的最大长度切包输出;

(4)组包处理,根据查表映射的对应fc-ae-asm协议的包头信息字段、寄存器输出的可配字段和组包自定义字段,组成fc-ae-asm帧头,结合所述缓冲模块(buffer)输出的负载拼成一个完成的fc-ae-asm帧。

进一步的,所述rapidio包包括nwrite+nwrite_r组合和message,所述nwrite+nwrite_r组合指的是rapidio端点发送多个nwrite事务,以一个nwrite_r事务作为结束。

进一步的,所述事务检错由rapidio协议包处理模块(loe_r)处理,包括以下步骤:

(11)rapidio协议包处理模块(loe_r)接收rapidio包,提取其包头信息,若rapidio包为nwrite+nwrite_r组合,则进行步骤(12),若rapidio包为message,则进行步骤(13);

(12)在同一个nwrite+nwrite_r组合中,以第一个事务为基准,所有事务的sourceid和destionationid对应相同,并且包与包之间的物理地址连续,后一个包的物理地址等于前一个包的物理地址加上其负载字节数,rapidio协议包处理模块(loe_r)判断事务是否满足以上条件,并进行步骤(14);

(13)同一个message中,同样以第一个事务为基准,所有事务的sourceid和destinationid以及信箱(mbox)和信件(letter)对应相同,rapidio协议包处理模块(loe_r)判断事务是否满足以上条件,并进行步骤(14);

(14)若事务满足上述条件,则为有效事务,若事务不满足上述条件,则为无效事务,rapidio协议包处理模块(loe_r)丢弃其负载。

为了保证协议转换的正确性,message事务必须保序发送,即msgseg从0开始递增。

进一步的,所述拼包处理由rapidio协议包处理模块(loe_r)进行,包括以下步骤:

(21)识别有效事务负载中的字节掩码;

(22)将字节掩码后方负载的有效字节移至高位;

(23)将有效负载拼成128bit输出至缓冲模块(buffer)。

nwrite、nwrite_r以及message事务的负载长度均为为8字节整数倍。在nwrite和nwrite_r事务中存在少于8字节的数据,由wrsize和wdptr字段产生字节掩码以表明数据的有效字节。axi-stream总线位宽为128bit,为了缓冲模块(buffer)的有效利用和转换效率的提高,在rapidio协议包处理模块(loe_r)进行拼包处理。包负载不满8字节时,将有效字节移至高位,并将有效负载有序拼成128bit输出至缓冲模块(buffer)。

fc-ae-asm单个帧最大长度为2096b,所以将缓冲模块(buffer)规格设为宽度128,深度131。

缓冲模块(buffer)保存rapidio包的负载并进行切包处理。当缓冲模块(buffer)中的数据大于等于一个fc-ae-asm帧的最大负载时,输出一个完整包负载到fc-ae-asm协议组包模块(aoe_t)。同时缓冲模块(buffer)将sourceid和destinationid以及优先级输出至协议转换查表模块(match)。最后将缓冲模块(buffer)中剩余数据当成一个完整包负载输出到fc-ae-asm协议组包模块(aoe_t)。

进一步的,查表映射过程由协议转换查表模块(match)进行,该协议转换查表模块(match)通过hash查表法将rapidio协议的包头信息转换成对应fc-ae-asm协议的sourceid和destinationid以及优先级输出。

进一步的,所述组包处理由fc-ae-asm协议组包模块(aoe_t)进行,该fc-ae-asm协议组包模块(aoe_t)根据协议转换查表模块(match)输出的对应fc-ae-asm协议的sourceid和destinationid以及优先级、寄存器输出的可配字段和该fc-ae-asm协议组包模块(aoe_t)的自定义字段,组成fc-ae-asm帧头,结合所述缓冲模块(buffer)输出的负载拼成一个完成的fc-ae-asm帧。

本发明的技术关键点在于:

设定以rapidio的nwrite+nwrite_r以及message作为一个组合拳来对应fc-ae-asm的一个sequence进行协议转换,在转换过程中对rapidio包头进行解析,并将sourceid、destinationid以及优先级通过hash查表映射成fc-ae-asm的对应字段,组成fc-ae-asm帧头,同时实现了硬件的包检错和拼包处理,提高了转换效率。

以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1