新闻中心

EEPW首页 > 嵌入式系统 > 设计应用 > 嵌入式片上存储器有效使用的方法

嵌入式片上存储器有效使用的方法

作者:时间:2011-08-09来源:网络收藏

  ①两变量位于DARAM块内或者两变量位于不同的块内,记为条件A(这是由SARAM块或者DARAM块访问能力产生的限制);②两变量位于不同的块内,记为条件B(这是由CPU总线的特殊结构产生的限制)。其中条件A中的两变量可在同一DARAM块内;或者不同的SARAM块内;或者一个变量在DARAM内,另一个在SARAM内。条件B指的是两变量在不同的DARAM块内;或者在不同的SARAM块内;或者一个变量在DARAM块内,另一个在SARAM块内。条件A可看成是两种条件的逻辑“或”关系:

  A=B Or C

  其中,条件C定义为两变量都位于DARAM块内。循环中的操作数一般表现为矩阵的一个元素,在一个应用程序中,通常有多个矩阵,矩阵中的元素应同时满足多个上述基本条件。当矩阵较多,限制条件复杂时。可以计算机求解数据分配,以满足矩阵访问不产生延迟的条件。在这里,只需要求出满足条件的一个解,并不需要求出所有可能的解,因而对求解问题做一定的简化。

  设x、y分别是矩阵X、Y的某一个元素,X、Y位于不同的块内是x、y位于不同的块内的充分条件;同样X、Y都位于DARAM内或者不同的块内是x、y都位于DARAM内或者不同的块内的充分条件。例如,X位于DARAM块,Y矩阵部分位于与X相同的DARAM内,其余位于SARAM内,也能使x、y满足条件A。

  例如:N个矩阵需要同时满足N1个A类条件和N2个B类条件。从每个A类条件中任选一个条件(B或者C),最多有2N1个组合。每种组合与N2个B类条件联立求解,其中某些组合可能没有解,任意一个解都能满足不产生延迟的条件。这时任何一种组合中可能包含M(O≤M≤N1)个C类条件,其余的为B类条件。

  C类条件是两个矩阵必须在DARAM块,将需要满足C类条件的所有矩阵的大小相加,相同的矩阵不重复累加,结果为需要分配到DARAM的矩阵总数量。当结果超过可得到的片上DARAM数量时,这种条件组合下就没有解。

  每个B类条件要求某两个矩阵必须在不同的块内,由于存在多个B类条件,事实上可能要求多个矩阵相互不在同一个块内。例如,要求矩阵A1和A2不在同一块内,矩阵A3和A1不在同一块内,矩阵A3和A2不在同一块内,这实际上是要求A1、A2、A3相互不在同一块内。若有一组矩阵,其中任何两个矩阵都必须分配在不同的块内,称为“B类约束矩阵组”。若不存在一个矩阵,要求与某个B类约束矩阵组中的所有矩阵都存在B类约束关系,则称这个组为“最大B类约束矩阵组”。最大B类约束条件矩阵组中的矩阵数目就是分配这些矩阵所需的最少的存储器块数。把矩阵数最多的最大组中的各个矩阵分配到不同的存储器块中,然后按照B类约束矩阵组中矩阵数从多到少的顺序分配这个组中尚未分配的矩阵,对于具有相同矩阵数的组,则先分配未分配矩阵较少的B类约束矩阵组中的矩阵,若B类约束的矩阵同时存在C类限制,则分配到DARAM上;否则优先分配到SARAM上。若SARAM上没有足够的空间,再分配到DARAM上。最后在DARAM 上分配C类约束条件中的尚未分配的矩阵。

  3 总结

  上述数据存储器的分配只考虑了C55x中数据分配的主要方面,还有一些因素尚未涉及。例如长整型数据的分配就必须考虑数据存储器地址的对齐问题,这时数据分配的求解变得更加复杂。可以将矩阵短整型的个数规定为偶数,以简化对齐问题,所以卜述求解仍具有普遍的实用意义。

linux操作系统文章专题:linux操作系统详解(linux不再难懂)

上一页 1 2 下一页

评论


相关推荐

技术专区

关闭