CN112204526A - 用于配置自动化系统的方法 - Google Patents

用于配置自动化系统的方法 Download PDF

Info

Publication number
CN112204526A
CN112204526A CN201980036166.XA CN201980036166A CN112204526A CN 112204526 A CN112204526 A CN 112204526A CN 201980036166 A CN201980036166 A CN 201980036166A CN 112204526 A CN112204526 A CN 112204526A
Authority
CN
China
Prior art keywords
runnable
matrix
communication
data set
constraint data
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
CN201980036166.XA
Other languages
English (en)
Inventor
A·博特罗哈尔布劳布
J·里希特
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.)
Siemens AG
Original Assignee
Siemens AG
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 Siemens AG filed Critical Siemens AG
Publication of CN112204526A publication Critical patent/CN112204526A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/5038Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the execution order of a plurality of tasks, e.g. taking priority or time dependency constraints into consideration
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/20Design optimisation, verification or simulation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/5055Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering software capabilities, i.e. software resources associated or available to the machine
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/52Program synchronisation; Mutual exclusion, e.g. by means of semaphores
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2111/00Details relating to CAD techniques
    • G06F2111/08Probabilistic or stochastic CAD

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Evolutionary Computation (AREA)
  • Geometry (AREA)
  • Stored Programmes (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本发明涉及一种用于借助于处理单元对自动化系统的计算机生成的配置的方法,该自动化系统具有多个计算节点(ECU1,ECU2,FCCS)。该方法包括以下步骤:a)在处理单元处接收(S1)计算机生成的排序约束数据集(SQ1,SQ2),所述排序约束数据集(SQ1,SQ2)描述了将在自动化系统上执行的软件系统,并且包括分布在多个计算节点之上的软件组件(SW1‑SW3)和可运行功能实体(P211‑P213)以及可运行功能实体(P211‑P213)的时序、排序和并发性信息;b)由处理单元从排序约束数据集(SQ1,SQ2)生成(S2)转移矩阵(P1,P2),所述转移矩阵(P1,P2)具有多个矩阵元素,矩阵元素中的每个通过转移值描述从一个可运行功能实体到另一个可运行功能实体的转移;c)在处理单元处接收(S3)计算机生成的通信矩阵,所述计算机生成的通信矩阵描述在自动化系统中的计算节点之间的通信链路;d)由处理单元从排序约束数据集(SQ1,SQ2)和通信矩阵中生成(S4)马尔可夫链(MC1,MC2,MC);e)由处理单元从马尔可夫链生成(S5)分布函数,所述分布函数针对软件组件(SW1‑SW3)和可运行功能实体(P211‑P213)的特定时序分布,描述由软件组件(SW1‑SW3)和可运行功能实体使用的计算节点的资源;f)由处理单元通过公式化和解决约束优化问题来优化(S6)资源分配。

Description

