System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本专利技术涉及网络交换机,尤其涉及一种基于高位宽流水结构的协议无关百吉交换包头识别装置。
技术介绍
1、随着网络通信设备的发展,网络交换机已经从固定功能和协议相关的网络硬件转向可编程网络硬件。数据包协议识别电路通常被应用于可重构/可编程包解析器设备中,包解析的工作过程主要分为两步,第一步为使用数据包协议识别电路对包头协议进行识别,得到数据包的协议构成信息,第二步为使用包头字段提取器将包头字段提取到包头向量(packet header vector,phv)中。由于网络数据包层层封装的特性,对数据包协议识别的电路通常需要对包头的协议进行顺序识别,存在一定的并行化难度,容易成为网络交换设备中的性能瓶颈。同时,可编程网络交换设备要求数据包协议识别电路具有高度灵活性,包头识别电路需要基于协议无关的硬件结构进行设计,并且使用编程或配置的方法使其具有高度可自定义的数据包协议识别功能。支持高度可自定义的数据包协议识别电路可以基于多种结构实现,包括状态机、深度流水线、定制专用处理器等。
2、目前,为了实现包头协议类型识别,提出了一种使用定制专用的类risc处理器实现可重构的包头协议类型识别方法。该方法使用一个数据总线为32bit位宽的定制处理器,对于一层包头的识别,由于32bit的数据总线位宽,该处理器需要执行多条指令完成对包头的识别和字段提取,例如在对以太网包头进行识别,需要执行i0~i3四条指令,并在一层包头识别完成后,需要等待多个周期完成指令的分支跳转以执行识别数据包中的下一级包头,对于取指电路,其在t4~t8周期都处于空闲状
3、然而,现有技术使用了32bit的较小的数据总线位宽,数据总线为32bit位宽的定制处理器在进行单个包头协议识别时,需要使用多个指令周期从包缓存中读取包数据,再使用多个指令周期完成包头协议类型的识别,这种数据访问速率的限制导致其吞吐率较低;同时,由于数据包协议顺序识别的要求,在包头协议间进行分支时,该处理器存在指令跳转所带来的流水线分支气泡问题。
技术实现思路
1、本专利技术实施例的目的是提供一种基于高位宽流水结构的协议无关百吉交换包头识别装置及方法,解决识别包头协议类型的吞吐率较低以及存在指令跳转所带来的流水线分支气泡的问题。
2、为解决上述技术问题,本专利技术实施例提供如下技术方案:
3、本专利技术第一方面提供一种基于高位宽流水结构的协议无关百吉交换包头识别装置,装置包括:
4、任务向量fifo模块,用于接收包头识别任务向量;
5、分支判断模块,用于在接收到包头识别任务向量时,输出包头识别任务向量,在接收到包头识别任务向量和未完成的任务向量时,输出未完成的任务向量;
6、指令与数据读取模块,用于对包头识别任务向量或未完成的任务向量进行提取处理和对齐处理,以输出对齐后的任务向量、指令和包数据,对齐后的指令为超长指令字形式的指令;
7、包头识别处理流水线模块,用于对超长指令字形式的指令和对齐后的包数据进行译码和执行处理,以输出包头协议构成向量和对齐后的任务向量,并将包头协议构成向量与对齐后的任务向量进行更新,以输出更新后的任务向量,更新后的任务向量包含有任务完成标志;
8、结果收集模块,用于根据任务完成标志,判断更新后的任务向量是否被处理完成,若是,则输出包头协议识别结果,若否,则将更新后的任务向量中未完成的任务向量发送至分支判断模块继续执行。
9、本申请第二方面提供一种基于高位宽流水结构的协议无关百吉交换包头识别方法,方法包括:
10、接收包头识别任务向量;
11、在接收到包头识别任务向量时,输出包头识别任务向量,在接收到包头识别任务向量和未完成的任务向量时,输出未完成的任务向量;
12、对包头识别任务向量或未完成的任务向量进行提取处理和对齐处理,以输出对齐后的任务向量、指令和包数据,对齐后的指令为超长指令字形式的指令;
13、对超长指令字形式的指令和对齐后的包数据进行译码和执行处理,以输出包头协议构成向量和对齐后的任务向量,并将包头协议构成向量与对齐后的任务向量进行更新,以输出更新后的任务向量,更新后的任务向量包含有任务完成标志;
14、根据任务完成标志,判断更新后的任务向量是否被处理完成,若是,则输出包头协议识别结果,若否,则将更新后的任务向量中未完成的任务向量发送至分支判断模块继续执行。
15、相较于现有技术,本专利技术提供的基于高位宽流水结构的协议无关百吉交换包头识别装置,包括任务向量fifo模块,用于接收包头识别任务向量;分支判断模块,用于在接收到包头识别任务向量时,输出包头识别任务向量,在接收到包头识别任务向量和未完成的任务向量时,输出未完成的任务向量;指令与数据读取模块,用于对包头识别任务向量或未完成的任务向量进行提取处理和对齐处理,以输出对齐后的任务向量、指令和包数据;包头识别处理流水线模块,用于对超长指令字形式的指令和对齐后的包数据进行译码和执行处理,以输出包头协议构成向量和对齐后的任务向量,并将包头协议构成向量与对齐后的任务向量进行更新,以输出更新后的任务向量;结果收集模块,用于根据任务完成标志,判断更新后的任务向量是否被处理完成,若是,则输出包头协议识别结果,若否,则将更新后的任务向量中未完成的任务向量发送至分支判断模块继续执行。这样,包头识别装置可以使用超长指令字对包数据进行处理,结合超大位宽结构的数据总线,能够使用单条指令实现单层包头的识别,提高包头识别的吞吐率,并且通过分支判断模块确定输出包头识别任务向量或未完成的任务向量,通过包头识别处理流水线模块交替执行包头识别任务向量或未完成的任务向量,实现数据包协议识别任务的并行化处理,对流水线的分支气泡进行了掩盖,不存在指令跳转所带来的流水线分支气泡,避免了包头数据依赖引起的性能损失,使得包头识别具有更好的性能。
本文档来自技高网...【技术保护点】
1.一种基于高位宽流水结构的协议无关百吉交换包头识别装置,其特征在于,所述装置包括:
2.根据权利要求1所述的装置,其特征在于,所述指令与数据读取模块,包括:
3.根据权利要求1所述的装置,其特征在于,所述包头识别处理流水线模块,包括:
4.根据权利要求3所述的装置,其特征在于,所述执行子模块,包括:
5.根据权利要求4所述的装置,其特征在于,所述执行子模块,还包括:
6.根据权利要求5所述的装置,其特征在于,所述执行子模块,还包括:
7.根据权利要求6所述的装置,其特征在于,所述执行子模块,还包括:
8.根据权利要求7所述的装置,其特征在于,所述写回子模块,包括:
9.根据权利要求1所述的装置,其特征在于,所述装置还包括:
10.一种基于高位宽流水结构的协议无关百吉交换包头识别方法,其特征在于,所述方法包括:
【技术特征摘要】
1.一种基于高位宽流水结构的协议无关百吉交换包头识别装置,其特征在于,所述装置包括:
2.根据权利要求1所述的装置,其特征在于,所述指令与数据读取模块,包括:
3.根据权利要求1所述的装置,其特征在于,所述包头识别处理流水线模块,包括:
4.根据权利要求3所述的装置,其特征在于,所述执行子模块,包括:
5.根据权利要求4所述的装置,其特征在于,所述执行子模块,还包...
【专利技术属性】
技术研发人员:李康,赵雨晨,史江义,潘伟涛,郭卫,郝跃,
申请(专利权)人:西安电子科技大学,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。