首页> 中国专利> 基于算术表达式的MSVL柱面计算方法和系统

基于算术表达式的MSVL柱面计算方法和系统

摘要

本发明公开了一种基于时序逻辑语言MSVL的柱面计算方法和系统,属计算机系统形式化建模与验证技术领域,本发明定义了多核并行程序语法和语义,描述一个或多个进程并发执行,构造柱面计算模型。将基本时序区间表达式扩展到算术表达式和时序表达式,描述能力增强,对进程控制更加准确;本发明对进程的解释包括对于进程执行体的解释和对于时序区间表达式的解释,进程的时序区间表达式控制进程执行体的执行效果持续的时序区间粒度;利用MSVL并行投影方法参与多个进程的并行解释,控制各个并行程序在各进程一次解释结束状态点上通信。本发明不仅能够描述共享对象,也能够以便捷可控的方式编写多核并行程序,对其进行仿真,建模和验证。

著录项

  • 公开/公告号CN102646053A

    专利类型发明专利

  • 公开/公告日2012-08-22

    原文格式PDF

  • 申请/专利权人 西安电子科技大学;

    申请/专利号CN201210038404.0

  • 发明设计人 段振华;张南;李洁;田聪;王小兵;

    申请日2012-02-20

  • 分类号G06F9/46;G06F9/54;

  • 代理机构陕西电子工业专利中心;

  • 代理人程晓霞

  • 地址 710071 陕西省西安市太白南路2号

  • 入库时间 2023-12-18 07:51:02

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2014-08-20

    授权

    授权

  • 2012-10-03

    实质审查的生效 IPC(主分类):G06F9/46 申请日:20120220

    实质审查的生效

  • 2012-08-22

    公开

    公开

说明书

技术领域

本发明属于计算机系统形式化建模与验证技术领域,主要涉及用形式化的方法对 并行程序设计系统进行建模与验证,具体是一种基于算术表达式的MSVL柱面计算方 法和系统,可用于多核并行计算程序设计的建模与验证。

技术背景

时序逻辑作为一种系统建模与验证工具已广泛应用于软件工程、数字电路设计等 领域。时序逻辑主要有三大分支:线性时序逻辑(ITL),分支时序逻辑(CTL)以及 区间时序逻辑(ITL)。投影时序逻辑(PTL)对ITL进行了扩展,时序逻辑语言MSVL 是PTL的一个可执行子集,是一个集建模(Modeling)、仿真(Simulation)和验证 (Verification)为一体的时序逻辑程序设计语言,它将系统的建模与性质的描述统 一于同一逻辑框架内,通过模型检测技术验证系统的性质。

自上世纪70年代,大量的基于区间或实时模型的单进程的并行或实时编程语言被 提出,如带有进程代数共享的CSP和CCS,都是典型的描述和验证实时系统的语言, 但是这些语言都是不可执行的。时序逻辑是一种用于描述和验证实时系统实时性的重 要方法,很多基于时序逻辑的编程语言都可以描述和证明同一逻辑框架下的程序。 Cactus基于分支时间时序逻辑,XYZ/E,THLP,Chronolog,Tempura以及Tokio基于 区间时序逻辑,TLA也是一种基于时序逻辑行为的描述语言。然而,这些语言更多地 是用来描述和验证,而不是开发实时系统程序。上述大多数的语言针对的都是单进程, 用来解决交错或真实时模型下的实时进程,不能够直接处理多进程编程语言。

一个并行程序有多个进程组成,并且每个进程都是一个序列程序(sequential  program),拥有各自的局部变量和语句,因此并行程序比单个程序更难处理。多进程 程序设计或多核并行程序设计对于程序员开发并发程序是一项巨大的挑战,因此,研 究基本的多进程程序设计技术以及开发相关的支持工具(例如模型检测器)以及理论 证明均是计算机系统形式化建模与验证技术领域的客观需要,本发明正是在这方面进 行的研究和创新。和上述形式化方法相比,MSVL具有显著的优势。因为MSVL是一个时 序逻辑编程语言,有三种执行模式:建模,仿真和验证,所以称为建模仿真验证语言 (Modeling Simulation Verification Language,即MSVL)。作为一种形式化的工 具,MSVL可以用于对多核并行程序设计系统进行建模与验证。但是目前MSVL的基本时 序区间表达式还局限于正整数,描述能力和表达能力弱,应用不够灵活,不能够根据 问题的不同用时序表达式和算术表达式来替代,适应面太窄。现有的MSVL缺乏一种有 效的时序区间描述方法,这严重地限制了MSVL对并行多核程序设计系统的描述能力。

本发明项目组对国内外专利文献和公开发表的期刊论文检索,尚未发现与本发明 密切相关和一样的报道或文献。

发明内容

本发明针对现有技术中时序区间表达式的描述能力和表达能力弱,应用范围窄的 技术问题,提供一种算术表达式和时序表达式均可表示时间区间,描述表达能力强, 使进程的执行更加准确且可控的基于算术表达式的MSVL柱面计算方法和系统。

