这篇文章是操作系统/体系结构论文导读(四十一):Re-Thinking Mixed-Criticality Architecture for Automotive Industry 20‘ICCD的期刊拓展版,以下仅记录两者不同的部分。
一、拓展总览
-
理论与工业实践之间的现实差距: 这篇文章以“缩小MCS在汽车工业中的实际差距”为主题,重点讨论了学术研究与汽车工业实际需求之间的“现实差距”。它详细分析了这些差距,并通过引入一个名为P-MCS(Pragmatic Mixed-Criticality Systems)的通用架构来解决这些差距问题,特别是在符合ISO 26262标准方面。前一篇文章虽然也涉及工业应用,但没有深入到实际的工业需求层面。
-
P-MCS架构: 前一篇文章提出了Z-MCS架构,作为一个满足工业安全需求的混合关键性系统架构,而这篇文章则进一步提出了P-MCS架构。P-MCS架构更侧重于解决理论MCS模型与工业标准之间的实际问题,特别是在共享资源管理、任务隔离、可调度性分析等方面,提供了更完善的安全机制。
-
共享资源管理: 这篇文章特别强调了如何在MCS系统中处理共享资源,这是前一篇文章没有深入探讨的内容。它引入了具体的算法和方法来管理多核环境中的资源共享,确保不同关键性级别的任务能够安全、高效地共享硬件资源,而不会影响系统的安全性和时间保证。
-
硬件辅助解决方案: 前一篇文章主要讨论了基于软件的虚拟化和TrustZone技术,而这篇文章进一步提出了硬件辅助虚拟化的概念,旨在减少软件解决方案带来的性能开销。硬件辅助的虚拟化提供了更为稳健和高效的性能,这也是一个显著的拓展,能够更好地满足工业应用中的MCS系统需求。
二、前序知识
关键性与安全完整性等级(ASIL)
-
关键性在工业中的最接近对应物是安全完整性等级(ASIL)。在汽车行业,ISO 26262定义了ASIL的四个等级(A到D),用于表示在开发、实现和验证中避免不合理风险的严谨程度。ASIL-A表示最低的要求,而ASIL-D则表示最严格的要求。
-
ISO 26262标准通过**危险分析和风险评估(HARA)**为系统功能分配ASIL等级,考虑了三个参数:
- 严重性(Severity,S):故障导致的伤害程度,S1表示无伤害。
- 暴露率(Exposure,E):发生的概率,E1表示极低概率。
- 可控性(Controllability,C):当发生故障时,相关人员是否能避免或控制危险事件,C1表示通常可控。
-
例子:如果某个功能的故障可能导致致命伤害(S3),且发生概率高(E4),并且该故障无法避免或控制(C4),该功能应被分配最高的ASIL-D等级。ISO 26262中的ASIL是设计时静态分配的,不能在运行时改变。
2. ASIL分解
- ASIL分解允许一个ASIL要求被分解为两个具有不同ASIL的后续安全要求。ISO 26262给出了几个分解方案:
- ASIL-D要求可以分解为:
- 一个ASIL-C要求和一个ASIL-A要求;
- 两个ASIL-B要求;
- 一个ASIL-D要求和一个QM要求(质量管理,最低安全要求)。
- 其他ASIL等级也有类似的分解方式,依次递减到ASIL-A。
- ASIL-D要求可以分解为:
3. 自适应混合关键性模型(AMC)
- AMC模型假设系统具有多个执行模式(A、B、C、D等),每个任务 τi\tau_iτi 都有不同的关键性级别(如A、B、C、D等),以及一组最坏情况下的执行时间(WCET)估计。在系统执行时,AMC模型会根据任务是否超出其执行预算来切换模式。当某个任务超过其分配的时间预算时,系统从较低模式切换到较高模式,较低关键性任务会被暂停以确保高关键性任务的执行。
三、动机与相关工作
A. ASIL分配系统的问题
AMC模型通过暂停低关键性任务来保证高关键性任务的执行。然而,ISO 26262标准中的ASIL分配系统并不总是与AMC模型中的模式切换完全匹配。例如:
- 在模式切换时,AMC模型可能暂停一个严重性更高的任务(如S3),而执行一个严重性较低的任务(如S2),这可能会导致不合理的风险上升。
- 另外,当ASIL分解发生时,一个被分配到较低ASIL的任务被暂停,可能会对整体系统安全性产生负面影响。
B. 隔离与自由无干扰
- 在ISO 26262等安全标准中,隔离(时间隔离、空间隔离和故障隔离)是MCS系统的核心要求。如果不同安全功能之间的隔离不能被证明,那么这些功能必须按照最高的ASIL进行开发。
- 实际上,ASIL分解有时被滥用,忽略了这些隔离需求。这种情况下,所有功能必须被视为最高关键性。这就要求在系统设计中要充分考虑各个维度的隔离。
C. 相关工作
-
工业现状:当前汽车行业的MCS系统通常仅支持单关键性系统,多数产品(如NXP、Infineon和Renesas的产品)只能满足特定的ASIL级别,而MCS尚未普遍应用,主要原因是嵌入式系统的计算能力限制和隔离问题。
-
学术MCS框架:一些现有的框架,如基于时分多址(TDMA)的方法,已经用于解决时间隔离问题,但通常无法满足空间和故障隔离的需求,并且资源效率较低。物理隔离和虚拟隔离分别通过硬件或虚拟化技术实现,但这些方法在实际应用中面临一些挑战,如复杂的资源管理和性能可预测性的问题。
四、理论分析(增加部分)
1. MSRP协议概述
MSRP是一种多处理器资源共享协议,用于管理共享资源的访问,协议通过FIFO队列处理资源请求,任务在请求资源时进入队列,并处于非抢占式的等待状态直到获取资源。此外,MSRP还管理局部资源,这些资源在系统中的单个核心上共享,局部资源的访问优先级为请求该资源的任务的最高优先级。
任务在MSRP下可能遭遇以下两类阻塞:
- 旋转延迟(Spin Delay):任务因资源访问被远程处理器上的任务阻塞,需等待资源队列的头部。
- 直接旋转延迟:任务直接被其他任务的资源请求阻塞。
- 间接旋转延迟:任务被本地的高优先级任务阻塞,而高优先级任务又被其他资源请求阻塞。
- 到达阻塞(Arrival Blocking):任务被本地低优先级任务阻塞,后者非抢占式地访问全局或局部资源。
2. 稳定模式下的阻塞时间分析
对于任务 τi 在稳定模式 K 中的阻塞时间 WiK,其最坏情况下的资源访问时间受限于请求资源的处理器数量以及任务对资源的请求次数。公式(9)给出了任务 τi 的阻塞时间计算方式:
其中:
- F(τi) 表示任务 τi请求的资源集合。
- Nix表示任务 τi 在一次执行中请求资源 rx 的次数。
- ∣map(G(x,K))∣ 表示请求资源 rx 的处理器数量,即资源队列的长度。
- c←Kx 表示任务在模式 K 中执行该资源所需的最坏计算时间。
3. 到达阻塞的分析
到达阻塞是指任务在被释放后立即因低优先级任务正在非抢占式地访问共享资源而被阻塞。公式(12)给出了任务 τi在模式 K 下的到达阻塞上限:
其中,FA(i,K)表示可能阻塞任务 τi 的资源集合。如果某个资源由低优先级任务 τll 访问且该任务非抢占式运行,则该资源可能导致到达阻塞。
4. 模式切换时的阻塞分析
在模式切换时,任务 τi的阻塞分析类似于稳定模式,但有些任务可能会在模式 K+中终止。这些即将终止的任务在模式切换期间仍然可能执行,并对其他任务访问资源产生阻塞。公式(15)和(16)对模式切换中的直接和间接旋转延迟及到达阻塞进行了扩展。
通过公式(15)中的 G′(x,K+),可以计算出任务 τj\tau_jτj 在模式切换期间可能对共享资源造成的阻塞:
解释:
-
目的:公式 (15) 是对
G(x, K)
的扩展,它用于表示在模式切换时请求资源 rx 的任务集合。 -
G′(x,K+):表示在模式 K+下仍然请求资源 rx的任务集合。这些任务可能会对系统资源产生阻塞。
-
Njx>0:表示任务 τj 请求资源 rx,即任务 τj 对资源 rx 有需求。
-
lj≥K+:表示任务 τj的关键性等级大于或等于新模式K+ 的关键性等级。在新模式下,较高关键性等级的任务优先执行。
-
τj∈Γ∗(K+)∪Γ¬(K+):表示任务 τj属于在模式 K+ 中被保留的任务集合 Γ∗(K+),或者属于模式 K+中即将终止的任务集合 Γ¬(K+)。这些任务可能会在模式切换过程中继续执行一段时间,因此也可能造成阻塞。
-
目的:公式 (16) 用于分析模式切换时,可能会导致任务 τi到达阻塞的低优先级任务集合。
-
llpG′(i,x,K+):表示在模式 K+ 中,与任务 τi 在同一处理器上执行的低优先级任务集合,这些任务也在模式 K+下请求资源 rx
-
proc(τj)=proc(τi):任务 τj 和任务 τi 位于同一处理器上。
-
Pj<Pi:表示任务 τj的优先级低于任务 τi。
-
τj∈G′(x,K+):表示任务 τj 在模式 K+ 中请求资源 rx