当前位置: 首页 > 专利查询>之江实验室专利>正文

基于阵列式解析基元结构的后端编译器实现方法及装置制造方法及图纸

技术编号:33795456 阅读:58 留言:0更新日期:2022-06-12 14:58
本发明专利技术公开了基于阵列式解析基元结构的后端编译器实现方法及装置,基于阵列式解析基元结构的可编程目标硬件,可完成对软件定义的协议解析逻辑进行编译的需求。通过对软件描述的协议解析处理逻辑进行翻译和解释,生成目标硬件中矩阵式可编程解析资源能识别的解析操作指令,操作指令以解析基元参数阵列的形式与目标硬件中可配置的解析基元阵列形成映射关系,通过解析基元参数阵列控制器,将解析基元参数阵列中的有效解析基元参数配置到硬件上对应的可编程解析基元中,完成对目标硬件可编程解析基元资源的编程,从而完成通过软件编程硬件来实现协议无关数据解析的目标。硬件来实现协议无关数据解析的目标。硬件来实现协议无关数据解析的目标。

【技术实现步骤摘要】
基于阵列式解析基元结构的后端编译器实现方法及装置


[0001]本专利技术涉及协议无关可编程解析、编译器、智能网卡
,尤其是涉及一种基于阵列式解析基元结构的后端编译器实现方法及装置。

技术介绍

[0002]P4作为一种数据包处理的高级编程语言,实现了协议无关、目标设备无关的编程需求,但是这种无关性仅限于其提供配套的中间表示(IR,Intermediate Representation),如果用户想要设计一个协议无关的硬件可编程解析器并且通过软件进行编程,就需要设计一个后端编译器,用于配置自己的可编程硬件,关于后端编译器的实现方法,目前业界还没有一个统一的标准,并且编译器与目标硬件之间的能力适配过程繁琐,此外,解析器硬件的规格众多,编译器对不同规格的解析器进行适配灵活性、可操作性还有待提高。

技术实现思路

[0003]为解决现有技术的不足,实现简化编译器与目标硬件之间能力适配过程,提高编译器适配不同解析器的灵活性和可操作性的目的,本专利技术采用如下的技术方案:一种基于阵列式解析基元结构的后端编译器实现方法,包括如下步骤:步骤S1:目标硬件解析器编程能力定义过程,将目标硬件中执行一个节点解析操作的可编程解析资源,作为一个可编程解析基元,编译器将目标硬件作为由多个可编程解析基元组成的基元阵列,基元阵列中的每一个元素为一个可独立编程的硬件解析基元,定义编译器目标硬件解析基元规格和硬件解析基元阵列规模;步骤S2:目标硬件基元参数阵列生成过程,将软件解析逻辑转换为硬件可识别的解析基元参数阵列,也即是将软件解析逻辑转化为配置硬件解析基元的配置参数;所生成的基元参数阵列的个数与软件所定义的并列的解析逻辑块的个数相关,将一个解析逻辑块作为一个完整的解析状态节点;步骤S3:目标硬件基元阵列参数控制过程,完成目标硬件配置比特流的生成,根据解析基元参数阵列和解析参数列表,以阵列的列编号为硬件解析基元的配置基地址,按照步骤S1中定义的基元参数规格,即启动与级联OLD信息和工作OL信息的参数格式,为阵列中每个元素生成其对应的配置信息。
[0004]进一步地,所述步骤S1包括如下步骤:步骤S1

1:目标硬件解析基元能力定义子过程;将解析基元的编程参数定义为基元参数,基元参数包括启动与级联OLD信息和工作OL信息,启动与级联OLD信息是硬件解析基元的启动参数和级联参数,工作OL信息是解析基元的工作参数,工作参数的数量决定硬件解析基元可编程能力,对解析基元可编程能力的定义过程,是对一组基元参数规格的定义过程;步骤S1

2:目标硬件解析基元阵列定义子过程;是对目标硬件可编程能力进行综
合描述的过程,描述硬件基元阵列的行列规模;行数表示硬件最大可并行处理的能力,列数表示硬件可支持的解析分支的最大长度,行数与列数的乘积表示硬件的综合能力,用于描述目标硬件具备的可编程逻辑资源的多少;基元阵列的规模直接反应了目标硬件的硬件能力,将硬件的可编程能力等效为硬件基元阵列的行列参数,描述方法简单直观,而且易于表达,便于编译器与目标硬件之间进行参数匹配。
[0005]步骤S1

