嵌入式系统应用映射与优化全解析
1. 应用映射算法
在异构多处理器环境下,有多种算法用于应用映射和任务调度。
1.1 CPOP 算法
CPOP 算法是一种较为常用的算法,其具体步骤如下:
1. 将计算和通信成本设置为平均值。
2. 计算每个任务 $\tau_i$ 的 $ranku(\tau_i)$ 和 $rankd(\tau_i)$。
3. 计算每个任务 $\tau_i$ 的优先级:$priority(\tau_i) = rankd(\tau_i) + ranku(\tau_i)$。
4. 计算关键路径的长度:$|CP | = priority(\tau_{entry})$。
5. 初始化关键路径任务集合 $SET_{CP} = {\tau_{entry}}$。
6. 从入口任务 $\tau_{entry}$ 开始,通过循环找到关键路径上的所有任务:
τi = τentry;
while τi is not the exit task {
Select τj ∈ succ(τi), where priority(τj) == |CP |.
SETCP = SETCP ∪ {τj};
τi = τj
};
- 选择在关键路径上执行时间最短的处理器 $\pi_{CP}$。
- 初始化优先级队列,将入口任务加入队列。
- 循环调度任务: