首页> 中国专利> 工业自动化中实时嵌入解决方案的优化操作的系统和方法

工业自动化中实时嵌入解决方案的优化操作的系统和方法

摘要

本发明涉及工业自动化中实时嵌入解决方案的优化操作的系统和方法,对各设置和/或控制应用,生成定时数据结构以确定工业自动化中的控制应用执行时间,包括:使用域特定性质并基于复现代码序列来表征和/或确定控制应用执行时间,其中为生成定时数据结构,复现代码序列从训练应用集合中自动提取和/或在相应应用中识别;自动生成测试数据以确定其准确执行时间供定时数据结构细化;相应控制应用的结构分解为代码序列,所创建数据定时结构和定时模型分别对其提供执行时间估计,然后通过由底向上方式的累积来访问和处理,以及控制应用的最好情况和/或最坏情况执行时间的至少估计被确定和/或报告,并用来优化相应工业控制解决方案的实时操作。

著录项

  • 公开/公告号CN105045568A

    专利类型发明专利

  • 公开/公告日2015-11-11

    原文格式PDF

  • 申请/专利权人 ABB股份公司;

    申请/专利号CN201510157616.4

  • 发明设计人 S.施塔特尔曼;M.奥里奥尔;

    申请日2015-04-03

  • 分类号G06F9/44;G06F11/36;

  • 代理机构中国专利代理(香港)有限公司;

  • 代理人叶晓勇

  • 地址 德国曼海姆

  • 入库时间 2023-12-18 12:02:04

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2020-03-17

    授权

    授权

  • 2017-01-04

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

    实质审查的生效

  • 2015-11-11

    公开

    公开

说明书

技术领域

本发明涉及用于工业自动化中的实时嵌入式解决方案、具体为控制应用和系统的优化操作的系统和方法,其中对于各设置和/或控制应用,生成定时数据结构以确定工业自动化中的控制应用的执行时间,以便确保和提供相应工业控制解决方案的优化实时操作。

背景技术

当设计新的自动化系统或工厂时,也必须开发控制应用。许多应用组件取自例如用于石油和天然气或化学工业的域特定应用资料库。因此,这些组件从设计的开始是可用的,但是其他部分将必须从头开始开发。控制应用和软件将分别运行于控制装置(控制器),其位于工厂中,通常接近由控制应用和/或基础控制算法所监控的过程。因此,所需控制器的数量和位置取决于工厂设计和被控制的过程。

控制器包括CPU、数据处理单元、计算模块、通信模块中的至少一个,具体用于读取传感器数据或者与其他控制器、电源、接口和各种配件交换数据。例如在大多数情况下,计算模块和/或处理单元在不同性能等级(其涉及它们能够执行的计算的数量和复杂度)是可用的,但是更强大的计算模块在生产中引起或要求更高技术工作量(设计、冷却、环境条件或要求)和更高故障率,并且最终在生产中以及也在使用中费用更高。此外,看来期望具有可在更广泛的控制装置中使用的处理单元。

相应控制应用或软件以及相关或基础算法循环地运行,其中I/O装置读取值,运行控制应用和所包含的控制算法,并且将所产生控制参数传递和/或回写到装置。这些操作按照预定间隔、例如在大约500ms的范围实时地激活,并且必须在这个时帧之内完成。因此,控制器硬件必须按照如下方式来选择:控制算法能够在给定最终期限和/或时间间隔之内运行。但是,按照复杂度以及由于成本和/或工作量原因,非常期望使用最廉价和/或最简单的计算模块和/或处理单元,其能够运行相应任务。

在自动化工业中,控制装置、具体是机器、发动机和驱动器或者过程工业中的过程的行为的控制系统可需要在特定时间量之内、具体来说实时地响应输入、具体是信号输入,以确保所述装置和/或过程的正确操作。

如果构成响应时间以及相应的执行时间的一个组件存在,则可能必要和/或可取的是确定软件或应用最坏情况执行时间,使得相应控制系统的设计人员/操作人员能够使用这个信息、具体按照其硬件和/或软件以及至少其操作来优化系统,以确保系统足够快地并且具体来说实时地进行响应。

在本申请的上下文中的实时系统或应用可被理解为一种系统或应用,其保证在可预定的严格时间限制或时间极限或时帧(又称作“最终期限”)之内进行响应。具体来说,实时响应常常在数毫秒或数微秒的范围中。

计算一块或一段代码运行将花费的时间始终是一个难题。在大多数情况下,它是不可能的,因为它涉及不可判定的停机问题。

在实时系统、特别是自动化工业的实时控制系统中,计算一段代码在特定硬件平台、具体是特定执行单元、例如CPU、具体是微处理器或另一处理装置上运行可能花费的最长时间(最坏情况执行时间WCET)实际上是重要的并且是确保和提供所述系统的可靠性和/或正确功能行为或操作的必要性。

为了获得WCET的估计而不管其一般不可判定性,必须使用或应用近似技术,其中存在近似计算特定硬件平台上的软件组件或应用组件的WCET的两种已知的主要方式。

第一方式涉及一段代码的测试或原位测描(in-situationprofiling),并且使用多样执行的执行时间通过试探来计算WCET,以及第二方式涉及应用代码的静态分析,并且使用表示所应用硬件的模型或数据结构来确定或计算WCET。

第一变体要求在测量期间能够实现充分代码覆盖,并且已经观测每一个程序或应用语句的最坏情况执行时间。实际上,无法始终满足这些要求,并且因此WCET可能欠近似(under-approximated)。对于具有严厉实时要求的系统、例如特别是自动化工业或过程工业中的控制系统,这是不健全并且可能不安全的。

静态WCET分析要求人工开发目标处理器的硬件模型,其基于形式方法来估计执行时间。这是冗长并且费用高的过程。模型下面的抽象按照保守方式近似计算执行时间,由此导致对实际WCET的过度近似。由于保证所产生WCET估计是程序或应用的每一个可能执行时间的上限,所以该方式能够安全地应用于具有严厉实时要求的系统中。

在自动化技术或者自动化工业中,存在从充分控制的硬件到具有许多可能执行单元(例如CPU(中央处理器)、GPU(全局处理单元)、FPGA(现场可编程门阵列)、DSP(数字信号处理器))的商品硬件的缓慢迁移和发展。

在这类系统中,硬件组件和/或配置的多样性使得人工开发每一个可能目标平台或目标平台配置的新静态定时模型是不切实际并且几乎是不可能的。

此外,安全关键系统的软件或应用通常变得很大,其中包括庞大数量的代码行、具体是数百万行代码,并且相应地对于穷举测试是过大的。因此,仅使用测试或测描是危险的,因为不可能观测程序的每一个可能执行以确定WCET、从而提供和确保所述系统的可靠操作。

当下没有以充分质量以及最小化技术和/或计算复杂度和工作量来有效地解决这些问题的技术解决方案是可用的。

发明内容

因此,本发明的目的是提供一种具体用于实时过程的有效和精确执行时间确定、以确保和提供自动化工业中的控制系统的优化操作的解决方案。

此目的通过如技术方案1所述的用于工业自动化中的实时嵌入式解决方案、具体是控制解决方案的优化操作的方法来解决,其自动创建所使用控制硬件的电子再现,并且将测试和静态分析的组合应用于所述再现,以便尽可能准确地确定作为所述硬件的优化配置和操作、具体来说是用于相应代码段和控制系统的执行的适当处理单元的确定和/或选择的基础的WCET。

在本申请的上下文中的控制解决方案可在软件或程序上以及在硬件侧或者它们的组合。

在其他技术方案和以下描述中提供按照本发明的方法以及用于工业自动化和/或自动化工业中的实时嵌入式解决方案的优化操作的系统(其中包括定时数据结构生成单元和至少一个接口)的其他细化和开发。

按照本发明的所公开方法生成定时数据结构,并且包括下列步骤:使用域特定性质并且基于复现代码序列(recurringcodesequences)来表征和/或确定控制应用的执行时间,其中,为了生成定时数据结构,复现代码序列从训练应用集合中自动提取和/或在相应应用中识别;以及自动生成测试数据以确定其准确执行时间供定时数据结构的细化并且将相应控制应用的结构分解为代码序列,所创建数据定时结构和定时模型分别对其提供执行时间估计,其然后可具体通过由底向上方式的累积来访问和处理,并且控制应用的最好情况执行时间和/或最坏情况执行时间的至少一个估计被确定和/或报告,并且用来优化相应工业控制解决方案的实时操作。

这确保高效率以及高质量。

在所提出方法的另一个实施例中,在第一过程阶段

–通过仅考虑单指令来构造和/或确定控制器CPU或数据处理单元的初始定时模型,以及

–针对指令的流水线执行的最好情况和优化最坏情况假设、但是高速缓存的内容的最好情况假设被确定和/或存储在数据库中。

这对复杂处理器看来是错综复杂的,因为必须确定目标控制器的CPU的每一个指令类型的执行时间。

在这点上,必须指明,按照本发明的过程阶段可包括若干过程步骤。

此外,仅与单指令相关的这个信息能够从CPU数据表来提取或者通过使用综合基准来测量单指令类型的执行时间。

此外,这个过程阶段必须对控制器的每一个新CPU重复进行。所产生指令级估计则可用来自动确定等级控制应用的作为粗粒度间隔的性能估计,只要能够计算单独机器指令的出现。

CPU的定时模型使用控制训练应用集合来细化,以训练模型或数据结构。

在另一个实施例中,初始定时模型或初始数据结构的细化通过识别复现代码序列在单独简图或代码块的等级进行,其中代码序列可表示指令序列或者IEC61131-3构造的序列。

在另一实施例中,对于这些复现序列,通过执行相应程序部分的详细分析和/或测量来得到和/或确定更准确估计,其中具体实现可基于指令追踪或机器学习的统计分析。

