一种在Linux下实现数据快速存储的方法

文档序号:6355492阅读:1194来源:国知局
专利名称:一种在Linux下实现数据快速存储的方法
技术领域
本发明涉及的是一种数据存储方法,具体涉及一种在Linux下实现数据快速存储 的方法。
背景技术
随着多核处理器技术的发展,各种不同功能的处理器被越来越多的整合在一个芯 片上。OMAP处理器融合了 DSP核和ARM核,发挥了双核优势,使处理器的性能得到了很大的提尚。同时,随着嵌入式操作系统的不断发展,越来越多的微处理器借助操作系统来实 现更多复杂的功能。其中Linux操作系统凭借众多优势,拓展了应用领域,在嵌入式操作系 统领域占据了重要地位。为了保证操作系统的稳定性和安全性,在Linux操作系统下,需要通过驱动程序 来访问底层硬件,应用程序不能越过驱动程序直接对硬件进行操作。所以,在传统的信号采 集系统中,底层硬件采集到的数据首先被读取到驱动程序里,然后再传送到应用程序里,最 后由应用程序写入到数据缓存文件中。这种层层传递数据的手段,消耗了很多的时间,降低 了采集系统的效率。特别是当被采集信号频率高、数据量大时,这种方法就成了提高整个系 统效率的瓶颈。

发明内容
本发明的目的是提供一种能避免数据在驱动程序和应用程序之间的层层传递,提 高数据的存储速度的在Linux下实现数据快速存储的方法。本发明是这样实现的1、建立数据缓存文件;2、搜索数据缓存文件对应的物理单元地址;3、将待保存数据写入到数据缓存文件对应的物理单元;4、由Linux进行数据缓存文件的转移。本发明的具体步骤如下步骤l,Linux系统挂载tempfs文件系统,在Linux启动后,在tempfs的挂载点下 创建两个数据缓存文件;步骤2,Linux创建数据缓存文件后,将数据缓存文件按4K字节大小分块,并初始 化每个分块的文件标识符和块序号;步骤3,Linux初始化数据缓存文件后,按照文件标识符和块序号,由DSP核搜索缓 存文件所有块的物理存储地址,并将这些地址保存;步骤4,DSP核根据搜索得到的缓存文件的存储地址,将数据直接写入这些存储地 址对应的物理存储单元中,即将数据保存到了缓存文件里;步骤5,当OMAP的DSP核填充满数据缓存文件的所有块时,通知Linux进行该数据缓存文件的转移;步骤6,OMAP的DSP核使用乒乓操作填充两个数据缓存文件;步骤7,Linux接收到DSP核发出的数据缓存文件的转移通知后,调用SHELL命令 中的拷贝操作CP,将文件拷贝到外部的存储器件里,并修改文件名。本的技术特点主要体现在1、本发明所述的方法运行在OMAP处理器上,其中DSP核存储数据,ARM核运行 Linux操作系统进行文件管理。2、DSP核和ARM核共享SDRAM存储区,Linux在该存储区挂载tempfs文件系统。3、由Linux在tempfs文件系统的挂载点下创建数据缓存文件,并初始化。4、Linux建立两个数据缓存文件,实现乒乓存储。5、由DSP核完成对数据缓存文件物理单元地址的搜索,并保存搜索结果。6、由DSP核将待保存数据直接存储到数据缓存文件对应的物理单元里,存完一个 文件后通知Linux进行文件转移。7、建立数据缓存文件和搜索数据缓存文件对应的物理单元地址都只是在开始数 据存储前进行,而且仅操作一次。本发明在OMAP处理器中,由DSP核直接将数据保存到数据缓存文件对应的物理单 元里,从而直接将采集到的数据保存为文件形式,省去了数据在驱动程序和应用程序之间 的复制;对数据缓存文件的建立、初始化、转移都由Linux来完成,发挥了 Linux的文件管理 优势。两者结合,提高了数据的存储速度。


