一种基于内存替换进行数据写入的方法技术

技术编号:9967352 阅读:105 留言:0更新日期:2014-04-25 07:26
本发明专利技术提供一种基于内存替换进行数据写入的方法,其实现过程为:设置内存构架,将内存中用于数据读写的部分进行独立设计,将两块容量完全相同的集成电路集成在一起;进行内存切换,系统在刚启动时以通用模式启动,待运行一段时间,系统相关应用完全加载完成,由内存管理单元根据系统设定的切换模式,对栈所使用的容量进行检测,然后根据实际的容量加上一定的冗余设定栈区,然后对于读所使用的内存进行检测,并加上一定的冗余设定读内存,剩下的内存完全映射给写内存,完成内存切换过程。该一种基于内存替换进行数据写入的方法和现有技术相比,在文件写入时通过替换内存以使整个写入的过程变得平滑,改善写入性能,实用性强,易于推广。

【技术实现步骤摘要】
一种基于内存替换进行数据写入的方法
本专利技术涉及计算机存储系统
,更具体地说是基于内存替换进行数据写入的方法。
技术介绍
现实生活中,人们越来越多的与信息化设备打交道,人们使用这些设备的主要一个目的就是获取信息,但是信息从哪里来的?这就涉及到信息保存,如果信息没有保存,获取信息就无从谈起,因此信息保存对于整个信息领域起到了支撑的作用。说到信息保存,人们很容易想到的是自己使用手机或者PC对自己的文件进行保存,对于这种保存因为数据量少,也一般有足够的时间让pc机慢慢存,因此在存储过程中一般不会出现什么诸如数据丢失等问题。但是在现实生活中,有些情况会产生大量的数据而且需要存储设备对这些大量的数据进行及时的存储。视频监控行业就具有这样的一种特点,在一些中小型的视频监控项目中,摄像头有几百上千路,而大型或者超大型的则有上万路的摄像头,特别是现在摄像头已经变成高清化,这也就是说对于视频监控在短时间内会产生大量的数据,而且这些数据如果不能在一个短时间内进行存储的话将会丢失。现在很多的视频厂商使用一些通用的存储设备,对视频数据进行存储,经常看到监控厂商抱怨视频出现了丢帧现象。视频丢帧也就是出现了视频数据丢失,而对存储进行检查的时候,网络带宽完全能满足需要,磁盘IO,等并没有出现瓶颈。这常常是技术人员很头痛。因为数据量大,路数多,而且还常常实现数据流的爆发等问题。视频数据存储的过程中,内核常常先把数据存入缓存中,然后再调用刷写线程把数据刷入磁盘等存储设备,而内存是很多的进程共用的,内核需要对数据流进行内存分配,申请相关的内存页耗费大量时间,而有可能在内存申请时候数据流过来时没有足够的内存进行存放,这就造成了视频丢帧。在视频监控(数据备份)应用中,有一个非常显著的特点就是写入量远远大于读的概率,且数据写入相对平稳,但是每一时刻写入的数据量都非常大,而且写入后基本不需要马上进行读取,也即写入内存后,即可以写入磁盘不要担心这会影响读取的效率。针对这些应用特点,提出一种基于内存替换,以使整个写入的过程变得平滑,改善写入性能的方法。
技术实现思路
本专利技术的技术任务是解决现有技术的不足,提供一种基于内存替换进行数据写入的方法。本专利技术的技术方案是按以下方式实现的,该一种基于内存替换进行数据写入的方法,其实现过程为:设置内存构架,将内存中用于数据读写的部分进行独立设计,将两块容量完全相同的集成电路集成在一起,每块电路均包括读数据的部分和写数据的部分,设定内存大小为堆栈区域总的大小,每一块的容量都相当于内存中堆区的容量,把栈区容量划到实际栈区所需容量的百分之一百二十,这时剩下的容量就全部用于堆区,该堆区读容量和写容量共同组成堆区全部容量。进行内存切换,即首先将系统设定为内存切换模式。然后系统在刚启动时以通用模式启动,待运行一段时间,系统相关应用完全加载完成,由可以对栈区、读内存区、写内存区的容量进行动态调整的内存管理单元根据系统设定的切换模式,对栈所使用的容量进行检测,然后根据实际的容量加上一定的冗余设定栈区,然后对于读所使用的内存进行检测,并加上一定的冗余设定读内存,剩下的内存完全映射给写内存,完成内存切换过程。所述内存切换是指写内存的切换,其包括两种状态,0状态和1状态,0状态表示外面数据往内存里写的状态,1状态表示从内存往磁盘的存储设备上刷写的状态。所述内存管理单元对各区的容量使用情况进行跟踪,当某一区的冗余容量小于预设值,则内存管理单元对内存进行调整,当冗余的容量大于预设的值同样对内存进行调整。每块内存中都设置了“满状态”硬件位:当写内存处于0状态,也就是处于外面数据写入内存的状态时,当数据填满了80%的写内存,则“数据满”硬件位将被置1;而另一块处于1状态的内存数据完全刷写完成时,则“满状态”位被置0。内存管理单元还可以根据两块内存的“满状态”位及数据流情况所处的情况进行状态切换,状态切换使用边沿触发器进行触发切换。本专利技术与现有技术相比所产生的有益效果是:本专利技术的一种基于内存替换进行数据写入的方法在文件写入时通过替换内存以使整个写入的过程变得平滑,改善写入性能,数据写入平稳,视频保存完整且不易丢失,调取过程方便易实现,实用性强,易于推广。附图说明附图1为本专利技术中内存替换情形下读写使用内存示意图。具体实施方式下面结合附图对本专利技术的一种基于内存替换进行数据写入的方法作以下详细说明。如附图1所示,现提供一种基于内存替换进行数据写入的方法,其实现过程为:设置内存构架,将内存中用于数据读写的部分进行独立设计,如附图1所示区域中有两块容量相同超大规模集成电路集成在一起。每一块的容量都相当于内存中堆区的容量。堆区容量对于传统的内存管理方法,堆区容量没有固定值,是大小可变的一个区域。为了方便,可以是设定内存大小为堆栈区域总的大小。由于对于视频监控存储或者数据备份等应用业务量比较单一,栈区所需要的容量也比较固定,假定为n,为了有一定冗余,可以把容量划到实际栈区所需容量的百分之一百二十,则这时剩下的容量就全部用于堆区。因为堆区中用于读所需要的容量非常少,可以划很少的一部分用于读,假定为R。然后最后剩下的内存全部用于写内存,假设总的容量为W。完成内存切换的步骤。内存切换是指写内存的切换,写内存有两种状态,0状态和1状态,0状态表示外面数据往内存里写的状态,即写内存状态;1状态表示从内存往磁盘的存储设备上刷写的状态,即写磁盘状态。对于实际使用当中是否需要进行内存替换,可以使用相关的命令对内存进行控制,如果不需要进行内存替换模式,则只使用内存1,这种情形下,与通常的使用相同,没有区别。内存管理单元可以对栈区,读内存区,写内存区的容量进行动态调整。调整可以按如下方式进行调整。1)系统设定为内存切换模式。2)系统在刚启动时都是以通用模式启动,等运行了一段时间,也即系统相关应用完全加载完成,这时可以内存管理器根据系统设定的切换模式,对栈所使用的容量进行检测,然后根据实际的容量加上一定的冗余(如20%)设定栈区,然后对于读所使用的内存进行检测,并加上一定的冗余设定读内存,剩下的内存完全映射给写内存。3)内存管理单元需要对各区的容量使用情况进行跟踪,但某一区的冗余容量小于预设值,则内存管理单元需要对内存进行调整,当冗余的容量大于预设的值则也需要对内存进行调整。每块内存中都设置了“满状态”硬件位,当写内存处于写的状态时,即0状态时,也就是处于外面数据写入内存的状态时,当数据填满了80%的写内存,则“数据满”硬件位将被置1。而另一块处于刷写状态,即1状态时的内存数据完全刷写完成了,则“满状态”位被置0。内存管理单元还需要能根据两块内存的“满状态”位及数据流情况所处的情况进行状态切换。状态切换使用边沿触发器进行触发切换。为了更好的阐述想法,硬件位使用如下字母进行约定:内存1满状态位M1;内存2满状态位M2;内存1写状态X1;内存2写状态X2;数据流边沿B;具体情形如下表所示:情况M1M2BX1X2101上升沿由1变0有0变1210上升沿有0变1由1变0300任何态01411任何态00对于这个表格需要说明的是第四种情况必须避免。第一种情况表明内存1开始处于写磁盘的状态,而内存2开始处于写内存状态。内存1在刷写完成以后,满状态变成0,如果此时内存2数据已经写本文档来自技高网
...
一种基于内存替换进行数据写入的方法

【技术保护点】
一种基于内存替换进行数据写入的方法,其特征在于其实现过程为:设置内存构架,将内存中用于数据读写的部分进行独立设计,将两块容量完全相同的集成电路集成在一起,每块电路均包括读数据的部分和写数据的部分,设定内存大小为堆栈区域总的大小,每一块的容量都相当于内存中堆区的容量,把栈区容量划到实际栈区所需容量的百分之一百二十,这时剩下的容量就全部用于堆区,该堆区读容量和写容量共同组成堆区全部容量;进行内存切换,即首先将系统设定为内存切换模式;然后系统在刚启动时以通用模式启动,待运行一段时间,系统相关应用完全加载完成,由可以对栈区、读内存区、写内存区的容量进行动态调整的内存管理单元根据系统设定的切换模式,对栈所使用的容量进行检测,然后根据实际的容量加上一定的冗余设定栈区,然后对于读所使用的内存进行检测,并加上一定的冗余设定读内存,剩下的内存完全映射给写内存,完成内存切换过程。

【技术特征摘要】
1.一种基于内存替换进行数据写入的方法,其特征在于其实现过程为:设置内存构架,将内存中用于数据读写的部分进行独立设计,将两块容量完全相同的集成电路集成在一起,每块电路均包括读数据的部分和写数据的部分,设定内存大小为堆栈区域总的大小,每一块的容量都相当于内存中堆区的容量,把栈区容量划到实际栈区所需容量的百分之一百二十,这时剩下的容量就全部用于堆区,该堆区读容量和写容量共同组成堆区全部容量;进行内存切换,即首先将系统设定为内存切换模式;然后系统在刚启动时以通用模式启动,待运行一段时间,系统相关应用完全加载完成,由可以对栈区、读内存区、写内存区的容量进行动态调整的内存管理单元根据系统设定的切换模式,对栈所使用的容量进行检测,然后根据实际的容量加上一定的冗余设定栈区,然后对于读所使用的内存进行检测,并加上一定的冗余设定读内存,剩下的内存完全映射给写内存,完成内存切换过程;所述内存切换是指写内存的切换,其...

【专利技术属性】
技术研发人员:肖健明
申请(专利权)人:浪潮电子信息产业股份有限公司
类型:发明
国别省市:

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

1