在任何情况下,实现可以能够跟踪代码序列的执行时间间隔,表示最好情况或最坏情况执行时间。

此外,这个细化可作为性能估计工具的开发的组成部分进行,或者甚至可由控制应用开发人员来指导,具体来说以便获得应用的关键部分的更准确估计。

这个步骤对作为技术资料库所提供的组成部分的简图也可能是极为有用的。

此外,定时模型或定时数据结构不仅孤立地考虑代码序列的执行时间,而且还提供与其交织和互相关有关的信息。

在已经创建定时模型之后,在另一细化标准中,静态分析技术可应用和/或用来确定任意控制应用的可能执行。

按照所提出的方法和系统,控制应用的结构分解为代码序列,定时模型能够对其提供执行时间估计,其中如果没有较长代码序列的这种信息在定时模型中可用,则相应应用和/或基础算法分解到单独机器指令的等级。后一情况始终是可能的,并且能够利用最好情况估计以及最坏情况估计。

累积按照由底向上方式进行。

在另一实施例中,为了考虑高速缓存或其他共享资源的不利影响,加值(markup)应当添加到使用定时模型所创建的最坏情况性能估计。这个加值可能基于经验数据、体验、基于知识、控制应用的模拟或执行。最在可能的是基于如模型开发期间所使用的相似细化技术来确定每控制器变体的加值的准则。

此外,作为结果,报告最好情况执行时间和最坏情况执行时间的估计。

不是使用应用的固定集合仅一次得出CPU定时模型,而是还可在正常应用开发期间即时细化。对此的唯一附加要求在于,具有充分测量能力的控制器硬件是可用的。这甚至可能在工厂中进行,以观测实际执行。

这种技术还能够应用于软件的任何种类的估计时间(例如平均情况估计时间或者最好情况执行时间计算)以及用于连网和/或处理组件。

所公开的方法和系统特别可适用于具有多核控制器和异构执行单元的将来控制系统。模型生成能够单独对各潜在执行单元来执行。确定复现代码序列的估计的过程能够高度自动化,因为测量设置能够再用于不同执行单元。在应用开发期间,单独模型能够用来判定应用的哪些部分最佳地运行于哪一个执行单元。

通过提供与在具有给定计算模块的控制器上运行控制算法花费多少时间有关的信息,所公开的系统和方法支持工厂的开发和维护过程。因此,方法和系统确保满足必要最终期限,并且工厂将如预计来表现,而无需在现场创建测试设置或测试/测量。此外,能够优化控制器硬件的成本,因为本发明允许选择具有最小成本但仍然满足要求的计算模块或处理单元。

备选地,通过提供与软件的哪些部分要求控制器上的大多数执行时间有关的信息,所提出方式还能够帮助优化控制算法的实现。

不是使用目标处理器的静态模型来估计执行时间,按照本发明的方法而是使用复现代码序列来量化控制应用的执行时间。复现代码序列的执行时间通过测量来确定和/或得到,并且存储在适当数据结构或数据库中。为了确定完整应用的执行时间估计,其执行时间是已知的代码序列具体通过所存储执行时间来识别,并且然后查找和/或读出数据库中的相应执行时间。在另一步骤,可用和/或所检索执行时间按照由底向上方式来处理和/或结合,以及确定完整控制应用的执行时间,和/或分别确定和/或测量至少相应应用的WCET的估计。在另一实施例中,电子再现具体在数小时或数天之内完全自动地生成或创建,其与人工得出作为控制解决方案的硬件部分的电子再现的相应模型或数据结构(其通常是复杂和费时过程,并且费用至少大约100k$)相比,具有小许多的工作量以及更加有效。

所提出的方式要快许多,因为开发一个新硬件的电子再现和基础数据结构或模型是费时的,具体来说它可花费数月。此外,按照本发明的生成看来比先前方式更加准确,因为它使用实际和/或真实硬件来细化其估计。

本发明提出通过逐渐测试代码来确定和/或计算具体是工厂自动化和/或自动化工业领域中的特定系统的执行时间的模型的全自动方式。它通过下列步骤进行工作:首先测试单独指令,并且然后将被测试代码的大小增加到常用代码序列的等级。基于这些常用代码序列的执行时间估计,能够估计任意控制应用的执行时间。

所提出方式的意图是采用仅覆盖由程序或应用在目标域或技术领域中实际使用的指令序列的模型或数据结构来取代CPU定时行为的当前使用的抽象但完整的模型。这种方式能够显著降低开发这类模型的成本,并且还能够使它们在域或领域中是可适用的。此外,所提出的技术不是要生成任意应用的通用定时模型。

为了准确估计软件组件的最好情况执行时间(BCET)、平均情况执行时间(ACET)和最坏情况执行时间(WCET)而无需其执行被观测,运行软件的处理器的定时模型必须被提供和/或必须是可用的。机器指令序列的执行时间极大地取决于这些指令如何经过流水线和相应数据处理单元的功能单元移动以及能够如何交织其执行。