图1示出了数据缓存文件分块的结构,每个分块包括文件标识符、块序号和存储 数据三部分。图2示出了 OMAP的ARM核在数据实时存储过程中的工作流程。图3示出了 OMAP的DSP核在数据实时存储过程中的工作流程。
具体实施例方式下面结合附图和具体实施方式
对本发明作更详细地描述。步骤1、0MAP处理器上电后,ARM核启动Linux,进入过程202,挂载tempfs文件系 统,然后在挂载点下建立两个数据缓存文件(如DataCacheFilej和DataCacheFi le_b)。 DSP核进入过程302,等待搜索地址通知。步骤2、ARM核进入到过程203,将两个缓存文件以4K字节大小分块,按图1所示 初始化所有分块的文件标识符和块序号,然后通知DSP核搜索数据缓存文件在SDRAM上的 存储地址。 步骤3、DSP核接收到搜索地址中断后,就进入到过程303,搜索两个缓存文件的分 块在SDRAM中的存储地址,并将地址进行保存。步骤4、DSP核工作流程进入到过程304,按顺序将数据写入到缓存文件 DataCacheFi le_a 对应的 SDRAM 中;步骤5、每当DSP核将一个分块的SDRAM单元填充满后,工作流程就进入到过程305,判断是否已经填充满DataCacheFilej的所有分块,若不是,则回到过程304,继续填 充下一个分块。步骤6、若DSP核的过程305得到的判断结果是DataCacheFilej已经填充完毕, 则进入到过程306,触发ARM核中断,通知Linux将DataCacheFilej转移到外部存储器。 然后进入到过程307,标志另一个缓存文件DataCacheFilej*当前缓存文件,然后回到过 程304继续运行。步骤7、当ARM核接收到DSP核触发的转移DataCacheFilej的中断后,ARM核工 作流程进入到过程205,调用SHELL指令下的复制指令CP,将DataCacheFilej文件复制到 外部的存储器中,并进行文件名的修改。然后,ARM核工作流程又回到过程204,重新等待 DSP核触发数据缓存文件转移的中断。
权利要求
1.一种在Linux下实现数据快速存储的方法,其特征是(1)建立数据缓存文件;(2)搜索数据缓存文件对应的物理单元地址;(3)将待保存数据写入到数据缓存文件对应的物理单元;(4)由Linux进行数据缓存文件的转移。
2.根据权利要求1所述的一种在Linux下实现数据快速存储的方法,其特征是具体步 骤为步骤1,Linux系统挂载tempfs文件系统,在Linux启动后,在tempfs的挂载点下创建 两个数据缓存文件;步骤2,Linux创建数据缓存文件后,将数据缓存文件按4K字节大小分块,并初始化每 个分块的文件标识符和块序号;步骤3,Linux初始化数据缓存文件后,按照文件标识符和块序号,由DSP核搜索缓存文 件所有块的物理存储地址,并将这些地址保存;步骤4,DSP核根据搜索得到的缓存文件的存储地址,将数据直接写入这些存储地址对 应的物理存储单元中,即将数据保存到了缓存文件里;步骤5,当OMAP的DSP核填充满数据缓存文件的所有块时,通知Linux进行该数据缓存 文件的转移;步骤6,OMAP的DSP核使用乒乓操作填充两个数据缓存文件;步骤7,Linux接收到DSP核发出的数据缓存文件的转移通知后,调用SHELL命令中的 拷贝操作CP,将文件拷贝到外部的存储器件里,并修改文件名。
全文摘要
本发明提供了一种在Linux下实现数据快速存储的方法。(1)建立数据缓存文件;(2)搜索数据缓存文件对应的物理单元地址;(3)将待保存数据写入到数据缓存文件对应的物理单元;(4)由Linux进行数据缓存文件的转移。在OMAP处理器中,由DSP核直接将数据保存到数据缓存文件对应的物理单元里,从而直接将采集到的数据保存为文件形式,省去了数据在驱动程序和应用程序之间的复制;对数据缓存文件的建立、初始化、转移都由Linux来完成,发挥了Linux的文件管理优势。两者结合,提高了数据的存储速度。
文档编号G06F17/30GK102147806SQ20111005232
公开日2011年8月10日 申请日期2011年3月4日 优先权日2011年3月4日
发明者付进, 刘保府, 嵇建飞, 梁国龙, 王燕, 王逸林, 范展, 裘寒青 申请人:哈尔滨工程大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1