允许确定性的实时错误恢复的任务时间分配方法_4

文档序号:9438885阅读:来源:国知局
5之后,即 使处理操作T [t〈j>]不是在配额溢出错误中,处理器PRC执行步骤S6以增加一计数器j,由 此可以进行到下一时隙t〈j+l>的处理操作。
[0069] 在图6B的步骤SlO中,当激活用于时隙t〈j>的看门狗WD被触发时(在配额或余 裕溢出的情况下),步骤被执行,通过测试时隙t〈 j>的类型(Q/M/NA),处理器PRC确定是否 看门狗的触发是由于处理操作的时间配额或时间余裕的期满。如果看门狗WD的触发是由 于时间配额的期满,则执行步骤S11。如果该触发是由于时间余裕的期满,则执行步骤S12 到 S14。
[0070] 在步骤S11,分配给处理操作T[t〈j>]的时间配额在处理操作的执行结束之前已 经期满。于是处理器PRC例如通过为处理操作T[t〈j>]激活错误指示符ER来进入错误模 式。在步骤S12,分配给处理操作T[t〈j>]的时间余裕已经期满,而处理操作并没有被完全 执行。于是,处理器PRC阻止处理操作T[t〈j>]的执行。在步骤S13,处理器PRC可以存储 这一事实,即时间配额溢出错误针对处理操作T[t〈j>]被检测到。在步骤S14,处理器PRC 可以按照实时核心所提供的执行常规错误处置操作。为了尊重处理操作之间的不干涉规 贝1J,此常规错误处置操作足够短以便不侵占下个时间窗口因此不侵占分配给下一个处理操 作的时间。同样,为了尊重处理操作之间的不干涉规则,它也可以设置成在分配给处理操 作的后继时间窗口期间,执行为配额溢出中应用或处理操作T[t〈j>]所特有的错误处置操 作。
[0071] 需要注意,在时间配额溢出错误的情形下处理操作的继续执行,是由实时应用的 简单设计方案选择造成的。在某些情况下,可以规定实施不同于那个先前描述模式的处置 该错误的其他模式,例如永久地停止在时间配额溢出错误中的处理操作,并执行为实时系 统或任务的降级操作设置的备选处理操作,要求比错误处置操作的时间余裕更短的执行时 间。
[0072] 在分段的处理操作执行的情况下,其中看门狗表明被分配给第一或中间片段的配 额末端的情况必须与其中它表示处理操作的最后片段的要求的末端的情况进行区分。在第 一种情形中,看门狗仅仅表示在分段的处理操作的执行期间,当时间窗口改变时从一个处 理操作到另一个处理操作的改变。在第二种情形中,看门狗表明被分段处理操作的配额被 完全地使用,因而出现异常(anomaly) 〇
[0073] 根据一个实施例,当分段的处理操作留在调度计划中的时候,状态变量与每个处 理操作或处理操作片段相关,以表明是否这是分段的处理操作的第一片段或中间片段,或 是否后者为非分段的处理操作或分段的处理操作的最后片段。该状态变量被使用以便如果 这是第一片段或中间片段则不分配任何余裕给处理操作片段,并且在处理操作片段的时间 配额期满时不产生任何错误。该状态变量可以例如在生成实时应用的可执行码时为每个处 理操作或片段自动地生成,并且被插入定义应用的负载计划的表中。
[0074] 该状态变量可以用于如图7所表示的例子。因而,图7表示图6B的步骤S10到S14, 以及在步骤SlO和Sll之间夹设的附加步骤S15。因此,当处理操作T[t〈j>]的时间配额期 满,看门狗WD被触发时,执行步骤S15。在步骤S15,处理器PRC测试状态变量LF (T [t〈 j>]), 该状态变量表明处理操作T[t〈j>]是分段的处理操作的第一片段或中间片段,还是完整处 理操作(未片段的)或被分段的处理操作的最后片段。如果可变的LF(T[t〈j>])表明被执 行T[t〈j>]的处理操作是完整处理操作或者被分段的处理操作的最后片段,执行如上所述 的步骤Sll以激活错误模式。否则,错误模式不被激活。
[0075] 需要注意,由于没有时间余裕被分配给分段的处理操作的第一片段或中间片段, 分配给分段的处理操作的整个时间余裕被分配给分段的处理操作的最后片段。
[0076] 根据一个实施例,状态变量与每个处理操作或处理操作片段相关联以显示后者是 否执行涉及处理器PRC的输入和/或输出。输入/输出意味着例如对存储器VM或NVM中 的实时应用的全局变量的写或读访问,或处理器PRC和外部设备之间通过电路PHC的信号 或数据传送。该状态变量可以用于预测不执行任何输入和/或输出的处理操作,而不必等 待其关联的时间窗口的开始。例如当产生实时应用的可执行码时,该状态变量为每个处理 操作或处理操作片段自动生成,并且被插入定义应用的负载计划和调度计划的表中。
[0077] 该状态变量可以用于如图8所表示的例子。图8表示图6A的步骤Sl到S6,以及 在步骤S6和Sl之间夹设的两个附加步骤S8和S9。在步骤S8,处理器PRC确定与处理操 作Nxt. (T)相关的下一个时隙。如果该时隙是配额Q类型,其测试表示在负载计划中下一 个处理操作Nxt. (T)的出现输入/输出的状态变量。如果变量IO (Nxt. (T))表示该处理操 作Nxt. (T)不执行任何输入/输出,处理器PRC执行步骤S9以在步骤S8确定的时隙启动 步骤S1-S2-S3的处理操作Nxt. (T)的执行。否则,在跟随刚刚被处理过的时间窗口的时间 窗口 t〈j+l>执行步骤Sl。自然,不言而喻,步骤图7和8可以结合执行,以便都实施状态变 量LF和10。
[0078] 这种布置因而使得在排序计划中计划的处理操作被动态地预测,并且因此相关的 未使用的余裕被推迟到与不能被预测的、执行输入/输出的处理操作或处理操作片段相关 的时间窗口,其中推迟相关的未使用余裕导致将未用的余裕和任何空闲时间聚合成单一余 裕。该布置不挑战系统的确定的行为以及前述操作保证。聚合余裕和/或空闲时间提供实 施辅助活动的优势,所述辅助活动可以包括非关键或非实时任务的工作,其可以因而通过 较少中断并且因此以较少的执行上下文切换被执行。这导致了性能以及因此在处理器的能 源消耗和平均温度方面受益。如果处理器在聚合的余裕期间进入待机模式,它因此可以被 进入待机模式较长的时间,这导致待机模式持续时间内的温度和能源消耗的下降。该余裕 聚合也使得处理器待机机构的激活设备的数量的减少。此外,预见处理操作的可能性使得 实时系统以被更好地规划大小并因此获得更高的整体性能。需要注意,这些优点的获得不 影响实时系统的运行可靠性。
[0079] 在大多数实时系统中,用于控制处理操作的执行时间的时间测量和用于描述时间 约束的时间测量(进入时间窗口时的切分(d6C〇upage))基于相同的源、来自例如电路CLK 的时钟电路。然而,此条件并不是必要的。事实上,一些实时系统可以通过非规则的外部事 件(与时钟信号不相关)以限定时间窗口的余裕。例如,这些外部事件可以涉及移动物体 的位置,如变速的曲轴运转的角位,或其周期并非严格不变的交流电信号的相位。
[0080] 在常规方法中,必须使用非规则的时间基准不能使得一连串任务被容易地构建, 这导致了使用动态调度算法。相反,用上面提出的方法,可以用完全相同方式继续。在处理 器的执行时间单位中,由第一时钟信号定义的时间要求和配额仍被然表达,然而时间约束 以及因此处理操作的先后顺序以非规则的第二信号定义的不同时间基准表达,所述非规则 的第二信号例如角度位置测量信号。然而,为了应用可以被调度,两个信号之间存在关联, 由此可以确定以第一时钟信号测量的第二信号的时间单位的最小持续时间。在这种情况 下,因子Kx的值可以仍然根据该最小值计算。因此,仍然可能是通过因子Kx来倍增要求的 方式来定义要求余裕。
[0081] 根据一个实施例,因子Kx被设置为根据由用第一时钟信号测量的第二信号定义 的时间单位的最小持续时间计算的值。其结果是,余裕的各个持续时间是固定的,然而空闲 时间变化并且特别是在由第二信号定义的时间单位移出它的最小值的时候是增加的。
[0082] 因而,与之前在性能与可靠性方面所述的特征和优点相同的特征和优点在其执行 时间约束(即,时间窗口)被定义的基础上得以维持而不考虑非规则时间基准的速度变化。
[0083] 本领域的技术人员应当理解,本发明容易有不同的备选实施例和不同应用。特别 地,本发明不限于在时间配额溢出时使用时间余裕来继续处理操作的执行。事实上,其他错 误处置操作可以被提供,例如执行处理操作所特有的错误处置操作。
[0084] 此外,分配给实时应用的处理操作的时间余裕不一定与分配给这些处理操作的时 间配额成正比。用于计算时间余裕的各个持续时间的其他模式可以被使用。给定分配的时 间配额和余裕以及分配给应用的计算时间资源,唯一重要的是实时应用可以被调度。因而, 分配给每个处理操作的余裕可以特别地根据处理操作而定义。
[0085] 引用的文献
[0086] [1] "Scheduling Algorithms for Multiprogramming in a Hard Real-Time Environment", C. L. Liu, J. W. Layland,国际计算机协会期刊,1973年I月第I期,第20卷, 第46-61页
[0087] [2] "Foundations of Real-Time Computing!Scheduling and Resource Management", edited by Andr6M. Van Tilbo
当前第4页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1