用于配置自动化系统的方法
本发明涉及用于配置具有多个计算节点的自动化系统的方法和系统。
供在自动化系统中使用的嵌入式软件系统的设计包括若干个相互关联的步骤,其牵涉到来自不同领域的专家。它从用于信号处理、估计和控制的算法的概念设计开始。在概念阶段中,导出信息的原则,诸如所需信号的列表、处理算法的结构中的类型及其参数化,以便与手头的物理系统一起进行适当的操作。该阶段经常在基于模型的设计工具中进行,所述设计工具诸如是Mathworks的Matlab/Simulink或Ansys Esterel的Scade套件。
在概念设计之后,算法被递交给软件工程师,软件工程师将它们拆分成软件组件和可运行功能(所谓的:可运行件),将它们分布在嵌入式计算节点(电子控制单元ECU)之上,将可运行件、即可运行的功能实体与操作系统的任务相结合,设计调度以及设计计算节点之间的通信。
在最先进的技术水平下,计算节点内的调度设计由调度优化工具支持,所述调度优化工具诸如是Timing Architect的TA套件。类似的工具、诸如Mentor Graphics VSA COM设计器,优化总线系统的通信设计。
在概念阶段和软件工程阶段中的学科专家之间的交互是有问题的。这些群组使用不同的语言、不同的模型和不同的工具。然而,算法设计者(信号处理和控制工程师)与软件工程师之间的适当沟通对于确保算法的可运行件在部署时以适当的次序并且在适当的时序下被执行是至关重要的。在该方面中的疏忽导致不适当的部署缺陷,其需要在验证动作期间被检测和调试。
在嵌入式软件设计的概念阶段中,必须调度许多并发的软件组件来部分地并行、并且部分地顺序运行,以满足时间约束。从架构结构中发现软件元素中的每一个可以如何影响彼此和整个项目,可以缩减后期的成本和问题。
软件架构可以用例如UML、SysML、EAST-ADL、AADL等之类的多种语言定义。关于时序,ARINC、Amalthea和EAST-ADL为嵌入式抢占目标环境定义了时序约束。然而,从软件架构的角度,对抢占操作系统中的软件执行进行时序分析对于嵌入式软件的正确设计是至关重要的。
因此,本发明的一个目的是提供用于嵌入式软件配置的方法和系统,该嵌入式软件用于自动化系统的配置,该自动化系统使得能够自动化且容易地进行软件执行的时序分析。
该目的通过根据权利要求1的方法、根据权利要求12的特征的计算机程序产品和根据权利要求13的特征的系统来解决。从属权利要求中阐述了另外的实施例。
根据本发明的第一方面,提供了一种借助于处理单元对具有多个计算节点的自动化系统进行计算机实现的配置的方法。该方法包括步骤a),在处理单元处接收计算机生成的排序约束数据集,该排序约束数据集描述了将在自动化系统上执行的软件系统,并且包括分布在多个计算节点之上的软件组件和可运行功能实体以及可运行功能实体的时序、排序和并发性信息。该方法包括步骤b),由处理单元从排序约束数据集生成转移矩阵,该转移矩阵具有多个矩阵元素,每个矩阵元素通过转移值描述从一个可运行功能实体到另一个可运行功能实体的转移。该方法包括步骤c),在处理单元处接收计算机生成的通信矩阵,该计算机生成的通信矩阵描述在自动化系统中的计算节点之间的通信链路。此外,该方法包括步骤d),由处理单元从排序约束数据集和通信矩阵中生成马尔可夫链。该方法包括步骤e),由处理单元生成马尔可夫链的分布函数,该分布函数针对软件组件和可运行功能实体的特定时序分布,描述了由软件组件和可运行功能实体使用的计算节点资源。最后,该方法包括步骤f),由处理单元通过公式化和解决约束优化问题来优化资源的分配。
根据第二方面,提出了一种用于配置具有多个计算节点的自动化系统的系统,该系统包括处理单元,该处理单元被配置为a)接收计算机生成的排序约束数据集,该排序约束数据集描述了将在自动化系统上执行的软件系统,并且包括分布在多个计算节点之上的软件组件和可运行功能实体以及可运行功能实体的时序、排序和并发性信息;b)从排序约束数据集生成转移矩阵,该转移矩阵具有多个矩阵元素,每个矩阵元素通过转移值描述从一个可运行功能实体到另一个可运行功能实体的转移;c)接收计算机生成的通信矩阵,该计算机生成的通信矩阵描述在自动化系统中的计算机节点之间的通信链路;d)从排序约束数据集和通信矩阵中生成马尔可夫链;e)从马尔可夫链生成分布函数,该分布函数针对软件组件和可运行功能实体的特定时序分布,描述了由软件组件和可运行功能实体使用的计算节点资源;f)通过公式化和解决约束优化问题来优化资源的分配。
该方法允许从软件架构的角度对抢占操作系统中的软件进行时序分析。马尔可夫链用于基于架构方法并且作为在具有若干个计算节点的自动化系统中对执行轨迹进行采样的方式来对软件可运行件进行建模。利用该方法,可能确定来自特定的可运行件的行为到软件项目的总体整体行为。该方法可以扩展到考虑另外的模块,诸如硬件、通信总线和自动化系统行为,以在嵌入式软件设计的早期阶段对轨迹进行采样并且测试架构设计。
利用提出的方法,软件组件的执行时间作为概率分布的近似是可能的。可以考虑估计软件项目的软件组件的时间反响(repercussion)。特别地,可以标识关于时序方面的通信瓶颈。并发任务、可运行件、通信、计算节点拓扑和软件组件架构可以通过考虑到次序和时序要求来考虑以创建软件的随机模型。
该方法可以按照如上面概述的从步骤a)至f)的顺序进行。替代地,步骤a)和c)可以并行处理,随后是接着步骤a)的步骤b)。
从因子图生成排序约束数据集,所述因子图作为统一的图形符号表示自动化系统。因子图支持算法概念的设计,并且捕获在多个计算节点上调度算法部分的基本约束。表示自动化系统的因子图可以利用进一步的细节来注释,以确保设计和软件工程领域中的一致性。作为人工工作的结果,可以提供表示自动化系统并用于生成排序约束的因子图。在并行专利申请EP18164183.8中描述了一种以计算机实现的方式提供因子图的可能方式。
计算机生成的排序约束数据集包括每对可运行功能实体的边的描述。
此外,对于每对可运行功能实体,计算机生成的排序约束数据集可以包括通信方向、从其发起通信的可运行功能实体和作为通信接收方的可运行功能实体的标识符、通信信号的标识符以及通信中牵涉到的一个或多个计算节点。可选地,另外的信息可以被提供并且用于定义和描述对软件系统进行描述的排序约束。
通信矩阵描述了计算节点之间的消息交换连同消息中包含的信号和它们的时序要求。使用这样的通信矩阵允许标识那些当在自动化系统及其计算节点上运行时是软件系统的部分的计算节点。
从通信矩阵中,可运行功能实体中的每个可以被分配给自动化系统的特定计算节点(由模型化的调度器表示)。因此,可以生成转移图,该转移图说明不同实体之间的关系以及它们对不同计算节点(以及相应地,调度器)的分配。
转移矩阵可以从排序约束数据集生成,其中通信矩阵可以添加哪些矩阵元素属于哪些计算节点的信息。
根据另外的优选实施例,每个可运行功能实体具有与其相关联的指示其执行时间的时序分布,其中在步骤e)中获得的分布函数是通过借助于蒙特卡罗模拟改变执行时间而以迭代方式生成的,以预测软件系统的时序特性。其他概率分布注释可以描述更复杂的行为,所述更复杂的行为可以影响系统的调度和抢占响应。其他概率分布注释可以来自可运行件的实际执行轨迹或实际目标、先验知识或猜测。通过向每个可运行功能实体分配时序分布,可以提供作为概率分布的软件组件的执行时间的近似。此外,可能的是通过借助于蒙特卡罗模拟改变执行时间来找到一个最佳解。
根据另外的优选实施例,转移矩阵的矩阵元素包括表示每个可运行功能实体的时序行为的执行时序信息。由此,可以从转移矩阵中获得每个计算节点的时序序列图。
根据第三方面,提供了一种可直接加载到数字计算单元的内部存储器中的计算机程序产品,其包括软件代码部分,该软件代码部分用于当产品在计算单元上运行时,执行于此以及之后阐述的方法的步骤。计算机程序产品的形式可以是存储介质,诸如DVD、CD-ROM、USB存储器棒等等。此外,计算机程序产品的形式可以是可经由无线或有线通信链路加载的信号。
本发明的另外实施例、特征和优点将从结合附图考虑的随后描述中变得显然,附图示出:
图1是被描述为因子图的描绘软件系统和计算节点的示意图。
图2是描述图1的软件系统的第一部分的排序约束数据集的一部分。
图3是从根据图2的排序约束数据集生成的转移矩阵。
图4是从图3的转移矩阵生成的马尔可夫链。
图5是描述图1的软件系统的第二部分的排序约束数据集的一部分。
图6是从根据图5的排序约束数据集生成的转移矩阵。
图7是从图6的转移矩阵生成的马尔可夫链。
图8是根据图1的软件系统的可运行件的马尔可夫链。
图9是在蒙特卡洛模拟之后结果得到的分布函数。
图10 是生成的执行调度,其用于向优化器馈送结果得到的设置,其中概述了一个计算节点的一些可运行件的时序和另一个计算节点的一些可运行件的时序,以供进一步分析和优化。
图11是通信矩阵。
技术系统的软件架构、诸如自动化系统的嵌入式设备在其设计开始时被理解为利用端口、接口、连接及其交互来定义软件组件的过程。在该早期阶段,基于软件架构的算法及其背后的功能的可用知识,关于软件组件的并发性、序列和时序做出一些初步设计估计。
从软件项目架构视图中描述执行时序有助于预测软件设计后期中可能的程序执行瓶颈。为了能够标识执行瓶颈并且近似软件组件的执行时间,根据本发明的方法使用了描述软件架构算法的公知的因子图。
因子图是统一的图形符号,其用于多种多样的信号处理、估计、随机推理、机器学习和控制算法。因子图支持算法概念的设计,并且捕获在多个计算节点上调度算法部分的基本约束。因此,因子图是因子分解函数的图形表示,如[1]中详细描述的。
图1图示了简单软件系统的示例性因子图,该软件系统借助于已知的传感器融合从由不同计算节点ECU1、ECU2提供的两个独立测量中计算值。图1中概述的因子图描述传感器融合算法。该软件系统包括运行在计算节点FCCS上的三个不同的软件组件SW1、SW2和SW3。软件组件SW2从表示嵌入式控制单元的前述两个计算节点ECU1、ECU2接收传感器值。
在该因子图中,两个软件组件SW1、SW2、SW3以及软件组件SW1、SW2、SW3和嵌入式计算单元ECU1、ECU2之间的边分别描述了其值用大写字母表示的结果。从一个软件组件到另一个软件组件SW1、SW2、SW3和嵌入式控制单元ECU1、ECU2的消息分别用消息μ表示,而消息的方向由位于与相应边相邻处的粗箭头指示。
三个示例性软件组件SW1、SW2、SW3与相应的可运行件P211、P212、P213(即可运行的功能实体)相关联。嵌入式控制单元ECU1、ECU2与相应的调度器相关联。这些可运行件连同分配的资源和读或写消息以及它们由相应的调度器的执行一起将被用来确定软件系统的执行时间的近似。下面将描述该过程。为了理解本发明,在软件组件与嵌入式控制单元之间的详细交互是不相关的。关于本发明,待评估的软件系统的因子图被认为是给定的。如图1中所概述的因子图可以自动提供,如在申请人的专利申请EP18164183.8中所描述的。替代地,这样的因子图可以作为软件工程师的手动工作的结果来提供。
从因子图的描述中,可以导出一个或多个可运行件排序约束。此外,可以生成描述计算节点之间的通信链路的通信矩阵。自动生成可运行件排序约束和通信矩阵的过程不是本发明的部分。在申请人的并行专利申请EP18164183.8中描述了使用因子图作为输入的、它们的计算机实现的生成。
可运行件排序约束和通信矩阵将被用作输入以自动确定软件系统的执行时间行为。由执行本发明的处理单元接收的相应的排序约束数据集的示例在图2和图5中给出。
例如,可运行件排序约束例如是XML文件,其描述例如Amalthea模型,对于每对相互作用的可运行功能实体,包括通信方向、从其发起通信的可运行功能实体和作为通信接收方的可运行功能实体的标识符、通信信号的标识符以及通信中牵涉到的一个或多个计算节点。
在根据图2的排序约束数据集SQ1中,仅作为示例,概述了各对相互作用的可运行功能实体之间的四个“通信”,以短语“可运行件排序约束”RSC开始。该起始短语RSC之后是从其发起通信的可运行件、箭头和作为通信接收方的可运行件。每个“通信”的可运行件排序约束包括关于次序类型(此处:后继者)、从其发起通信和通信去往到其的可运行件对(此处:“COM_R-->RTE2_R”表示第一通信3a,“RTE2_R-->P212”表示第二通信3b等等)的信息,和可运行件排序约束是否被用户定义的信息(此处:假)。关于通信方向的信息由连接两个可运行件的箭头指示。关于通信信号的标识符的信息(如图1中概述的μ)并且在本示例中缺少通信中牵涉到的一个或多个计算节点,尽管它们可能是排序约束数据集SQ1的部分。
假设SQ1的可运行件由对应于计算节点ECU2的调度器执行。
将注意到,排序约束数据集SQ1是从因子图中生成的,其中,可以使该生成是由计算机生成的。排序约束数据集被用作对根据本发明的方法的第一输入。
从排序约束数据集SQ1可以构建转移矩阵P。转移矩阵P的形式为
Figure 164684DEST_PATH_IMAGE001
转移矩阵P具有多个矩阵元素Pi,j,每个矩阵元素通过转移值描述从一个可运行件到另一个可运行件的转移。这在图3中图示,其中图2的通信3a和3b用圆圈强调。图3图示了从图2的排序约束数据集SQ1创建的转移矩阵P1。转移矩阵P包括多个列i,所述列i对应于在排序约束数据集中定义和标识的可运行件数。转移矩阵的行数j对应于列数,即i = j。行数及其顺序遵循排序约束数据集中的可运行件排序约束的序列。换言之,列指定接收可运行件,并且行指定发起可运行件。
在图3的本示例中,标识了七个可运行件COMR、RTE2R、P211、P212、P213、RTE2W、COMW。将注意到,在可运行件的名字中的索引“R”(对应于“_R”)涉及读取操作,并且索引“W”(对应于“_W”)涉及可运行件的写入操作。
如果在发起可运行件与接收可运行件之间存在通信,则转移值Pi,j将被放入转移矩阵中。转移值表示执行优先级和/或关于可以由执行可运行件的计算节点分配给特定可运行件的资源量的信息。如果转移值为“1”,则所有资源都可以被分配给正在执行的可运行件。如果必须共享资源,则转移值小于“1”。在共享资源的情况下,一行的转移值之和应该等于“1”。如果在起始可运行件与不同可运行件之间不存在通信,则转移矩阵Pi,j中的转移值被设置为“0”。
根据选择的SQ1的示例,通信序列是顺序的,这是由于不存在任务的并行执行的事实。作为结果,如果要设置,则转移值被设置为“1”。这以可运行件排序约束COM_R-->RTE2_R来示例化,其中转移值Pi,j = 1被放入转移矩阵P(3a)中。转移值“1”被放入转移矩阵的第一行和RTE2R列中,RTE2R列是接收可运行件。下一个通信从可运行件RTE2R发起,并且由可运行件P211接收。因此,在后继行的列P211中,转移值Pi,j = 1被放入转移矩阵(3b)中,以此类推。
从图3中的转移矩阵P1,可以确定如在图4中图示的马尔可夫链MC1。马尔可夫链包括对应于排序约束数据集SQ1中的可运行件的多个节点。根据所选的示例,可以看到图4中的马尔可夫链包括七个可运行件COMR、RTE2R、P211、P212、P213、RTE2W和COMW。如从马尔可夫链中可以看到,任务的序列是按逐步骤次序的、即顺序的。
由图1的因子图限定的软件系统的另一软件部分,由根据图5的排序约束数据集SQ2来描述。将注意的是,该方法可以用多个不同的排序约束数据集来实行,它们中的每个描述要评估的软件系统的一部分。然而,关于排序约束的信息也可以是单个排序约束数据集的部分。
在根据图5的排序约束数据集SQ2中,仅作为示例,注意到七个可运行件COMR、RTE1R、P11、P12、P13、RTElW和COMW。如将被认识到的,排序约束数据集SQ2中的可运行件中的一些(即COMW和COMR)对应于根据图2的排序约束数据集的可运行件,并且它们中的一些是不同的(即所有其他的)。排序约束数据集SQ2的结构对应于如以上所描述的排序约束数据集SQ1。
图6图示了由图5的排序约束数据集产生的转移矩阵P2。转移矩阵P2的结构对应于如以上所描述的转移矩阵P2。如从图5可以看到(利用6b表示的矩形),存在三个并行过程,它们从不同的可运行件P11、P12和P13发起,但是被从相同的可运行件RTE1_W(对应于标记RTElW)接收。换言之,存在必须并行执行的三个过程。假设它们由相同的调度器(假设:计算节点ECU1)实行,则必须将资源同时分配给三个可运行件P11、P12、P13。作为结果,每个转移值都相等地设置为1/3。尽管转移值的起始值可以任意设置,但以平等的方式分配计算节点的资源是很好的起点。稍后,可以根据时序约束的可满足性来进行转移值的适配。
图7图示了由根据图6的转移矩阵产生的马尔可夫链MC2。如可以容易地看到的,可运行件RTEIR并行地将消息传输到可运行件P11、P12、P13,在那里它们被并行执行。可运行件P11、P12、P13的结果被转发到可运行件RTEW。另一个通信是逐步骤实行的。
如在图4和图7中图示的马尔可夫链MC1、MC2如已经解释的那样构成了软件系统的部分。在图8中,这两个部分被一起放在联合马尔可夫链MC中,该联合马尔可夫链MC可以通过统一根据图3和图6转移矩阵来得到。联合马尔可夫链MC可以从联合转移矩阵(未示出)中导出,该联合转移矩阵通过组合转移矩阵P1和P2而产生。如从图8显然的,软件系统的两个部分都需要可运行件COMW和COMR。例如,它们可以由图1中的计算节点FCCS执行。
由于不同的分配资源和/或可运行件的执行时间,在蒙特卡洛模拟之后所需资源的结果得到的分布在根据图9的计数状态图中图示。在图9中,图示了每个可运行件P211、P212、P213、RTE2_R、RTE2_W、P11、P12、P13、RTE1_R、RTE1_W、COM_R和COM_W的状态STS以及根据执行量的所需的资源CTS。可运行件与调度器1或2相关联,这取决于它们中的哪一个正在执行可运行件。可以看到调度器1通过可运行件COM _ R和COM_W的频率低于调度器2。这可以是可能的资源分配的重要信息。关于资源分配的信息可以从以下事实中取得,例如,调度器1通过可运行件P13比通过其他可运行件(参见图9中的标记PSF)更不频繁。这可能指示计算节点中的内部资源问题。
可运行件与调度器的关联可以从如图11中示出的通信矩阵中得到。通信矩阵包括关于消息msg、信号Sig和牵涉到的嵌入式控制单元ECU1、ECU2的信息,其中牵涉到的事情包括读取(R)或写入(W)操作。在并行专利申请EP18164183.8中描述了通信矩阵的生成。通信矩阵允许生成必要量的调度器和相关联的接口。作为结果,转移矩阵的子矩阵被确定,其中每个子矩阵与调度器相关联。将注意到的是,假使软件系统的不同部分需要可运行件(在示例中:COMW和COMR),则可以确定子矩阵使得它们重叠。
执行时序转移矩阵的估计示出了软件组件的时序行为,使得如图10中示出的序列图可以被获得并且用于进一步分析。使用来自后一个过程的排序约束,可以获得序列图。此外,注释诸如数据衰老约束之类的附加信息可以更准确地限定时序约束,并且导出最小/最大时序约束。向给定嵌入式计算节点的可运行件的分配以及最终图11的通信矩阵,呈现特定调度器的分配。
在图10中,示出了用于可运行件中的一些的执行的时序图。仅作为示例,前述嵌入式控制单元ECU1、ECU2以不同的方式配置。ECU2的时序图示出在图10的上部中,图10的上部具有几个软件组件,但没有做出关于时序和排序方面的说明。在另一方面ECU1是参数化的,使得软件组件必须遵循特定的序列模式,并且必须在指定的时间流逝内完成计算。ECU1的时序序列被示出在图10的下部中。这个参数化可以放入转移矩阵P1、P2的相应转移值。
在图10中,pj描述了任务j的估计处理时间(执行时间)。rj表示变得可用于处理的任务j的释放时间(开始时间)。任务j的到期日(要求的结束时间)用dj表示。
对于由ECU2执行的可运行件P11、P12和P13,释放时间r11、r12、r13同时开始。任务P11、P12和P13的估计处理时间不同(由p11、p12、p13的宽度表示)。如可以从图10看到的,三个过程P11、P12、P13的实际释放时间是在不同的时间处。举例来说,由ECU2执行的这三个过程P11、P12、P13的到期日d11、d12、d13是同时的。由于过程P11、P12、P13中的每个都在相应的到期日d11、d12、d13之前完成,因此所有时间约束都已满足。用在完成的过程P11、P12、P13之后的COM R/W表示的时间周期表示通信目的(诸如向通信线路读取或写入信息)所需的时间。
由ECU1执行的过程P211、P213和P212被参数化,使得软件组件必须遵循特定的序列模式。特别地,作为第一过程,过程P211在释放时间r211开始。过程P211一结束,过程P212就开始。此外,过程P212一结束,过程P213就开始。在过程P213结束之后,接着是通信过程COM_W。过程中的每个具有不同的释放时间r211、r212和r213,以及不同的到期日期d211、d212、d213
每个可运行件P11、P12、P13和P211、P212、P213具有与其相关联的时序分布。时序分布指示其执行时间,其中如图9中示出的分布函数是通过借助于蒙特卡罗模拟改变执行时间而以迭代方式生成的,以预测软件系统的时序特性。时序函数可以是如与图10的过程P11、P12、P13和P211、P212、P213相关联的伽马分布。替代地,时序分布可以是贝塔分布或均匀分布。
通过改变时序分布,检查时序约束是否被满足或是否能够被满足。特别地,关于ECU2,检查即使这些任务P11、P12、P13的估计处理时间根据如图示的时序分布而变化,过程P11、P12、P13中的每个是否也能够满足到期日d11、d12、d13。对于由ECU1执行的过程P211、P212和P213,进行相同的事情。
如图10中示出的执行调度的布局可以描述为一个优化问题,或者为一个SAT(可满足性问题)。这样的表示可以精确找到可能不满足的时序要求。在不可行的解决方案的情况下,根本原因将被所谓的助手变量发现。
在这个背景下,对问题的SAT描述证明了给定的时序限制是否可以保留用于来自软件设置的蒙特卡罗模拟的一组样本,即,如果问题的解决方案存在于可行的约束集内,则可以保留在当前阶段的时序方面。具体地,例如,P212的执行样本必须在约束r212<= p212<= d212内产生,以满足设置需求。
这样的时序约束如图10中所看到的那样被自动生成,并且可以通过精确找到设置内的瓶颈来解决。该生成包括获取从如图10中看到的下限,放置它们使得序列被保留,并且排列上界使得对应的序列也被保留。
总结以上描述的方法,通过从排序约束数据集生成马尔可夫链(描述要在自动化系统上执行并且包括分布在多个计算节点之上的软件组件和可运行件的软件系统),并且进行蒙特卡洛模拟,可以基于软件项目的架构描述和其组件布局,应用优化来描述软件项目中可能的时间执行场景。该方法以从软件系统的因子图中推导出马尔可夫链模型开始。由此,可以避免手动建模,从而允许快速和直接地应用如上解释的方法。
马尔可夫链以及蒙特卡洛优化是一组用于对来自未知或部分已知随机过程的数据进行采样并且高效地估计基础模型的来自随机分析领域的方法。这些模型可以用于在后期的推断或模拟目的。对于该模型标识,测量数据或从马尔可夫过程模型生成的数据可以用于拟合可假定的模型。
马尔可夫链是从排序约束数据集和一个从因子图导出的通信矩阵生成的。从这两个输入生成的转移矩阵具有某些特性,并且用于对序列、可运行件优先级和通信时序方面进行建模。对于每个计算节点,利用阶段的约束范围对调度器进行建模。这意味着该区域的子矩阵不能到达所有其他状态。
在相对定位约束的情况下,问题的估计时序布局可以通过用转移概率的估计来注释可运行件来描述,所描绘的图可以被转移成若干个并行运行的马尔可夫链(见图4和图7)。蒙特卡罗模拟有助于预测整合时序特性,并且允许针对最坏情况场景、调度瓶颈、资源匮乏、资源泄漏等进行不可行性标识。
使用不同的可运行件的概率分布注释可以描述复杂的行为,所述复杂的行为可影响系统的调度和抢占响应。概率分布可以例如是截断正态分布、伽玛分布、贝塔分布或均匀分布。通过将伽马分布分配给可运行件,可以表述执行时间通常位于某个峰值,但是由于例如收敛标准,取决于情况,执行时间可能比预期花费更长或更短的时间。通过使用贝塔分布,可以描述软件组件具有可预见的分布时间,该可预见的分布时间通常处于某个峰值。均匀分布是可以应用的随机过程(例如软件组件的执行)的有界描述,其中操作的数量是可预测和有限的,但是在操作时间中可能有一些变化。
软件组件中的每个的特性描述可以借助于其他过程或时间行为的确定性描述、例如通过状态空间系统模型、高斯随机游走、非线性系统描述或其他表示来扩展。
每个软件组件的整体确定了系统作为整体如何表现。基于该表示,模型可以被设置,并且然后在蒙特卡洛模拟中求解,从而示出结果转移直方图,如在图9中看到的。
为了标识关于时间问题的架构执行中的瓶颈,使用时序、排序、并发性约束来设置马尔可夫链蒙特卡罗模拟。
参考文献
[1] Loelinger等人的"The Factor Graph Approach to Model- Based SignalProcessing", Vol. 95, No. 6,2007年6月, Proceedings of the IEEE。

