系统分区
映射
概念
从上图我们可以看到一共有三种方法去提高系统的性能:架构提高,重写应用,使用不同的策略。
映射(mapping)就是把行为级转换为结构和执行。
最后综合的时候,是包括分区和映射两个部分。其中分区就是分配(选择模块)和绑定(把一些函数给部件);映射就是包括绑定和调度(执行顺序)。最后综合的结果就会被执行。其实就是我们选择什么器件,它要执行什么函数,执行顺序是什么。就这样的过程。
抽象层次
低层次:RTL或者网表。将数字电路映射到具体设备上(FPGA,ASIC);系统参数(比如面积,延时)相对容易去决定。
高层次:系统层次。选择最优设计(比如空间大小);难以了解或者决定的系统参数(通过一些模型,分析,模拟,原型来实现)。
就比如我们遇到下面一个题目:我们是把所有的task放在一个CPU上还是均衡负载呢?最后发现均衡负载是最节约功耗并能实现较好的并行化的。但是,当然不能说这样均衡之后效果会大大提高n倍,还有很多问题。比如数据一致性,所以在task分配的时候得十分注意这个问题。
就上图其实就是表现了映射关系:N对一和一对一。
在这里我们要考虑的问题有:成本:用多少处理器呢?延时:就是频率,当然是越快越好。能以最短的时间解决问题。但是这两个东西是矛盾的,我们要使得成本提高,延时就降低;反之亦然。我们设计的时候就需要提出一些约束才能使得设计求出最优解。
用下图展示一下:
假设任务都是一样长的,那么我们发现若只用一个cpu,延时已经超过了我们的要求,使用四核得话可以很好地满足我们的要求。
成本函数
对于cost function,我们先定义一些变量。system cost C [$],latency L[sec],power consumption P[W]。接着我们对这三个都有一个估计函数,然后我们可以得到的是:
在这里,我们可以看到对于这个函数我们对于不同的变量已经做了加权,我们需要的是进行最优化问题。
所以就有了一个问题:
分区方法
确定的方法(exat method)
枚举法
枚举法就是一个一个列出来,然后找出最好的那个。这就是枚举,这样的枚举对于很大数据的时候就很让人心塞啊!
ILP(integer linear programs)
ILP是进行多目标优化的算法,这个算法非常重要。接下来会详细介绍这个算法。
在这里说到ILP的组成:开销函数和约束函数。我们的目标就是在满足约束的条件下最小化开销函数。
接下来我们来说一下0/1 IP问题,就是加权系数为0或者1。
举一个例子比什么都好:
我们再把这个问题转化为一般问题:
下面在举一个例子:
使用ILP的好处是可以增加约束,现在很多都在用这种方法。
就上面那个实际问题,那么我们怎么列出代码呢?
采用这种方法还可以进行最大化问题:
整数规划是一个完全NP问题。在实践中,运行时间可能指数增长,但是几千个变量也可以被解决。IP模型可以作为heuristic optimization method的起点。
接下来举一个例子你就对于ILP更加了解了。
matlab代码如下:
运行结果为:
启发式方法(heuristic method)
constructive methods
random mapping
hierarchical clustering
iterative methods
Kernighan-Lin algorithm
simulated annealing
evolutionary algorithms
相关推荐:
1.嵌入式er日常!出差遇到一位有趣的人和事
2.嵌入式er日常系列!学好不一定就真的会了
3.嵌入式er日常!别让沉默埋没了未来
4.嵌入式er日常!最近领导任命我为项目主管,我却...
5.嵌入式er日常!要做“技术流”,还是“意识流”?
1.《嵌入式系统之系统分区(system partition)详解》援引自互联网,旨在传递更多网络信息知识,仅代表作者本人观点,与本网站无关,侵删请联系页脚下方联系方式。
2.《嵌入式系统之系统分区(system partition)详解》仅供读者参考,本网站未对该内容进行证实,对其原创性、真实性、完整性、及时性不作任何保证。
3.文章转载时请保留本站内容来源地址,https://www.lu-xu.com/shehui/5495.html