CN105306569B - 一种基于Flash(闪存)的数据下载方法 - Google Patents
一种基于Flash(闪存)的数据下载方法 Download PDFInfo
- Publication number
- CN105306569B CN105306569B CN201510701036.7A CN201510701036A CN105306569B CN 105306569 B CN105306569 B CN 105306569B CN 201510701036 A CN201510701036 A CN 201510701036A CN 105306569 B CN105306569 B CN 105306569B
- Authority
- CN
- China
- Prior art keywords
- data
- block
- storage areas
- page
- information
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/06—Protocols specially adapted for file transfer, e.g. file transfer protocol [FTP]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/18—File system types
- G06F16/1847—File system types specifically adapted to static storage, e.g. adapted to flash memory or SSD
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Information Transfer Between Computers (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明涉及一种基于Flash(闪存)的数据下载方法,其特征在于:所述Flash其中一Block为信息记录区域,其余Block 1~Block N为数据存储区域,信息记录区域的Block分为多个Page,每一Page依次记录数据存储区域中一个Block的数据信息;该下载方法包括以下顺序的步骤:S1、以各Page的信息与其对应的数据存储区域的Block的数据信息是否相同判断是否存在数据断点,如存在数据断点,则丢弃以作为数据断点的数据存储区域的Block的数据,并计算该Block之前的数据存储区域的其他Block的有效数据的和,以前述有效数据的和作为下载起点请求服务器数据;以节约数据下载的时间和网络流量。
Description
技术领域
本发明涉及一种基于Flash(闪存)的数据下载方法,具体是一种基于非文件***的闪存、且可实现断点续传的数据下载方法。
背景技术
断点续传是指以文件的方式存储正在下载的数据,如果下载过程中发生中断,通过已经下载的文件能够计算之后下载数据的长度,然后从断点部分开始下载未完成的部分;籍此节约数据下载的时间和网络流量。
Flash(闪存)由于其长寿命的非易失性(在断电情况下仍能保持所存储的数据信息)成为人们日常生活、工作中经常选用的存储器。然而闪存为非智能设备,无法基于文件的方式实现断点续传。因此一旦在数据下载过程中出现掉电,则需重新下载。
另外,当前正在兴起的智能穿戴设备需经常从网络中下载文件或者升级数据包,然而这些智能穿戴设备中也有相当部分采用Flash作为存储器,因此也不支持文件***,在下载数据时只能直接写入到Flash中,下载过程中一旦掉电或关机,则没有很好机制记录已经下载数据的情况,也无法实现断点续传。
发明内容
本发明要解决的技术问题,是提供一种基于非文件***的闪存、且可实现断点续传的数据下载方法。
本发明要解决的技术问题,可以通过以下的技术方案来实现:一种基于Flash(闪存)的数据下载方法,其特征在于:所述Flash其中一Block(块)为信息记录区域,其余Blockl~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(块)为信息记录区域,其余Block 1~BlockN为数据存储区域,信息记录区域的Block分为多个Page(页),每一Page依次记录数据存储区域中一个Block的校验值和有效数据长度,如图1所示。
当Flash连接服务器时,本下载方法执行以下顺序的步骡:
S1、如图3所示,从0开始依次读取信息记载区域的Block中Page的信息(实际为对应的数据存储区域的Block的校验值)和该Page对应的数据存储区域的Block的有效数据长度,并计算出该Block的校验值,判断相应Page的信息与其对应Block的数据的校验值是否相同;如全部相同,则为首次下载或者存在数据断点但是下载的数据全部有效,执行S2.1;如存在不同,则该数据存储区域的Block为数据断点,执行S2.2;
S2.1、从服务器请求数据,并执行S3;
S2.2、丢弃以作为数据断点的数据存储区域的Block的数据,并计算该Block之前的数据存储区域的其他Block的有效数据的和,以前述有效数据的和作为下载起点请求服务器数据,并将记录作为数据断点的Block数据信息的Page记录为无效;然后执行S3;
S3、将下载的数据写入数据存储区域中按照Block1至BlockN排序最靠前的未写满的Block中,然后判断相应Block是否写满;如否,继续执行S2.1;如是,计算当前已写满的Block的校验值,并将该Block的校验值和有效数据长度写入到信息记录区域中记录该Block校验值的Page中,并执行S4,如图2所示;
S4、判断是否已经接受完成所有数据;如否,继续执行S2.1,如是,执行S5;
S5、结束。
本下载方法采用数据存储区域的Block的校验值和有效数据长度作为断点信息写入到信息记录区域的Block中对应的Page内。如果断电时正在写入存储数据区域的某一个“Block”,那么此数据可能无效,信息记录区域的某一个“Page”,那么此“Page”的记录信息则无效,上述的两种数据失效的情形均可通过判断相应Page的信息与其对应Block的数据的校验值是否相同来Flash连接服务器时是首次下载还是断点下载,最终实现断点续传,以节约数据下载的时间和网络流量。
实施例2
本发明提供的另一种基于Flash(闪存)的数据下载方法,其与实施例1的区别在于:用作信息记录区域的Block(块)的每一Page依次记录数据存储区域中一个Block的校验值、有效数据长度、待下载文件的总长度和该Block所处待下载文件的位置。
当Flash连接服务器时,本下裁方法执行以下顺序的步骤:
S1、从0开始依次读取信息记载区域的Block中Page的信息(实际为对应的数据存储区域的Block的校验值)和该Page对应的数据存储区域的Block的有效数据长度,并计算出该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的校验值、有效数据长度、待下载文件的总长度和该Block所处待下载文件的位置写入到信息记录区域中记录该Block校验值的Page中,并执行S4;
S4、判断是否已经接受完成所有数据;如否,继续执行S2.1,如是,执行S5;
S5、结束。
本实施例增加的下载文件的总长度和当前Block所处下载文件的位置,可实现多线程下载,每个线程负责下载文件的一段,比如线程1负责下载从0~1024,线程2负责下载1025~2048,线程3负责下载2048之后的。先下载完成先写入,比如线程2先下载完成一块(比如从1024~1536),写入第一个block,并标记这个block的起始位置、大小、校验值、文件总长;线程1下载完成从0~512,也写入并标记;以此类推;如果断电发生,遍历这些记录信息,即可知曾经下载过的所有的文件的情况,把缺失的部分分线程继续下载完成即可。本实施例使得下载的数据的存储无需按照原本数据依次存储,即存储顺序可以随意,较之实施例1仅采用当前Block的校验值或者同时采用Block的校验值和有效数据长度作为断点信息的实施例具有更高的灵活性。
Claims (4)
1.一种基于Flash(闪存)的数据下载方法,其特征在于:所述Flash其中一Block(块)为信息记录区域,其余Block1~BlockN为数据存储区域,信息记录区域的Block分为多个Page(页),每一Page依次记录数据存储区域中一个Block的数据信息;所述数据存储区域的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、结束。
2.根据权利要求1所述的数据下载方法,其特征在于:所述S3中下载数据按照下载先后的顺序写入数据存储区域中按照Block1至BlockN排序最靠前的未写满的Block中。
3.根据权利要求1所述的数据下载方法,其特征在于:所述数据存储区域的Block的数据信息还包括待下载文件的总长度和当前Block所处待下载文件的位置。
4.根据权利要求1~3任一项所述的数据下载方法,其特征在于:所述Flash为NorFlash或者NandFlash。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510701036.7A CN105306569B (zh) | 2015-10-20 | 2015-10-20 | 一种基于Flash(闪存)的数据下载方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510701036.7A CN105306569B (zh) | 2015-10-20 | 2015-10-20 | 一种基于Flash(闪存)的数据下载方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105306569A CN105306569A (zh) | 2016-02-03 |
CN105306569B true CN105306569B (zh) | 2018-07-17 |
Family
ID=55203312
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510701036.7A Active CN105306569B (zh) | 2015-10-20 | 2015-10-20 | 一种基于Flash(闪存)的数据下载方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105306569B (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5832493A (en) * | 1997-04-24 | 1998-11-03 | Trimble Navigation Limited | Flash file management system |
CN102543193A (zh) * | 2011-12-31 | 2012-07-04 | 深圳创维数字技术股份有限公司 | 一种闪存烧录方法、烧录设备及烧录*** |
CN103577121A (zh) * | 2013-11-05 | 2014-02-12 | 中船重工(武汉)凌久电子有限责任公司 | 一种基于nand flash的高可靠线性文件存取方法 |
CN104391804A (zh) * | 2014-10-28 | 2015-03-04 | 陕西千山航空电子有限责任公司 | 一种nand flash数据存储方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI439859B (zh) * | 2009-11-30 | 2014-06-01 | Silicon Motion Inc | 資料儲存裝置及其資料管理方法 |
-
2015
- 2015-10-20 CN CN201510701036.7A patent/CN105306569B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5832493A (en) * | 1997-04-24 | 1998-11-03 | Trimble Navigation Limited | Flash file management system |
CN102543193A (zh) * | 2011-12-31 | 2012-07-04 | 深圳创维数字技术股份有限公司 | 一种闪存烧录方法、烧录设备及烧录*** |
CN103577121A (zh) * | 2013-11-05 | 2014-02-12 | 中船重工(武汉)凌久电子有限责任公司 | 一种基于nand flash的高可靠线性文件存取方法 |
CN104391804A (zh) * | 2014-10-28 | 2015-03-04 | 陕西千山航空电子有限责任公司 | 一种nand flash数据存储方法 |
Also Published As
Publication number | Publication date |
---|---|
CN105306569A (zh) | 2016-02-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111124277B (zh) | 一种深度学习数据集缓存方法、***、终端及存储介质 | |
CN106339222B (zh) | 一种服务实现方法及装置 | |
CN107329741A (zh) | 一种基于指纹识别的软件分布式升级方法与装置 | |
US20170206079A1 (en) | Method and Device for Upgrading Software | |
CN112000355B (zh) | 用于固件升级的方法及装置、家电设备 | |
CN105187564B (zh) | 一种手机端文件断点续传的方法 | |
FI126228B (fi) | Menetelmä ja tallennuspalvelin tiedon varmentamiseen | |
CN107465630A (zh) | 一种带宽流量监管方法及*** | |
CN109271098A (zh) | 一种数据迁移方法及装置 | |
CN109739933A (zh) | 存储空间释放方法、装置、终端及计算机可读存储介质 | |
CN104750620B (zh) | 一种内存迁移方法及装置 | |
CN110018996A (zh) | 一种分布式存储***的快照回滚方法及相关装置 | |
CN109992219A (zh) | 分布式存储方法、装置、设备及计算机可读存储介质 | |
CN107153571A (zh) | 一种虚拟化管理节点的部署方法及装置 | |
CN113326165B (zh) | 基于区块链的数据处理方法、设备及计算机可读存储介质 | |
CN109005226A (zh) | 服务器中传感器数据的获取方法、获取***和相关装置 | |
CN107678918A (zh) | 一种分布式文件***的osd心跳机制设置方法及装置 | |
CN109697109A (zh) | 一种区分识别冲突虚拟机的方法、***、装置及存储介质 | |
CN103327036B (zh) | 互联网浏览设备的标识方法以及Cookie服务器 | |
CN106203179B (zh) | 一种对文件的完整性校验***及方法 | |
CN108958891A (zh) | 一种虚拟机内存分配方法、装置及终端 | |
CN110069386A (zh) | 一种运算终端数据处理方法、运算终端、***及介质 | |
CN105306569B (zh) | 一种基于Flash(闪存)的数据下载方法 | |
CN109165712A (zh) | 分布式分期号的生成方法、装置和计算机存储介质 | |
CN109213701A (zh) | 共享io板的外设的控制方法、***、设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
CB02 | Change of applicant information |
Address after: 100000 Beijing City, Haidian District Huayuan Road Xiaoguan Street No. 120 B District three floor of Executive Hotel Wansheng Applicant after: Redstone sunshine (Beijing) Polytron Technologies Inc Address before: 100000 Beijing City, Haidian District Huayuan Road Xiaoguan Street No. 120 B District three floor of Executive Hotel Wansheng Applicant before: REDSTONE SUNSHINE (BEIJING) TECHNOLOGY CO., LTD. |
|
COR | Change of bibliographic data | ||
GR01 | Patent grant | ||
GR01 | Patent grant |