本发明是一种基于算术表达式的MSVL柱面计算方法,属于系统形式化建模与验证 技术领域,对MSVL程序进程模块进行仿真,建模和验证,本发明定义多核并行程序 语法,基于该多核并行程序语法和MSVL语句声明一个多核并行程序,在该多核并行 程序中,不同的进程在各自的时序区间上执行,该执行是由进程的时序区间表达式控 制的,进程的时序区间和主时间区间并行,各个进程的时序区间并行地围绕主时间区 间形成一个圆柱面状模型;基于算术表达式的MSVL柱面计算流程包括有:

步骤1、定义多核并行程序语法,一个多核并行程序或由一个进程,即单进程组 成,或由多个并行的进程组成,即由多个单进程并行组成;多核并行程序的语法定义 为:

CCM::=Single_Progress|CCM1|||CCM2

其中,CCM为多核并行程序,|||是连接不同并行进程的关键字,Single_Progress 为单进程,CCM1和CCM2为相互并行的两个多核并行程序;

一个进程包括进程的执行体和进程的时序区间表达式两部分,单进程的语法定义 为:

Single_Progress::=φovl

其中,φ定义了进程的执行体,l为控制进程执行体φ执行的时序区间表达式,ov 为连接进程执行体和时序区间表达式的关键字;

多个并行进程的语法定义为CCM1|||CCM2,至少包括两个并行的单进程。

声明一个多核并行程序,对于语法合法的多核并行程序,构造柱面计算模型,即 形式化模型,本发明定义了多核并行程序的形式化语法和语义,与现有的MSVL形式 化语义相兼容,对于柱面计算模型,可以基于MSVL形式化方法扩展出新的方法进行 解释,执行步骤2。

步骤2、对合法的多核并行程序进行判断,如果该多核并行程序由一个进程组成, 执行步骤3;如果该多核并行程序的是由多个进程并行组成,执行步骤4;

步骤3、对于单进程构成的CCM模型进行解释,调用步骤5对单进程进行一次解 释,完成对单进程一次解释之后,判断新进程的执行体是否为空,如果新进程的执行 体不为空,判断新进程的时序区间表达式是否为空,如果新进程的时序区间表达式不 为空,为新进程构造新的柱面计算模型,继续执行步骤3;如果时序区间表达式为空, 将新进程执行体中的语句作为普通MSVL程序进行执行,删除新进程,一个单进程完 整的解释过程完成,然后执行步骤7;如果进程的执行体为空,删除新进程,一个单 进程完整的解释过程完成,执行步骤7;

步骤4、对柱面计算模型的多个并行进程进行解释,利用MSVL中的并行投影方法, 控制多个并行的进程在各自的时序区间上并发执行,对于由多个进程构成的多核并行 程序,分别对每一个单进程进行一次解释,单进程的一次解释均执行步骤5,当所有 的进程都完成一次解释后,才能继续,判断是否所有新进程的执行体均为空,如果所 有新进程的执行体都为空,删除所有新进程,执行步骤7;如果存在进程的执行体不 为空,首先删除执行体为空的进程,然后对于执行体不为空且时序区间表达式为空的 新进程,将其执行体中的语句作为普通MSVL程序进行执行,删除新进程,为执行体 不为空且时序区间表达式不为空的新进程构造柱面计算模型,返回执行步骤2;

步骤5、对多核并行程序的单个进程进行一次解释,使进程的执行体在自己的时 序区间状态上执行,首先对单进程的结构进行判断,单进程包括有复杂结构和简单结 构,如果进程是复杂结构,那么对该进程进行递归结构转换,转换为一个简单结构, 然后执行步骤6;如果进程是简单结构,直接执行步骤6;

步骤6、对于简单结构进程进行一次解释,使简单结构进程的执行体在自己的时 序区间状态上执行,简单结构进程的一次解释过程包括:首先,对进程执行体进行解 释,然后,对时序区间表达式进行解释;进程的执行体在当前状态分为当前状态程序 集合和下一状态程序集合,在当前状态对执行体的解释,是指执行当前状态程序集合 中的语句,执行效果反映在程序变量的更新和柱面计算模型的改变上;对时序区间表 达式的解释,用以控制该执行效果持续的时序区间粒度;然后,将下一状态程序集合 中的语句作为新进程的执行体,将解释后的时序区间表达式作为新进程的时序区间表 达式,构造一个新的进程来取代现有进程,同时改变时序状态,从当前时序状态跳转 到下一时序状态,在发生跳转的这些状态点上,主时间区间上的时序状态点投影到进 程的时序区间上,进程在该时序状态点上与主时间区间完成通信,完成简单结构进程 的一次解释,也完成对单进程的一次解释,步骤6结束;

步骤7、整个计算流程结束。

本发明主要涉及用形式化的方法对并行程序进行建模与验证。柱面计算模型构造 了CCM::=φovl|CCM1|||CCM2结构,更加适合于多核编程。不仅能够描述共享对象, 同时也能够以一种便捷可控的方式编写多进程并行程序并对其进行仿真,建模和验 证。本发明提供了一种基于共享变量的语义抽象模型以及用于多核编程的程序设计语 言。

本发明的实现还在于:步骤1中所述的时序区间表达式的语法定义为:

其中,l表示时序区间表达式,表示时序区间表达式为空,e表示基本时序表达 式,l1,l2表示时序空间表达式的连接运算,l1+l2表示时序空间表达式的或运算,l*表 示时序区间表达式的闭包运算,ln表示时序区间表达式的确定次数重复操作,n为非 负整数。

