System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 一种面向嵌入式设备表存储的内存压缩管理系统技术方案_技高网

一种面向嵌入式设备表存储的内存压缩管理系统技术方案

技术编号:40901841 阅读:5 留言:0更新日期:2024-04-18 11:19
本发明专利技术公开了一种面向嵌入式设备表存储的内存压缩管理系统,其特点是该系统包括:逐出页面压缩选择器、分区设计和重复页面筛选器,所述逐出页面压缩选择器使用熵采样算法估计换出页面的压缩率并确定压缩页面;所述分区设计将频繁换入/换出的页面使用zRAM内存空间,不频繁换入/换出的页面使用辅助存储空间;所述重复页面筛选器加入Swap Index Table和Swap Page Table两个设计页表,构建Swap页索引。本发明专利技术与现有技术相比具有内存利用率高,减少因为swap分区而产生的系统能耗,降低因swap引发的对应用的影响,进一步提升表存储系统的存储性能,减轻嵌入式设备的内存压力,具有很好的运用前景和商业价值。

【技术实现步骤摘要】

本专利技术涉及内存开发,尤其是一种面向嵌入式设备表存储的内存压缩管理系统


技术介绍

1、小型嵌入式设备,由于其内存有限,面对一些大型任务的时候,经常的需要换入换出页面。由于硬件设备本身的存储速度就存在极大的差异,频繁的换入换出页面会导致内存与后端存储设备之间的i/o性能下降,影响用户的体验。在嵌入式设备上面,物理内存是一个稀缺资源。在传统的linux内存优化方案中,终端设备后者嵌入式设备通常采用swap机制以及zram内存方案。操作系统中原本带有的内存sawp机制并不适用于嵌入式设备的内存容量。这种交换方法反而会对小型嵌入式设备的i/o性能影响极大,增加了其内存与后端存储设备之间的通信成本。swap机制运用的是虚拟内存原理,物理内存就是计算机的实际内存,由ram(random access memory)组成。虚拟内存则是虚拟出来的,用磁盘代替内存。虚拟内存的出现,让机器内存不够的情况得到部分解决。当程序运行起来由操作系统做具体虚拟内存到物理内存的替换和加载。把一块磁盘空间或者一个本地文件当成内存来使用。有换入和换出两个动作。换出是把进程暂时不用的内存换到磁盘中,并释放这些数据占用的内存;换入是进程再次访问这些内存的时候,从磁盘读取数据到内存。如果使用传统的内存与磁盘的交换机制,小型嵌入式设备也可以工作,但其性能的优劣取决于其物理内存的大小,但往往所有的嵌入式设备并不会携带很大的物理内存也与其硬件资源的价格有关。终端设备一般采用基于闪存的设备,如安全数字卡(secure digital card,sd card)和通用闪存存储(universal flash storage,ufs),进行低功耗、非易失性的数据存储。出于考虑硬件成本和功耗,它们通常配备有少量闪存芯片和极有限的内嵌ram。此外,闪存介质存在严峻的耐久性问题。闪存单元具有有限次的擦写(programming/erase,p/e)操作,为了延长闪存的使用寿命,有必要最大程度地减少i/o放大。

2、因此,内存压缩这项技术便应运而生。内存压缩,简而言之,是在系统的物理内存不足时,将系统物理内存的一部分划分出来作为zram分区,然后把不常用的匿名页压缩后放到zram分区里,相当于牺牲了一些cpu效率,以增大系统可用内存供当前运行的程序使用。等到需要使用时,再从zram分区中将数据解压出来。主要原理就是从内存分配一块区域出来用作swap分区,每次如果内存空间不够了,不是把应用程序杀掉,而是把应用程序所占用的内存数据复制到swap分区,等切换回来的时候就可以直接把这部分数据恢复到内存当中,节省重新开启所需的时间。而被放到swap分区的应用程序,所占用的内存都是被压缩过的,比如,微信在普通内存中占用50mb的空间,如果压缩率为0.4,则放到swap分区里面的数据只需要20mb的空间,这样swap分区里面就可以存放更多后台临时不用的应用程序,变相扩展了内存的大小。zram在2009年的时候就进了kernel的staging目录,并于2014年3月30日发布的3.14版本正式合并入linux内核主线。ubuntu于13.10开始使用zram。2012年12月,ubuntu考虑为小内存的计算机默认启用zram。google在chrome os中使用zram,它也成为了android 4.4及以后版本设备的一个选项。

