基于计算图的协议描述和解码方法技术

技术编号:29094363 阅读:17 留言:0更新日期:2021-06-30 10:03
本发明专利技术提供了一种基于计算图的协议描述和解码方法,包括如下步骤:描述步骤:使用计算图的方式描述解码器;优化步骤:基于需要输出的字段,对计算图进行优化;执行步骤:执行优化过的计算图。本发明专利技术可在运行时基于需要输出的字段剪枝和优化计算图,大大提高了性能。本发明专利技术可应用各种计算图优化算法,如操作符融合,循环展开,常量预计算等等,优化计算图,提高性能。本发明专利技术使用计算图表示解码器,可以分析出无依赖关系的子图,并发执行。并发执行。并发执行。

【技术实现步骤摘要】
基于计算图的协议描述和解码方法


[0001]本专利技术涉及通信领域,具体地,涉及一种基于计算图的协议描述和解码方法。

技术介绍

[0002]现有的解码器的描述和执行方法有:
[0003]1、命令式:通用编程语言编写解码器,通过编译后之间执行。
[0004]2、声明式:使用一些协议结构描述方法描述协议,通过编译成编程语言或者解释执行。
[0005]命令式编程是命令“机器”如何去做事情,这样不管你想要的是什么,它都会按照你的命令实现。声明式编程是告诉“机器”你想要的是什么,让机器想出如何去做。但是这些方法存在如下问题:1、在只需要解码部分字段的时候,无法只执行部分解码逻辑。2、解码过程只能串行,无法并行执行。

技术实现思路

