基于P4语言实现的可编程硬件逻辑架构和逻辑实现方法技术

技术编号:32977392 阅读:12 留言:0更新日期:2022-04-09 11:57
本发明专利技术公开了一种基于P4语言实现的可编程硬件逻辑架构和逻辑实现方法。所述可编程硬件逻辑架构包括:报文接收模块、数据缓存模块、报文发送模块和可编程逻辑单元;所述可编程逻辑单元进一步包括:提取指令存储模块、提取数据模块、匹配模块、动作指令存储模块和动作模块。本发明专利技术的可编程硬件逻辑架构,允许用户使用P4语言对采用该架构的芯片进行二次开发,将任意网络报文进行识别,任意位域进行赋值、移位、常用ALU操作,增加芯片的使用场景。采用本发明专利技术的可编程硬件逻辑架构,不用为每个新项目整体重新编写代码,有利于提升硬件代码开发效率。率。率。

【技术实现步骤摘要】
基于P4语言实现的可编程硬件逻辑架构和逻辑实现方法


[0001]本公开涉及可编程硬件
,具体涉及一种基于P4语言实现的可编程硬件逻辑架构和逻辑实现方法。

技术介绍

[0002]随着现代通信技术的发展,不同网络之间实现高速实时通信的需求越来越复杂。有时需要根据实际的互联网络对网络协议报文做控制平面处理,传统交换芯片流片后无法支持用户对网络协议控制平面定制化处理,即无法进行二次开发操作。
[0003]斯坦福大学的Nick McKeown教授为了充分解放数据平面的编程能力,于2014年首次设计并提出了数据平面特定领域编程语言P4,经提出就得到了学术界和工业界的广泛关注和认可。工业界纷纷跟进并着手研制了一系列高性能的可编程硬件。一方面基于可编程硬件的可定制化特性能够快速实现和验证一些新型的网络架构、功能和协议,极大加速了网络演进和创新;另一方面基于可编程硬件的高性能特性,传统上由灵活但低性能的中间件实现的一些比如防火墙,负载均衡等较为简单的网络功能可以卸载到可编程数据平面上实现来获取可观的性能提升。

技术实现思路

