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

文档序号:6535684阅读:139来源:国知局
一种基于内存替换进行数据写入的方法
【专利摘要】本发明提供一种基于内存替换进行数据写入的方法,其实现过程为:设置内存构架,将内存中用于数据读写的部分进行独立设计,将两块容量完全相同的集成电路集成在一起;进行内存切换,系统在刚启动时以通用模式启动,待运行一段时间,系统相关应用完全加载完成,由内存管理单元根据系统设定的切换模式,对栈所使用的容量进行检测,然后根据实际的容量加上一定的冗余设定栈区,然后对于读所使用的内存进行检测,并加上一定的冗余设定读内存,剩下的内存完全映射给写内存,完成内存切换过程。该一种基于内存替换进行数据写入的方法和现有技术相比,在文件写入时通过替换内存以使整个写入的过程变得平滑,改善写入性能,实用性强,易于推广。
【专利说明】一种基于内存替换进行数据写入的方法
【技术领域】
[0001]本发明涉及计算机存储系统【技术领域】,更具体地说是基于内存替换进行数据写入的方法。
【背景技术】
[0002]现实生活中,人们越来越多的与信息化设备打交道,人们使用这些设备的主要一个目的就是获取信息,但是信息从哪里来的?这就涉及到信息保存,如果信息没有保存,获取信息就无从谈起,因此信息保存对于整个信息领域起到了支撑的作用。说到信息保存,人们很容易想到的是自己使用手机或者PC对自己的文件进行保存,对于这种保存因为数据量少,也一般有足够的时间让PC机慢慢存,因此在存储过程中一般不会出现什么诸如数据丢失等问题。
[0003]但是在现实生活中,有些情况会产生大量的数据而且需要存储设备对这些大量的数据进行及时的存储。视频监控行业就具有这样的一种特点,在一些中小型的视频监控项目中,摄像头有几百上千路,而大型或者超大型的则有上万路的摄像头,特别是现在摄像头已经变成高清化,这也就是说对于视频监控在短时间内会产生大量的数据,而且这些数据如果不能在一个短时间内进行存储的话将会丢失。
[0004]现在很多的视频厂商使用一些通用的存储设备,对视频数据进行存储,经常看到监控厂商抱怨视频出现了丢帧现象。视频丢帧也就是出现了视频数据丢失,而对存储进行检查的时候,网络带宽完全能满足需要,磁盘10,等并没有出现瓶颈。这常常是技术人员很头痛。
[0005]因为数据量大,路数多,而且还常常实现数据流的爆发等问题。视频数据存储的过程中,内核常常先把数据存入缓存中,然后再调用刷写线程把数据刷入磁盘等存储设备,而内存是很多的进程共用的,内核需要对数据流进行内存分配,申请相关的内存页耗费大量时间,而有可能在内存申请时候数据流过来时没有足够的内存进行存放,这就造成了视频丢帧。
[0006]在视频监控(数据备份)应用中,有一个非常显著的特点就是写入量远远大于读的概率,且数据写入相对平稳,但是每一时刻写入的数据量都非常大,而且写入后基本不需要马上进行读取,也即写入内存后,即可以写入磁盘不要担心这会影响读取的效率。针对这些应用特点,提出一种基于内存替换,以使整个写入的过程变得平滑,改善写入性能的方法。

【发明内容】

[0007]本发明的技术任务是解决现有技术的不足,提供一种基于内存替换进行数据写入的方法。
[0008]本发明的技术方案是按以下方式实现的,该一种基于内存替换进行数据写入的方法,其实现过程为:
设置内存构架,将内存中用于数据读写的部分进行独立设计,将两块容量完全相同的集成电路集成在一起,每块电路均包括读数据的部分和写数据的部分,设定内存大小为堆栈区域总的大小,每一块的容量都相当于内存中堆区的容量,把栈区容量划到实际栈区所需容量的百分之一百二十,这时剩下的容量就全部用于堆区,该堆区读容量和写容量共同组成堆区全部容量。
[0009]进行内存切换,即首先将系统设定为内存切换模式。
[0010]然后系统在刚启动时以通用模式启动,待运行一段时间,系统相关应用完全加载完成,由可以对栈区、读内存区、写内存区的容量进行动态调整的内存管理单元根据系统设定的切换模式,对栈所使用的容量进行检测,然后根据实际的容量加上一定的冗余设定栈区,然后对于读所使用的内存进行检测,并加上一定的冗余设定读内存,剩下的内存完全映射给写内存,完成内存切换过程。
[0011]所述内存切换是指写内存的切换,其包括两种状态,O状态和I状态,O状态表示外面数据往内存里写的状态,I状态表示从内存往磁盘的存储设备上刷写的状态。
[0012]所述内存管理单元对各区的容量使用情况进行跟踪,当某一区的冗余容量小于预设值,则内存管理单元对内存进行调整,当冗余的容量大于预设的值同样对内存进行调整。
[0013]每块内存中都设置了 “满状态”硬件位:当写内存处于O状态,也就是处于外面数据写入内存的状态时,当数据填满了 80%的写内存,则“数据满”硬件位将被置I ;而另一块处于I状态的内存数据完全刷写完成时,则“满状态”位被置O。
[0014]内存管理单元还可以根据两块内存的“满状态”位及数据流情况所处的情况进行状态切换,状态切换使用边沿触发器进行触发切换。
[0015]本发明与现有技术相比所产生的有益效果是:
本发明的一种基于内存替换进行数据写入的方法在文件写入时通过替换内存以使整个写入的过程变得平滑,改善写入性能,数据写入平稳,视频保存完整且不易丢失,调取过程方便易实现,实用性强,易于推广。
【专利附图】