本发明将时序区间表达式的基本运算扩展到了正则运算,并且加入了确定次数重 复操作,使得时序区间表达式描述能力更强更灵活。

本发明的实现还在于:基本时序区间表达式的语法定义为:

e::=n|x|Ox|Θx|function|e0 op e1

op::=+|-|×|mod

n表示正整数,x表示变量x在当前状态的取值,Ox表示变量x在下一状态的取 值,Θx表示变量x在前一状态的取值,function表示函数返回值,e0 op e1表示两个 基本时序区间表达式e0和e1经过算术运算得到的取值。op表示基本时序区间表达式e0和e1可以进行的算数运算,包括加法(+),减法(-),乘法(×)以及取模运算(mod), 语义合法的基本时序区间表达式e化简之后的取值为非负整数。

扩展后的基本时序区间表达式的形式包括正整数,变量在不同时序状态的取值, 函数返回值以及基本时序表达式的算术运算结果。本发明将基本时序表达式从整数扩 展到了算术表达式和时序表达式,增强了表达能力和描述能力,对于不同的建模对象 和进程,可以选用不同的时序表达式来描述时序区间,克服了传统方法适应面窄的情 况,也使得区间描述更加准确灵活。

本发明的实现还在于:步骤6中所述对时序区间表达式进行解释是:对于不同形 式的时序区间表达式,将时序区间表达式的第一个基本表达式分量提取出来,对该基 本时序区间表达式进行解释,保留剩下的部分作为解释后的时序区间表达式,其中对 于对基本时序区间表达式的解释:

如果基本时序区间表达式e是非负整数n,则n作为解释结果返回;

如果基本时序区间表达式e是变量x,则直接查询符号表,将x在当前状态的取值 作为解释的返回结果;

如果基本时序区间表达式e是Ox,则直接查询符号表,将x在下一状态的取值作 为解释的返回结果;

如果基本时序区间表达式e是Θx,则直接查询符号表,将x在前一状态的取值作 为解释的返回结果;

如果基本时序区间表达式e是function,则将该函数的返回值作为基本时序区间 表达式解释的返回结果;

如果基本时序区间表达式e是两个基本时序区间表达式e0和e1的算数表达式,那 么首先解释e0和e1获取其值,然后将e0和e1进行算数运算,得到的运算结果作为解释 的结果返回。

对于基本时序区间表达式的化简,化简结果都必须是一个非负整数。

本发明以一种系统简洁的方法对扩展的基本时序区间表达式进行解释,完备地给 出了所有形式的基本时序区间表达式的解释方法,基于该方法对时序区间表达式的解 释结果使得对进程执行体执行效果的控制更加准确,灵活。

本发明的实现还在于:步骤6中所述时序区间表达式解释结果控制执行体当前状 态程序集合中语句的执行效果持续的时序区间粒度,是将对基本时序区间表达式e的 化简结果记作n,按照如下方法控制效果:

如果n不是非负整数,停止解释,提示错误;

如果n是非负整数,那么当前状态语句集合中的语句执行的效果从当前状态开始 持续n个时序状态,即长度为n的时序区间粒度,然后当前状态程序集合中的语句执 行结束。

依据MSVL中现有的解释规则,对于每个进程的执行体进行解释,然后对时序区间 表达式进行解释,时序区间表达式对于进程的描述限制使得进程的执行更加可控,准 确,易于描述。

本发明的实现还在于:步骤5中所述的复杂结构进程是指时序区间表达式中含有 或运算、闭包运算,或者进程执行体中含有或操作符(or)的进程,其中所述的结构 转换,是指首先对进程进行等价变换,将其转换为由简单结构进程组成的CCM模型;

本发明对于扩展的时序区间表达式,给出了一套系统的解释方法,对于扩展出的 时序区间表达式的或操作以及闭包操作,给出了有效的结构转换方法,使得复杂结构 进程在进行了结构转换之后构造的柱面计算模型与现有的MSVL模型相兼容。

本发明还是一种基于算术表达式的MSVL柱面计算系统,包括有词法语法定义模 块、程序解释模块,词法语法定义模块规定了MSVL程序的语法,生成MSVL模型,程 序解释模块对生成的MSVL模型进行解释,得到解释结果。基于算术表达式的MSVL柱 面计算系统还包括有时序区间定义模块,在词法语法定义模块中包含有柱面计算用词 法语法定义子模块,时序区间定义模块处在柱面计算用词法语法定义子模块中,由柱 面计算用词法语法定义子模块定义多核并行程序的语法,规定一个多核并行程序或由 一个单进程组成,或由多个并行的单进程组成;一个单进程包括有进程的执行体和进 程的时序区间表达式。由柱面计算用词法语法定义子模块为多核并行程序构造柱面计 算模型。时序区间定义模块定义进程时序区间表达式的词法和语法。程序解释模块中 包含进程解释模块,进程解释模块设置有:复杂结构化简模块和简单结构解释模块。 对于柱面计算用词法语法定义子模块生成的柱面计算模型,首先用进程解释模块对其 加以区分,如果是复杂结构,则先利用复杂结构化简模块对复杂结构进程的结构进行 递归化简,再利用简单结构解释模块对其进行解释,如果是简单结构,则直接利用简 单结构解释模块对其进行解释。柱面计算用词法语法定义子模块定义了多核并行程 序,为多核并行程序构造柱面计算模型,进程解释模块对进程的柱面计算模型进行解 释,生成新的柱面计算模型,基于柱面计算模型给出仿真和建模结果,对于多个进程 并行形式的解释,调用并行投影模块,参与多个进程的并行解释。

