0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

基于操作系统中采用遗传算法的内存规划研究

电子设计 来源:微型机与应用 作者:李娜;方彦军 2020-09-27 18:06 次阅读

针对有内存管理单元(MMU)的处理器设计的一些桌面操作系统(如Windows、Linux)都使用了虚拟存储器的概念,虚拟内存地址被送到MMU。在这里,虚拟地址被映射为物理地址,实际存储器被分割为相同大小的页面,采用分页的方式载入进程。一个程序在运行之前,没有必要全部装入内存,而是仅将那些当前要运行的部分页面装入内存运行。大多数嵌入式系统是针对没有MMU的处理器设计的,因此不能使用处理器的虚拟内存管理技术,而采用实存储管理策略,从而对内存的访问是直接的。它对地址的访问不需要经过MMU,而是直接送到地址线上输出,所有程序中访问的地址都是实际的物理地址。而且,大多数嵌入式操作系统对内存没有保护,各个进程实际上共享一个运行空间。一个进程在执行前,系统必须为它分配足够的连续地址空间,然后全部载入主存储的连续空间。从编译内核开始,开发人员必须告诉系统,这块开发板到底拥有多少内存;在开发程序时,必须考虑内存的分配情况并关注应用程序需要运行空间的大小。另外,由于采用实存储器管理策略,用户程序同内核以及其他用户程序在一个地址空间,程序开发时要保证不侵犯其他应用程序的地址空间,不破坏系统的正常工作,使程序正常运行。因而对内存操作要格外小心。由此可见,开发者不得不参与系统的内存管理,否则系统的效率和性能都不能令人满意。开发者可以用一个内存管理器来帮助管理内存,可以借鉴流行操作系统对内存池(pool)中块(block)进行管理的思想。访问时先寻找对应的块,然后对物理地址进行页的解码,进而是行解码,最后是列解码和根据图像处理系统处理大量数据的特点,对数据在内存中的布局进行规划。即同一块中使连续访问的数据在同一页;在同一页的数据,尽量安排在同一行,减小内存访问延迟,以便对性能进行改善。同时,内存块间相对位置也用同样的方法进行规划,使得块间的转换也尽快完成。本文采用遗传算法,同时对内存数据存储进行页、行、列的规划,对块间相对位置也进行了规划。

1 内存规划

流行的操作系统对内存访问的基本方式是支持快速缓存,执行的过程是把要访问的地址整行拷贝到缓存区,先进行页解码和行解码,然后进行列解码并根据读写信号进行选择。目前嵌入式系统中使用的DRAMs都支持高效内存访问模式,还特别支持流行的页(page)访问模式和区间(burst)访问模式(相当于以列为主的访问)。这种访问模式消耗的能量低于随机访问方式,例如,IBM′s Cu-11 Embedded DRAM macro支持的随机访问时间是10ns,而块中页访问的时间是5ns,电流分别是60mA/MB和13mA/MB。所以,充分利用内存访问模式的特点可以改变嵌入式系统的性能。

为了说明本文的规划思想,假设内存中有如图1所示的变量a,b,c,d,e,f,g,h。若要访问内存中变量的次序为 acacebdbefgfdah,则根据图1中内存存放的次序,可以计算出访问延迟的时间。如果页间访问延迟时间是5个时钟周期,记为Delay(P)= 5cycles,则在同页中行间访问延迟Delay(R)=3cycles,同行中列间访问延迟Delay(C)=1cycles。根据图1(a)和图1 (b)中两种存储模式,可以分别计算出如图2所示的两种内存存储方式下内存访问延迟时间:Latency(a)=47cycles,Latency(b) =29cycles。

同样,将相互访问频率较高的内存块,如三个数组A、B、C分别存放在不同的内存块,数组A和数组C是经常要进行元素间计算的,则把分别存储A和C的块放在相邻的位置上,这样,既可以减小地址总线的负担,也可以提高访问时间和减少访问次数。

2 规划算法

使系统内存访问延迟最小的内存规划应该从变量和要申请的内存块在内存中存储的相对位置的角度来寻找。其前提条件是变量和内存块的访问顺序已知,申请的块的信息也可以得到。根据嵌入式系统应用的特点,例如图像处理系统,经过对程序的预处理,这个条件可以满足。处理过程可分为二步:第一步进行块间的规划;第二步对块内变量进行规划。问题的描述如下。

在嵌入式系统中,设内存块大小为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问题。解决这类优化问题有很多方法,如模拟退火算法、演化算法等一些启发算法,也可以用曲线图划分问题(graph partitioning problem)的方法来解决此问题。本文采用了最近几年发展很快的遗传算法来解决此规划问题。遗传算法是解决NP问题的有效方法。本文的研究目的在于内存规划的意义,而不是遗传算法,所以采用经典遗传算法,以此来验证内存规划的有效性。本文的算法可记为LBP(LBP-Layout of Block and Page)。

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(Image Flip Algorithm)、GSR(Gauss-Seidel formula)、CA(Compress Algorithm)、BIQUAD(Biquad_one_section)和FIR。后两个例子是为了验证非图像处理的系统使用本算法的情况,说明算法的应用具有一定的普遍意义。

表1和表2是用随机访问方法和本文的访问方法进行实验的结果。从表中可以看出,规划后的延迟时间都缩短了,另外还验证了规划内存方法的使用减少了嵌入式系统能耗。能耗的计算采用文献中的算法,如图3(a)所示。