3:目标硬件基元参数阵列定义子过程;对目标硬件中解析基元阵列进行划分,将硬件中可编程解析基元映射为一个或多个二维基元矩阵,整个目标硬件被定义为一个或多个并列的可编程的解析基元矩阵,矩阵中的每个元素均是一个可编程的解析基元,矩阵行元素的个数用于决定硬件所能支持的软件解析逻辑状态跳转的最大次数,对应软件逻辑解析的可编程深度;矩阵列元素的元素个数用于决定硬件所能支持的软件解析逻辑的最大解析逻辑分支数,对应软件解析逻辑的逻辑分支复杂度;矩阵的个数用于决定目标硬件所能支持的解析逻辑的最大并行度,个数越多对应硬件能够解析数据带宽越大。
[0006]进一步地,所述S1

1中,基元参数规格的定义过程,包括启动与级联OLD信息的解析子参数、长度子参数和信息提取子参数的数值范围,工作参数个数以及工作OL信息的解析子参数和长度子参数的数值范围,解析子参数和长度子参数的数值范围为一个解析节点数据解析范围和解析内容的长度,用于间接决定了一个解析基元的解析能力大小,信息提取子参数的数值范围表示解析器提取信息的范围。
[0007]进一步地,所述步骤S1

2中,基元阵列的行元素的数目用于决定硬件解析器的可编程度,行中元素的个数越多,硬件可支持的可编程度越大,对应支持的软件解析逻辑的状态分支越长,能够实现的解析逻辑复杂度越高;基元阵列的列元素数目用于决定硬件解析器的解析并行度和解析状态并行度,列中元素的个数越多,硬件能够支持的解析并行度越大,和/或能够并行解析的状态节点越多,对应硬件能够处理的解析数据流的带宽大小,和/或支持的软件能够描述的解析状态分支越多。
[0008]进一步地,所述步骤S2中,生成的基元参数阵列为二维矩阵,矩阵行元素的个数与步骤S1

2中定义的矩阵的行元素个数一致,配置参数一一对应;矩阵列元素的个数与步骤S1

2中矩阵的列元素个数一致,配置参数一一对应;包括如下步骤:步骤S2

1:软件解析逻辑块搜索子过程;对软件所定义解析逻辑块数目进行搜索,解析逻辑块是软件所描述的并行存在解析逻辑块的个数,每个解析逻辑块对应一个软件所定义的解析状态节点;通常情况下,只存在一个软件逻辑块,对于比较复杂的软件解析逻辑,也可以存在多个解析状态机。由于基元参数阵列的生成是以逻辑块为单位进行的,所以逻辑块的个数也影响了步骤S2

4中的合并次数。
[0009]步骤S2

2:解析状态节点搜索子过程;对软件解析逻辑定义的解析状态节点进行提取和编号;步骤S2

3:状态阵列生成子过程;包括生成解析状态分支矢量、构成矢量阵列和简化处理。
[0010]步骤S2

4:状态阵列合并子过程;步骤S2

1中决定了步骤S2

3中生成的状态阵列的个数,将多个状态阵列进行合并处理,以矩阵的列为单位,合并重复的状态节点。
[0011]进一步地,所述步骤S2

2中,首先提取解析逻辑块中所有不重复的解析状态节点进行逻辑编号,作为逻辑解析节点号;然后针对每个逻辑解析节点号,按照步骤S1

1中的定
义,提取并生成解析基元参数,将解析基元参数以逻辑节点号为索引,保存为一个解析参数列表,该列表中包含了软件逻辑所定义的所有解析节点的解析参数。
[0012]进一步地,所述步骤S2

3中,根据步骤S2