本发明的实现还在于:简单进程解释模块设置有:执行体解释模块和时序区间表 达式解释模块,进程执行体的执行是由进程的时序区间表达式控制的。

在基于算术表达式的MSVL柱面计算系统中,并行投影模块控制各个并行进程的执 行,同时控制各个并行程序能够在某些特定时序状态上进行通信:对于并行的进程, 不同的进程在各自的时序区间上执行,每个进程的时序区间同主时序区间是并行的。 每个进程一次解释结束后,主时间区间上的某些特定的状态点可以投影到进程的时序 区间上,各个进程在投影点上与其他进程进行交互,共享资源。并行执行模块控制各 个并行进程的执行并使其能够在某些特定时序状态上进行通信,增加了并行进程执行 的独立性,降低了进程间通信的资源消耗。

总体而言,本发明提出的基于算术表达式的MSVL柱面计算方法和系统可以更好 地用于对多核并行程序设计系统进行仿真,建模和验证,与现有方法相比,本发明优 点如下所示:

(1)对于基本时序区间表达式,本发明从原有的整数表达式扩展到了算术表达式 和时序表达式,增强了描述能力,对于不同的建模对象和进程,可以选用不同的基本 时序区间表达式来描述时序区间,克服了传统方法适应面窄的情况,也使得区间描述 更加准确灵活。

(2)对于时序区间表达式的操作,本发明将时序区间表达式的基本操作扩展到了 正则运算操作,并且加入了确定次数重复操作,使得对时序区间的描述更灵活,而且 表达能力更强。

(3)对于进程执行体的定义和执行,与现有的MSVL语句相兼容。

(4)依据MSVL中现有的解释规则,对于每个进程的执行体进行解释,同时对时序 区间表达式进行化简,时序区间表达式对于进程的描述和限制使得进程的执行更加可 控,准确,易于描述。

(5)并行的进程在各自的时序区间上执行,在某些特定的时序状态上进行交互, 增加了并行进程执行的独立性,降低了进程间通信的资源消耗。

附图说明

图1为本发明基于算术表达式的MSVL柱面计算方法总体流程图;

图2为本发明对单个进程进行一次解释的流程图;

图3为本发明对简单结构进程进行一次解释的流程图;

图4为本发明基于算术表达式的MSVL柱面计算系统的组成示意图;

图5为本发明对8位数归并排序的模拟图。

具体实施方式:

实施例1

本发明是一种基于算术表达式的MSVL柱面计算方法,属于系统形式化建模与验证 技术领域,对MSVL程序进程模块进行仿真、建模和验证,本发明定义多核并行程序 语法,基于该多核并行程序语法和MSVL语句声明一个多核并行程序,在该多核并行 程序中,不同的进程在各自的时序区间上执行,该执行是由进程的时序区间表达式控 制的,进程的时序区间和主时间区间并行,各个进程的时序区间并行地围绕主时间区 间形成一个圆柱面状模型;参见图1,基于算术表达式的MSVL柱面计算流程包括有:

步骤1、定义多核并行程序语法,一个多核并行程序或由一个进程,即单进程组 成,或由多个并行的进程组成,即由多个单进程并行组成;多核并行程序的语法定义 为:

CCM::=Single_Progress|CCM1|||CCM2

其中,CCM为多核并行程序,|||是连接不同并行进程的关键字,Single_Progress 为单个进程,CCM1和CCM2为相互并行的两个多核并行程序;

一个进程包括进程的执行体和进程的时序区间表达式两部分,每一个进程的执行 体都是MSVL程序,单进程的语法定义为:

Single_Progress::=φovl

其中,φ定义了进程的执行体,l为控制进程执行体φ执行的时序区间表达式,ov 为连接进程执行体和时序区间表达式的关键字;

多个并行进程的语法定义为CCM1|||CCM2,至少包括两个并行的单进程。

进程的时序区间表达式,实际描述的是一个终止状态列表的集合。时序区间表达 式的语法定义为:

其中,l表示时序区间表达式,表示时序区间表达式为空,e表示基本时序区间 表达式,l1,l2表示时序空间表达式的连接运算,l1+l2表示时序空间表达式的或运算, l*表示时序区间表达式的闭包运算,ln表示时序区间表达式的确定次数重复操作,n为 非负整数。

时序区间表达式的操作符的优先级从高到底依次为:

1)、闭包运算,确定次数重复操作

2)、连接运算

3)、或运算

时序区间表达式的连接运算,l1,l2表示时序区间表达式l1和l2之间存在严格的顺序 关系,首先解释l1,然后才能解释l2

时序区间表达式的或运算,l1+l2表示在时序区间表达式l1和l2之间任选一个进行 解释即可;

时序区间表达式的闭包运算l*定义为

时序区间表达式的确定次数重复运算ln是指n个时序区间表达式l做连接运算,可 以定义为ln=l,ln-1

对于各种复杂形式的时序区间表达式,可以灵活运用以下等价规则(R1-R11) 对其进行运算处理,等价规则(R1-R11)如下:

