22、同步程序的依赖驱动分布

同步程序依赖驱动分布方法解析

同步程序的依赖驱动分布

1. 引言

同步编程语言,如 Esterel、Lustre 或 Quartz,均基于同步计算模型。该模型的核心是同步假设,它将程序执行划分为微步骤和宏步骤。微步骤代表计算和通信,在零时间内执行;而宏步骤由有限个微步骤组成,消耗相同的逻辑时间。这使得程序的所有线程同步运行,在每个宏步骤结束时自动同步。

同步模型具有诸多优点,例如保证确定性并发,避免 Heisenbugs,便于将同步程序直接转换为硬件电路,并且其简洁的形式语义有助于推理程序属性、正确性和最坏情况执行时间。然而,同步计算模型也给编译和综合带来了困难。因果关系和精神分裂症等问题挑战着编译器,而且综合过程通常需要将同步程序映射到不具备完美同步的目标架构上。

在分布式和并行嵌入式应用中,目标架构通常是一组异构的互连处理元素,维护全局时钟往往不合理。通信延迟会降低执行速度,组件速度的差异会导致不必要的空闲时间,影响系统性能。

常见的同步程序分区和分布方法存在一些缺点,如不符合基于模型的设计理念,无法将单个模块拆分为不同组件,且需要调整子系统之间的通信。本文的贡献在于:一是将同步程序划分为并发、不同步的部分;二是自动合成组件之间的通用通信基础设施,确保实现仍符合原始源程序的同步语义。

2. 同步保护动作

同步系统将计算划分为单个反应。在每个反应中,从所有输入端口同步读取新输入,并根据系统的当前状态和输入在所有输出端口同步生成新输出。同步语言要求变量在宏步骤内不发生变化,因此所有微步骤被视为在同一时间点执行。但即时赋值给输出可能导致因果关系问题,编译器会在编译时进行因果分析,还会执行其他检查以避免运行时异常,并且多数编译器支持形式验证。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值