可例如从处理器手册来检索或者来自重复测量相同指令类型的执行的单独指令的执行时间只能用作用于估计完整程序的执行时间的起始点。另一方面,例如当使用ABB的ControlBuilder工具系列或者类似基于模型的工具时,生成控制应用的机器代码的方式允许关于指令的某些序列或模式重复出现的合理假设。

因此,与已知静态分析方法相对照,可能不需要处理器流水线的一般模型或数据结构以得到控制应用的适当准确性能估计。

在本发明的另一实施例中,在一个步骤,所使用或应用的处理单元、具体是工业控制装置中使用的CPU的定时模型被生成和/或创建。

在进一步细化中,定时模型的生成和/或创建包括通过仅考虑单指令来生成CPU的初始定时模型的步骤,其中这个初始模型应当至少包含目标控制器的相应数据处理单元或CPU的每一种指令类型的最好情况和最坏情况执行时间估计,其中这个信息可从数据处理单元或CPU数据表来提取和/或通过使用综合基准来测量单指令类型的执行时间。

这个步骤必须对工业控制器中使用的每一个新CPU变体来运行或重复进行。所产生指令级估计可能已经用来自动确定每一个控制应用的粗粒度性能估计,只要能够计算单独机器指令的出现。

在另一实施例的另一步骤,在基准模型的创建之后,其中该基准模型仅考虑单独指令,经处理以创建或生成相应数据处理单元或CPU的定时模型的数据通过使用控制应用的集合以训练模型和/或通过将定时模型扩展到机器指令的较长序列来确定。

此外,训练应用可分解为较小代码段,对其搜索复现代码序列,其中对于这些复现序列,更准确估计可通过执行相应程序部分的详细测量来得到。

在另一实施例中,可跟踪各代码序列的执行时间三元组,表示可跟踪最好情况、平均情况和最坏情况执行,其中相应地允许估计程序的执行时间的变化。

此外,定时模型可以不仅孤立地考虑代码序列的执行时间,而且还考虑其交织和互相关,这具体意味着,如果代码序列A的执行时间受到代码序列B提前运行的事实影响,则这个信息也由该模型来考虑。

此外,为了确定复现代码序列的执行时间,测量较短指令序列的执行时间,这在大多数现代处理器架构上只有通过添加仪表化代码才是可能的。

当表征复现代码序列的执行时间时,显然存在执行测量所需的工作量与表征精度之间的折衷。具体来说,必须考虑通过添加仪表化代码而添加到测量的开销。

定时表征的另一个难题是观测所有相干执行时间。这将通过模型生成期间的广泛测试来解决。一个选项是将现有测试情况用于训练应用,由其生成定时模型。由于这类测试情况的主要目的不是CPU定时数据结构或模型生成,所以附加测试将是必要的。

因此,在另一实施例中,提供测试单元以应用自动测试情况生成技术,其中例如具体随机和/或混合执行测试等方式用来生成所提出方式的最终实现中的测量的输入数据。

具有任意输入的二进制代码的少部分的测试也可能是可适用的。所提供工作流程与现有的基于测量的定时分析工具的重要差异在于,定时测量必须每个目标处理器仅执行一次而不是每应用一次。

设置测试环境和测量设施的工作量因此仅需要一次。执行时间测量通过应用复杂测试情况生成技术来形式化。此外,不必要的是,所产生定时模型的用户有权访问目标硬件以生成新开发应用的定时估计。

第二重要性质是复现代码序列的平均情况执行时间集成到模型中。这允许与目标装置的平均负荷有关的推理,而无需在实际硬件上运行软件。为了实现这个方面,模型必须存储各复现代码序列的最好情况、平均情况和最坏情况执行时间。

为了向开发人员提供与执行时间有关的信息以及允许在执行时间分析中的程序结构的细粒度考虑,紧密集成到软件开发环境中会是至关重要的。按照本发明的解决方案使软件或应用组件的执行时间的可能变化是显式的,并且因而使开发人员和/或操作人员能够进行关于应用的所有实时要求在预计条件下是否能够满足的更准确判定。

在使用训练应用的集合为目标处理器单元已经创建定时模型之后,所产生定时模型和/或数据结构能够用来估计新开发应用的执行时间。因此,它可能用作现有分析工具链的微架构分析的替代。但是,所提出的方式因不正确近似计算的程序控制流而仍然可能导致过于保守执行时间估计。然而,自动定时模型生成的先前所述方式克服了在软件开发期间对附加测量以及对硬件的访问的需要,同时用于开发定时模型的工作量降低。

此外,在另一实施例中,在自动创建了定时模型之后,任意控制应用的可能执行通过使用标准静态分析技术来确定。

在另一个实施例的另一步骤,控制应用的结构分解为代码序列,定时模型能够对其提供执行时间估计。