【附图说明】
[0016]附图1为本发明中内存替换情形下读写使用内存示意图。
【具体实施方式】
[0017]下面结合附图对本发明的一种基于内存替换进行数据写入的方法作以下详细说明。
[0018]如附图1所示,现提供一种基于内存替换进行数据写入的方法,其实现过程为: 设置内存构架,将内存中用于数据读写的部分进行独立设计,如附图1所示区域中有
两块容量相同超大规模集成电路集成在一起。每一块的容量都相当于内存中堆区的容量。堆区容量对于传统的内存管理方法,堆区容量没有固定值,是大小可变的一个区域。为了方便,可以是设定内存大小为堆栈区域总的大小。
[0019]由于对于视频监控存储或者数据备份等应用业务量比较单一,栈区所需要的容量也比较固定,假定为n,为了有一定冗余,可以把容量划到实际栈区所需容量的百分之一百二十,则这时剩下的容量就全部用于堆区。
[0020]因为堆区中用于读所需要的容量非常少,可以划很少的一部分用于读,假定为R。[0021]然后最后剩下的内存全部用于写内存,假设总的容量为W。
[0022]完成内存切换的步骤。
[0023]内存切换是指写内存的切换,写内存有两种状态,O状态和I状态,O状态表示外面数据往内存里写的状态,即写内存状态;1状态表示从内存往磁盘的存储设备上刷写的状态,即写磁盘状态。
[0024]对于实际使用当中是否需要进行内存替换,可以使用相关的命令对内存进行控制,如果不需要进行内存替换模式,则只使用内存1,这种情形下,与通常的使用相同,没有区别。 [0025]内存管理单元可以对栈区,读内存区,写内存区的容量进行动态调整。调整可以按如下方式进行调整。
[0026]I)系统设定为内存切换模式。
[0027]2)系统在刚启动时都是以通用模式启动,等运行了一段时间,也即系统相关应用完全加载完成,这时可以内存管理器根据系统设定的切换模式,对栈所使用的容量进行检测,然后根据实际的容量加上一定的冗余(如20%)设定栈区,然后对于读所使用的内存进行检测,并加上一定的冗余设定读内存,剩下的内存完全映射给写内存。
[0028]3)内存管理单元需要对各区的容量使用情况进行跟踪,但某一区的冗余容量小于预设值,则内存管理单元需要对内存进行调整,当冗余的容量大于预设的值则也需要对内存进行调整。
[0029]每块内存中都设置了“满状态”硬件位,当写内存处于写的状态时,即O状态时,也就是处于外面数据写入内存的状态时,当数据填满了 80%的写内存,则“数据满”硬件位将被置I。而另一块处于刷写状态,即I状态时的内存数据完全刷写完成了,则“满状态”位被置O。
[0030]内存管理单元还需要能根据两块内存的“满状态”位及数据流情况所处的情况进行状态切换。状态切换使用边沿触发器进行触发切换。为了更好的阐述想法,硬件位使用如下字母进行约定:
内存I满状态位 Ml ;
内存2满状态位 M2 ;
内存I写状态Xl ;
内存2写状态X2 ;
数据流边沿B ;
具体情形如下表所示:
【权利要求】
1.一种基于内存替换进行数据写入的方法,其特征在于其实现过程为: 设置内存构架,将内存中用于数据读写的部分进行独立设计,将两块容量完全相同的集成电路集成在一起,每块电路均包括读数据的部分和写数据的部分,设定内存大小为堆栈区域总的大小,每一块的容量都相当于内存中堆区的容量,把栈区容量划到实际栈区所需容量的百分之一百二十,这时剩下的容量就全部用于堆区,该堆区读容量和写容量共同组成堆区全部容量; 进行内存切换,即 首先将系统设定为内存切换模式; 然后系统在刚启动时以通用模式启动,待运行一段时间,系统相关应用完全加载完成,由可以对栈区、读内存区、写内存区的容量进行动态调整的内存管理单元根据系统设定的切换模式,对栈所使用的容量进行检测,然后根据实际的容量加上一定的冗余设定栈区,然后对于读所使用的内存进行检测,并加上一定的冗余设定读内存,剩下的内存完全映射给写内存,完成内存切换过程。
2.根据权利要求1所述的一种基于内存替换进行数据写入的方法,其特征在于:所述内存切换是指写内存的切换,其包括两种状态,O状态和I状态,O状态表示外面数据往内存里写的状态,I状态表示从内存往磁盘的存储设备上刷写的状态。
3.根据权利要求2所述的一种基于内存替换进行数据写入的方法,其特征在于:所述内存管理单元对各区的容量使用情况进行跟踪,当某一区的冗余容量小于预设值,则内存管理单元对内存进行调整,当冗余的容量大于预设的值同样对内存进行调整。
4.根据权利要求3所述的一种基于内存替换进行数据写入的方法,其特征在于:每块内存中都设置了“满状态”硬件位:当写内存处于O状态,也就是处于外面数据写入内存的状态时,当数据填满了 80%的写内存,则“数据满”硬件位将被置I ;而另一块处于I状态的内存数据完全刷写完成时,则“满状态”位被置O。
5.根据权利要求3所述的一种基于内存替换进行数据写入的方法,其特征在于:内存管理单元还可以根据两块内存的“满状态”位及数据流情况所处的情况进行状态切换,状态切换使用边沿触发器进行触发切换。
【文档编号】G06F3/06GK103744626SQ201410015855
【公开日】2014年4月23日 申请日期:2014年1月14日 优先权日:2014年1月14日
【发明者】肖健明 申请人:浪潮电子信息产业股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1