1中生成的解析逻辑块的数目,重复执行如下步骤:步骤S2
‑3‑
1:生成逻辑块解析状态矢量;遍历解析逻辑块中的逻辑分支,将每一个逻辑分支均表示由一组解析逻辑节点号组成的解析状态矢量;解析状态矢量中包含了对应解析状态分支中出现的所有解析状态节点,每个解本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于阵列式解析基元结构的后端编译器实现方法,其特征在于包括如下步骤:步骤S1:目标硬件解析器编程能力定义过程,将目标硬件中执行一个节点解析操作的可编程解析资源,作为一个可编程解析基元,编译器将目标硬件作为由多个可编程解析基元组成的基元阵列,基元阵列中的每一个元素为一个可独立编程的硬件解析基元,定义编译器目标硬件解析基元规格和硬件解析基元阵列规模;步骤S2:目标硬件基元参数阵列生成过程,将软件解析逻辑转化为配置硬件解析基元的配置参数;所生成的基元参数阵列的个数与软件所定义的并列的解析逻辑块的个数相关;步骤S3:目标硬件基元阵列参数控制过程,完成目标硬件配置比特流的生成,根据解析基元参数阵列,以阵列的列编号为硬件解析基元的配置基地址,按照步骤S1中定义的基元参数规格,为阵列中每个元素生成其对应的配置信息。2.根据权利要求1所述的一种基于阵列式解析基元结构的后端编译器实现方法,其特征在于所述步骤S1包括如下步骤:步骤S1

1:目标硬件解析基元能力定义子过程;将解析基元的编程参数定义为基元参数,基元参数包括启动与级联OLD信息和工作OL信息,启动与级联OLD信息是硬件解析基元的启动参数和级联参数,工作OL信息是解析基元的工作参数,工作参数的数量决定硬件解析基元可编程能力,对解析基元可编程能力的定义过程,是对一组基元参数规格的定义过程;步骤S1

2:目标硬件解析基元阵列定义子过程;是对目标硬件可编程能力进行综合描述的过程,描述硬件基元阵列的行列规模;行数表示硬件最大可并行处理的能力,列数表示硬件可支持的解析分支的最大长度,行数与列数的乘积表示硬件的综合能力,用于描述目标硬件具备的可编程逻辑资源的多少;步骤S1

3:目标硬件基元参数阵列定义子过程;对目标硬件中解析基元阵列进行划分,将硬件中可编程解析基元映射为一个或多个二维基元矩阵,整个目标硬件被定义为一个或多个并列的可编程的解析基元矩阵,矩阵中的每个元素均是一个可编程的解析基元,矩阵行元素的个数用于决定硬件所能支持的软件解析逻辑状态跳转的最大次数,对应软件逻辑解析的可编程深度;矩阵列元素的元素个数用于决定硬件所能支持的软件解析逻辑的最大解析逻辑分支数,对应软件解析逻辑的逻辑分支复杂度;矩阵的个数用于决定目标硬件所能支持的解析逻辑的最大并行度,个数越多对应硬件能够解析数据带宽越大。3.根据权利要求2所述的一种基于阵列式解析基元结构的后端编译器实现方法,其特征在于:所述S1

1中,基元参数规格的定义过程,包括启动与级联OLD信息的解析子参数、长度子参数和信息提取子参数的数值范围,工作参数个数以及工作OL信息的解析子参数和长度子参数的数值范围,解析子参数和长度子参数的数值范围为一个解析节点数据解析范围和解析内容的长度,用于间接决定了一个解析基元的解析能力大小,信息提取子参数的数值范围表示解析器提取信息的范围。4.根据权利要求2所述的一种基于阵列式解析基元结构的后端编译器实现方法,其特征在于:所述步骤S1

2中,基元阵列的行元素的数目用于决定硬件解析器的可编程度,行中元素的个数越多,硬件可支持的可编程度越大,对应支持的软件解析逻辑的状态分支越长,能够实现的解析逻辑复杂度越高;基元阵列的列元素数目用于决定硬件解析器的解析并行
度和解析状态并行度,列中元素的个数越多,硬件能够支持的解析并行度越大,和/或能够并行解析的状态节点越多,对应硬件能够处理的解析数据流的带宽大小,和/或支持的软件能够描述的解析状态分支越多。5.根据权利要求2所述的一种基于阵列式解析基元结构的后端编译器实现方法,其特征在于:所述步骤S2中,生成的基元参数阵列为二维矩阵,矩阵行元素的个数与步骤S1

2中定义的矩阵的行元素个数一致,配置参数一一对应;矩阵列元素的个数与步骤S1

【专利技术属性】
技术研发人员:曹建业沈文君叶韬李合元牛广
申请(专利权)人:之江实验室
类型:发明
国别省市:

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

1