CN113050951A - 基于计算图的协议描述和解码方法 - Google Patents

基于计算图的协议描述和解码方法 Download PDF

Info

Publication number
CN113050951A
CN113050951A CN202110352106.8A CN202110352106A CN113050951A CN 113050951 A CN113050951 A CN 113050951A CN 202110352106 A CN202110352106 A CN 202110352106A CN 113050951 A CN113050951 A CN 113050951A
Authority
CN
China
Prior art keywords
graph
decoding method
computational graph
protocol description
output
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202110352106.8A
Other languages
English (en)
Inventor
陶飞
蔡晓华
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shanghai Netis Technologies Co ltd
Original Assignee
Shanghai Netis Technologies Co ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Shanghai Netis Technologies Co ltd filed Critical Shanghai Netis Technologies Co ltd
Priority to CN202110352106.8A priority Critical patent/CN113050951A/zh
Publication of CN113050951A publication Critical patent/CN113050951A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Devices For Executing Special Programs (AREA)

Abstract

本发明提供了一种基于计算图的协议描述和解码方法,包括如下步骤:描述步骤:使用计算图的方式描述解码器;优化步骤:基于需要输出的字段,对计算图进行优化;执行步骤:执行优化过的计算图。本发明可在运行时基于需要输出的字段剪枝和优化计算图,大大提高了性能。本发明可应用各种计算图优化算法,如操作符融合,循环展开,常量预计算等等,优化计算图,提高性能。本发明使用计算图表示解码器,可以分析出无依赖关系的子图,并发执行。

Description

