一种基于Flash(闪存)的数据下载方法技术

技术编号:12825488 阅读:90 留言:0更新日期:2016-02-07 14:39
本发明专利技术涉及一种基于Flash(闪存)的数据下载方法,其特征在于:所述Flash其中一Block为信息记录区域,其余Block 1~Block N为数据存储区域,信息记录区域的Block分为多个Page,每一Page依次记录数据存储区域中一个Block的数据信息;该下载方法包括以下顺序的步骤:S1、以各Page的信息与其对应的数据存储区域的Block的数据信息是否相同判断是否存在数据断点,如存在数据断点,则丢弃以作为数据断点的数据存储区域的Block的数据,并计算该Block之前的数据存储区域的其他Block的有效数据的和,以前述有效数据的和作为下载起点请求服务器数据;以节约数据下载的时间和网络流量。

【技术实现步骤摘要】

本专利技术涉及一种基于Flash (闪存)的数据下载方法,具体是一种基于非文件系统的闪存、且可实现断点续传的数据下载方法。
技术介绍
断点续传是指以文件的方式存储正在下载的数据,如果下载过程中发生中断,通过已经下载的文件能够计算之后下载数据的长度,然后从断点部分开始下载未完成的部分;籍此节约数据下载的时间和网络流量。Flash(闪存)由于其长寿命的非易失性(在断电情况下仍能保持所存储的数据信息)成为人们日常生活、工作中经常选用的存储器。然而闪存为非智能设备,无法基于文件的方式实现断点续传。因此一旦在数据下载过程中出现掉电,则需重新下载。另外,当前正在兴起的智能穿戴设备需经常从网络中下载文件或者升级数据包,然而这些智能穿戴设备中也有相当部分采用Flash作为存储器,因此也不支持文件系统,在下载数据时只能直接写入到Flash中,下载过程中一旦掉电或关机,则没有很好机制记录已经下载数据的情况,也无法实现断点续传。
技术实现思路
本专利技术要解决的技术问题,是提供一种基于非文件系统的闪存、且可实现断点续传的数据下载方法。本专利技术要解决的技术问题,可以通过以下的技术方案来实现:,其特征在于:所述Flash其中一 Block(块)为信息记录区域,其余Block 1?Block N为数据存储区域,信息记录区域的Block分为多个Page (页),每一Page依次记录数据存储区域中一个Block的数据信息;该下载方法包括以下顺序的步骤:S1、从0开始依次读取信息记载区域的Block中Page的信息(实际为对应的数据存储区域的Block的数据信息)和该Page对应的数据存储区域的Block的数据信息,判断各Page的信息与其对应的数据存储区域的Block的数据信息是否相同;如全部相同,则为首次下载或者存在数据断点但是下载的数据全部有效,执行S2.1 ;如存在不同,则该数据存储区域的Block为数据断点,执行S2.2 ;S2.1、从服务器请求数据,并执行S3 ;S2.2、丢弃以作为数据断点的数据存储区域的Block的数据,并计算该Block之前的数据存储区域的其他Block的有效数据的和,以前述有效数据的和作为下载起点请求服务器数据,并将记录作为数据断点的Block数据信息的Page记录为无效;然后执行S3 ;S3、将下载的数据写入数据存储区域中的Block中,然后判断相应Block是否写满;如否,继续执行S2.1 ;如是,将当前己写满的Block的数据信息写入到信息记录区域中记录该Block数据信息的Page中,并执行S4 ;S4、判断是否已经接受完成所有数据;如否,继续执行S2.1,如是,执行S5 ;S5、结束。本专利技术提供数据下载方法,基于不支持文件系统的Flash的特性:Flash的擦除、读取以Block (块)为单位进行,而非字节,一个Block中包含多个Page (页),典型的如32、64或128个Page等;Flash的写入则以Page为单位,亦非字节,一个Page中存储字节的数据根据型号不同而不同,典型的如512、1024或者2048个字节等;且对于同一个Page,只允许写入一次,如果需再次写入,则需对该Page所在的Block进行擦除;本下载方法选取Flash其中一 Block(块)为信息记录区域,其余Block 1?Block N为数据存储区域,信息记录区域的Block分为多个Page (页),每一 Page依次记录数据存储区域中一个Block的数据信息。如果下载过程中发生断电、重启等中断情况,导致数据失效的可能性包括以下的两种:一种是中断时正在写入存储数据区域的某一个“Block”,那么此数据可能无效?’另一种是中断时正在写入信息记录区域的某一个“Page”,那么此“Page”的记录信息则无效。本方法在传统的下载储存过程中增加了将每个已写满的数据存储区域的Block的数据信息写入到信息记录区域对应的Page中的步骤,以便将这些数据信息用作数据断点标记;当Flash连接网络时,首先从0开始依次判断已被写入到信息记录区域各Page中的数据信息和对应的数据存储区域的Block的数据信息是否相同,如全部相同,则判断首次下载或者存在数据断点但是下载的数据全部有效,如数据存储区域的其中一 Block的数据信息与对应的Page记录的数据信息不同,则判断该Block为数据的断点,并以该Block之前的数据存储区域其他Block的有效数据的和作为断点下载的新下载起点,以节约数据下裁的时间和网络流量。数据存储区域的Block的数据信息可采用多种类型的信息,作为本专利技术的一个实施方式,所述数据存储区域的Block的数据信息包括其校验值:校验值为数据信息的主要有效数据,通过简约的算法即可获得,高效便捷。由于Block的校验值需通过其有效数据长度来计算,因此为进一步简化相关的计算过程,在上述基础上,本专利技术可以作以下的改进,所述数据存储区域的Block的数据信息还包括其有效数据长度。在上述基础上,本专利技术所述步骤S3中下载数据按照下载先后的顺序写入数据存储区域中按照Block 1至Block N排序最靠前的未写满的Block中。在上述基础上,本专利技术还可以作进一步的改进:所述数据存储区域的Block的数据信息还包括待下载文件的总长度和当前Block所处待下载文件的位置;本实施例提供的下裁方法数据的存储无需按照原本数据依次存储,即存储顺序可以随意,较之仅采用当前Block的校验值或者同时采用Block的校验值和有效数据长度作为断点信息的实施例具有更高的灵活性。本专利技术所述Flash 为 Nor Flash 或者 Nand Flash。【附图说明】图1是本专利技术的Flash的信息记录区域中各Page与数据存储区域的各Block的对应关系原理图;图2是闪存连续存储数据的流程图;图3是本专利技术的判断闪存存储断点的流程图。【具体实施方式】实施例1本专利技术提供的一种基于Flash (闪存)的数据下载方法,Flash为Nor Flash或者Nand Flash,基于Flash的特点(Flash的擦除、读取以Block(块)为单位进行,而非字节,一个Block中包含多个Page (页),典型的如32、64或128个Page等:Flash的写入则以Page为单位,亦非字节,一个Page中存储字节的数据根据型号不同而不同,典型的如512、1024或者2048个字节等),预设置Flash其中一 Block (块)为信息记录区域,其余Block1?BlockN为数据存储区域,信息记录区域的Block分为多个Page (页),每一 Page依次记录数据存储区域中一个Block的校验值和有效数据长度,如图1所示。当Flash连接服务器时,本下载方法执行以下顺序的步骡:S1、如图3所示,从0开始依次读取信息记载区域的Block中Page的信息(实际为对应的数据存储区域的Block的校验值)和该Page对应的数据存储区域的Block的有效数据长度,并计算出该Block的校验值,判断相应Page的信息与其对应Block的数据的校验值是否相同;如全部相同,则为首次下载或者存在数据断点但是下载的数据全部有效,执行S2.当前第1页1 2 本文档来自技高网...