3、现有技术的内存压缩方法,虽然在一定程度上为内存压缩提供了新颖的解决方法,但都是针对特殊的问题而提出的解决方法。而对于内存受限的嵌入式设备,还是使用传统的内存管理(linux内存管理的简化版),不能很好的适应当前主流的泛在操作系统场景,不能满足泛在应用的存储需求,它直接在存储设备上面构建表结构,去除了文件抽象,并在数据库和文件系统之间进行跨层次设计。因为在新的场景下必定会产生新的问题。原生表存储系统就是在泛在操作系统场景出现的前提下,应运而生出的新的一种存储方式,对于泛在操作系统下的结构化数据存储,存在i/o放大严重、一体化的系统体量过大、未能充分结合存储硬件特性以及软件栈冗余和泛在操作系统场景下表存储系统的内存资源利用率较低等问题。


技术实现思路

1、本专利技术的目的是针对现有技术的不足而提出的一种面向嵌入式设备表存储的内存压缩管理系统,采用分区设计的混合交换布局方法,使用熵采样算法来快速估计换出页面的压缩率,根据页面估计的压缩率、重用概率和逐出成本来确定是否接受成为压缩页面,该系统包括:逐出页面压缩选择器,以及分区设计的内存区域和辅助存储区域,具有低压缩率和高性能优势的页面,以很少的开销选择性地存储它们,分区设计的混合交换布局方法是结合内存压缩和内存交换技术,其主要思想就是频繁换入/换出的页面使用zram内存空间,而不频繁换入/换出的页面使用辅助存储空间,重复页面筛选器解决了无法识别冗余且存储在压缩交换区中的相同页面,新加入的两个设计页表:swap index table和swap pagetable,做到更快的分区swap内存,降低重复页面出现以及被压缩的几率,构建swap页索引,降低因swap引发的对应用的影响,最终达到针对表存储系统的内存进行管理以提高进一步的性能。本专利技术提高了表存储系统的内存利用率,进一步细化了嵌入式设备内存空间的管理,如何选取对系统更为有用的页面,如果建立合适的索引以及降低重复页面的选择,减少因为swap分区而产生的系统能耗,降低因swap引发的对应用的影响,进一步提升表存储系统的存储性能,从而减轻嵌入式设备的内存压力,在新场景表存储系统的基础上,提高表存储系统的内存利用率和内存空间的管理,进一步提高系统的响应时间,减少不必要的i/o操作,减少内存与闪存存储之间的换入换出,从而有效地减少基于闪存的存储的磨损量并使其持续时间更长,显著减少需要交换的系统的i/o,降低i/o瓶颈的触发,该内存压缩管理系统结合嵌入式设备硬件特性与原生表存储系统特性,实现了一个具有高效性、易用性、面向具有小型内存嵌入式设备的表存储的内存压缩管理系统,较好的解决了现有内存压缩技术对泛在操作系统场景下表存储系统的内存资源利用率较低的问题,进而提高表存储系统的内存利用率和更好的内存空间管理,进一步提升表存储系统的存储性能和提高系统的响应时间,减少不必要的i/o操作,具有很好的运用前景和商业价值。

2、实现本专利技术的具体技术方案是:一种面向嵌入式设备表存储的内存压缩管理系统,其特点是该系统由逐出页面压缩选择器与分区设计的内存区域和辅助存储区域组成,使用分区设计的混合交换布局方法,实现嵌入式设备表存储的内存压缩管理,所述逐出页面压缩选择器对原有的内存压缩技术大多数只考虑压缩记录在栈和堆中信息的匿名页面,以及都盲目地压缩从主内存中逐出的所有页面,将压缩后的页面(zpage)存储在ram中压缩交换池的交换页(swap page)中。当从主内存请求存储在池中的zpage时,它被解压缩并移回主内存,解压缩的zpage将从其交换页中删除。逐出页面压缩选择器不仅考虑匿名页面,还考虑文件映射页面,文件映射页面在这里特指未被修改过的,如果修改过的本文档来自技高网...

【技术保护点】

1.一种面向嵌入式设备表存储的内存压缩管理系统,其特征在于,该系统由逐出页面压缩选择器与分区设计的内存区域和辅助存储区域组成,使用分区设计的混合交换布局方法,实现嵌入式设备表存储的内存压缩管理,所述内存区域包括可用内存和zRAM分区;所述辅助存储区域包括重复页面筛选器和Swap分区;所述逐出页面压缩选择器将满足算法的频繁页面逐出内存区域,频繁的页面压缩后进入zRAM分区;所述重复页面筛选器将辅助存储区域内不频繁的页面换出Swap分区,换出不频繁的页面进入zRAM空间。