基于计算图的协议描述和解码方法
技术领域
本发明涉及通信领域,具体地,涉及一种基于计算图的协议描述和解码方法。
背景技术
现有的解码器的描述和执行方法有:
1、命令式:通用编程语言编写解码器,通过编译后之间执行。
2、声明式:使用一些协议结构描述方法描述协议,通过编译成编程语言或者解释执行。
命令式编程是命令“机器”如何去做事情,这样不管你想要的是什么,它都会按照你的命令实现。声明式编程是告诉“机器”你想要的是什么,让机器想出如何去做。但是这些方法存在如下问题:1、在只需要解码部分字段的时候,无法只执行部分解码逻辑。2、解码过程只能串行,无法并行执行。
发明内容
针对现有技术中的缺陷,本发明的目的是提供一种基于计算图的协议描述和解码方法。
根据本发明提供的一种基于计算图的协议描述和解码方法,包括如下步骤:
描述步骤:使用计算图的方式描述解码器;
优化步骤:基于需要输出的字段,对计算图进行优化;
执行步骤:执行优化过的计算图。
优选地,所述描述步骤包括:
初始化步骤:初始化计算图,加入输入数据操作符;
拆分步骤:将解码器拆分成多个字段;
操作符表示步骤:对于每个字段的解码逻辑,使用组合操作符或者元操作符表示,输入连接到输入操作符或者其他图中对应操作符的输出。
优选地,还包括分支逻辑添加步骤:使用Switch和Merge操作符添加分支逻辑。
优选地,还包括重复逻辑循环构造步骤:使用Enter、NextIteration、Exit操作符对重复出现的逻辑构造循环。
优选地,所述优化步骤包括:
寻找步骤:根据需要输出的字段,找到输出节点集合;
剪枝步骤:从输入节点到输出节点上所有不需要的节点和边从计算图中删除。
优选地,还包括其他优化步骤:执行其他优化,所述其他优化包括如下任一种或者任多种优化:常量折叠、操作符融合、循环展开。
优选地,所述执行步骤包括:
运行环境构造步骤:构造解码器时运行时环境;
数据设置步骤:将待解码数据设置到计算图输入节点,输入节点的输出变成可用状态;
驱动执行步骤:基于数据流驱动执行计算图。
优选地,驱动执行步骤中,当一个操作的所有输入都可用时,该操作即可执行。
优选地,驱动执行步骤中,当一个操作执行完成,和这个操作的输出端相连的其他操作的输入端就变成可用状态。
优选地,驱动执行步骤中,同一个时刻的多个操作符的输入都处于可用状态时,所述多个操作符能够并发执行。
与现有技术相比,本发明具有如下的有益效果:
1、本发明可在运行时基于需要输出的字段剪枝和优化计算图,大大提高了性能。
2、本发明可应用各种计算图优化算法,如操作符融合,循环展开,常量预计算等等,优化计算图,提高性能。
3、本发明使用计算图表示解码器,可以分析出无依赖关系的子图,并发执行。
附图说明
通过阅读参照以下附图对非限制性实施例所作的详细描述,本发明的其它特征、目的和优点将会变得更明显:
图1为基于计算图的协议描述和解码方法的总体步骤图。
图2为示例解码计算图。
图3为示例解码计算图剪枝结果图。
图4为示例解码计算图进一步优化后结果图。
具体实施方式
下面结合具体实施例对本发明进行详细说明。以下实施例将有助于本领域的技术人员进一步理解本发明,但不以任何形式限制本发明。应当指出的是,对本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变化和改进。这些都属于本发明的保护范围。
如图1至图4所示,根据本发明提供的一种基于计算图的协议描述和解码方法,包括如下步骤:
步骤1:使用计算图的方式描述解码器。具体来说,计算图的每个节点表示一个计算操作,每条边表示节点的输出和到节点的输入。下面我们用操作这个词指代节点,用数据元素(data element)指代在边上传输的数据。
一个操作把m个(m≥0)个dataunit作为输入,并产生n个(n≥0)个dataunit作为输出。一个操作有一个命名的"类型"(如Const、Add或PARSE_INT32),并且可以有0个或更多的编译时属性来决定其行为。
一个操作可以包含每次执行时被读取和/或写入的可变状态。
操作包括但不限于一下几类:
1、无状态的数据计算操作,包含但不仅限于:
数据解析操作;
算术操作,逻辑操作,比较操作;
字符串操作;
操作复合类型的操作。
2、变量操作和读取,修改变量的操作,包含Variable,Read,AssignAdd等等。
3、控制流操作符,主要包含Switch、Merge、Enter、NextIteration和Exit
4、输入操作符(INPUT),这个作为输入数据的占位符,在运行时由运行时环境来设置其值。
步骤2:基于需要输出的字段,对于计算图进行优化。
步骤3:执行优化过的计算图
其中,步骤1包括如下步骤:
步骤1.1:初始化计算图,加入输入数据操作符
步骤1.2:将解码器拆分成多个字段。
步骤1.3:对于每个字段的解码逻辑,使用组合操作符或者元操作符表示,输入连接到输入操作符或者其他图中对应操作符的输出。
步骤1.4:如果协议中分支逻辑,使用Switch和Merge操作符添加添加分支逻辑
步骤1.5:如果协议中一个或多个字段重复出现的逻辑,使用Enter、NextIteration、Exit操作符构造循环。
其中,步骤2包括如下步骤:
步骤2.1:根据需要输出的字段,找到输出节点集合。
步骤2.2:剪枝,从输入节点到输出节点上所有不需要的节点和边从计算图中删除。
步骤2.3:执行其他优化。包括常量折叠,操作符融合,循环展开等等。
其中,步骤3包括如下步骤:
步骤3.1:构造解码器时运行时环境
步骤3.2:将待解码数据设置到计算图输入节点,输入节点的输出变成可用状态。
步骤3.3:基于数据流驱动执行计算图。具体来说,数据流驱动的特点如下:
1.当一个操作的所有输入都可用时,该操作就可以执行。
2.当一个操作执行完成,和这个操作的输出端相连的其他操作的输入端就变成可用状态。
3.同一个时刻可能有多个操作符的输入都处于可用状态,这些操作符就可以并发执行。
4.当指定的输出端的数据都计算完成,计算图结束执行。收集指定的输出端的数据,作为本次执行的结果。
实施举例1:
假设有一个协议有三个字段,第一个字段F1,为4个字节的整数,第二个字段F2也是4个字节的整数,第三个字段为字符串,其长度为F2的值。
按照本发明的方法
步骤一,编写成计算图如附图2所示。
步骤二,假设当前只需要输出的字段为F3,也就是输出节点为OUTPUT_FIELD(“F3”),对附图2执行剪枝之后,形成附图3。再经过常量折叠,优化成为附图4.
步骤三,基于附图4对应的计算图,设置输入值为“\x00\x00\x00\x01\0x00\x00\x00\x04abcd”。基于数据流驱动的原则:
INPUT,constant(4),constant(8)这三个操作无输入依赖,第一批执行。三种没有依赖关系,可以并发执行。
INPUT,constant(4)执行完成后,PARSE_INT32的输入都可用,执行该操作。
PARSE_INT32执行完成后,PARSE_STR的输入都可用,执行该操作。
PARSE_STR的执行完成后,OUTPUT_FIELD(“F3”)的输入都可用,执行该操作。
OUTPUT_FIELD(“F3”)执行完成后所有需要的输出都已获得,完成计算图的执行。
本领域技术人员知道,除了以纯计算机可读程序代码方式实现本发明提供的系统及其各个装置、模块、单元以外,完全可以通过将方法步骤进行逻辑编程来使得本发明提供的系统及其各个装置、模块、单元以逻辑门、开关、专用集成电路、可编程逻辑控制器以及嵌入式微控制器等的形式来实现相同功能。所以,本发明提供的系统及其各项装置、模块、单元可以被认为是一种硬件部件,而对其内包括的用于实现各种功能的装置、模块、单元也可以视为硬件部件内的结构;也可以将用于实现各种功能的装置、模块、单元视为既可以是实现方法的软件模块又可以是硬件部件内的结构。
在本申请的描述中,需要理解的是,术语“上”、“下”、“前”、“后”、“左”、“右”、“竖直”、“水平”、“顶”、“底”、“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本申请和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本申请的限制。
以上对本发明的具体实施例进行了描述。需要理解的是,本发明并不局限于上述特定实施方式,本领域技术人员可以在权利要求的范围内做出各种变化或修改,这并不影响本发明的实质内容。在不冲突的情况下,本申请的实施例和实施例中的特征可以任意相互组合。

