本发明涉及网络技术领域,特别涉及一种基于通用文件系统的高速数据记录方法。
背景技术:
当前通用数据记录过程主要包含以下几个步骤:
1.将数据由数据采集卡通过内部总线(一般是pcie总线)搬运到处理器内存中缓存;
2.处理器将数据拷贝到文件系统的缓存中;
3.处理器将数据由文件系统缓冲以文件形式写入到存储体中。
这种方法主要优点是基于通用的文件系统,将数据写入标准文件中,便于数据在不同设备的使用与相互拷贝;缺点是在数据速率超过一定速率,处理器将数据拷贝到文件系统缓存中时,会占用大量处理器资源,当处理器处理能力达不到数据拷贝要求时,会出现数据记录的瓶颈,同时大大增加了整体功耗。
另外处理器与外部总线之间的最大带宽也是限制数据记录速度的瓶颈。
目前为了提高数据记录速度主要采用如下方法:
在文件写入时,不采用通用文件系统方式,直接将数据由处理器缓冲写入到存储体的“块”中,这样就避免了占用大量处理器资源进行数据拷贝,但缺点是没有采用通用文件系统,数据使用与导出均需要专用软件配合完成,造成使用的不方便与不通用。同时这种方法仍不能摆脱处理器与外部总线之间的最大带宽的限制。
技术实现要素:
本发明为解决上述问题,提供一种基于通用文件系统的高速数据记录方法,使采集后的数据由原始缓冲区直接写入到存储体中,而不需要再经过处理器内存,这样就摆脱了处理器与外部总线最大带宽限制;整个过程实现了数据的零拷贝,可以实现更高的数据记录速度,并降低了整体功耗,而且基于通用文件系统设计,便于文件的使用与导出,最终产生的数据文件采用标准文件系统格式。
为达到上述目的,本发明采用的技术方案是:一种基于通用文件系统的高速数据记录方法,包括:
s1、数据采集器件与处理器、存储体一起通过pcie总线互连,其中数据采集器件和存储体作为pcie总线端点设备;
s2、数据由数据采集器件采集后,放入数据采集器件本地外挂的内存进行缓冲,并通知所述处理器进行处理;
s3、处理器在操作系统启动,驱动加载后,将数据采集器件外挂的内存映射到本地空间中,并将这个空间转换为用户空间,并作为数据缓冲地址;
s4、在接收到数据采集器件通知后,应用程序使用数据缓冲地址作为写入文件的缓冲区地址;
s5、利用操作系统下主流文件系统的directio特性,直接将数据由数据采集器件外挂内存写入到存储体中。
进一步地,数据采集器件优选为fpga器件;
进一步地,操作系统优选为linux、vxworks操作系统;
进一步地,主流文件系统为支持directio特性的文件系统,优选为ext4文件系统;
进一步地,数据采集器件通知通过处理器中断响应实现;
进一步地,存储体优选为单个存储盘或多个存储盘组成的存储阵列。
综上所述,本发明具备以下优点:
1、可以实现更高的数据记录速度。通用方法中,限制记录速度的瓶颈主要为处理器处理速度、处理器外部总线带宽。在本发明中,记录速度不再受限于上述瓶颈,只要选用更多的存储体,就可以获得更大的数据记录速度;
2、记录数据文件采用通用文件系统设计,便于文件的使用与导出,同时通用文件系统是成熟技术,比自定义文件系统有更高的可靠性与灵活性;
3、由于极大降低了处理器负载,使得全速记录时,整个系统功耗极大降低,所降低功耗约等于处理器满载功耗与空载功耗的差值;
4、由于系统记录速度不再受限于处理器能力,使得处理器选用时不再需要选用高端处理器,降低了系统成本。
附图说明
图1是本发明组成示意图。
具体实施方式
下面结合附图及实施例对本发明作进一步描述:
实施例1:
一种基于通用文件系统的高速数据记录方法,结合附图1阐述,数据采集器件与处理器、存储体一起通过本地总线,具体的为pcie总线互连,其中数据采集器件、存储体作为pcie总线端点设备,同时数据采集器件优选为fpga器件。
数据采集器,即fpga器件采集数据后,放入其本地外挂的内存进行缓冲,并通知处理器进行处理,而在处理器在操作系统,优选为linux或vxworks操作系统,启动,驱动加载后,将数据采集器件外挂的内存映射到本地空间中,并将这个空间转换为用户空间,并作为数据缓冲地址供应用程序使用,而在接收到数据采集器件通知后,应用程序就使用这个地址作为写入文件的缓冲区地址,值得注意的是,数据采集器件通知一般通过中断实现。
写入文件时,操作系统下主流文件系统,优选为支持directio特性的文件系统,具体可以为ext4文件系统,并利用其directio特性,直接将数据由缓冲区,即数据采集器件外挂内存,写入到存储体中,而不需要经过文件系统缓冲区。
这个过程中,处理器不需要进行数据搬运工作,只需要控制存储体中存储控制器的启停即可,从而极大降低了处理器负载,使得全速记录时,整个系统功耗极大降低,并且系统记录速度不再受限于处理器能力。
当然,最终记录的数据格式为标准文件系统文件格式,由于采集后的数据由原始缓冲区,即数据采集器件外挂内存,直接写入到存储体中,整个过程实现了数据的零拷贝,并且最终产生的数据文件采用标准文件系统格式,则记录速度可高达6gb/s,并可进一步扩展,即选用更多的存储体,就可以获得更大的数据记录速度。
上述实施方式只为说明本发明的技术构思及特点,其目的在于让熟悉此项技术的人能够了解本发明的内容并据以实施,并不能以此限制本发明的保护范围。凡根据本发明精神实质所做的等效变换或修饰,都应涵盖在本发明的保护范围之内。