2.根据权利要求1所述的面向嵌入式设备表存储的内存压缩管理系统,其特征在于,所述分区设计的混合交换布局使用后端存储设备的SD卡与嵌入式设备进行交互,在SD卡上面进行分区设计,作为辅助的存储交换空间,所述各分区交换的箭头指向必须一致,当多个程序在混合交换系统中同时运行时,如要引用的页面不在主存中,并且没有交换到辅助存储交换空间或zRAM交换空间时,它将使用Fin箭头指向从辅助存储器上的程序存储库加载到主存储器中;如引用的页面被换出,Sout箭头指向到辅助存储交换空间,则通过Sin箭头指向将其交换到主存中;如引用的页面被换出到zRAM交换空间,则通过Zin箭头指向在主存中进行交换;如此时主存中没有可用的空闲空间,则通过Sout箭头指向或Zout箭头指向分别换出到辅助存储交换空间,或zRAM交换空间中最长时间未被引用的匿名页面;最后,在内核中创建一个常驻进程ZSWAPD,ZSWAPD I/O箭头指向用于将zRAM压缩后的匿名页面换出到后端存储分区中,从而完全地空出一块可用内存。

3.根据权利要求1所述的面向嵌入式设备表存储的内存压缩管理系统,其特征在于,所述逐出页面压缩选择器对逐出的所有页面使用熵采样算法估计换出页面的压缩率、重用概率和逐出成本,确定是否接受成为压缩交换池zpool中的页面,所述接受条件是仅当将目标页面保留在zpool中的预期收益大于或等于保留在zpool中现有zpage平均收益时,才会接纳该目标页面;所述所有页面包括:匿名页面和文件映射页面;所述熵采样算法由下述(a)~(b)式分别计算目标页面的预期收益和zpool中zpage的平均收益:

4.根据权利要求1所述的面向嵌入式设备表存储的内存压缩管理系统,其特征在于,所述重复页面筛选器加入Swap Index Table和Swap Page Table两个新设计的页表来记录压缩换出页的具体信息,所述Swap Index页表管理交换页表中换出页的索引和偏移量的位置信息;所述索引为索引标识交换页表的条目,以及所指示的换出页的大小,索引号的下标代表着页面的大小,页面大小一样的存在同一个链表中;所述偏移量用于获取交换页表项中特定换出页的起始地址;所述Swap Page Table页表中的位置由Swap Index表中的sp_idx和sp_offset字段表示,所有换出的页面都存储在Swap Page页表中。

5.根据权利要求1所述的面向嵌入式设备表存储的内存压缩管理系统,其特征在于,所述嵌入式设备启用表存储系统操作时,当内存的存储量达到设定的阈值时,启动内存压缩管理系统,它将包括匿名页面和未被修改的文件映射页面的所有页面经逐出页面压缩选择器,根据熵采样算法选择满足的页面进行压缩操作并进入到zRAM分区中的压缩池zpool,当zRAM分区中所存的压缩页面承载满以后,启动分区设计的混合交换布局方法,在多个大型任务或者程序跑在嵌入式设备的表存储系统中时,将其加入辅助存储空间;同时启动重复页面筛选器,将两个页表来记录压缩换出页的具体信息,实现嵌入式设备表存储的内存压缩管理。

...

【技术特征摘要】

1.一种面向嵌入式设备表存储的内存压缩管理系统,其特征在于,该系统由逐出页面压缩选择器与分区设计的内存区域和辅助存储区域组成,使用分区设计的混合交换布局方法,实现嵌入式设备表存储的内存压缩管理,所述内存区域包括可用内存和zram分区;所述辅助存储区域包括重复页面筛选器和swap分区;所述逐出页面压缩选择器将满足算法的频繁页面逐出内存区域,频繁的页面压缩后进入zram分区;所述重复页面筛选器将辅助存储区域内不频繁的页面换出swap分区,换出不频繁的页面进入zram空间。

2.根据权利要求1所述的面向嵌入式设备表存储的内存压缩管理系统,其特征在于,所述分区设计的混合交换布局使用后端存储设备的sd卡与嵌入式设备进行交互,在sd卡上面进行分区设计,作为辅助的存储交换空间,所述各分区交换的箭头指向必须一致,当多个程序在混合交换系统中同时运行时,如要引用的页面不在主存中,并且没有交换到辅助存储交换空间或zram交换空间时,它将使用fin箭头指向从辅助存储器上的程序存储库加载到主存储器中;如引用的页面被换出,sout箭头指向到辅助存储交换空间,则通过sin箭头指向将其交换到主存中;如引用的页面被换出到zram交换空间,则通过zin箭头指向在主存中进行交换;如此时主存中没有可用的空闲空间,则通过sout箭头指向或zout箭头指向分别换出到辅助存储交换空间,或zram交换空间中最长时间未被引用的匿名页面;最后,在内核中创建一个常驻进程zswapd,zswapd i/o箭头指向用于将zram压缩后的匿名页面换出到后端存储分区中,从而完全地空出一块可用内存。

3.根据权利要求1所述的面向嵌入式设备表存储的内存压缩管理系统,其特征在于,所述逐出页面压缩选择器对逐出的所有页面使用熵采样算法估计换出页面的压缩率、重用概率...

【专利技术属性】
技术研发人员:阎松翁楚良范晓鹏黄宇辰
申请(专利权)人:华东师范大学
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1