Claims (13)

1.一种用于借助于处理单元对自动化系统进行计算机实现的配置的方法,自动化系统具有适于向软件系统分配资源的多个计算节点(ECU1、ECU2、FCCS),所述方法包括以下步骤:
a)在处理单元处接收(S1)计算机生成的排序约束数据集(SQ1,SQ2),所述排序约束数据集(SQ1,SQ2)描述了将在自动化系统上执行的软件系统,并且包括分布在多个计算节点(ECU1,ECU2,FCCS)之上的软件组件(SW1-SW3)和可运行功能实体(P211-P213)以及可运行功能实体(P211-P213)的时序、排序和并发性信息;
b)由处理单元从排序约束数据集(SQ1,SQ2)生成(S2)转移矩阵(P1,P2),所述转移矩阵(P1,P2)具有多个矩阵元素,它们中的每个通过转移值描述从一个可运行功能实体到另一个可运行功能实体的转移;
c)在处理单元处接收(S3)计算机生成的通信矩阵,所述计算机生成的通信矩阵描述在自动化系统中的计算节点(ECU1,ECU2,FCCS)之间的通信链路;
d)由处理单元从排序约束数据集(SQ1,SQ2)和通信矩阵中生成(S4)马尔可夫链(MC1,MC2,MC);
e)由处理单元从马尔可夫链(MC1,MC2,MC)生成(S5)分布函数,所述分布函数针对软件组件(SW1-SW3)和可运行功能实体(P211-P213)的特定时序分布,描述要分配给软件组件(SW1-SW3)和可运行功能实体(P211-P213)的计算节点(ECU1,ECU2,FCCS)的资源;
f)由处理单元通过公式化和解决约束优化问题以精确找到时序要求来优化(S6)资源分配。
2.根据权利要求1所述的方法,其中步骤a)和步骤c)可以并行处理,随后是接着步骤a)的步骤b)。
3.根据权利要求1或2所述的方法,其中计算机生成的排序约束数据集(SQ1,SQ2)是从将自动化系统表示为统一图形符号的因子图中生成的。
4.根据前述权利要求中的一项所述的方法,其中计算机生成的排序约束数据集(SQ1,SQ2)包括每对可运行功能实体(P211-P213)的边的描述。
5.根据前述权利要求中的一项所述的方法,其中计算机生成的排序约束数据集(SQ1,SQ2)对于每对可运行功能实体(P211-P213)包括:
- 通信的方向,
- 从其发起通信的可运行功能实体和作为通信接收方的可运行功能实体的标识符,
- 通信信号的标识符,
- 在通信中牵涉到的一个或多个计算节点(ECU1,ECU2,FCCS)。
6.根据前述权利要求中的一项所述的方法,其中通信矩阵描述了在计算节点(ECU1,ECU2,FCCS)之间的消息交换连同包含在消息中的信号。
7.根据前述权利要求中的一项所述的方法,其中根据通信矩阵,可运行功能实体中的每个可以被分配给自动化系统的特定计算节点。
8.根据前述权利要求中的一项所述的方法,其中转移矩阵(P1,P2)从排序约束数据集(SQ1,SQ2)中生成,其中通信矩阵添加所述矩阵元素中的哪一个属于所述计算节点(ECU1,ECU2,FCCS)中的哪一个的信息。
9.根据前述权利要求中的一项所述的方法,其中每个可运行功能实体具有与其相关联的指示其执行时间的时序分布,其中在步骤e)中获得的分布函数是通过借助于蒙特卡罗模拟改变执行时间以迭代方式生成的,以预测软件系统的时序特性。
10.根据前述权利要求中的一项所述的方法,其中所述转移矩阵(P1,P2)的矩阵元素包括表示每个可运行功能实体的时序行为的执行时序信息。
11.根据权利要求10所述的方法,其中从所述转移矩阵获得每个计算节点的时序序列图。
12.一种可直接加载到数字计算单元的内部存储器中的计算机程序产品,包括软件代码部分,其用于当所述产品在计算单元上运行时执行前述权利要求中的一项的步骤。
13.一种用于自动化系统的计算机实现的配置的系统,所述自动化系统具有适于向软件系统分配资源的多个计算节点(例如ECU1,ECU2,FCCS),所述系统包括处理单元,所述处理单元被配置为:
a)接收计算机生成的排序约束数据集(SQ1,SQ2),所述排序约束数据集(SQ1,SQ2)描述将在自动化系统上执行的软件系统,并且包括分布在多个计算节点(ECU1,ECU2,FCCS)之上的软件组件(SW1-SW3)和可运行功能实体(P211-P213)以及可运行功能实体(P211-P213)的时序、排序和并发性信息;
b)从排序约束数据集(SQ1,SQ2)生成转移矩阵(P1,P2),所述转移矩阵(P1,P2)具有多个矩阵元素,矩阵元素中的每个通过转移值描述从一个可运行功能实体到另一个可运行功能实体的转移;
c)接收计算机生成的通信矩阵,所述计算机生成的通信矩阵描述在自动化系统中的计算节点(ECU1,ECU2,FCCS)之间的通信链路;
d)从排序约束数据集(SQ1,SQ2)和通信矩阵中生成马尔可夫链(MC1,MC2,MC);
e)从马尔可夫链(MC1,MC2,MC)生成分布函数,所述分布函数针对软件组件(SW1-SW3)和可运行功能实体(P211-P213)的特定时序分布,描述要分配给软件组件(SW1-SW3)和可运行功能实体(P211-P213)的计算节点(ECU1,ECU2,FCCS)的资源;
f)通过公式化和解决约束优化问题以精确找到时序要求来优化资源分配。
CN201980036166.XA 2018-03-27 2019-02-28 用于配置自动化系统的方法 Pending CN112204526A (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
EP18164275.2 2018-03-27
EP18164275.2A EP3547127A1 (en) 2018-03-27 2018-03-27 Method for configuration of an automation system
PCT/EP2019/054959 WO2019185278A1 (en) 2018-03-27 2019-02-28 Method for configuration of an automation system

Publications (1)

Publication Number Publication Date
CN112204526A true CN112204526A (zh) 2021-01-08

Family

ID=61965683

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201980036166.XA Pending CN112204526A (zh) 2018-03-27 2019-02-28 用于配置自动化系统的方法

Country Status (4)

Country Link
US (1) US20210141673A1 (zh)
EP (2) EP3547127A1 (zh)
CN (1) CN112204526A (zh)
WO (1) WO2019185278A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116820417A (zh) * 2023-08-28 2023-09-29 湖南于一科技有限公司 一种软件功能控制方法、装置、存储介质及电子装置

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070150322A1 (en) * 2005-12-22 2007-06-28 Falchuk Benjamin W Method for systematic modeling and evaluation of application flows
US20080100617A1 (en) * 2000-06-19 2008-05-01 Alexander Keller Simultaneous simulation of markov chains using quasi-monte carlo techniques
US20150025931A1 (en) * 2013-07-18 2015-01-22 International Business Machines Corporation Business opportunity forecasting
CN105139080A (zh) * 2015-08-04 2015-12-09 国家电网公司 一种基于马尔可夫链的改进光伏功率序列预测方法
CN105226643A (zh) * 2015-09-23 2016-01-06 清华大学 安全约束下电力系统运行模拟模型快速生成与求解方法
CN105657775A (zh) * 2016-04-17 2016-06-08 吉林大学 用于移动自组织网络稳定路由建立的方法
CN106485093A (zh) * 2016-11-10 2017-03-08 哈尔滨工程大学 基于改进马尔可夫链的太阳辐照度时间序列合成方法
CN107743611A (zh) * 2015-04-29 2018-02-27 微软技术许可有限责任公司 动态云计算平台资源的最优分配

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4927448B2 (ja) * 2006-06-09 2012-05-09 株式会社日立製作所 時系列パターン生成システム及び時系列パターン生成方法
WO2008090665A1 (ja) * 2007-01-25 2008-07-31 Nec Corporation プログラム並列化方法及び装置
JP2012094030A (ja) * 2010-10-28 2012-05-17 Hitachi Ltd 計算機システム及び処理制御方法
US9646279B2 (en) * 2012-09-28 2017-05-09 Rex Wiig System and method of a requirement, compliance and resource management
US11010833B2 (en) * 2015-10-09 2021-05-18 Chicago Mercantile Exchange Inc. Systems and methods for calculating a latency of a transaction processing system

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080100617A1 (en) * 2000-06-19 2008-05-01 Alexander Keller Simultaneous simulation of markov chains using quasi-monte carlo techniques
US20070150322A1 (en) * 2005-12-22 2007-06-28 Falchuk Benjamin W Method for systematic modeling and evaluation of application flows
US20150025931A1 (en) * 2013-07-18 2015-01-22 International Business Machines Corporation Business opportunity forecasting
CN107743611A (zh) * 2015-04-29 2018-02-27 微软技术许可有限责任公司 动态云计算平台资源的最优分配
CN105139080A (zh) * 2015-08-04 2015-12-09 国家电网公司 一种基于马尔可夫链的改进光伏功率序列预测方法
CN105226643A (zh) * 2015-09-23 2016-01-06 清华大学 安全约束下电力系统运行模拟模型快速生成与求解方法
CN105657775A (zh) * 2016-04-17 2016-06-08 吉林大学 用于移动自组织网络稳定路由建立的方法
CN106485093A (zh) * 2016-11-10 2017-03-08 哈尔滨工程大学 基于改进马尔可夫链的太阳辐照度时间序列合成方法

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
JOHANSSON B等: "On Distributed Optimization using Peer-to-Peer Communications in Wireless Sensor Networks", 《IEEE》, 16 June 2008 (2008-06-16), pages 497 - 505, XP031282626 *
LOELINGER等: "The Factor Graph Approach to Model-Based Signal Processing", 《IEEE》, vol. 95, no. 6, 30 June 2007 (2007-06-30) *
周玉科;刘建文;王妍;: "马尔科夫链蒙特卡洛算法并行化设计与性能分析", 计算机应用与软件, no. 12, 15 December 2017 (2017-12-15) *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116820417A (zh) * 2023-08-28 2023-09-29 湖南于一科技有限公司 一种软件功能控制方法、装置、存储介质及电子装置
CN116820417B (zh) * 2023-08-28 2023-11-14 湖南于一科技有限公司 一种软件功能控制方法、装置、存储介质及电子装置

Also Published As

Publication number Publication date
EP3547127A1 (en) 2019-10-02
WO2019185278A1 (en) 2019-10-03
EP3752918A1 (en) 2020-12-23
US20210141673A1 (en) 2021-05-13

Similar Documents

Publication Publication Date Title
CN110245067B (zh) 安全关键软件自动化基于需求的测试实例生成系统和方法
JP6122621B2 (ja) プロジェクトの計画及び管理のシミュレーション及び視覚化
Wang et al. An overlapping process model to assess schedule risk for new product development
Walker et al. Automatic optimisation of system architectures using EAST-ADL
Cengic et al. On formal analysis of IEC 61499 applications, part B: Execution semantics
US8677334B2 (en) Parallelization method, system and program
Huang et al. Search strategy for scheduling flexible manufacturing systems simultaneously using admissible heuristic functions and nonadmissible heuristic functions
US8701079B2 (en) Procedure and development environment for generation of an executable overall control program
Sabetzadeh et al. Using SysML for modeling of safety-critical software-hardware interfaces: Guidelines and industry experience
Holtmann et al. Integrated and iterative systems engineering and software requirements engineering for technical systems
CN114637511A (zh) 代码测试系统、方法、装置、电子设备及可读存储介质
US20220309218A1 (en) Method for dividing simulation models up between a processor and an fpga
JP7463346B2 (ja) 形式モデルによってデータフローシステムを設計および確認するためのツールおよび方法
Seok et al. Digital-twin consistency checking based on observed timed events with unobservable transitions in smart manufacturing
CN112204526A (zh) 用于配置自动化系统的方法
Wu et al. Modeling and analyzing the material flow of crowdsourcing processes in cloud-based manufacturing systems using stochastic petri nets
Jun et al. Lead time estimation method for complex product development process
JP2008123517A (ja) 検証方法、システム及び記憶媒体
Hartonas-Garmhausen et al. Deadlock prevention in flexible manufacturing systems using symbolic model checking
Hasanbegović et al. Optimising vehicular system architectures with real-time requirements: An industrial case study
US10481592B2 (en) Selecting manufacturing settings based on historical data from manufacturing tools
US10241764B2 (en) Automatically transform pass-by-value semantics into pass-by-reference implementation
Gradišar et al. Automated Petri-net modelling based on production management data
Shailesh et al. A study on performance evaluation of computer systems using Petri Nets
Ravi et al. Timing-Aware Software-in-the-Loop Simulation of Automotive Applications with FMI 3.0

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