Claims (10)

1.一种基于计算图的协议描述和解码方法,其特征在于,包括如下步骤:
描述步骤:使用计算图的方式描述解码器;
优化步骤:基于需要输出的字段,对计算图进行优化;
执行步骤:执行优化过的计算图。
2.根据权利要求1所述的基于计算图的协议描述和解码方法,其特征在于,所述描述步骤包括:
初始化步骤:初始化计算图,加入输入数据操作符;
拆分步骤:将解码器拆分成多个字段;
操作符表示步骤:对于每个字段的解码逻辑,使用组合操作符或者元操作符表示,输入连接到输入操作符或者其他图中对应操作符的输出。
3.根据权利要求2所述的基于计算图的协议描述和解码方法,其特征在于,还包括分支逻辑添加步骤:使用Switch和Merge操作符添加分支逻辑。
4.根据权利要求1所述的基于计算图的协议描述和解码方法,其特征在于,还包括重复逻辑循环构造步骤:使用Enter、NextIteration、Exit操作符对重复出现的逻辑构造循环。
5.根据权利要求2所述的基于计算图的协议描述和解码方法,其特征在于,所述优化步骤包括:
寻找步骤:根据需要输出的字段,找到输出节点集合;
剪枝步骤:从输入节点到输出节点上所有不需要的节点和边从计算图中删除。
6.根据权利要求5所述的基于计算图的协议描述和解码方法,其特征在于,还包括其他优化步骤:执行其他优化,所述其他优化包括如下任一种或者任多种优化:常量折叠、操作符融合、循环展开。
7.根据权利要求1所述的基于计算图的协议描述和解码方法,其特征在于,所述执行步骤包括:
运行环境构造步骤:构造解码器时运行时环境;
数据设置步骤:将待解码数据设置到计算图输入节点,输入节点的输出变成可用状态;
驱动执行步骤:基于数据流驱动执行计算图。
8.根据权利要求7所述的基于计算图的协议描述和解码方法,其特征在于,驱动执行步骤中,当一个操作的所有输入都可用时,该操作即可执行。
9.根据权利要求7所述的基于计算图的协议描述和解码方法,其特征在于,驱动执行步骤中,当一个操作执行完成,和这个操作的输出端相连的其他操作的输入端就变成可用状态。
10.根据权利要求7所述的基于计算图的协议描述和解码方法,其特征在于,驱动执行步骤中,同一个时刻的多个操作符的输入都处于可用状态时,所述多个操作符能够并发执行。
CN202110352106.8A 2021-03-31 2021-03-31 基于计算图的协议描述和解码方法 Pending CN113050951A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110352106.8A CN113050951A (zh) 2021-03-31 2021-03-31 基于计算图的协议描述和解码方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110352106.8A CN113050951A (zh) 2021-03-31 2021-03-31 基于计算图的协议描述和解码方法

Publications (1)

Publication Number Publication Date
CN113050951A true CN113050951A (zh) 2021-06-29