文献中的算法是对页进行规划时,寻找页访问次数最大,对列进行规划时,寻找列访问次数最大。在具体应用中,只能用一种方法。而本文同时对内存中页和行进行规划,所以对系统性能的提高更有效。图3(b)是与文献算法的结果比较(仅给出能量消耗图),前者平均能量提高了大约10%。

把本文的算法应用于自行开发的嵌入式图像处理系统中,获得了良好的系统性能。

3 结论和展望

本文提出了一个通过减少对内存访问时块间和块内页间交换的次数和行间转换的次数,使嵌入式系统内存和能量资源能够有效利用的方法。该方法可以直接应用到嵌入式系统的内存管理器中。因为随着用户需求和功能的增加,越来越多的嵌入式系统需要处理大量的数据,所以对嵌入式系统的内存采取管理是必要的。尤其对一些不带MMU单元的操作系统来说,应用中加入内存管理程序对系统性能的提高起到很大的作用。本文给出的内存规划策略能有效地减轻嵌入式系统负担。本文是针对非数组的变量来讨论的,但是也可以应用到数组变量中。尽管使用的算法有可能没有找到系统的最优解,但使用这个算法,一定可以提高系统的性能。

本文提出的算法不但可以应用到嵌入式系统中的DRAMs,也可以应用到其他支持行和列内存访问的存储设备上,如flash存储器。虽然目前一些多组SRAM的系统还不支持此算法,但是在将来的基于功耗设计的系统中,这种访问模式是会被支持的。

本文方法同流行操作系统内存管理相比更简单,更加适合嵌入式系统,同时弥补了现用嵌入式操作系统CLinux等在内存管理方面的不足。

责任编辑:gt

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 处理器
    +关注

    关注

    68

    文章

    18224

    浏览量

    221965
  • 内存
    +关注

    关注

    8

    文章

    2761

    浏览量

    72710
  • 操作系统
    +关注

    关注

    37

    文章

    6269

    浏览量

    121846
收藏 人收藏

    评论

    相关推荐

    基于改进遗传算法的图像分割方法

    基于改进遗传算法的图像分割方法提出一种应用于图像分割的改进遗传算法,算法引入了优生算子、改进的变异算子和新个体,避免了局部早熟,提高了收敛速度和全局收敛能力。   关键词: 图像分割
    发表于 09-19 09:36

    基于遗传算法的片上网络虚通道分配算法

    分配算法.该算法利用分析模型计算出路由器每个输入端口的带宽利用率,并将该问题转化为遗传优化问题,根据所有端口带宽利用率的分布情况,引入遗传算法实现虚通道资源的分配.仿真结果表明:该
    发表于 04-22 11:34

    遗传算法

    有哪位大神懂遗传算法的,求赐教!!!!!!!!
    发表于 04-23 20:13

    遗传算法辨识程序

    遗传算法辨识程序
    发表于 01-04 13:31

    遗传算法辨识程序

    遗传算法辨识程序.zip
    发表于 01-07 12:09

    基于遗传算法的异步电机

    改进的二进制编码方法,基于惩罚项的适应度的计算,遗传算子的构造等.提出了用遗传算法优化异步电机调速系统PID参数的方法,并进行了仿真研究.仿真结果表明:
    发表于 12-10 15:40

    基于遗传算法优化EKF算法的SOC估算

    采用遗传算法对 EKF 系统噪声矩阵和测量矩阵的协方差进行在线优化,以实现在模型误差最小时对 SOC 进行在线估计
    发表于 03-12 12:27

    遗传算法的优化 精选资料分享

    Modified Genetic Algorithm Approach)主要内容:在本文中,考虑到专门为本地WT收集器系统的径向拓扑设计的特定情况,提高了GA的效率。对于此建议,遗传算法与用于
    发表于 07-12 07:00

    什么是遗传算法

    什么是遗传算法
    发表于 11-22 06:11

    遗传算法的特点和应用概述

    简单、通用,鲁棒性强,适于并行处理。二、遗传算法的特点和应用 遗传算法是一类可用于复杂系统优化的具有鲁棒性的搜索算法,与传统的优化算法相比,
    发表于 12-31 06:21

    遗传算法群体规模的研究

    遗传群体规模的选择是使用遗传算法优化计算时的首要问题,直接影响遗传算法全局收敛率和收敛速度等。该文研究二进制和自然数编码遗传算法的群体规模,
    发表于 04-03 08:37 16次下载

    基于遗传算法的移动机器人路径规划

    采用动态可变长编码的方法,以栅格表示环境。针对遗传算法大型障碍物难的问题,采用follow wall行为,较好地解决了基于遗传算法的快速路径规划
    发表于 04-17 09:31 53次下载

    遗传算法在移动网络规划中的应用

    本文通过采用遗传算法来优化移动网络规划中的基站布置。解决了基站覆盖率与经济效益之间的矛盾,并且采用实验向量的编码方式对遗传算子进行描述。在
    发表于 06-24 08:51 11次下载

    基于并行遗传算法的VOD系统负载均衡研究

    基于分布式VOD系统的结构,采用并行遗传算法对大型分布式VOD系统的负载均衡进行了研究,提出并实现了一种基于基于并行
    发表于 05-26 15:41 0次下载
    基于并行<b class='flag-5'>遗传算法</b>的VOD<b class='flag-5'>系统</b>负载均衡<b class='flag-5'>研究</b>

    遗传算法研究

    遗传算法研究(论文),有需要的下来看看。
    发表于 07-20 16:51 14次下载