R1.l1,(l2+l3)=l1,l2+l1,l3

R2.l1+l2=l2+l1

R3.(l1+l2),l3=l1,l3+l2,l3

R4.0,l=l,0=l

R5.l+l=l

R6.l1,(l2,l3)=(l1,l2),l3

R7.l,l*=l*,l

R8.l1,(l2,l1)*=(l1,l2)*,l1

R9.l*,l*=l*

R10.(l*)*=l*

R11.l1+(l2+l3)=(l1+l2)+l3

这些等价规则也可以用于时序区间表达式的解释。

时序区间表达式中基本时序区间表达式的语法定义为:

e::=n|x|Ox|Θx|function|e0 op e1

op::=+|-|×|mod

n表示正整数,x表示变量x在当前状态的取值,Ox表示变量x在下一状态的取 值,Θx表示变量x在前一状态的取值,function表示函数返回值,e0 op e1表示两个 基本时序区间表达式e0和e1经过算术运算得到的值。op表示基本时序区间表达式e0和 e1可以进行的算数运算,包括加法(+),减法(-),乘法(×)以及取模运算(mod), 语义合法的基本时序区间表达式e化简之后的取值为非负整数。

本发明将时序区间表达式的基本操作扩展到了正则运算操作,并且加入了确定次 数重复操作,同时将基本时序区间表达式从整数表达式扩展到了算术表达式和时序表 达式,对于不同的建模对象和进程,可以选用不同的时序表达式来描述时序区间,克 服了传统方法适应面窄的情况,使得区间描述更加准确灵活,加强了时序区间表达式 的表达能力和描述能力。

声明一个多核并行程序,对于语法合法的多核并行程序,构造柱面计算模型,即 形式化模型,本发明定义了多核并行程序的形式化语法和语义,与现有的MSVL形式化 语义相兼容,对于柱面计算模型,可以基于MSVL形式化解释方法扩展出新的方法进行 解释,执行步骤2。

步骤2、对合法的多核并行程序进行判断,如果该多核并行程序由一个进程组成, 执行步骤3;如果该多核并行程序的是由多个进程并行组成,执行步骤4;

步骤3、对于单进程构成的CCM模型进行解释,调用步骤5对单进程进行一次解 释,完成对单进程一次解释之后,判断新进程的执行体是否为空,如果新进程的执行 体不为空,判断新进程的时序区间表达式是否为空,如果新进程的时序区间表达式不 为空,为新进程构造新的柱面计算模型,继续执行步骤3;如果时序区间表达式为空, 将新进程执行体中的语句作为普通MSVL程序进行执行,删除新进程,一个单进程完 整的解释过程完成,然后执行步骤7;如果进程的执行体为空,无论进程的时序区间 表达式是否为空,都删除新进程,一个单进程完整的解释过程完成,执行步骤7;

步骤4、对柱面计算模型的多个并行进程进行解释,利用MSVL中的并行投影方法, 控制多个并行的进程在各自的时序区间上并发执行,对于由多个进程构成的多核并行 程序,分别对每一个单进程进行一次解释,单进程的一次解释均执行步骤5,当所有 的进程都完成一次解释后,才能继续,所有的进程并行推进,而不是说依次完整解释 进程。判断是否所有新进程的执行体均为空,如果所有新进程的执行体都为空,删除 所有新进程,执行步骤7;如果存在进程的执行体不为空,删除执行体为空的进程, 对执行体不为空的进程的时序区间表达式进行判断,如果进程的时序区间表达式为 空,将新进程执行体中的语句作为普通MSVL程序进行执行,删除新进程,如果进程 的时序区间表达式不为空,则为步骤6中生成的新进程构造柱面计算模型,返回执行 步骤2;

步骤5、对多核并行程序的单个进程进行一次解释,使进程的执行体在自己的时 序区间状态上执行,首先对单进程的结构进行判断,单进程包括有复杂结构和简单结 构,如果进程是复杂结构,那么对该进程进行递归结构转换,转换为一个简单结构, 然后执行步骤6;如果进程是简单结构,直接执行步骤6;

步骤6、对于简单结构进程进行一次解释,使简单结构进程的执行体在自己的时 序区间状态上执行,简单结构进程的一次解释过程包括:首先,对进程执行体进行解 释,然后,对时序区间表达式进行解释;进程的执行体在当前状态分为当前状态程序 集合和下一状态程序集合,在当前状态对执行体的解释,是指执行当前状态程序集合 中的语句,执行效果反映在程序变量的更新和柱面计算模型的改变上;对时序区间表 达式的解释,用以控制该执行效果持续的时序区间粒度;然后,将下一状态程序集合 中的语句作为新进程的执行体,将解释后的时序区间表达式作为新进程的时序区间表 达式,构造一个新的进程来取代现有进程,同时改变时序状态,从当前时序状态跳转 到下一时序状态,在发生跳转的这些状态点上,主时间区间上的时序状态点投影到进 程的时序区间上,进程在该时序状态点上与主时间区间完成通信,完成简单结构进程 的一次解释,也完成对单进程的一次解释,步骤6结束;

步骤7、整个计算流程结束。

本发明定义了多核并行程序的语法和语义,用于描述一个或多个进程并发执行, 为多核并行程序构造柱面计算模型;本发明将基本时序区间表达式扩展到了算术表达 式和时序表达式,使得描述能力更强,对进程的控制更加准确;本发明对进程的柱面 计算模型进行解释,对进程的解释包括对于进程执行体的解释和对于时序区间表达式 的解释,利用MSVL中并行投影方法控制各个并行进程的并发执行,同控制各个并行 程序能够在各个进程一次解释结束时的状态点上进行通信。

本方法构造了多核并行程序的CCM::=φovl|CCM1|||CCM2结构,更加适合于多 核编程。本发明提供了一种基于共享变量的语义抽象模型以及用于多核编程的程序设 计语言。本发明将时序区间表达式的基本操作扩展到了正则表达式,并且加入了确定 次数重复操作,同时,本发明将基本时序区间表达式的形式扩展到了正整数,变量在 不同时序状态上的取值,函数返回值以及基本时序区间表达式的算术运算结果。本发 明完成了对于一个多核并行程序的定义和描述,不仅能够描述共享对象,同时也能够 以一种便捷可控的方式编写多进程并行程序,对其进行仿真、建模和验证。

实施例2

基于算术表达式的MSVL柱面计算方法同实施例1,步骤6是对于简单结构进程进 行一次解释,使简单结构进程的执行体在自己的时序区间状态上执行,参照图3,单 结构进程的一次解释过程包括:首先,对进程执行体进行解释,然后,对时序区间表 达式进行解释,再由时序区间表达式解释结果控制进程的解释效果所持续的时间区间 粒度。

首先,对进程的执行体进行解释。对于每个进程,进程执行体中每个语句的执行 状态都是由该进程的时序区间表达式控制的。每一个进程执行体中的程序的定义和执 行与现有的MSVL程序相兼容,它在当前状态都可以划分为当前状态语句集合和下一状 态语句集合,进程执行体的定义形式如下:

φ=present_φ∧next(remain_φ)

其中,present_φ代表当前状态程序集合,而remain_φ代表下一状态程序集合。 present_φ中的语句在当前的时序状态上执行,其效果反映在程序变量取值的更新以 及柱面计算模型的改变上,present_φ中语句的执行受限于该进程的时序区间表达式 的解释结果。如果remain_φ不为空,那么remain_φ集合中的语句将在下一状态执行。

然后,对时序区间表达式进行解释,即获取一个有序终止状态列表集合,该列表 集合控制当前状态程序集合中语句的执行时序空间粒度。具体的是指对于不同形式的 时序区间表达式,将时序区间表达式的第一个基本时序区间表达式分量提取出来,对 该基本时序区间表达式进行解释,保留剩下的部分作为解释后的时序区间表达式,在 简单结构进程的一次解释的过程中,当进程的执行体和进程的时序区间表达式执行结 束后,将解释后的时序区间表达式作为新进程的时序区间表达式。本发明对基本时序 区间表达式的解释:

如果基本时序区间表达式e是非负整数n,则n作为解释结果返回;

如果基本时序区间表达式e是变量x,则直接查询符号表,将x在当前状态的取值 作为解释的返回结果;

如果基本时序区间表达式e是Ox,则直接查询符号表,将x在下一状态的取值作 为解释的返回结果;

如果基本时序区间表达式e是Θx,则直接查询符号表,将x在前一状态的取值作 为解释的返回结果;

如果基本时序区间表达式e是function,则将该函数的返回值作为基本时序区间 表达式的解释结果返回;

如果基本时序区间表达式e是两个基本时序区间表达式e0和e1的算数表达式,那 么首先解释e0和e1获取其值,然后对该值进行算术运算,运算结果作为解释结果返回。

对于基本时序区间表达式的解释,解释结果都必须是一个非负整数。本发明将基 本时序区间表达式扩展到了时序表达式和算术表达式,对于时序表达式和算术表达式 的解释方法与现有的MSVL形式化方法相兼容。

本发明提取时序区间表达式的第一个分量控制进程执行体解释效果所持续的时序 状态粒度,实现对进程执行体的执行效果的控制。

最后,时序区间表达式解释结果控制执行体当前状态程序集合中语句的执行效果 持续的时序区间粒度,将对基本时序区间表达式e的化简结果记作n,按照如下方法 控制效果:

如果n不是非负整数,即时序区间表达式的语义不合法,停止解释,提示错误;

如果n是非负整数,那么当前状态语句集合中的语句执行的效果从当前状态开始 持续n个时序状态,即长度为n的时序区间粒度,然后当前状态程序集合中的语句执 行结束。

本发明以一种准确可控的方式,对于多核并行程序中一个进程构造的柱面计算模 型进行解释,对于进程的执行体的解释,方法与现有的MSVL语言中的解释方法相兼容, 对于扩展的时序区间表达式以及扩展的基本时序区间表达式,本方法也给出了详细完 备的解释方法,本发明同时给出了时序区间表达式解释结果控制进程的时序区间粒度 的方法,具有可操作性。基于上述方法,对进程进行解释并构造的柱面计算模型,从 而给出对于该进程的仿真,建模和验证结果,对于进程的描述限制使得进程的执行更 加可控,准确,易于描述。

实施例3

基于算术表达式的MSVL柱面计算方法同实施例1-2,参见图2,本发明的复杂结 构进程是指时序区间表达式中含有或运算、闭包运算,或者进程执行体中含有或操作 符(or)的进程,对于复杂结构进行结构转换,是指首先对进程进行递归的等价变换, 将其转换为由简单结构进程组成的CCM模型;等价变换按照如下规则进行:

L1.φov(l1+l2)≡(φovl1)or(φovl2)

L3.(φ1orφ2)ov(l)≡(φ1ovl)or(φ2ovl)

其中or是MSVL中已有的一种操作符,该操作符的化简方法为选择or连接的两个 独立进程之一进行化简。上述复杂结构进程总是能够化简为两个简单结构进程,然后 在这两个简单结构进程中任选其一进行执行,保证了整个方法的一致性。

本发明对于扩展的时序区间表达式,给出了一套系统的解释方法,对于扩展出的 时序区间表达式的或操作以及闭包操作,给出了具体有效的结构转换方法,将复杂结 构进程转换为简单结构进程组成的模型,在结构转换之后构造的柱面计算模型与现有 的MSVL模型相兼容。本发明准确严格地完成了对复杂结构进程的建模,对基于复杂结 构进程的柱面计算模型给出完整的仿真,建模和验证结果,拓展了MSVL模型的描述能 力和应用范围。

实施例4

基于算术表达式的MSVL柱面计算方法同实施例1-3,本发明针对多进程组成的多 核并行程序,利用MSVL中的并行投影方法,控制多个并行的进程在各自的时序区间 上并发的执行:对于并行的进程,不同的进程在各自的时序区间上并行执行,一个主 时间区间被定义为一个由长度为1的高密度单元子序列组成的时间区间,而每一个进 程以自己的速度在自己的粗粒度投影区间上执行,进程的时间区间与主时间区间是并 行的。在每个进程一次解释结束的状态点上,主时间区间上的状态点可以投影到进程 的时序区间上,各个进程在投影点上与其他进程进行交互,共享资源。

本发明利用MSVL中的并行投影方法控制各个并行进程的在自己的时序区间上执 行,并且各个并行的进程在某些特定时序状态上进行通信,增加了并行进程执行的独 立性,降低了进程间通信的资源消耗。并行投影方法保证了并行多核程序中各个子进 程在各自的时序区间上独立地执行,得到并行多核程序的柱面计算模型,从而完成了 多核并行程序的仿真,建模和验证。

实施例5

本发明还是一种基于算术表达式的MSVL柱面计算系统,是在基于算术表达式的 MSVL柱面计算方法的基础上开发扩展出的计算系统。

参照图4,基于算术表达式的MSVL柱面计算系统包括有词法语法定义模块,程序 解释模块,词法语法定义模块规定了MSVL程序的语法,生成MSVL模型,程序解释模 块对生成的MSVL模型进行解释,得到解释结果。本系统还包括有时序区间定义模块, 在词法语法定义模块中包含有柱面计算用词法语法定义子模块,时序区间定义模块处 在柱面计算用词法语法定义子模块中,时序区间表达式定义模块对多核并行程序中不 同进程的执行体的思绪区间进行描述和建模。由柱面计算用词法语法定义子模块定义 多核并行程序的语法,规定一个多核并行程序或由一个单进程组成,或由多个并行的 单进程组成,一个单进程包括有进程的执行体和进程的时序区间表达式;柱面计算用 词法语法定义子模块为多核并行程序构造柱面计算模型。时序区间定义模块,定义了 进程时序区间表达式的词法和语法;程序解释模块中包含进程解释模块,进程解释模 块基于进程的时序区间表达式对该进程的执行体进行仿真和建模。进程解释模块设置 有:复杂结构化简模块和简单结构解释模块。对于柱面计算用词法语法定义子模块生 成的柱面计算模型,首先用进程解释模块对其加以区分,如果是复杂结构,则先利用 复杂结构化简模块对其结构进行化简,再利用简单结构解释模块对其进行解释,如果 是简单结构,则直接利用简单结构解释模块对其进行解释。简单结构解释模块设置有: 执行体解释模块和时序区间表达式解释模块。进程执行体的执行是由进程的时序区间 表达式控制的。对于多进程并行形式的解释,调用并行投影模块,参与多进程的并行 解释。

柱面计算用词法语法定义子模块定义了多核并行程序设计的词法形式和语法形 式,时序区间定义模块对并行程序系统中不同进程执行的时序区间进行描述和建模, 进程解释模块基于进程的时序区间对不同进程的进行解释和建模,并行投影模块控制 各个并行进程在各自的时序区间上执行,增加了并行进程间的独立性,并行的进程在 各自的时序区间上并发执行,在某些特定的时序状态上进行交互,降低了进程间通信 的资源消耗。

本发明实现了一种基于算术表达式的MSVL柱面计算系统,使MSVL具备对于多核 并行程序设计系统进行仿真,建模和验证的功能。本发明将扩展的柱面计算方法引入 到MSVL中,增强了进程的时序区间表达式的描述和表达能力,加强了MSVL对于多核 并发程序设计系统的仿真,建模和验证功能,可广泛应用于并行程序系统的建模与验 证。

实施例6

