是否有工具可以估计顺序异步触发进程 (ISR) 的执行延迟?

问题描述 投票:0回答:1

情况

我有一个系统,其中包括获取纯随机事件(用户操作)、处理相关数据并使用它。处理部分由几个周期性和异步进程组成,或者由系统中断组成。输入数据必须依次经过所有流程:

┌───────┐   ┌────────┐   ┌────────┐  ┌────────┐  ┌────────┐
│ Event ├──►│Process1├──►│Process2├─►│Process3├─►│Consume │
└───────┘   └────────┘   └────────┘  └────────┘  └────────┘

由于每个进程都是周期性的并且彼此异步,因此数据可能会在每个进程之前“停滞”,直到它们被触发,从而导致等待时间可变。最坏的情况意味着数据等待每个进程的“最大”等待时间,而最好的情况将假设 0 等待状态。最重要的是,每个处理步骤都需要一定的时间才能完成。 示例

这里有一个更具体的例子,说明使用虚构数字的预期结果:

过程1:100us周期和10us处理

过程2:200us周期和30us处理

过程3:150us周期和5us处理

┌───────┐ ┌──────┐ ┌──────┐ ┌──────┐ ┌────────┐ │ Event ├─0 to 100us─►│ 10us ├─0 to 200us─►│ 30us ├─0 to 150us─►│ 5us ├─►│Consume │ └───────┘ └──────┘ └──────┘ └──────┘ └────────┘

最坏情况:
100 + 10 + 200 + 30 + 150 + 5 = 495us

最好的情况:

0 + 10 + 0 + 30 + 0 + 5 = 45us

然后我将得到 45us 和 495us 之间的正态分布。

问题

所以主要问题是:是否有现有的软件可以实现这种粗略的分析?这个例子很简单,但是当添加更多变量时就会变得乏味。我基本上需要以最简单的方式使用正态分布(甚至模拟这个系统)来估计数据处理时间。

c embedded interrupt latency
1个回答
0
投票

    Inchron
  • (商业)
  • TimingArchitects
  • (商业现在属于Vector)
  • 切达干酪
  • (免费)(可能与 AADL OSATE 和/或商业 AADLInspector 一起使用)
  • MAST
  • (不确定,他们的状态是什么)
  • Eclipse App4MC
  • (免费)和使用app4mcsim lib进行模拟(基于SystemC
  • 前两个,我不知道,从未获得过许可证。

Cheddar 看起来有点粗糙,尤其是 GTK UI .. 嗯,不太用户友好。

MAST 开发似乎陷入停滞。

APP4MC 似乎仍在更新,他们还更改了过去几年的 Amalthea 模型,并从几个 Eclipse 内部查看器和模拟器更改为基于 SystemC 的 app4mcsim 库。我不确定,模拟输出的可视化还存在什么(如甘特图之类的图表)

© www.soinside.com 2019 - 2024. All rights reserved.