[0004]本专利技术主要解决的技术问题是,提供一种基于P4语言实现的可编程硬件逻辑架构,允许用户使用P4语言对采用该种架构的芯片进行二次开发,增加芯片的使用场景。本专利技术还提供一种可编程硬件的逻辑实现方法。
[0005]第一方面,本公开提供了一种基于P4语言实现的可编程硬件逻辑架构,包括:报文接收模块、数据缓存模块、报文发送模块和可编程逻辑单元;所述可编程逻辑单元包括:提取指令存储模块、提取数据模块、匹配模块、动作指令存储模块和动作模块;其中,所述报文接收模块,用于接收报文,识别报文是否有效,将有效的报文存入所述数据缓存模块,以及,根据接收的报文生成描述符并输出给所述可编程逻辑单元,所述描述符中包括约定的部分报文信息和提取指令的存储地址;所述数据缓存模块,用于缓存所述报文接收模块存入的报文,以及,将缓存的报文提供给所述报文发送模块;所述提取数据模块,用于根据所述描述符携带的存储地址,从所述提取指令存储模块中获取提取指令,根据获取的提取指令,从所述描述符中提取指定位置的数据,将得到的提取数据输出给所述匹配模块;所述匹配模块,用于将所述提取数据与存储的匹配数据进行比较,根据比较结果输出动作指令的存储地址给所述动作模块;所述动作模块,用于根据收到的存储地址,从所述动作指令存储模块中获取动作指令,根据获取的动作指令,对所述描述符进行相应的修改,将修改后的描述符输出给所述报文发送模块;所述报文发送模块,用于从所述数据缓存模块获取报文,从所述动作模块获取修改后的描述符,将修改后的描述符与报文进行拼包处理后输出。
[0006]在一些可选的实现方式中,所述报文接收模块具体用于:当同时接收到入口数据报文和环回数据报文时,对环回数据报文优先处理。
[0007]在一些可选的实现方式中,所述约定的部分报文信息是指报文头部信息。
[0008]在一些可选的实现方式中,所述报文发送模块,具体用于将拼包处理后的报文输出给下级模块,或者,作为环回数据报文重新输出给所述报文接收模块。
[0009]在一些可选的实现方式中,所述提取数据模块,具体采用寄存器提取方式和/或立即数提取方式,从所述描述符中提取指定位置的数据。
[0010]在一些可选的实现方式中,所述匹配模块采用二维数组结构的寄存器保存匹配数据。
[0011]在一些可选的实现方式中,所述动作模块具体用于通过赋值、移位或者算术逻辑单元ALU操作对描述符进行修改。
[0012]在一些可选的实现方式中,所述报文接收模块、所述数据缓存模块和所述报文发送模块的位宽一致。
[0013]第二方面,本公开提供了一种可编程硬件的逻辑实现方法,用于如上所述的基于P4语言实现的可编程硬件逻辑架构,包括以下步骤:
[0014]S1、报文接收模块将接收的有效的报文存入数据缓存模块;
[0015]S2、所述报文接收模块根据接收的报文生成描述符,并将描述符输出给可编程逻辑单元,所述描述符中包括约定的部分报文信息和提取指令的存储地址;
[0016]S3、提取数据模块根据所述描述符携带的存储地址,从提取指令存储模块中获取提取指令,根据获取的提取指令,从所述描述符中提取指定位置的数据,将得到的提取数据输出给匹配模块;
[0017]S4、所述匹配模块将所述提取数据与存储的匹配数据进行比较,根据比较结果输出动作指令的存储地址给动作模块;
[0018]S5、所述动作模块根据收到的存储地址,从动作指令存储模块中获取动作指令,根据获取的动作指令,对所述描述符进行相应的修改,将修改后的描述符输出给报文发送模块;
[0019]S6、所述报文发送模块从所述数据缓存模块获取报文,从所述动作模块获取修改后的描述符,将修改后的描述符与报文进行拼包处理后输出。
[0020]在一些可选的实现方式中,所述方法还包括:如果所述报文需要修改的位域长度大于所述描述符的可携带长度,则将通过拼包处理修改后的报文作为环回数据报文,重新输出给所述报文接收模块。
[0021]从以上技术方案可以看出,本专利技术具有以下优点:
[0022]本专利技术提供的可编程硬件逻辑架构,允许用户使用P4语言对采用该架构的芯片进行二次开发,将任意网络报文进行识别,任意位域进行赋值、移位、常用ALU操作,增加芯片的使用场景。
[0023]采用本专利技术的可编程硬件逻辑架构,不用为每个新项目整体重新编写代码,有利于提升硬件代码开发效率。软件可以基于P4语言,生成提取指令、匹配指令和动作指令,控制硬件逻辑对报文做相应的处理,增加芯片的适用场景。
[0024]本专利技术为支持可编程功能,可在硬件内部例化较多RAM(Random Access Memory,随机存取存储器)来存储可编程指令,以占用一些资源为代价,提供更丰富的应用。使用人员只需要熟悉可编程硬件逻辑架构和基于P4语言的编译器使用步骤,即可方便快捷的进行
二次开发。
附图说明
[0025]通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本公开的其它特征、目的和优点将会变得更明显:
[0026]图1是本专利技术一个实施例提供的基于P4语言实现的可编程硬件逻辑架构的结构框图;
[0027]图2是本专利技术一个应用场景实例中的基于P4语言实现的可编程硬件逻辑架构的结构框图。
具体实施方式
[0028]为了使本
的人员更好地理解本专利技术方案,下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本专利技术一部分的实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本专利技术保护的范围。
[0029]下面通过具体实施例,进行详细的说明。
[0030]本专利技术实施例提供一种基于P4语言实现的可编程硬件逻辑架构(或者说可编程硬本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于P4语言实现的可编程硬件逻辑架构,其特征在于,包括:报文接收模块、数据缓存模块、报文发送模块和可编程逻辑单元;所述可编程逻辑单元包括:提取指令存储模块、提取数据模块、匹配模块、动作指令存储模块和动作模块;所述报文接收模块,用于接收报文,识别报文是否有效,将有效的报文存入所述数据缓存模块,以及,根据接收的报文生成描述符并输出给所述可编程逻辑单元,所述描述符中包括约定的部分报文信息和提取指令的存储地址;所述数据缓存模块,用于缓存所述报文接收模块存入的报文,以及,将缓存的报文提供给所述报文发送模块;所述提取数据模块,用于根据所述描述符携带的存储地址,从所述提取指令存储模块中获取提取指令,根据获取的提取指令,从所述描述符中提取指定位置的数据,将得到的提取数据输出给所述匹配模块;所述匹配模块,用于将所述提取数据与存储的匹配数据进行比较,根据比较结果输出动作指令的存储地址给所述动作模块;所述动作模块,用于根据收到的存储地址,从所述动作指令存储模块中获取动作指令,根据获取的动作指令,对所述描述符进行相应的修改,将修改后的描述符输出给所述报文发送模块;所述报文发送模块,用于从所述数据缓存模块获取报文,从所述动作模块获取修改后的描述符,将修改后的描述符与报文进行拼包处理后输出。2.根据权利要求1所述的基于P4语言实现的可编程硬件逻辑架构,其特征在于,所述报文接收模块具体用于:当同时接收到入口数据报文和环回数据报文时,对环回数据报文优先处理。3.根据权利要求1所述的基于P4语言实现的可编程硬件逻辑架构,其特征在于,所述约定的部分报文信息是指报文头部信息。4.根据权利要求1所述的基于P4语言实现的可编程硬件逻辑架构,其特征在于,所述报文发送模块,具体用于将拼包处理后的报文输出给下级模块,或者,作为环回数据报文重新输出给所述报文接收模块。5.根据权利要求1所述的基于P4语言实现的可编程硬件逻...

【专利技术属性】
技术研发人员:朱珂王永胜方旭升林谦顾艳伍储志博
申请(专利权)人:井芯微电子技术天津有限公司
类型:发明
国别省市:

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

1