Family

ID=76516836

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110352106.8A Pending CN113050951A (zh) 2021-03-31 2021-03-31 基于计算图的协议描述和解码方法

Country Status (1)

Country Link
CN (1) CN113050951A (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115268936A (zh) * 2022-09-27 2022-11-01 之江实验室 一种用于计算图编译的优化方法及装置
CN115269205A (zh) * 2022-09-27 2022-11-01 之江实验室 一种面向神经网络计算的内存优化方法和装置

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105975440A (zh) * 2016-05-05 2016-09-28 浙江理工大学 一种基于图计算模型的矩阵分解并行化方法
KR20190062687A (ko) * 2017-11-29 2019-06-07 주식회사 디지털존 기업정보 분석을 통한 성공 예측 분석 시스템
CN111209302A (zh) * 2020-01-02 2020-05-29 中科驭数(北京)科技有限公司 数据库访问的并行执行方法及装置
CN112035229A (zh) * 2020-08-31 2020-12-04 腾讯科技(深圳)有限公司 一种计算图处理方法、装置及存储介质
CN112070202A (zh) * 2020-07-09 2020-12-11 安徽寒武纪信息科技有限公司 一种融合图的生成方法、生成装置和计算机可读存储介质

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105975440A (zh) * 2016-05-05 2016-09-28 浙江理工大学 一种基于图计算模型的矩阵分解并行化方法
KR20190062687A (ko) * 2017-11-29 2019-06-07 주식회사 디지털존 기업정보 분석을 통한 성공 예측 분석 시스템
CN111209302A (zh) * 2020-01-02 2020-05-29 中科驭数(北京)科技有限公司 数据库访问的并行执行方法及装置
CN112070202A (zh) * 2020-07-09 2020-12-11 安徽寒武纪信息科技有限公司 一种融合图的生成方法、生成装置和计算机可读存储介质
CN112035229A (zh) * 2020-08-31 2020-12-04 腾讯科技(深圳)有限公司 一种计算图处理方法、装置及存储介质

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115268936A (zh) * 2022-09-27 2022-11-01 之江实验室 一种用于计算图编译的优化方法及装置
CN115269205A (zh) * 2022-09-27 2022-11-01 之江实验室 一种面向神经网络计算的内存优化方法和装置

Similar Documents

Publication Publication Date Title
Brunner et al. RAFCON: A graphical tool for engineering complex, robotic tasks
CN110149800B (zh) 一种用于处理与源程序的源代码相关联的抽象语法树的装置
CN113050951A (zh) 基于计算图的协议描述和解码方法
EP1934725B1 (en) Stage evaluation of a state machine
CN101667134A (zh) 一种构建编译系统的方法、一种编译系统及其构建装置
Aminof et al. Verification of asynchronous mobile-robots in partially-known environments
Cengic et al. On formal analysis of IEC 61499 applications, Part A: Modeling
EP3152658B1 (en) Data-dependent control flow reduction
CN105204837B (zh) 一种逻辑编程的实现方法和装置
Fedorchenko et al. Equivalent transformations and regularization in context-free grammars
Tardieu et al. Curing schizophrenia by program rewriting in Esterel
CN113918163A (zh) 一种神经网络模型的编译方法、系统、设备及存储介质
Kuzenkova et al. QReal DSM platform-An Environment for Creation of Specific Visual IDEs
CN110825433A (zh) 一种边缘控制设备设计方法
Gaglio et al. A fast and interactive approach to application development on wireless sensor and actuator networks
Prähofer et al. Monaco—a domain-specific language solution for reactive process control programming with hierarchical components
Bardaro et al. AADL for robotics: a general approach for system architecture modeling and code generation
CN111596923B (zh) Haxe静态链接库构建方法、装置和电子设备
CN112988139B (zh) 事件处理文件的开发方法与装置
Sinha et al. Competitors or Cousins? Studying the parallels between distributed programming languages SystemJ and IEC61499
Genesereth A comparative analysis of some simple architectures for autonomous agents
WO2020214343A1 (en) Automatic repetition of context-specific code edits
Kleijn et al. A process algebra based verification of a production system
Feher et al. The challenges of a model transformation language
Plasch et al. Reduction of development time by using scriptable IEC 61499 function blocks in a dynamically loadable type library

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
RJ01 Rejection of invention patent application after publication

Application publication date: 20210629

RJ01 Rejection of invention patent application after publication