基于算术表达式的MSVL柱面计算系统同实施例5,基于算术表达式的MSVL柱面 计算方法同实施例1-4,参照图5,简单进程解释模块设置有:执行体解释模块和时 序区间表达式解释模块。执行体解释模块负责对进程的执行体进行解释,时序区间解 释模块负责对该进程的时序区间时序进行解释。对于一个进程的一次解释,首先是由 执行体解释模块执行该进程执行体的当前状态程序集合中的程序,执行的方法与现有 的MSVL解释器中的执行方法相兼容,执行的效果反映在模型和变量的更新上,进程 执行体的当前状态程序执行完成后,立即解释当前的时序区间表达式,对于时序区间 表达式中嵌套定义的算术表达式进行计算,得到时序区间表达式的第一个基本时序区 间表达式的值,以此来控制进程的执行体本次执行效果持续的时序区间状态数。然后 将下一状态程序集合中的程序作为新的进程的执行体,化简后的时序区间表达式作为 新进程的时序区间表达式,继续下一次化简直至新进程的执行体为空或者时序区间表 达式为空。

实施例7

基于算术表达式的MSVL柱面计算系统同实施例5-6,基于算术表达式的MSVL柱 面计算方法同实施例1-4。

参照图5,利用基于算数表达式的柱面计算系统对8个数的归并排序算法进行仿 真,建模。

在第一趟排序中,将8个数字依次分为四组,每组两个数字,对每组的两个数字 进行排序。因为每一个组中两个数字的排序是逻辑独立的,因此可以分别在四个进程 中并行执行,定义四个进程p1,p2,p3,p4,分别依次完成第1,2,3,4个小组数字排 序,对于第1至4个小组的排序是并发进行的;

在第二趟排序中,将完成排序的第1小组和第2小组进行归并排序形成第1个大 组,同时将完成排序的第3小组和第4小组进行归并排序形成第2个大组,这两次归 并过程之间也是逻辑独立的,因此将第1小组和第2小组进行归并排序形成第1个大 组的过程在进程p1中完成,将第3小组和第4小组进行归并排序形成第2个大组的 过程在进程p2中完成,这两个归并排序的过程也是并发进行的;

最后,将完成第二趟归并的两个大组再进行归并排序,该过程在进程p1中执行。

参照图5,图中,圆柱体的中轴代表的是由长度为1的高密度单元子序列组成的 主时间区间,在第一趟排序中进程p3和p4分别执行第3个和第4个小组的排序,完 成这两组排序后,主轴上的s6分别投影到p3和p4的时序区间上,p3和p4分别在自 己的投影点上与主轴完成通信,p3和p4的时序区间粒度都为2;进程p3和进程p4 结束;

进程p2首先负责第一趟排序中第2个小组的排序,小组排序后主轴上的s6投影 到p2的时序区间上,在该投影点上p2与主轴进行通信,p2的时序区间粒度都为2; 然后p2将第3小组和第4小组进行归并排序形成第2个大组,第2个大组形成后, 主轴上的s36投影到p2的时序区间上,在该投影点上p2与主轴进行通信,p2的时序 区间粒度都为30。进程p2结束;

进程p1首先负责第一趟排序中第1个小组的排序,小组排序后主轴上的s6投影 到p1的时序区间上,在该投影点上p1与主轴进行通信,p1的时序区间粒度都为2; 然后p1将第1小组和第2小组进行归并排序形成第1个大组,第1个大组形成后, 主轴上的s36投影到p1的时序区间上,在该投影点上p1与主轴进行通信,p1的时序 区间粒度都为30。最后,p1将两个大组进行归并排序从而给出排序结果,该归并排 序结束后,主轴上的s98投影到p1的时序区间上,在该投影点上p1与主轴进行通信, 进程p1结束;整个程序结束。

对于单进程程序,需要首先执行第一趟中四个小组的排序,然后依次执行第二趟 中四个小组归并成两个小组的归并排序,最后才能对两个大组进行归并。而在多核并 行程序中,逻辑上相互独立的程序可以在不同进程上并发执行的,然后不同的进程在 特定点上通信,从而节省了时间和资源。

综上,本发明定义了多核并行程序语法和语义,描述一个或多个进程并发执行, 构造柱面计算模型。将基本时序区间表达式扩展到算术表达式和时序表达式,描述能 力增强,对进程控制更加准确;本发明对进程的解释包括对于进程执行体的解释和对 于时序区间表达式的解释,进程的时序区间表达式控制进程执行体的执行效果所持续 的时序区间粒度;利用MSVL并行投影方法参与多个进程的并行解释,控制各个并行 程序在各进程一次解释结束状态点上通信。

本发明提出的基于算术表达式的MSVL柱面计算方法和系统,使MSVL具备对于多 核并行程序设计系统进行仿真,建模和验证的功能,并且将时序区间的表达式的基本 表达式从整数扩展到了算术表达式和时序表达式,使其能够更加灵活高效准确地描述 进程执行的区间序列。因为一个并行程序由多个进程组成,而每个进程都是一个拥有 自己局部变量和语句的有序程序,因此处理并行程序的难度远远大于处理单个有序程 序。而现有的MSVL在并行程序处理中,对于单个子进程的时序区间描述和控制部分 仍是一个薄弱环节,本发明将基于算术表达式的柱面计算方法引入到MSVL中,增强 了进程的时序区间表达式的描述和表达能力,增加了MSVL对于多核并发程序设计系 统的仿真,建模和验证功能,不仅能够描述共享对象,也能够以便捷可控的方式编写 多核并行程序。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号