如果没有较长代码序列的信息在定时模型中是可用的,则在另一步骤,相应程序或代码序列分解到单独机器指令的等级。后一情况始终是可能的,并且能够利用来自基准模型的信息。

使用所提出方式所创建的定时模型,新开发应用的执行时间能够通过复现代码序列的执行时间的由底向上积累、例如基于程序的控制流程图来执行。

在进一步细化中,模型细化继续进行到所生成模型或数据结构的预测满足预期定时精度,其能够通过将模型的预测与训练应用的端对端执行时间测量进行比较来检查。

所提出定时模型生成的根本基础在于,复现代码模式存在于应用代码中,并且自动检测这些复现代码模式,其中应用和执行代码克隆检测技术,以检测机器代码中的这些复现代码模式。

在另一实施例中,搜索复现代码序列通过查找逐字副本来执行和/或运行。

对于源代码,这表示搜索源代码中的相同字符序列而不是丢弃空白字符。这种方式的二进制级等效体是搜索机器代码中下至最后一位是相似的序列。

由于具有相同源和相同功能性的两段代码例如因源代码中的变量的某种重命名或者将不同寄存器用于相同机器代码操作而无需是完全同形的,所以代码克隆检测技术通常将不同形式的归一化应用于所分析程序。

在机器代码级的代码克隆检测的进一步细化中,归一化技术包括丢弃指令的顺序,将操作码抽象为某些类,或者应用和/或运行将机器代码操作的自变量转化为符号形式。

此外,这些归一化技术可应用于某些代码区域,例如固定长度的指令序列。结果能够是属性的向量、例如包含具有给定操作码(操作代码)的指令的数量的向量或者归一化指令序列的哈希值。

归一化表示可用来有效地比较代码区域,以便检测相似代码区域并且因而检测代码克隆或潜在代码克隆。

为了便于表征复现代码序列的执行时间,存在应用已知归一化技术的若干限制。机器指令的顺序不应当丢弃,因为执行顺序对执行时间具有显著影响。同样的情况对指令的操作数也成立,但是在较小程度上。

此外,在简化复现代码序列的检测的另一细化中,检测算法可以仅集中于指令操作码的序列。因此,基本块中的操作码的MD5哈希被创建和/或计算,并且用作应用代码的归一化表征。MD5哈希消息摘要算法是产生128位(16字节)哈希值的常用密码哈希函数,其通常可按照文本格式表达为32位十六进制数。

在另一细化中,对于包括其地址、输入寄存器和中间常数的机器指令的给定序列,只有指令的操作码用于计算序列的MD5摘要。

此外,当搜索复现序列时,能够进一步分解基本块,但是用于克隆检测的序列不能跨越多个基本块。因此,每个所考虑序列能够包含最多一个分支指令。

此外,按照本发明的用于工业自动化中的实时嵌入式解决方案的优化操作的所公开系统包括至少一个数据处理单元、用于存储执行时间信息的至少一个数据库以及用于数据的输入的至少一个接口,其中提供初始定时模型生成单元,其通过仅考虑控制应用或应用组件的可执行程序代码的单指令来创建和/或生成自动化过程中的控制装置的CPU的初始定时数据结构或模型,并且其中提供细化单元,通过其,使用控制训练应用集合来细化CPU的初始定时数据结构,以便通过将定时模型扩展成机器指令的较长序列来训练和/或批准初始定时结构或模型,并且其中训练应用分解为较小代码段,对其搜索复现代码序列,以及提供比较单元,其比较模型预测和测量,并且根据结果,通过执行细化单元的时间执行模型或数据结构的进一步细化,并且其中比较和细化循环地执行,只要取得预期精度并且确定和创建最终CPU定时模型或数据结构,并且其中提供分析单元,将控制应用的结构分解为代码序列,所创建数据定时结构和定时模型分别可对其提供执行时间估计,其然后可具体通过由底向上方式的累积来查找或检索和处理,并且确定和/或报告控制应用的最好情况执行时间和最坏情况执行时间的至少一个估计。

由于确定目标控制器的CPU的第一种指令类型的执行时间(其可从CPU数据表来提取或者通过使用或应用综合基准来测量单和/或单独指令类型的执行时间)的大工作量,这对于相当复杂的处理器尤其是错综复杂的。

所产生指令级估计则可用来自动确定每一个控制应用的作为粗粒度间隔的性能估计,只要能够计算单独机器指令的出现。

此外,所创建的模型或数据结构不仅孤立地考虑代码序列的执行时间,而且还提供与其交织和互相关有关的信息。

如果没有较长代码序列的信息在定时模型中是可用的,则可能需要将程序分解到单独机器指令的等级,其始终是可能的,并且能够利用最好情况估计以及最坏情况估计。

为了考虑高速缓存或其他共享资源的不利影响,在另一实施例中,提供一种提供人工加值功能性的接口。

这个加值可能基于体验、控制应用的模拟或执行。最在可能的是基于如模型开发期间所使用的相似细化技术来确定每控制器变体的加值的准则。