[0006]针对现有技术中的缺陷,本专利技术的目的是提供一种基于计算图的协议描述和解码方法。
[0007]根据本专利技术提供的一种基于计算图的协议描述和解码方法,包括如下步骤:
[0008]描述步骤:使用计算图的方式描述解码器;
[0009]优化步骤:基于需要输出的字段,对计算图进行优化;
[0010]执行步骤:执行优化过的计算图。
[0011]优选地,所述描述步骤包括:
[0012]初始化步骤:初始化计算图,加入输入数据操作符;
[0013]拆分步骤:将解码器拆分成多个字段;
[0014]操作符表示步骤:对于每个字段的解码逻辑,使用组合操作符或者元操作符表示,输入连接到输入操作符或者其他图中对应操作符的输出。
[0015]优选地,还包括分支逻辑添加步骤:使用Switch和Merge操作符添加分支逻辑。
[0016]优选地,还包括重复逻辑循环构造步骤:使用Enter、NextIteration、Exit操作符对重复出现的逻辑构造循环。
[0017]优选地,所述优化步骤包括:
[0018]寻找步骤:根据需要输出的字段,找到输出节点集合;
[0019]剪枝步骤:从输入节点到输出节点上所有不需要的节点和边从计算图中删除。
[0020]优选地,还包括其他优化步骤:执行其他优化,所述其他优化包括如下任一种或者任多种优化:常量折叠、操作符融合、循环展开。
[0021]优选地,所述执行步骤包括:
[0022]运行环境构造步骤:构造解码器时运行时环境;
[0023]数据设置步骤:将待解码数据设置到计算图输入节点,输入节点的输出变成可用
状态;
[0024]驱动执行步骤:基于数据流驱动执行计算图。
[0025]优选地,驱动执行步骤中,当一个操作的所有输入都可用时,该操作即可执行。
[0026]优选地,驱动执行步骤中,当一个操作执行完成,和这个操作的输出端相连的其他操作的输入端就变成可用状态。
[0027]优选地,驱动执行步骤中,同一个时刻的多个操作符的输入都处于可用状态时,所述多个操作符能够并发执行。
[0028]与现有技术相比,本专利技术具有如下的有益效果:
[0029]1、本专利技术可在运行时基于需要输出的字段剪枝和优化计算图,大大提高了性能。
[0030]2、本专利技术可应用各种计算图优化算法,如操作符融合,循环展开,常量预计算等等,优化计算图,提高性能。
[0031]3、本专利技术使用计算图表示解码器,可以分析出无依赖关系的子图,并发执行。
附图说明
[0032]通过阅读参照以下附图对非限制性实施例所作的详细描述,本专利技术的其它特征、目的和优点将会变得更明显:
[0033]图1为基于计算图的协议描述和解码方法的总体步骤图。
[0034]图2为示例解码计算图。
[0035]图3为示例解码计算图剪枝结果图。
[0036]图4为示例解码计算图进一步优化后结果图。
具体实施方式
[0037]下面结合具体实施例对本专利技术进行详细说明。以下实施例将有助于本领域的技术人员进一步理解本专利技术,但不以任何形式限制本专利技术。应当指出的是,对本领域的普通技术人员来说,在不脱离本专利技术构思的前提下,还可以做出若干变化和改进。这些都属于本专利技术的保护范围。
[0038]如图1至图4所示,根据本专利技术提供的一种基于计算图的协议描述和解码方法,包括如下步骤:
[0039]步骤1:使用计算图的方式描述解码器。具体来说,计算图的每个节点表示一个计算操作,每条边表示节点的输出和到节点的输入。下面我们用操作这个词指代节点,用数据元素(data element)指代在边上传输的数据。
[0040]一个操作把m个(m≥0)个dataunit作为输入,并产生n个(n≥0)个dataunit作为输出。一个操作有一个命名的"类型"(如Const、Add或PARSE_INT32),并且可以有0个或更多的编译时属性来决定其行为。
[0041]一个操作可以包含每次执行时被读取和/或写入的可变状态。
[0042]操作包括但不限于一下几类:
[0043]1、无状态的数据计算操作,包含但不仅限于:
[0044]数据解析操作;
[0045]算术操作,逻辑操作,比较操作;
[0046]字符串操作;
[0047]操作复合类型的操作。
[0048]2、变量操作和读取,修改变量的操作,包含Variable,Read,AssignAdd等等。
[0049]3、控制流操作符,主要包含Switch、Merge、Enter、NextIteration和Exit
[0050]4、输入操作符(INPUT),这个作为输入数据的占位符,在运行时由运行时环境来设置其值。
[0051]步骤2:基于需要输出的字段,对于计算图进行优化。
[0052]步骤3:执行优化过的计算图
[0053]其中,步骤1包括如下步骤:
[0054]步骤1.1:初始化计算图,加入输入数据操作符
[0055]步骤1.2:将解码器拆分成多个字段。
[0056]步骤1.3:对于每个字段的解码逻辑,使用组合操作符或者元操作符表示,输入连接到输入操作符或者其他图中对应操作符的输出。
[0057]步骤1.4:如果协议中分支逻辑,使用Switch和Merge操作符添加添加分支逻辑
[0058]步骤1.5:如果协议中一个或多个字段重复出现的逻辑,使用Enter、NextIteration、Exit操作符构造循环。
[0059]其中,步骤2包括如下步骤:
[0060]步骤2.1:根据需要输出的字段,找到输出节点集合。
[0061]步骤2.2:剪枝,从输入节点到输出节点上所有不需要的节点和边从计算图中删除。
[0062]步骤2.3:执行其他优化。包括常量折叠,操作符融合,循环展开等等。
[0063]其中,步骤3包括如下步骤:
[0064]步骤3.1:构造解码器时运行时环境
[0065]步骤3本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于计算图的协议描述和解码方法,其特征在于,包括如下步骤:描述步骤:使用计算图的方式描述解码器;优化步骤:基于需要输出的字段,对计算图进行优化;执行步骤:执行优化过的计算图。2.根据权利要求1所述的基于计算图的协议描述和解码方法,其特征在于,所述描述步骤包括:初始化步骤:初始化计算图,加入输入数据操作符;拆分步骤:将解码器拆分成多个字段;操作符表示步骤:对于每个字段的解码逻辑,使用组合操作符或者元操作符表示,输入连接到输入操作符或者其他图中对应操作符的输出。3.根据权利要求2所述的基于计算图的协议描述和解码方法,其特征在于,还包括分支逻辑添加步骤:使用Switch和Merge操作符添加分支逻辑。4.根据权利要求1所述的基于计算图的协议描述和解码方法,其特征在于,还包括重复逻辑循环构造步骤:使用Enter、NextIteration、Exit操作符对重复出现的逻辑构造循环。5.根据权利要求2所述的基于计算图的协议描述和解码方法,其特征在于,所述优化步骤包括:寻找步骤:根据需要输出的字段,找到输出节点集合;剪枝步骤:从输...

【专利技术属性】
技术研发人员:陶飞蔡晓华
申请(专利权)人:上海天旦网络科技发展有限公司
类型:发明
国别省市:

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

1