汽车系统的受限软件分发
1. 系统基础设定
在汽车系统软件分发研究中,对于零星激活情况,采用下限递归值来考虑相应任务的最坏情况到达率,其他激活情况暂不涉及。任务间的数据传播假定通过异步使用共享标签实现,标签对应保存到内存的参数。在确定通信成本时,依据AUTOSAR,建议使用显式、隐式或逻辑执行时间(LET)等通信模型。可运行实体和任务的最坏情况响应时间(WCRT)取决于调度和相应的抢占情况,可使用相关递归关系方法计算WCRT以及事件链延迟属性。
2. 约束建模
约束建模用于计算可运行实体到任务的分区以及任务到处理单元的映射,借助开源的choco库及其求解器实现。
-
可运行实体分区约束
-
激活聚合约束
:公式(\forall j) with (r_{a_{i,j}} \in RA : .allEqual ({T_i|r_{a_{i,j}} = 1}))表明,一个分区(即任务)不能包含共同引用多个激活的可运行实体。该约束同样适用于ASIL属性、可运行实体配对和标签分组。为快速分区大型可运行实体集模型,结合此约束和APP4MC平台上的现有启发式算法,通过构建有向无环图并切割图分支来确保因果链。
-
可运行实体排序约束
:公式(\forall r_a \in rscg_x, r_b \in rscg_y : a < b) with (\tau_j = {r_{j,1}, …, r_{j,a}, …, r_{j,b}, …})严格定义了可运行实体的排序,确保因果顺序,简化系统确定性。
-
可运行实体到任务分区约束
:公式(\forall r_i \in R : \sum_{j\leq m} r_{a_{i,j}} = 1)规定一个可运行实体只能分配到一个任务。
-
任务负载平衡约束
:公式(\forall \tau_j \in T : \sum_{i} \langle r_{a_{i,j}}, c_i \rangle \leq lb_{\tau_i})为任务设置最小权重下限值,有助于大型模型减少负载平衡的求解时间。
下面是可运行实体分区约束的流程:
graph LR
A[开始] --> B[应用激活聚合约束]
B --> C[应用可运行实体排序约束]
C --> D[应用可运行实体到任务分区约束]
D --> E[应用任务负载平衡约束]
E --> F[结束]
| 约束类型 | 公式 | 说明 |
|---|---|---|
| 激活聚合约束 | (\forall j) with (r_{a_{i,j}} \in RA : .allEqual ({T_i | r_{a_{i,j}} = 1})) |
| 可运行实体排序约束 | (\forall r_a \in rscg_x, r_b \in rscg_y : a < b) with (\tau_j = {r_{j,1}, …, r_{j,a}, …, r_{j,b}, …}) | 确保可运行实体的因果顺序 |
| 可运行实体到任务分区约束 | (\forall r_i \in R : \sum_{j\leq m} r_{a_{i,j}} = 1) | 一个可运行实体只能分配到一个任务 |
| 任务负载平衡约束 | (\forall \tau_j \in T : \sum_{i} \langle r_{a_{i,j}}, c_i \rangle \leq lb_{\tau_i}) | 设置任务最小权重下限值 |
-
任务映射约束
- 任务到处理单元映射约束 :公式(\forall \tau_j \in T : \sum_{k} t_{a_{j,k}} = 1)表明每个任务必须映射到一个处理单元。
- 处理单元容量约束 :公式(\forall p_{u_k} \in PU : \langle t_{a_k}, C_k \rangle + c_{c_k}(TA) \leq p_{u_k})确保分配给处理单元的任务集不会超过其执行容量,其中通信成本(c_{c_k})取决于映射结果和标签到内存的映射。
- 任务时间约束 :公式(WCRT_j \leq D_j)要求每个任务满足其截止时间,使用经典递归关系方法计算WCRT。
- 超周期验证约束 :公式(\forall \tau_j) with (t_{a_{j,k}} = 1 : T_j \in hyp \in P_{hyp})验证任务集映射到处理单元时是否存在超周期,可减少响应时间分析的悲观性。
- 分离和亲和约束 :分离约束确保任务不映射到同一处理单元,亲和约束则相反。根据是否定义目标和分组数量,有不同的约束应用方式。
任务映射约束的流程如下:
graph LR
A[开始] --> B[应用任务到处理单元映射约束]
B --> C[应用处理单元容量约束]
C --> D[应用任务时间约束]
D --> E[应用超周期验证约束]
E --> F[应用分离和亲和约束]
F --> G[结束]
| 约束类型 | 公式 | 说明 |
|---|---|---|
| 任务到处理单元映射约束 | (\forall \tau_j \in T : \sum_{k} t_{a_{j,k}} = 1) | 每个任务必须映射到一个处理单元 |
| 处理单元容量约束 | (\forall p_{u_k} \in PU : \langle t_{a_k}, C_k \rangle + c_{c_k}(TA) \leq p_{u_k}) | 确保处理单元容量不被超 |
| 任务时间约束 | (WCRT_j \leq D_j) | 任务需满足截止时间 |
| 超周期验证约束 | (\forall \tau_j) with (t_{a_{j,k}} = 1 : T_j \in hyp \in P_{hyp}) | 验证超周期存在性 |
| 分离和亲和约束 | 多种情况,如(\forall \tau_j \in ts_{f,0} : .allDifferent (k : t_{a_{j,k}} = 1))等 | 控制任务映射位置 |
3. 优化
优化聚焦于两个参数:最小化所有处理单元的最大处理单元利用率(负载平衡)和最小化总体通信成本。
-
处理单元利用率优化
- 公式(puu_k = \frac{\langle t_{a_k}, C_k \rangle}{p_{u_k}})用于计算处理单元利用率。
- 可通过定义变量(puu_{max} = .max(puu))并应用于求解器以最小化最大处理单元利用率。也可尝试最大化最小处理单元利用率,但通常会增加求解时间。
-
多参数优化
- 采用CP方法可进行多参数优化,计算帕累托前沿,对优化参数加权以确定最终解决方案。
-
通信成本优化
- 通信成本计算基于公式(cc(TA) = (t_{d_{j,h}})_{m\times m}),若任务对映射到同一处理单元,通信成本为0。
- 使用choco求解器的具体化范式计算总体通信成本,算法如下:
Algorithm 1. occ calculation
Data: task communication costs td, task assignments ta
Result: overall communication costs occ(TA)
1 forall the processing units pu ∈PU do
2 forall the task combinations τj, τh ∈td do
3 only consider cases where at least one task is mapped to the current
processing unit pu:
4 if (taj,k ∨tah,k) ⇒τj or τh is mapped to puk then
5 if (taj,k∨tah,k) then
6 set task dependency of puk for tasks at different processing units
to the task dependency value ccj,h = tdj,h
7 else
8 set task dependency for tasks mapped to the same puk to 0:
ccj,h = 0
9 end
10 end
11 end
12 end
13 occ(TA) = ∑j,h ccj,h = the sum of all task’s communication costs
该算法独立于底层通信范式,可有效简化通信成本计算。通过这些优化措施,能提高资源利用率和系统吞吐量,降低硬件成本并改善系统确定性和时间分析。
汽车系统的受限软件分发(续)
4. 优化操作步骤与分析
4.1 处理单元利用率优化步骤
- 计算处理单元利用率 :按照公式 (puu_k = \frac{\langle t_{a_k}, C_k \rangle}{p_{u_k}}) 计算每个处理单元的利用率。其中,(\langle t_{a_k}, C_k \rangle) 是任务分配标量与执行时间标量的点积,(p_{u_k}) 是处理单元的执行容量。
- 定义最大利用率变量 :定义变量 (puu_{max} = .max(puu)),它表示所有处理单元利用率中的最大值。
- 应用求解器 :将 (puu_{max}) 应用到求解器中,以最小化这个最大值,从而实现负载平衡。
graph LR
A[开始] --> B[计算各处理单元利用率]
B --> C[定义最大利用率变量]
C --> D[应用求解器最小化最大值]
D --> E[结束]
4.2 多参数优化步骤
- 计算帕累托前沿 :使用CP方法计算帕累托前沿,该前沿包含多个优化值,朝着相同的目标(最小化或最大化)进行优化。
- 权重分配 :从帕累托前沿的值集中,为优化参数分配权重。例如,有两个优化参数 (op_0) 和 (op_1),可以根据实际需求为它们分配不同的权重。
- 确定最终解决方案 :根据分配的权重计算每个解决方案的累积优化参数值,选择累积值最优的解决方案作为最终方案。
graph LR
A[开始] --> B[计算帕累托前沿]
B --> C[为优化参数分配权重]
C --> D[计算各方案累积优化参数值]
D --> E[选择最优累积值方案为最终方案]
E --> F[结束]
4.3 通信成本优化步骤
- 计算任务通信成本 :根据公式 (cc(TA) = (t_{d_{j,h}}) {m\times m}) 计算任务通信成本。如果任务对 ((j, h)) 映射到同一处理单元,即 ((j = h) \vee (t {a_{j,k}} = t_{a_{h,k}})),则 (t_{d_{j,h}} = 0);否则 (t_{d_{j,h}} = cc_j)。
- 使用具体化范式计算总体通信成本 :按照以下算法计算总体通信成本:
Algorithm 1. occ calculation
Data: task communication costs td, task assignments ta
Result: overall communication costs occ(TA)
1 forall the processing units pu ∈PU do
2 forall the task combinations τj, τh ∈td do
3 only consider cases where at least one task is mapped to the current
processing unit pu:
4 if (taj,k ∨tah,k) ⇒τj or τh is mapped to puk then
5 if (taj,k∨tah,k) then
6 set task dependency of puk for tasks at different processing units
to the task dependency value ccj,h = tdj,h
7 else
8 set task dependency for tasks mapped to the same puk to 0:
ccj,h = 0
9 end
10 end
11 end
12 end
13 occ(TA) = ∑j,h ccj,h = the sum of all task’s communication costs
5. 总结
通过对汽车系统软件分发的研究,我们提出了一系列约束建模和优化方法。约束建模包括可运行实体分区约束和任务映射约束,这些约束确保了系统的正确性和确定性。优化方面,聚焦于最小化最大处理单元利用率和总体通信成本,通过具体的优化步骤和算法,能够有效提高资源利用率和系统吞吐量,降低硬件成本并改善系统的确定性和时间分析。
以下是对整个过程的总结表格:
|类别|具体内容|
| ---- | ---- |
|系统基础设定|零星激活用下限递归值考虑最坏情况到达率,任务间数据传播用共享标签,用特定通信模型确定通信成本,用相关方法计算WCRT|
|约束建模|可运行实体分区约束(激活聚合、排序、分区、负载平衡);任务映射约束(到处理单元映射、容量、时间、超周期验证、分离和亲和)|
|优化|处理单元利用率优化(计算利用率、定义最大值变量、应用求解器);多参数优化(计算帕累托前沿、分配权重、确定最终方案);通信成本优化(计算任务通信成本、用算法计算总体通信成本)|
这些方法和步骤为汽车系统软件的有效分发和管理提供了有力的支持,有助于提升汽车系统的性能和可靠性。
超级会员免费看
33

被折叠的 条评论
为什么被折叠?