在另一实施例中,报告可通过显示装置和/或图形界面来执行。

此外,该系统配备有并且包括运行对应方法的所有必要部件。

关于其他系统特征,参阅对应方法的特征。

本发明的这些及其他实施例和改进是从属技术方案和进一步描述的主题。

附图说明

通过附图所示的示范实施例,将更详细说明和示出本发明本身、本发明的优选实施例和改进以及本发明的具体优点。

附图包括

图1示出用于工业自动化中的实时嵌入式解决方案的优化操作的方法的示范工作流程,

图2示出执行时间估计工作流程的一示范实施例,

图3示出定时数据结构细化工作流程的一示范实施例,

图4示出示范基本块和基于窗口的摘要确定,

图5示出不同域中具有不同窗口大小和步幅区域的复现代码段的示范统计评估,

图6示出不同域中具有不同窗口大小和步幅区域的复现代码段的示范统计评估,

图7示出所标记的示范执行和代码序列,以及

图8示出示范情况执行时间估计。

具体实施方式

图1中,示出用于工业自动化中的实时嵌入式解决方案的优化操作的方法的示范工作流程其中在第一过程或工作流程阶段1中,自动化过程中的控制装置的CPU的初始定时数据结构或模型通过仅考虑控制应用或应用组件的可执行程序代码的单指令来构造和创建。

结果是相对指令的流水线执行的最好情况和优化最坏情况Worst-case假设1c,但是对高速缓存的内容是最好情况假设。

由于确定目标控制器的CPU的每一种指令类型的执行时间的大工作量,这对于相当复杂的处理器尤其是错综复杂的。

这个信息可从CPU数据表1a来提取或者通过使用或应用综合基准1b测量单和/或单独指令类型的执行时间。

按照该方法的这个工作流程阶段1必须对控制器的每一个新CPU重复进行。所产生指令级估计则可用来自动确定每一个控制应用的作为粗粒度间隔的性能估计,只要能够计算单独机器指令的出现。

CPU的初始定时数据结构使用控制“训练”应用2a的集合来细化,以便训练和/或批准第二工作流程阶段2中的结构,其中在第二阶段2中,细化通过将定时模型扩展到机器指令的较长序列来执行,并且训练应用分解为较小代码段,对其搜索复现代码序列。

细化在单独简图或代码块的等级通过识别复现代码序列2b进行,其中在本申请的上下文中的代码序列是指令序列/命令序列或者IEC61131-3构造的序列。

对于这些复现序列,通过执行相应程序部分的详细执行时间测量2c来得到更准确估计。

具体实现可能基于指令跟踪或机器学习的统计分析。在任何情况下,实现能够跟踪代码序列的执行时间间隔,表示最好情况和最坏情况执行时间,和/或将其存储在相应数据库中。

这个细化可作为性能估计工具的开发的组成部分进行,或者甚至可由控制应用开发人员来指导,例如以便获得应用的关键部分的更准确估计。这个步骤对作为例如ABB资料库所提供的组成部分的简图也可能是极为有用的。

此外,所创建的模型或数据结构不仅孤立地考虑代码序列的执行时间,而且还提供与其交织和互相关有关的信息。因此,如果代码序列A的执行时间受到代码序列B提前运行的事实影响,则这个信息也由所创建模型或数据结构来考虑。

此后,基于所存储代码序列定时数据3a,初步定时模型3b在第三工作流程阶段3中已经创建,其中在另一步骤,比较模型预测和测量,并且第二阶段2以及第三阶段3重复进行到取得预期精度并且最终确定和创建CPU定时模型4。

此外,标准静态分析技术能够应用并且用来确定任意控制应用的可能执行时间,如图2更详细所示。

逐步地,控制应用20的结构必须分解为代码序列22,所创建数据定时结构和定时模型4可分别对其提供执行时间估计3a,其然后可被查找或检索和处理24。

如果没有较长代码序列的信息在定时模型中是可用的,则在另一步骤,可能需要将程序分解到单独机器指令的等级。

后一情况始终是可能的,并且能够利用最好情况估计以及最坏情况估计。

累积24具体通过使用程序的语法树、按照由底向上方式进行。

为了考虑高速缓存或其他共享资源的不利影响,在另一步骤,加值26应当添加到分别使用定时模型和定时数据结构4所创建的最坏情况性能估计。

这个加值26可能基于体验、控制应用的模拟或执行。最在可能的是基于如模型开发期间所使用的相似细化技术来确定每控制器变体的加值26的准则。

因此,报告最好情况执行时间和最坏情况执行时间的估计(28)。

按照现代编程和/或工程工具,控制应用使用代码生成从基于频繁再使用的子组件(资料库)的图形表示来开发。这允许关于指令的某些序列或模式重复出现的合理假设。因此,可能不需要处理器流水线的一般模型或数据结构以获得控制应用的适当准确性能估计,并且本发明应当一般可适用于这一类程序。