【技术保护点】
一种基于Flash(闪存)的数据下载方法,其特征在于:所述Flash其中一Block(块)为信息记录区域,其余Block 1~Block N为数据存储区域,信息记录区域的Block分为多个Page(页),每一Page依次记录数据存储区域中一个Block的数据信息;该下载方法包括以下顺序的步骤:S1、从0开始依次读取信息记载区域的Block中Page的信息和该Page对应的数据存储区域的Block的数据信息,判断各Page的信息与其对应的数据存储区域的Block的数据信息是否相同;如全部相同,则为首次下载或者存在数据断点但是下载的数据全部有效,执行S2.1;如存在不同,则该数据存储区域的Block为数据断点,执行S2.2;S2.1、从服务器请求数据,并执行S3;S2.2、丢弃以作为数据断点的数据存储区域的Block的数据,并计算该Block之前的数据存储区域的其他Block的有效数据的和,以前述有效数据的和作为下载起点请求服务器数据,并将记录作为数据断点的Block数据信息的Page记录为无效;然后执行S3;S3、将下载的数据写入数据存储区域中的Block中,然后判断相应Block是否写满;如否,继续执行S2.1:如是,将当前己写满的Block的数据信息写入到信息记录区域中记录该Block数据信息的Page中,并执行S4;S4、判断是否己经接受完成所有数据:如否,继续执行S2.1,如是,执行S5;S5、结束。...

【技术特征摘要】

【专利技术属性】
技术研发人员:温长会
申请(专利权)人:红石阳光北京科技有限公司
类型:发明
国别省市:北京;11

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

1