CN113050951A - 基于计算图的协议描述和解码方法 - Google Patents
基于计算图的协议描述和解码方法 Download PDFInfo
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 26
- 238000004364 calculation method Methods 0.000 claims abstract description 13
- 238000005457 optimization Methods 0.000 claims abstract description 10
- 230000004927 fusion Effects 0.000 claims abstract description 5
- 238000013138 pruning Methods 0.000 claims description 5
- 238000010276 construction Methods 0.000 claims description 2
- 238000010586 diagram Methods 0.000 description 3
- 230000006870 function Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000007405 data analysis Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
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所述的基于计算图的协议描述和解码方法,其特征在于,驱动执行步骤中,同一个时刻的多个操作符的输入都处于可用状态时,所述多个操作符能够并发执行。
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)
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)
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 | 安徽寒武纪信息科技有限公司 | 一种融合图的生成方法、生成装置和计算机可读存储介质 |
-
2021
- 2021-03-31 CN CN202110352106.8A patent/CN113050951A/zh active Pending
Patent Citations (5)
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)
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 |