本发明也特别可适用于具有多核控制器和异构执行单元的将来控制系统。

模型生成能够单独对各潜在执行单元来执行。确定复现代码序列的估计的过程能够高度自动化,因为测量设置能够再用于不同执行单元。

在应用开发期间,单独模型能够用来判定应用的哪些部分最佳地运行于哪一个执行单元。这在自动化和/或过程工业中的控制或者多个控制装置的操作期间鉴于维护和升级以及修复活动也可能是重要。

作为另一实施例和代替使用应用的固定集合仅一次分别得出CPU定时模型和数据结构的备选解决方案,它也可在正常应用开发期间即时细化,如图3所示。对此的唯一附加要求在于,具有充分测量能力的控制器硬件是可用的。这甚至可能在工厂中进行,以观测实际执行。图3中,示出用于在新控制应用的开发期间细化定时数据结构的工作流程或过程,其中在第一步骤310开始于新开发的应用300,新控制应用的新代码序列基于可用和所提供CPU定时数据结构4以及可访问地存储在代码序列定时数据库3a中的代码序列定时数据来识别。在第二步骤340,测量所识别序列的相应执行时间。在另一步骤350,新代码序列的BCET和/或WCET被确定并且传递到和/或存储在代码序列数据库3a中。此外,所确定的BCET和/或WCET值在至少一个另一处理步骤360中使用和处理,以更新和/或修改CPU定时数据结构4。

图4a中示范所示的机器代码使用ABB的工程工具CompactControlBuilder(其用来开发控制应用)来生成。对于左侧的最粗粒度变体,直接使用基本块的所有指令。这意味着,摘要1(Digest1)的值通过将MD5哈希函数应用于操作码序列(mflr、stwu、stw、lwz、lwz、lwz、cmpwi、bc)来计算。对于所有其他基本块(其在代码中以标签来标记),按照相同方式来计算摘要。

在另一个示范实施例中,对于更细粒度的表征,摘要能够使用滑动窗口方式来计算,其分解机器代码中的基本块,其中为了从基本块来生成指令序列,通过使用固定步幅跨基本块移动固定大小的窗口来确定序列。

这在图4b中使用4个指令的窗口大小和2个指令的步幅示出。对于摘要1,计算操作码序列(mflr、stwu、stw、lwz)的哈希值。步幅值只能小于或等于窗口大小,因为原本并非包含来自基本块的所有指令。

选择小于窗口大小的步幅值使得更可能捕获复现序列。在基本块末尾,窗口大小在它原本跨基本块末尾移动时被削减。对于这个示例的最后一个窗口,削减窗口大小,并且因而摘要9仅从单操作码blr来计算。

此外,在另一步骤,在用于定时模型生成的训练应用已经划分为摘要之后,摘要值能够用来检测复现代码序列。基础假设和规则在于,具有相同摘要的序列将具有相同执行时间。为了降低表征复现序列的执行时间所需的测量工作量,定时模型中包含的序列的数量尽可能少。另一方面,模型应当包含足够的指令序列,因此很少需要在表征新开发控制应用的执行时间时回退到单指令基准模型。

图5和图6中,示出在不同域、具体是石油气和纸张(OGP)以及采矿工业中具有不同窗口大小和步幅区域的复现代码段的示范统计评估,以便更好地理解复现区域的数量、窗口大小和步幅大小之间的关系和相关性。

此外,为了促进定时模型的使用,提出潜在执行时间的3值表示。相应地,应用的ACET、BCET和WCET可直接向用户呈现。由此,用户在开发阶段和操作阶段已经更好地获悉应用的潜在行为,并且还获得关于应用变化的直接反馈。

其外观的实物模型在图7的底部示出。

此外,除了向用户或操作人员给予反馈之外,平均情况执行时间估计也能够通过仅考虑包含在典型执行中的应用的部分来显著改进。因此,用户或操作人员必须提供关于预计或典型程序路径的所需认识,其常常能够因用户和/或操作员对应用的体验和知识而进行。结合复现代码序列的先前所述的ACET估计和结构程序信息,可实现典型情况的更准确近似。

其原因在于,执行时间异常值不太可能影响平均情况估计的结果。对所观测程序运行的执行时间简单地求平均的标准方式仍然包括这类奇异值,但是所提出的方式允许排除这类典型执行。最后,执行时间的3值表示仍然使最坏情况对用户是显式的,并且因此与标准WCET分析相比,没有丢失信息。

在另一实施例中,如果图7所示代码的编程人员或者操作人员认识到循环中的条件表达式通常立即评估为“真”,它们能够将相应代码区域标记为典型执行的一部分。这在图7中通过对相应代码区域加阴影示出。

相似标记功能性可易于添加到任何代码编辑器。虽然这是人为示例,但是相似模式常常能够见于控制应用、例如用于初始化代码。

在另一个实施例中,这个信息可自动转化为全局限(globalbound)计算分析步骤的限制,它能够用来限制经过CFG的程序路径。因此,通过ACET步骤的全局分析所确定的程序路径不再考虑最坏情况路径而考虑典型路径。

本例的所产生程序路径在图8中示出。绘制为虚线的边缘以及临近它们的频率注释描述典型路径。因此,沿这个路径的基本块的每个正好运行一次。使用这个信息和各基本块的执行时间(其也在图8中对CFG注释),能够得出25个循环的ACET。相应ACET公式在图8的下部示出。即使在基本块的平均情况与最坏情况执行时间之间仅存在小差异,考虑与典型程序路径有关的信息也仍然能够降低静态定时分析的过度估计。虽然现有WCET分析工具已经支持相似路径限制,但是基础定时模型始终是完全最坏情况分析。

ACET估计以及与典型程序路径有关的用户提供信息的组合允许比采用现有解决方案要更准确地表征程序的典型执行时间。因此,它超出传统BCET和WCET分析。由于仍然表示WCET和BCET分析的结果,所以信息仍然是定时分析的用户可用的。

添加平均情况信息允许还通过仅考虑典型执行路径来推出计算机系统的负荷。但是,所提出的方式取决于用户关于典型执行路径的正确知识。因此,我们计划对用户输入的质量以及错误假设、例如错误地未标记典型代码区域或者错误地标记代码区域对随实际工业应用和用户的所计算ACET估计的影响进行情况研究。

3值执行时间估计能够在不同粒度等级、例如完整应用、组件或者单独源代码行来应用。我们设想这个表示集成到控制应用的开发人员的集成开发环境中,在图7的下部示出。通过将这个表示集成到应用开发环境中,直接向应用开发人员呈现单独程序部分的贡献。由此,3值表示使执行时间的可能变化对开发人员是显式的。另外,如果在基本块或单独代码行的等级表示3值执行时间估计,则对执行时间具有高贡献的程序部分直接加亮显示。为了适配3值执行时间估计,开发人员能够将程序区域标记为不是典型执行的部分。这将从平均情况执行时间估计中排除相应程序部分。备选地,违规程序部分能够由开发人员人工优化,以及3值估计能够即时提供与代码变化对执行时间的影响有关的信息。

在工业控制应用的上下文中,属于非典型执行路径的代码选项常常能够自动识别。某个固件功能的结果能够直接涉及控制器是否处于典型状态。例如,在控制应用的大多数执行中,检查装置是否刚遭遇热重启的固件功能将返回错误。

因此,当相应功能用于调节表达式中时,这能够直接转化为平均情况分析的限制。当执行最坏情况分析时,这些限制当然应当不使用,因为它们可能导致WCET的估计不足。

基本上,将某个代码区域标记为典型执行路径将备选路径从WCET分析中排除,并且因而更准确地近似计算预计行为。取决于对其估计执行时间的应用,用户提供信息也可用来标记基于其他基于情形的分析的代码区域。这在某些前提下允许执行时间的更准确估计。因此,所提出的方式也可扩展为用于在特定工作条件下分析程序的执行时间。

所提出的解决方案提供用于基于用户反馈分别自动创建给定处理单元的定时模型和定时结构以及平均情况软件执行时间的静态估计的技术。这些概念最初在工业控制应用的上下文中开发,但是它们可能也可适用于软件开发的其他领域。通过基于实际工业应用的初始实验已经验证控制应用包含大量复现代码序列的假设。结果还表明,某个等级的分解必须用来得出给定处理器上的软件执行时间的通用模型,具体来说使用基本块作为定时模型生成的粒度等级不足以达到预期覆盖。

因此,仅集中于例如通过跨许多应用再使用的软件资料库类型的直接代码再使用将不足以生成准确定时模型。

使用滑动窗口方式来表征指令序列是更适当的,但是它潜在地创建许多重叠代码模式。如果定时模型生成在生成滑动窗口时考虑指令覆盖,则应当可能克服这个问题。

从滑动窗口方式所生成的代码序列应当仅在指令覆盖得到改进时才集成到模型。

作为自动生成定时模型的基础的复现代码序列理想地按照指令的顺序。这个事实暗示性能测量理想地应当在相同粒度等级是可能的。备选地,必须从较长序列的测量来提取较短代码序列的执行时间。由于前者对复杂处理器设计不太可能。

另一方面是定时模型所考虑的复现代码序列与所提供定时精度之间的关系。

在另一细化中,定时模型、具体是与复现代码序列相关的可用和/或所包含定时信息被使用和处理,以确定具有相似结构的控制应用的执行时间。

此外,模型还可适用于使用工具的相同集合来创建的应用。

因此,这种方式是例如静态定时分析的商业工具中使用的人工开发定时模型的当前实践的备选方案。

本发明还包括优选实施例的任何组合以及单独特征和开发,只要它们没有相互排除。

去获取专利,查看全文>

相似文献

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

客服邮箱:kefu@zhangqiaokeyan.com

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

  • 服务号