没有合适的资源?快使用搜索试试~ 我知道了~
基于代理的嵌入式软件设计与XML模型规范的扩展数据流操作语义
理论计算机科学电子笔记160(2006)255-273www.elsevier.com/locate/entcs一种基于代理的嵌入式软件设计Ivanilton Polato1巴西巴拉那中心信息学系安东尼奥·M席尔瓦·菲略2研发与创新巴西累西腓高级研究和系统中心摘要异构模型已经成为解决涉及多个应用领域的问题的替代方案。在过去的十年中,计算模型已经被研究,在几个应用中提供了新的使用可能性。本文提出了扩展的数据流模型,扩展的原始数据流模型,支持事件处理。在扩展数据流中,已经开发了使用XML的模型规范,并将其与模型语法一起呈现。我们讨论其操作语义,旨在避免歧义和不一致。此外,通过数字过滤系统的案例研究说明了模型保留字:计算模型,数据流,XDF1引言在过去的三十年里,高抽象级语言和符号的提议和使用有所增加。这是新方法的发展和对新应用的需求的结果。同样,发展方法也试图跟上这种进步。尽管如此,开发实时软件,特别是嵌入式软件的要求不能完全满足传统的方法。现有的差距已经激励了实时和嵌入式软件的新方法并发性、异构性和资源消耗等特性1电子邮件地址:ipolato@ucppitanga.edu.br2 电子邮件地址:amsf@cesar.org.br1571-0661 © 2006 Elsevier B. V.在CC BY-NC-ND许可下开放访问。doi:10.1016/j.entcs.2006.05.027256I. Polato,A.M.Silva Filho/Electronic Notes in Theoretical Computer Science 160(2006)255嵌入式软件[1]。这些特点可以适当地处理时,使用这种新的方法。基于角色的开发可以被设想为基于组件的开发(CBD)的扩展。随着计算模型的发展,它为嵌入式软件的设计开辟了新的可能性这些模型可以被认为是一组规则,控制模型组件之间的交互。此外,它们可以被视为概念框架,通过基于组件的组合开发更大的设计。虽然已经设计了许多模型,如数据流[2,3,4],离散事件[9,10,11],同步/反应[17],过程网络[24]和有限状态机[22]一个解决方案是创建异构模型,由两个或多个计算模型的组合组成。 因此,一个新的模型可能会非常专业化,以克服特定应用领域的发展限制。本文介绍了扩展数据流,一个异构的模型,设计用于数据驱动的应用程序,需要事件处理。为此,保留了原始数据流模型的特征,并支持事件处理鉴于以上所述,XDF模型及其主要特征将在下面的部分中讨论。XDF模型规范见第3节。第4节讨论了模型中组件的使用和组件生命周期在第5节中进行了将XDF计算模型应用于嵌入式软件(即数字滤波系统)的案例研究。相关工作在第6节中讨论。结论性意见见第7节。2扩展数据流本文提出了一种称为扩展数据流(XDF)的异构模型[13],该模型已应用于嵌入式软件[14]。该模型是DF模型的扩展[2,3,4]。保留了数据流模型(DF)的主要特征以及同步数据流模型(SDF)[6它们包括:• XDF可以同步或异步工作,基于在为应用程序创建模型规范时定义• XDF可以使用Lee和Messerschmitt [12]提出的技术提供无死锁调度。• XDF组件的点火条件取决于数据,即,其执行取决于数据的可用性。• 每个组件产生和消耗的数据量是事先已知的。然而,这只有在以同步方式使用模型时才可能。此外,XDF中的事件处理是实时完成的,因为每个事件都是在发生时使用的。同样,所有事件都有一个相关联的优先级,用于解决同时发生的两个或多个事件之间的冲突常I. Polato,A.M.Silva Filho/Electronic Notes in Theoretical Computer Science 160(2006)255257通过结合DF和离散事件(DE)模型提出了类似的模型[5]。然而,两个特征使Chang模型不同于XDF:• 所使用的数据流模型可以看作是一个通用的模型,具有弱同步性。• 根据与事件相关联的时间来进行事件处理,即,与系统内的全球时间轴一致。XDF已用于嵌入式软件开发,主要用于数字信号处理(DSP)应用[13,14,15]。为了支持使用XDF模型的嵌入式软件规范,使用了模型规范。 XDF模型规范可以被视为正在设计的系统的描述语言,其中指定了组件,连接器,输入,输出和系统事件。 XDF模型规范将在第3节中进一步讨论。在XDF模型规范的第二个抽象级别中,组件被单独指定。 为此,描述了每个组件的输入和输出。 此外,组件引发或接受的事件也在此级别指定。在这个模型中,只有在组件规范中注册的事件才能被组件引发或接受。 系统执行期间可能发生的异常作为具有最高优先级的事件处理。XDF模型支持指定系统的同步 或 异 步 模 式 。 XDF 模 型 可 以 通 过 定 义 参 数 tokensConsumed 、minimumToFire和tokensProduced的集合来同步工作。如果这些参数没有在模型规范中指定,XDF模型将异步工作。这些参数是组件接口的一部分。除了系统组件的规范,XDF模型规范还定义了如何执行事件处理。对于系统引发的事件,应满足特定条件以引发特定事件。系统接受的事件具有事件发生时应执行的特定操作。系统可能引发的每个特定事件都需要一个处理该事件的操作规范。XDF方法超越了XDF模型规范的命题。为了确保规范的正确性,模型的语法和语义都被正式定义。XDF语法使用XML。此外,只要需要,就可以使用XDF的操作语义来避免模型执行期间可能出现的歧义。关于XDF语义的更多细节在[15]中给出。3XDF模型规格XDF模型规范是使用XML开发的之所以选择XML,是因为它具有简单的语法和可扩展性。它允许开发人员创建用于存储和共享信息的文档。数据以纯文本的形式包含在XML文档中.利用这种可扩展性,开发人员创建了表示大量信息的文档。请注意,这些文件必须是有效的和明确的。为此,可以使用XML模式。XML模式是一种文本描述258I. Polato,A.M.Silva Filho/Electronic Notes in Theoretical Computer Science 160(2006)255它使用XML语法来形式化约束,这些约束表示为应用于一类XML文档的规则为了创建XDF模型规范,使用了XML Schema。XML模式也可以被看作是一个框架,规范可以从其中实例化模式也可以用作验证工具。在这里,它用于完成结构验证,并确保XML元素和属性结构满足特定的要求。XDF模型规格使用一个例子。本示例旨在解释模型规范的创建 它包括四个简单的组件:一个随机数生成器,两个排序组件和一个合并组件。第一个组件负责在两个排序组件的输入端输入未排序的数字。在对输入进行排序之后,排序组件将结果发送到合并组件,合并组件负责合并两个排序后的输入。图1显示了这样的例子。这个系统中的事件可以挂起一个组件的执行,前提是发生了一个缓冲器。Fig. 1. XDF示例系统在顶层,XDF模型规范有一个名为modelSpec的元素,它是我们模式的根元素。这个元素有三个子元素:systemName、systemHeader和systemBody。 图2显示了定义modelSpec元素的结构和源代码。图二. modelSpec结构和规格systemName元素指定系统标识,并定义为字符串。图3还显示了示例中systemNameI. Polato,A.M.Silva Filho/Electronic Notes in Theoretical Computer Science 160(2006)255259systemHeader是保存系统主要声明的结构,如图4所示。它有四个子元素,包含:组件名称(组成应用程序),端口(数据从一个组件传递到另一个组件),连接器(链接系统内的组件)和(系统)事件。图三. systemName结构和规范见图4。 systemHeader结构componentName元素包含正在使用的组件的名称它也被定义为一个字符串,这也显示了如何声明一个系统的组件名称。图五. componentName结构和规格port元素由三个指定端口特性的子元素组成。portName节点指定端口的名称。端口的类型,描述通过它的数据类型(例如整数,字符串,字符串)由portType元素指定portCapacity元素设置端口大小,即其最大容量。此外,连接器元素在系统中有三个子元素- Header:connectorName,其指 定 连 接 器 标 识 ;sourceComponentPort , 其 声 明 连 接 器 的 源 ; 以 及targetComponentPort,其用于指定连接器的目标端口。 结构如图7所示。event元素有两个子元素,分别指定事件名称和优先级。图7还显示了该元素的结构260I. Polato,A.M.Silva Filho/Electronic Notes in Theoretical Computer Science 160(2006)255见图6。 componentName元素结构和声明见图7。 连接器和事件元素结构systemHeader元素声明后面是systemBody。这个元素-systemBody-由一个或多个组件元素的定义组成,如图8所示。见图8。 车身结构component 元 素 由 四 个 子 元 素 组 成 : componentName 、 in-terface 、acceptableEvents 和 raisableEvents 。 完 整 的 组 件 声 明 将 在 后 面 显 示 。componentName与systemHeader中指定的元素相同,用于标识正在使用的组件元素。结构如图9所示。interface元素定义了组件的接口。 这个定义I. Polato,A.M.Silva Filho/Electronic Notes in Theoretical Computer Science 160(2006)255261见图9。 部件结构确定系统中组件如何相互通信。这里定义了组件的输入和输出端口以及一组可选的可配置参数。此外,还需要声明生成和接受的事件。接口元素由以下元 素 组 成 : inPort 、 outPort 、 configurableParameter 、 acceptEvent 和raiseEvent。 图10显示了界面元素的结构。见图10。 接口结构inPort元 素 声 明 组 件 的 输入 端 口 。 它 有 四 个 chil-name 元 素 : portName 、tokensConsumed 、 minimumToFire 和 connectorName 。 portName 定 义 了 在systemHeader中声明的通用系统端口,将作为组件的输入。第二和第三个元素是可选的。这两个元素仅在同步模式下指定。代币交易-262I. Polato,A.M.Silva Filho/Electronic Notes in Theoretical Computer Science 160(2006)255sumed元素用于指定组件在开始执行后消耗的数据量。minimumToFire元素用于指定触发组件所需的最小令牌数量。connectorName元素用于声明与端口关联的连接器。图12显示了inPort元素及其子元素的结构。见图11。 inPort结构interface元素的另一个元素是outPort。此元素描述组件的输出端口。必须强调的是,组件可以没有输入端口,但必须至少有一个输出端口。这可以在图11所示模式的源代码中看到,其中interface元素的结构显示唯一需要的元素是outPort。outPort有三个子节点,它们声明了端口的名称、生成的令牌数量(如果是同步工作的话)以及该端口中使用的连接器名称。见图12。 出口结构接口的第三个子节点称为componentParameter。它用于声明规范中所需的参数当附加参数传递给组件时,可能会发生这种情况这里必须指定标识符(paramName)和参数类型(paramType)它也可以指定参数的大小( 例 如 数 组 的 长 度 ) 及 其 值 ( 例 如 常 量 ) 。 图 13 显 示 了componentParameter元素的结构。图13岁组件参数结构I. Polato,A.M.Silva Filho/Electronic Notes in Theoretical Computer Science 160(2006)255263接下来的两个元素是acceptEvent和raiseEvent。 这两个元素用于指定组件可以接受和引发的事件。组件只接受声明的事件。同样,组件只有在此raiseEvent元素中注册时才能引发见图14。acceptEvent和raiseEvent结构一旦声明了组件的可接受和可引发事件,就有必要定义在接受事件时要采取的操作,甚至定义引发事件必须满足的条件。这是在acceptableEvents和raisableEvents元素中完成的。acceptableEvents负责保存注册事件发生时组件必须采取的操作的规范。它有两个子元素:on和doAccept。on元素指定要处理的事件,而doAccept元素指定事件发生时要采取的操作。图15 显示了acceptableEvents元素的结构。acceptableEvents声明了当一个确定的事件发生时必须采取的操作,raisableEvents元素负责声明引发特定事件必须满足的条件它由两个子元素组成:when和doRaise,其中元素when保存引发doAccept元素上声明的事件所必须满足的条件的声明。图16显示了raisableEvents元素的结构图15. XDF示例系统图16.可raisableEvents结构4XDF组件使用组件来组成更大的系统并不是一个新概念[16]。当软件工程这个术语被创造出来的时候,程序库的使用被用来264I. Polato,A.M.Silva Filho/Electronic Notes in Theoretical Computer Science 160(2006)255开发商有几个好处。它可以被看作是今天所谓的基于组件的开发的开始。使用XDF模型开发嵌入式软件的好处之一是组件重用。组件可以被看作是封装了系统设计和实现的一部分的实体。此外,它还通过定义良好的接口提供服务软件重用的主要好处是质量和减少开发时间。通过使用XDF模型,预计将减少开发时间,因为开发人员可以以两种方式重用软件。首先,组件本身可以在多个应用程序中重用。其次,模型中这个组件的规范可以被重用,以创建使用相同组件的新应用程序。请注意,应用程序的质量改进可能间接来自于使用已经测试和使用过的组件。使用组件的动机不仅与重用有关,还与产品需要尽快发布的上市时间要求有关。使用组件开发应用程序的另一个好处是易于维护和更新应用程序。组件可以轻松升级或更换。此外,要使用XDF创建应用程序,可以假设组件是黑盒。 在这种情况下,我们对这些组件的内部结构一无所知,但它们的功能和接口。然而,我们假设每个组件都必须有一个生命周期,如模型的操作语义所定义的。组件的接口也必须定义好。通过拥有满足这些约束的组件,可以使用XDF Model Spec指定应用程序,然后为该应用程序生成代码。4.1组件生命周期XDF组件生命周期由一组状态组成,组件在系统执行期间可以处于这些状态。XDF组件生命周期有两个功能:• 它使得创建和执行运行时计划成为可能• 它提供了对组件状态更改的事件处理的支持。创建XDF组件生命周期,以捕获使用XDF的系统组件的执行。在这个生命周期中,组件可能处于执行中、挂起或等待开始执行,这些状态如图17所示。最初,所有组件都处于非活动状态,即,组件还不是应用程序的一部分。当从存储库中选择一个组件作为应用程序的一部分时,假定该组件进入活动状态。这个状态有一个默认的入口子状态,叫做等待。图17显示了非活动和活动状态以及导致从非活动转换到活动的选择事件。I. Polato,A.M.Silva Filho/Electronic Notes in Theoretical Computer Science 160(2006)255265处于等待状态的组件等待其触发条件满足以进入就绪状态。点火条件由系统设计时的XDF模型规格确定。在满足组件的触发条件后,触发事件将导致组件从等待状态变为就绪状态。组件并不总是需要输入数据来完成其计算。如果选择了任何没有输入端口的组件,则它可以直接从非活动状态进入就绪状态。这种转换的发生是因为这样的组件不必满足任何触发条件,并且可以在任何时候被请求进入执行。系统的执行是由称为系统协调器的实体驱动的。它负责保存系统的编译时间表。协调器负责选择哪些组件将使用XDF生命周期运行,并解决可能出现协调器还负责处理系统内的事件通过处理系统事件,协调器控制组件的状态转换。此外,它还可以控制组件在系统执行过程中产生的事件。处于就绪状态的组件可以在协调器发出请求的情况下进入执行。这是通过一个名为start的系统事件实现的,该事件会使组件进入运行状态,如图17所示。当处于运行状态时,组件状态更改有两种可能性:• 挂起事件导致组件状态从运行变为挂起状态• 停止事件可以将组件引导到等待或就绪状态。所采取的转换基于输入端口的数量。如果组件没有输入端口,它将返回到就绪状态,在该状态下,它将能够再次被调用。如果有输入端口,则组件返回到等待状态,在那里它应该等待再次满足触发条件最后,当一个组件处于挂起状态时,它会等待处理导致它进入这种状态的事件和相关操作。如果出现异常,则可能发生这种情况。处理完这个问题后,组件返回到运行状态。此状态更改是由resume事件引起的。完整的XDF组件生命周期如图17所示。5为例XDF模型已被应用到涉及数字滤波器的案例研究。数字滤波是DSP领域中最重要的功能之一,被广泛使用。包括语音、图像和视频处理在内的应用只是数字滤波器可以应用的几个例子。通常,数字滤波器有两个主要用途:信号恢复和信号分离。第一种情况是当信号以某种方式失真时使用。第二个应用时,信号已被污染,266I. Polato,A.M.Silva Filho/Electronic Notes in Theoretical Computer Science 160(2006)255图17. XDF组件生命周期干扰、噪声或甚至其它信号。数字滤波器的工作原理如下:首先必须使用ADC(模数转换器)对模拟输入信号进行采样和数字化所得到的二进制数,代表输入信号的连续采样值被传送到处理器,处理器对它们进行数值计算。这些计算通常涉及将输入值乘以滤波器的系数,然后将乘积相加。此外,这些计算的结果(现在表示滤波信号的采样值)可以输出到负责将信号转换回模拟形式的DAC请注意,在数字滤波器中,信号由一系列数字表示,而不是通常在模拟滤波器中使用的电压或电流。图18显示了数字滤波过程。图18. 数字滤波过程此外,数字滤波器可以分为递归滤波器和非递归滤波器。递归滤波器是一种除了输入值之外,还使用以前的输出值的滤波器。与前面的输入值一样,这些值存储在I. Polato,A.M.Silva Filho/Electronic Notes in Theoretical Computer Science 160(2006)255267处理器存储器。非递归滤波器也称为FIR(有限脉冲响应)滤波器,而递归滤波器则称为IIR(无限脉冲响应)滤波器。FIR滤波器是脉冲响应具有有限持续时间的滤波器。IIR滤波器的冲激响应理论上不会终止,因为递归(先前的输出)项将能量反馈到滤波器输入并保持其工作。除了脉冲响应,数字滤波器还有阶跃响应和频率响应。这三个回答中的每一个都提供了关于过滤器的完整信息如果三个中的一个被指定,另外两个可以直接获得。所有这三种表示都很重要,因为它们描述过滤器在不同情况下的反应数字滤波器的另一个重要特性是滤波器长度。递归滤波器的长度是计算当前输出所需的先前输入或输出值的最大数量至于非递归(FIR)滤波器,它们只使用当前和先前的输入来计算当前输出。在这种情况下,FIR滤波器的长度是用于计算当前输出的先前输入(存储在处理器存储器中)的数量。此外,滤波器可以是从零向上的任何阶。数字滤波器的其他特性包括系数。这些系数的值决定了特定过滤器的特性。FIR和IIR滤波器都需要这些系数来完成工作。有几种方法可以计算滤波器的系数然而,这超出了本文的范围这里使用的系统是一个旨在提高输入信号的信噪比(SNR)。噪声经常导致语音质量和可懂度方面的劣化。因此,在DSP应用中,降噪甚至去噪是提高信号质量的一个重要特征在图19所示的示例中,系统接收输入信号,并根据系统需要从三个FIR低通滤波器中选择一个。模型中出现的第四个分量称为SNR。该组件负责从三个数字滤波器中选择一个。该系统是根据其组成部分。图19的左下角显示了一个名为NG(Noise Generator)的组件此组件仅用于在信号中创建和插入噪声注意,它可以被设想为更大系统的子系统。SNR是从三个滤波器中选择一个应用于输入信号的组件。FIR滤波器将根据SNR分量已检测到的需求来选择。在此,考虑了提高信噪比的需要这些滤波器通常用于去除信号中存在的高斯白噪声。本例中的FIR滤波器组件均为低通滤波器。第一个lpf 24组件是一个24点滤波器,使用Parks-McClellan方法生成系数。第一个lpf 35是一个35点滤波器,其系数也是使用Parks-McClellan方法生成的。图20.a显示了该组件的频率响应。这两个过滤器都有0.19的cuto。考虑以下分析:通过增加滤波器的长度,可以根据图中所示的70点和128点滤波器频率响应获得更好的结果268I. Polato,A.M.Silva Filho/Electronic Notes in Theoretical Computer Science 160(2006)25521.a和21.b。请注意,滤波器越大,获得的结果越好。但是,系统性能可能会降低。图19. 数字滤波系统第三个过滤器,fir lpf37k,是使用Kaiser Window方法开发的。这是一个37点过滤器,有0.19个cuto。图20.b显示了fir lpf37k组件的频率响应。再次对前两个组件进行相同的分析。也就是说,滤波器越大,获得的结果越好。但是,这会影响最终性能。图22.a和图22.b显示了使用Kaiser窗口方法的70点和128点滤波器的频率响应。例如,将第一个lpf35分量应用于加有高斯白噪声和0.2标准差的正弦波信号,可使信噪比提高约4dB。5.1代码生成为了组成这个例子,使用了用C语言实现的第三方组件。由此产生的应用程序的C代码由我们的代码生成工具基于XDF规范成功生成。请再次注意,删除XML结束标记是为了更好地理解。值得注意的是,这个工具的主要目的是帮助开发使用XDF模型的应用程序。它的主要功能是从XDF规范生成代码。当使用该工具时,C代码是从先前创建的XDF模型规范生成的。该工具还允许编辑模型规格。选择C语言的部分原因是它广泛用于DSP领域。其他原因使用C语言是它可以提供的性能。该工具生成的代码也可以通过这种方式进行优化,以满足目标系统的进一步约束。通常,存在关于执行嵌入式软件所需的存储器的限制。图23部分展示了我们的代码生成工具原型。它有一个简单的用户界面。左侧窗格包含原始的XDF模型规范,它是从digital filters.xml文件中打开的。生成的代码显示在右侧窗格中。然后可以将代码保存到适当的.c或.cpp文件中。为了从XDF规范生成代码,使用了映射过程I. Polato,A.M.Silva Filho/Electronic Notes in Theoretical Computer Science 160(2006)255269已映射模型规范的组件、端口、连接器和其他实体。值得强调的是,我们可以在XDF模型规范中使用我们的组件或第三方组件,并从该规范生成C代码。这可以通过只知道这些组件的接口来完成。我们的方法的一个好处是组件可以重复使用,从而减少了部署时间[23]中讨论了根据非功能性需求和属性从存储库中选择组件图20. a.第一个lpf 35分量P arks的频率响应-McClellan方法。B.第一个lpf37k分量的频 率 响 应 KaiserWindow方法图21. a. 70点FIRParks-McClellan方法的频率响应。B. 128点FIRParks-McClellan方法的频率响应。6相关作品计算模型已经被用于嵌入式软件设计中,以提供一组规则来管理组件之间的交互。它也可以被看作是一个概念框架,在这个框架中,设计是从组件的组合中构建的。每种模型都有其优点和局限性,由于其特定的要求而适合于应用领域。270I. Polato,A.M.Silva Filho/Electronic Notes in Theoretical Computer Science 160(2006)255图22. a. 70点FIR的频率响应KaiserW indow方法。B. 128点FIR数字滤波器的频率响应图23. 代码生成工具截图6.1数据流(DF)数据流(DF)计算模型是一种数据驱动的计算范式在这个模型中,参与者被认为是执行不可分割计算的原子实体。只有当计算所需的所有输入数据都可用时,这些参与者才开始计算。它是一个支持并行计算的强大模型。该模型是探索程序中并行性的第一次尝试之一[2,3,4]。DF模型广泛应用于数字信号处理应用中。它通常使用框图作为一种机制,以图形方式描述和解释I. Polato,A.M.Silva Filho/Electronic Notes in Theoretical Computer Science 160(2006)255271信号处理算法这可以使复杂系统的可视化变得容易,将系统组织成组件块。DF模型的两个重要问题是对并发的支持和缺乏同步。这些特征之所以存在,是因为DF模型依赖于数据可用性。因此,多个组件可以同时执行,从而支持并发性。DF模型可以映射到软件规范,特别是嵌入式软件。DF模型中现有的并发性保留在XDF模型中。然而,模型的同步特性可以根据需要改变如果同步使用,只要预先指定每个组件消耗和产生的数据,SDF模型的特性就会保持不变6.2同步/无功(SR)SR模型[17]有效地处理了使用不规则事件的并发模型在此模型中,组件之间的连接包含与系统全局时间关联的值由于这个特性,系统中的所有组件都具有相同的时间概念。组件表示系统在每个时间单元的输入和输出之间的关系。SR模型适用于具有并发和复杂逻辑控制的应用程序,例如关键系统。使用SR模型的语言的例子是Esterel [18]和Signal [19]。XDF被设计为具有实时事件处理,其中事件在系统或组件引发时进行事件处理在解决事件时使用XDF组件生命周期,更改与事件处理相关的组件的状态6.3离散事件(DE)DE模型为实时系统提供了一个有用的抽象。Milner [9]和Hoare [10]提出了这方面的初步研究。后来,Lee [11]提出了一个研究和处理离散事件的模型。在这个模型中,连接表示一组原子事件(不可分割),它们沿着时间轴排列。 每个事件接收一对(值,时间),其中时间用于确定事件的发生。具有相同时间的事件基于数据优先级排序。与SR模型类似,存在一个坚实的全球时间概念。然而,主要的区别是对系统内事件之间的时间的重视。DE模型主要用于硬件规格和模拟系统仿真。DE模型已应用于多种环境,仿真语言和硬件描述语言,如VHDL [20]和Verilog [21]。然而,DE模型在软件方面可能存在较高的实施成本。尽管DE模型沿着时间轴高效地处理事件,但是事件只能根据其在对(值,时间)中的时间戳来生成和处理在XDF中,事件可以在系统执行的任何时刻引发,而不依赖于时间轴。272I. Polato,A.M.Silva Filho/Electronic Notes in Theoretical Computer Science 160(2006)2556.4有限状态机FSM [22]模型与其他模型不同,因为它是一个严格的序列模型。在这个模型中,状态可以被认为是一个组件。在模型执行期间,一次只能有一个状态处于活动状态组件之间的连接表示为过渡。这个模型的执行可以被看作是在触发转换时在系统状态之间的导航。FSM模型适用于描述嵌入式系统中的控制逻辑,更具体地说,适用于关键系统。它可以用来预测一个系统的行为,提供了一个形式化的分析。它也可以很容易地映射到硬件和软件实现。尽管有限状态机模型有其局限性,但由于它为系统提供了可预测的行为,因此它被广泛用于构建异构计算模型XDF在组件生命周期中使用类似的状态思想。描述了组件在执行过程中可能处于的所有状态。系统事件负责系统执行期间的状态转换。因此,组件可以在系统中具有可预测的行为。7最后发言本文提出了一种使用XDF计算模型的方法,它可以用来创建基于数据流的支持事件处理的应用程序。 它适用于嵌入式软件,例如使用数字滤波的DSP应用程序。XDF模型已被证明是合适的,它已被应用到的例子目前,涉及数字滤波器的示例已使用此模型进行验证。XDF模型开发考虑了基于组件的设计方法。请注意,我们可能会使用已在其他应用程序中测试和使用的第三方组件,只要它满足手头应用程序的非功能性要求。然而,这只能通过了解组件功能及其通信接口来实现。引用[1] Lee,E.一、“嵌入式软件”,计算机进展(M。Zelkowitz,editor),vol. 56,Academic Press,London,2002.[2] 丹尼斯,J. B.,数据流过程语言的第一个版本,程序设计研讨会论文集,计算机科学讲义,第19卷,第362-376页,法国巴黎,1974年4月。[3] 戴维斯,A.L.,凯勒河,巴西-地M.,数据流程序图,计算机卷。15,n.2,第26 -41页,1982年2月[4] Ackerman,W. B、Data Flow Languages,Computer,vol. 15,n. 2,第15 -25页,1982年2月。[5] Chang,W.,哈SLee,E.一、异构仿真-混合离散事件模型与数据流,超大规模集成电路信号处理杂志,第13卷,n。1997年1月1日[6] Lee,E.一、Messerschmitt,D. G.,同步数据流,IEEE会议录,第75卷,n。1987年9月9日[7] 巴克,J.T.,“使用令牌流模型调度具有有限内存的动态数据流图”,博士。博士论文,系的EECS,加州大学伯克利分校,1993年。I. Polato,A.M.Silva Filho/Electronic Notes in Theoretical Computer Science 160(2006)255273[8] 米尔纳河,“通信与并发”,计算机科学系列,Prentice-Hall International,1989年。[9] 米尔纳河,“通信系统的微积分”,计算机科学讲义,n。92,Springer Verlag,1980.[10] 霍尔角A. R.,“Communicating Sequential Processes,” Series in Computer Science, Prentice-Hall[11] Lee,E.一、用离散事件建模并发实时过程,软件工程年鉴,实时软件工程特别卷,第7卷,1999年。[12] Lee,E.一、Messerschmitt,D. G.,静态调度的同步数据流程序的数字信号处理,IEEE计算机学报,1987年1月。[13] 波拉托岛,Silva Filho,A. M.,XDF -扩展数据流,第三届基于数据流的开发研讨会论文集,2003年9月。[14] 波拉托岛,Silva Filho,A. M.,使用扩展数据流规范的嵌入式软件设计,第一届WET -工程和技术研讨会,2005年5月。[15] 波拉托岛,“一个扩展的数据流模型与支持事件处理,”硕士论文,系。马林加国立大学信息学系,马林加,2004年3月。[16] 北约科学委员会,[17] Benveniste,A.,Berry,G.,反应性和实时系统的同步方法,IEEE会议录,79(9),第1270 -1282页,1991年9月。[18] Berry,G.,Gonthier,G.,Esterel同步编程语言:设计,语义,实现,计算机编程科学,卷。19,n.2,第87 -152页,1992年。[19] Gautier,T.,Le Guernic,P.,SIGNAL:A declarative language for synchronous programming ofreal time systems , Functional Programming Languages and Computer Architecture , Portland ,Oregon,USA,September 14-16,1987.[20]利 普 塞 特 河 , 谢 弗 角 F. 、 Ussery , C. , “Vhdl: Hardware Description and Design,” Kluwer AcademicPublishers, September[21] 托马斯,D。E、Moorby,P.R.,托马斯,D。B、[22]吉尔,A.,“Introduction to the theory of martite-state Machines”,Mc Graw-Hill Book Company,Inc,1962。[23]扬岛,Goluguri,J.,Bastabi,F.,汗湖,Linn,J.,一种基于代理的嵌入式软件开发方法,第五届IEEE面向对象实时分布式计算国际研讨会论文集,第402 -412页,华盛顿,2002年4月。[24]汗,G.,并行程序设计的简单语言的语义,IFIP大会论文集74,北荷兰出版公司,一九七四年
下载后可阅读完整内容,剩余1页未读,立即下载
cpongm
- 粉丝: 4
- 资源: 2万+
上传资源 快速赚钱
- 我的内容管理 收起
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
会员权益专享
最新资源
- RTL8188FU-Linux-v5.7.4.2-36687.20200602.tar(20765).gz
- c++校园超市商品信息管理系统课程设计说明书(含源代码) (2).pdf
- 建筑供配电系统相关课件.pptx
- 企业管理规章制度及管理模式.doc
- vb打开摄像头.doc
- 云计算-可信计算中认证协议改进方案.pdf
- [详细完整版]单片机编程4.ppt
- c语言常用算法.pdf
- c++经典程序代码大全.pdf
- 单片机数字时钟资料.doc
- 11项目管理前沿1.0.pptx
- 基于ssm的“魅力”繁峙宣传网站的设计与实现论文.doc
- 智慧交通综合解决方案.pptx
- 建筑防潮设计-PowerPointPresentati.pptx
- SPC统计过程控制程序.pptx
- SPC统计方法基础知识.pptx
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功