![](http://img4.cpooo.com/files/201905/17/p/61/1207632_1558063380.jpg)
248HANAN***
Rosemount罗斯蒙特248HANAN***在嵌入式系统中,设内存块大小为S,某段时间内内存块个数为T,块中每页的大小为p*q*w,其中p为行数,q为列数,w为每个字的位数。在某个应用中有N个变量{ni,i=1,……,N},已知变量被访问的次序为njnknl……nm,则首先寻找块存储的相对位置,使得内存访问延迟函数Latency1***小(假设两个块相邻,访问需要1个时钟周期;相隔1个块,访问需要2个时钟周期;第i个块和第j个块间访问需要i-j个时钟访问延迟):Latency1={Sum|∑z*(i-j)/z,z=1....m}(1)其中:z是访问顺序表中内存块的位置,如第3个位置(z=3)访问的是bi,下一个位置存放的是bj,i和j是内存块访问顺序中相邻块标号,是块在内存中存储的相对位置,m是访问内存块的顺序排列长度。其次寻找N个变量在内存块内的存储相对位置的一种规划{nxnynz……nt},使得内存访问延迟函数Latency2***小,块内规划目标函数为:Min:Latency2=5*#P+3*#R+#C(2)其中:#P是规划中访问的页间转换的次数,#R是行间转换的次数,#C是列间转换的次数。N个变量的排列方法的数目共有N!种,要在如此多的情况下寻找某种***优的排列,这是NP问题。解决这类优化问题有很多方法,如模拟退火算法、演化算法等一些启发算法,也可以用曲线图划分问题(graphpartitioningproblem)的方法来解决此问题。本文采用了***近几年发展很快的遗传算法来解决此规划问题。遗传算法是解决NP问题的有效方法。本文的研究目的在于内存规划的意义,而不是遗传算法,所以采用经典遗传算法[8],以此来验证内存规划的有效性。本文的算法可记为LBP(LBP-LayoutofBlockandPage)。2.1算法的前提条件在解决问题之前,要给出解决问题的前提。(1)对块内访问时,通常是先寻找页,再找到行,***后找列,则对页访问的耗时(一般称为内存访问延迟)大于对同页中的行,行访问耗时大于同行中的列。同时在相距较远的块间访问耗时大于相邻块间访问。(2)减少内存访问中块和页的转换次数,可以减少延迟和节省能量。(3)在页/行/列之间转换没有优先级,也就是从1~3页和从1~2页耗时是相同的。(4)内存单元阵列是矩形,p和q代表内存块单元的行数和列数,w代表内存字的长度,则p*q*w代表了内存的大小。(5)数据访问顺序是已知的。(6)每个数据都分配给***的内存单元,基本单元的大小与要分配的数据刚好匹配。前面四个假设是解决问题的必要条件,而后面两条假设是为了简化解决的问题。如果没有特别的说明,这些假设在本文都是适用的。2.2遗传算法遗传算法的基本步骤是确定适应度函数,然后对问题进行编码和寻找***优解。下面给出解决块内规划问题算法第二步的基本步骤。***步与第二步相似,本文省略。(1)适应度函数是目标函数,即Latency。依据假设,如果页访问模式延迟时间是5个时钟周期,记为Delay(P)=5cycles,则行延迟Delay(R)=3cycles,列延迟Delay(C)=1cycles,适应度函数为:latency(cycles)=#P*5+#R*3+#C*1。(2)解决的问题是内存变量的存放次序,由于字母的数目有限,所以可用十进制编码来表示变量(如把图1中abcdefgh编码为12345678)。(3)杂交过程选择同一代中的某些位进行交换,不同代的交换容易产生***个体,所以在某代个体内部进行交换,可以提高算法的有效性。选取某代杂交的概率为Pc=0.08。(4)算法的终止是在某两代适应度函数之间相对误差小于0.001时,程序终止,并给出***优的内存规划方法。如果内存单元数目有p*q个,则取串中每q个为一行(分为一组),间隔n*(q-1)为一列,存放在内存中供程序使用。2.3实验结果图像处理系统的处理对象是象素,处理过程中使用大量的内存,造成了嵌入式系统图像处理应用中的瓶颈。经过近几十年的发展,图像处理算法也有很多成熟的算法。可以把这些算法经过改造,使之适应嵌入式系统体积小、容量小的特点。本文算法的提出是针对使用大量内存,同时处理步骤相对简单的系统设计的。本文采用一些标准(benchmark)系统,提高嵌入式系统有限的内存资源的利用率。基于内存的规划算法,用几个内存访问序列验证内存规划对嵌入式系统性能的改变。实验中使用IFA(ImageFlipAlgorithm)、GSR(Gauss-Seidelformula)、CA(CompressAlgorithm)、BIQUAD(Biquad_one_section)和FIR。后两个例子是为了验证非图像处理的系统使用本算法的情况,说明算法的应用具有一定的普遍意义。表1和表2是用随机访问方法和本文的访问方法进行实验的结果。从表中可以看出,规划后的延迟时间都缩短了,另外还验证了规划内存方法的使用减少了嵌入式系统能耗。能耗的计算采用文献[2]中的算法,如图3(a)所示。文献[1]中的算法是对页进行规划时,寻找页访问次数***大,对列进行规划时,寻找列访问次数***大。在具体应用中,只能用一种方法。而本文同时对内存中页和行进行规划,所以对系统性能的提高更有效。图3(b)是与文献[1]算法的结果比较(仅给出能量消耗图),前者平均能量提高了大约10%。用随机访问方法和本文的访问方法进行实验的结果能量消耗比较把本文的算法应用于自行开发的嵌入式图像处理系统中,获得了良好的系统性能。3结论和展望本文提出了一个通过减少对内存访问时块间和块内页间交换的次数和行间转换的次数,使嵌入式系统内存和能量资源能够有效利用的方法。该方法可以直接应用到嵌入式系统的内存管理器中。因为随着用户需求和功能的增加,越来越多的嵌入式系统需要处理大量的数据,所以对嵌入式系统的内存采取管理是必要的。尤其对一些不带MMU单元的操作系统来说,应用中加入内存管理程序对系统性能的提高起到很大的作用。本文给出的内存规划策略能有效地减轻嵌入式系统负担。本文是针对非数组的变量来讨论的,但是也可以应用到数组变量中。尽管使用的算法有可能没有找到系统的***优解,但使用这个算法,一定可以提高系统的性能。本文提出的算法不但可以应用到嵌入式系统中的DRAMs,也可以应用到其他支持行和列内存访问的存储设备上,如flash存储器。虽然目前一些多组SRAM的系统还不支持此算法,但是在将来的基于功耗设计的系统中,这种访问模式是会被支持的。本文方法同流行操作系统内存管理相比更简单,更加适合嵌入式系统,同时弥补了现用嵌入式操作系统CLinux等在内存管理方面的不足。1756-L551756-L55M121756-L55M131756-L55M141756-L55M161756-L55M221756-L55M231756-L55M241756-L60M03SE1756-L611756-L61S1756-L621756-L62S1756-L631756-L63S_______1756-L64_________1756-LSP1756-M121756-M131756-M141756-M161756-M221756-M231756-M241756-IF161756-IF4FXOF2F1756-IF6CIS1756-IF6I1756-IR6I1756-IT6I1756-IT6I21756-OF6CI1756-OF6VI1756-OF81756-OF8H1756-CFM1756-HYD021756-PLS1756-M02AE1756-M02AS1756-M08SE1756-M16SE1756-CN21756-CN2R1756-CNBR1756-EN2T1756-ENBT1756-EWEB1756-DHRIO1756-PBR21756-SYNCH1756-STRT41756-PAR21756-EN2TR1756-RM1756sc-CTR81756sc-IF8H1756sc-IF8u1756sc-OF8H1756L561756L571756L581756L591756L601756L611756L62________________________________________________________1756L631756L641756L651756L661756L62S1756L631756L641756L651756LSP1785L60L1785L40L1785L80E1785L86B1785L80C151785L80B1785L60B1785L46C151785L40E1785L46B1785L40C151785L40B1785L30B1785L26B1785L20E1785L20C151785L20B1785BCM1785BEM1785L11B1785KA1785CHBM1785KE1785KA31785ENET1785KA5P1785M1001785ME641785ME321785ME161785TAM1785TBM1785TAS1785TBS1785TR10B51785ACC5LA1785ACC5LB1785-L11B1785-L20B1785-L20C151785-L20E1785-L26B1785-L30B1785-L40B1785-L40C1785-L40C151785-L40E1785-L40L1785-L46B1785-L46C151785-L60B1785-L60L1785-L80B1785-L80C1785-L80C151785-L80E1785-L86B1747-L5421747-L5431747-L5511747-L5521747-L5531747-L553P1756-L11756-L1M11756-L1M21756-L1M31756-L551756-DNB1756-IB161756-IB16D1756-IB16I1756-IB321756-IC161756-IH16I1756-IM16I1756-IN161756-IV161756-OB16D1756-OB16E1756-OB16I1756-OB321756-OB81756-OB8EI1756-OC81756-ON81756-OV16E1756-OW16I1756-OX8I1756-IF161756-IF6I1756-IF81756-IR6I1756-IT6I1756-OF41756-OF6CI1756-OF6VI1756-OF81756-HSC1756-CNB1756-CNBR1756-ENBT1756-DHRIO1756-DNB1756-L611756-L61S1756-L621756-L62S1756-L631756-L63S1756-L63XT1756-L641756-L651756-L731756-L751756-L55)