《嵌入式软件的时间分析》书友问答接龙 第四集:软件时间理论
<p><span style="color:#2ecc71;"><img height="52" src="https://bbs.eeworld.com.cn/static/editor/plugins/hkemoji/sticker/facebook/pleased.gif" width="48" />终于进入点题的章节了?</span></p><p> </p>
<p><strong>《嵌入式软件的时间分析》的书友们(<a href="https://home.eeworld.com.cn/space-uid-1401067.html" target="_blank">@luyism </a> 、<a href="https://home.eeworld.com.cn/space-uid-108278.html" target="_blank">@常见泽1 </a> 、<a href="https://home.eeworld.com.cn/space-uid-427606.html" target="_blank">@数码小叶 </a> 、<a href="https://bbs.eeworld.com.cn/home.php?mod=space&uid=782751" target="_blank">@hehung </a> 、<a href="https://home.eeworld.com.cn/space-uid-323615.html" target="_blank">@qinyunti </a> ):</strong></p>
<p><span style="color:#2ecc71;">需在本周内阅读完书籍的第四章节 软件时间理论</span>,跟帖参与问答接龙互动:</p>
<p>(1)第一位跟帖发起本章问题,第二位解答第一位发起的问题,第三、四位继续问答接龙;</p>
<p>(2)最后一位是章节总结角色,以文字或者思维导图的形式,对本章进行总结。至此章节互动结束。</p>
<p> </p>
<p><span style="color:#e74c3c;">注意:发起的问题,对解题者理解、学习本章内容有切实意义;发起的问题不可重复。</span></p>
<p> </p>
<p> </p>
<p> </p>
<div style="overflow-wrap: break-word; color: rgb(51, 51, 51);Microsoft yahei" letter-spacing: normal; orphans: 2; white-space: normal; widows: 2; word-spacing: 0px; background-color: rgb(255, 255, 255)">
<p style="overflow-wrap: break-word"><strong style="overflow-wrap: break-word">活动交流群</strong></p>
<p style="overflow-wrap: break-word">论坛有开设汽车电子交流群,欢迎感兴趣的小伙伴,微信添加“helloeeworld”为好友,对话:加入汽车电子交流群,入群交流。</p>
<p style="overflow-wrap: break-word"><img _height="416" file="" initialized="true" inpost="1" lazyloaded="true" onclick="zoom(this, this.getAttribute('zoomfile'), 0, 0, '0')" onmouseover="showMenu({'ctrlid':this.id,'pos':'12'})" src="https://6.eewimg.cn/news/statics/qrcode/helloeeworld.png" style="overflow-wrap: break-word; border: 0px solid; max-width: 600px; width: 150px;" zoomfile="" /></p>
<p style="overflow-wrap: break-word">扫码,对话:加入汽车电子交流群。</p>
</div>
<p>逻辑执行时间如何解决多核通信的时候存在的数据发送和接收时间不确定的问题?</p>
hehung 发表于 2024-7-15 12:03
逻辑执行时间如何解决多核通信的时候存在的数据发送和接收时间不确定的问题?
<p>逻辑执行时间(Logical Execution Time, LET)是嵌入式系统设计中用于分析和优化多核处理器上任务调度和通信的一种方法。在多核通信中,数据发送和接收时间的不确定性主要来源于多个因素,包括但不限于处理器之间的通信延迟、总线访问冲突、缓存一致性维护等。这些不确定性对实时系统而言是不利的,因为它可能导致任务错过截止时间,影响系统性能和稳定性。</p>
<p>逻辑执行时间的概念通过提供一种抽象的时间模型来解决这一问题,它将实际的物理时间转换成一个更为确定和可预测的逻辑时间尺度。这样做的目的是为了在设计阶段就能准确地估计任务的执行时间,包括数据通信的开销,从而确保系统在运行时能够满足实时性要求。逻辑执行时间通过以下方式帮助解决这些问题:</p>
<ul>
<li>定义通信的逻辑时间代价:为多核通信中的数据发送和接收定义一个固定的逻辑时间代价。这意味着,无论实际的物理时间是多少,我们都可以将这个代价作为固定的成本加入到任务的逻辑执行时间预算中。</li>
<li>任务调度的优化:在任务调度时,考虑到通信的逻辑时间代价,可以更合理地安排任务执行顺序和时机,避免不必要的延迟。</li>
<li>系统设计的改进:在设计阶段,可以基于逻辑执行时间的分析来优化多核通信的机制,比如使用更高效的通信协议,或者设计更好的缓存一致性算法。</li>
</ul>
<p>设想一个多核嵌入式系统,其中包含三个任务:Task A、Task B 和 Task C。Task A 负责生成数据,Task C 负责接收并处理Task A提供的数据,而Task B 是一个独立的任务,不涉及数据的发送或接收。在没有使用LET的情况下,如果Task A的执行时间过长,可能会导致数据发送延迟,进而影响Task C的接收时间,甚至可能与Task B的激活时间重叠,导致不必要的资源竞争或任务调度混乱。</p>
<p>通过使用LET,我们为Task A和Task C之间的通信定义了一个固定的逻辑时间窗口。例如,我们约定每1ms周期内Task A在特定的逻辑时间点发送数据,而Task C在同一周期内的稍后逻辑时间点接收数据。这里的“逻辑时间”并不直接对应物理时间,而是基于系统中所有任务的执行特性和通信需求进行抽象和规划的。</p>
<p>OSEK和AUTO SARC中使用的时间参数有哪几个</p>
<p>CPU负载是怎么定义的?观测期怎么选择</p>
常见泽1 发表于 2024-7-15 21:09
OSEK和AUTO SARC中使用的时间参数有哪几个
<p>CET核心执行时间、DT连续两次执行同一个任务的时间间隔、PER连续两次激活相同任务的时间差、JIT实际周期和期望周期的时间差、J事件的标准时间和实际时间的关系、RT任务从激活到终止的时间、DL允许的最大响应时间、GET任务从开始执行到终止执行的时间差、IPT初始挂起时间、ST间隔空闲时间、NST净间隔空闲时间、PRE中断时间、NPR中断次数。</p>
<div class='shownolgin' data-isdigest='no'><p>做个小结:</p>
<p>本章介绍了多种时间参数, 可以使用最小最大值,平均值以及直方图进行呈现,一般系统可以直接记录最小值最大值平均值不需要过多的存储资源,而记录直方图需要较多的存储资源所以一般可以通过一定通讯接口发送到PC等进行存储分析。</p>
<p>CPU负载是一个比较关键的概念,一般RTOS中都有对应的接口可以获取,简单可以理解为CPU执行有效业务所占总时间的比例,可以换个思路用1-执行空闲任务所占比例来求。而计算需要选择一个合适的窗口时间来统计。</p>
<p> </p>
<p> </p>
</div><script>showreplylogin();</script><script type="text/javascript">(function(d,c){var a=d.createElement("script"),m=d.getElementsByTagName("script"),eewurl="//counter.eeworld.com.cn/pv/count/";a.src=eewurl+c;m.parentNode.insertBefore(a,m)})(document,523)</script>
页:
[1]