CN113721847A - 一种基于扇区的数据写入方法及相关设备 - Google Patents

一种基于扇区的数据写入方法及相关设备 Download PDF

Info

Publication number
CN113721847A
CN113721847A CN202110949193.5A CN202110949193A CN113721847A CN 113721847 A CN113721847 A CN 113721847A CN 202110949193 A CN202110949193 A CN 202110949193A CN 113721847 A CN113721847 A CN 113721847A
Authority
CN
China
Prior art keywords
data
sector
written
writing
initial
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.)
Pending
Application number
CN202110949193.5A
Other languages
English (en)
Inventor
冉亚林
廖石波
谢春华
陈立群
邓晓君
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shenzhen Jingquanhua Intelligent Electric Co ltd
Original Assignee
Shenzhen Jingquanhua Intelligent Electric Co ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Shenzhen Jingquanhua Intelligent Electric Co ltd filed Critical Shenzhen Jingquanhua Intelligent Electric Co ltd
Priority to CN202110949193.5A priority Critical patent/CN113721847A/zh
Publication of CN113721847A publication Critical patent/CN113721847A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/0644Management of space entities, e.g. partitions, extents, pools
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Signal Processing For Digital Recording And Reproducing (AREA)

Abstract

本发明公开了一种基于扇区的数据写入方法及相关设备,方法包括获取待写入数据,其中,待写入数据包括数据尾;根据待写入数据,确定与待写入数据对应的写入扇区;以写入扇区的最后一个字节为起点,对写入扇区的最后一列进行遍历,直至遍历到的字节的数值与数据尾相同或遍历的次数与写入扇区的列数相等;当遍历到的字节的数值与数据尾相同时,确定该字节的下一列为写入列;以及,当遍历的次数与写入扇区的列数相等且最后遍历到的字节的数值与数据尾不同时,确定写入扇区的第一列为写入列;以写入列的第一个字节为起点,依次将待写入数据写入写入列。本发明通过将写入方式有以行为单位进行写入转换为以列的形式进行写入,提高了数据写入的速率。

Description

一种基于扇区的数据写入方法及相关设备
技术领域
本发明涉及数据存储技术领域,特别涉及一种基于扇区的数据写入方 法及相关设备。
背景技术
FLASH是一种程序存储器,其空间大,在掉电的情况下也能保存数据而 不丢失。其具有安全、快速、体积小、容量大、成本低的特点。在读写上, 其读写寿命达到10万次。磁盘在每次写入数据时,是基于磁盘进行数据存 储的。扇区是磁盘的存储数据的基本单位。为了提升FLASH的扇区寿命, FLASH扇区采用以空间换寿命的形式进行数据存储。以一个扇区大小为128 字节,每次存储的数据的字节数为14个字节为例,每一次存储数据时,每 一个被存储的数据的组成为:数据头(0xaa)+14个用户数据+数据尾(0x55), 共16个字节。可将一个扇区理解为128个方格的表格,该表格16行8列, 每次存储一个数据都占用两行,而空白区域用零进行填充。每一次存储, 不再是将原有数据擦除再重新写入,而是直接再原有的存储数据的后面直 接写入,因此,再存储了8组数据后,表格中的每一个方格都只被写入一 次,因此寿命延长了8倍。当写了80万组数据时,按照以往每一次写入都 要将整个扇区擦除在写入的方式,需要擦除写如80万次,而采用以空间换 寿命的形式,每个方格实际写入次数仅10万次,极大地提高了寿命。
但是这种方式有一个关键问题,在写入新的数据时,如何快速定位该 数据所在位置。以往的擦除写入方式,由于以往的数据都被擦除,因此, 只要从扇区的第一个位置写入即刻,但对以空间换寿命的方式,扇区的第 一个位置已经被填入了数据,无法直接写入。现有确定新的数据写入的位 置的方式主要通过遍历读取实现。即从扇区的最后一个位置往前进行读取, 判断是否为零,直至得到方格的数据不为零,以非零位置的下一个位置作 为新数据写入的起点。这种方式耗时较久,效率低下,尤其是对于大容量 的扇区,例如现在流行的4k扇区,会严重影响到数据存储的速率。
发明内容
本发明要解决的技术问题在于对扇区进行数据写入速率较慢,针对现 有技术的不足,提供一种基于扇区的数据写入方法。
为了解决上述技术问题,本发明所采用的技术方案如下:
一种基于扇区的数据写入方法,所述方法包括:
获取待写入数据,其中,所述待写入数据包括数据尾;
根据所述待写入数据,确定行数与所述待写入数据的数据长度相等的 写入扇区为目的扇区;
以所述目的扇区的最后一个字节为起点,对所述目的扇区的最后一列 进行遍历,直至遍历到的字节的数值与所述数据尾相同或遍历的次数与所 述目的扇区的列数相等;
当遍历到的字节的数值与所述数据尾相同时,确定该字节的下一列为 写入列;以及,
当遍历的次数与所述目的扇区的列数相等且最后遍历到的字节的数值 与所述数据尾不同时,确定所述目的扇区的第一列为写入列;
以所述写入列的第一个字节为起点,依次将所述待写入数据写入所述 写入列。
所述基于扇区的数据写入方法,其中,所述获取待写入数据之前,还 包括:
获取初始数据;
对所述初始数据进行预处理,得到包含数据尾的待写入数据。
所述基于扇区的数据写入方法,其中,所述初始数据包括固定数据; 所述对所述初始数据进行预处理,得到包含数据尾的待写入数据包括:
将预设的数据头添加至所述初始数据的头部,以及将预设的数据尾添 加至所述初始数据的尾部,得到所述待写入数据。
所述基于扇区的数据写入方法,其中,所述初始数据包括可变数据; 所述对所述初始数据进行预处理,得到包含数据尾的待写入数据包括:
根据预设的写入长度,对所述初始数据进行零填充,得到数据长度与 所述写入数据相等的中间数据;
将预设的数据头添加至所述中间数据的头部,以及将预设的数据尾添 加至所述中间数据的尾部,得到所述待写入数据。
所述基于扇区的数据写入方法,其中,所述初始数据包括可变数据; 所述对所述初始数据进行预处理,得到包含数据尾的待写入数据包括:
将预设的数据头与所述初始数据的初始长度进行拼接,得到数据标签;
将所述数据标签添加至所述初始数据的头部,以及将预设的数据尾添 加至所述初始数据的尾部,得到所述待写入数据。
所述基于扇区的数据写入方法,其中,所述写入扇区为确定了行数以 及列数的初始扇区;所述根据所述待写入数据,确定行数与所述待写入数 据的数据长度相等的写入扇区为目的扇区之前,包括:
获取写入长度;
将所述写入长度作为预设的初始扇区对应的列数;
根据所述初始扇区的大小以及所述列数,计算所述初始扇区对应的行 数,得到写入扇区。
所述基于扇区的数据写入方法,其中,所述根据所述待写入数据,确 定行数与所述待写入数据的数据长度相等的写入扇区为目的扇区,包括:
根据所述待写入数据的数据长度以及预设的长度索引表,判断是否与 所述待写入数据对应的目的扇区;
若不存在,则将所述数据长度作为写入长度,确定与所述待写入数据 对应的初始扇区的行数以及列数,得到与所述待写入数据对应的目的扇区, 并将所述目的扇区的扇区信息写入所述长度索引表;
将所述写入扇区作为所述待写入数据对应的目的扇区。
一种基于扇区的数据写入装置,其中,具体包括。
获取模块,用于获取待写入数据,其中,所述待写入数据包括数据尾;
第一确定模块,用于根据所述待写入数据,确定行数与所述待写入数 据的数据长度相等的写入扇区为目的扇区;
遍历模块,用于以所述目的扇区的最后一个字节为起点,对所述目的 扇区的最后一列进行遍历,直至遍历到的字节的数值与所述数据尾相同或 遍历的次数与所述目的扇区的列数相等;
第二确定模块,用于当遍历到的字节的数值与所述数据尾相同时,确 定该字节的下一列为写入列;以及,当遍历的次数与所述目的扇区的列数 相等且最后遍历到的字节的数值与所述数据尾不同时,确定所述目的扇区 的第一列为写入列;
写入模块,用于以所述写入列的第一个字节为起点,依次将所述待写 入数据写入所述写入列。
一种计算机可读存储介质,所述计算机可读存储介质存储有一个或者 多个程序,所述一个或者多个程序可被一个或者多个处理器执行,以实现 如上任一所述的基于扇区的数据写入方法中的步骤。
一种终端设备,其包括:处理器、存储器及通信总线;所述存储器上存 储有可被所述处理器执行的计算机可读程序;
所述通信总线实现处理器和存储器之间的连接通信;
所述处理器执行所述计算机可读程序时实现如上任一所述的基于扇区 的数据写入方法中的步骤。
有益效果:与现有技术相比,本发明提供了一种基于扇区的数据写入 方法及相关设备,所述方法转矩阵滚动存储方法,将原有的以行为单位进 行数据写入存储的方式变更为以列的为单位进行数据存储。预先设定要写 入的扇区的行数以及列数,然后在写入之前,通过对写入扇区的最后一行 进行遍历,并对每一次遍历的字节与待写入数据尾部的数据尾进行比较。 若存在相同,则将遍历该字节之前的一列为写入列。若直至遍历到最后一行的第一个字节都不存在相同,则将第一列作为写入列。最后以列的形式 将待写入数据写入。因此在写入新的数据时,只要读取最后一列的数值即 可判断是否存储有数据,并不需要像以往对以行为单位进行倒序遍历,提 高了确定数据写入的起点的速率。
附图说明
图1为传统的对扇区写入数据的示意图。
图2为本发明提供的基于扇区的数据写入方法的流程图。
图3为本发明提供的基于扇区的数据写入方法的扇区示意图。
图4为本发明提供的基于扇区的数据写入装置的结构示意图。
图5为本发明提供的终端设备的结构原理图。
具体实施方式
本发明提供一种基于扇区的数据写入方法及相关设备,为使本发明的 目的、技术方案及效果更加清楚、明确,以下参照附图并举实施例对本发 明进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发 明,并不用于限定本发明。
本技术领域技术人员可以理解,除非特意声明,这里使用的单数形式 “一”、“一个”、“所述”和“该”也可包括复数形式。应该进一步理 解的是,本发明的说明书中使用的措辞“包括”是指存在所述特征、整数、 步骤、操作、元件和/或组件,但是并不排除存在或添加一个或多个其他特 征、整数、步骤、操作、元件、组件和/或它们的组。应该理解,当我们称元件被“连接”或“耦接”到另一元件时,它可以直接连接或耦接到其他 元件,或者也可以存在中间元件。此外,这里使用的“连接”或“耦接” 可以包括无线连接或无线耦接。这里使用的措辞“和/或”包括一个或更多 个相关联的列出项的全部或任一单元和全部组合。
本技术领域技术人员可以理解,除非另外定义,这里使用的所有术语 (包括技术术语和科学术语),具有与本发明所属领域中的普通技术人员的 一般理解相同的意义。还应该理解的是,诸如通用字典中定义的那些术语, 应该被理解为具有与现有技术的上下文中的意义一致的意义,并且除非像 这里一样被特定定义,否则不会用理想化或过于正式的含义来解释。
举例说明,本发明实施例可以应用到将数据写入单片机的FLASH扇区, 也可应用到其他的磁盘扇区中。如图1所示,现有方案一般以行为单位进 行数据的写入,其中,图中相同灰度值背景的列为一次写入的数据,“0xaa” 表示数据头,“0x55”表示数据尾,“x”表示写入的数据,而零用于填充。 本方案主要是采用转矩阵滚动存储方法,将原有的以行为单位进行数据写 入存储的方式变更为以列的为单位进行数据存储。预先设定要写入的扇区的行数以及列数,然后将待写入数据,以列的形式存储至该扇区中,在后 续要写入新的数据时,只要读取最后一列的数值即可判断是否存储有数据, 并不需要像以往对以行为单位进行倒序遍历,提高了确定数据写入的起点 的速率。
下面结合附图,通过对实施例的描述,对发明内容作进一步说明。
如图2所示,本实施提供了一种基于扇区的数据写入方法,所述方法 可由数据写入程序执行,该方法可以包括以下步骤:
S10、获取待写入数据。
具体地,将待写入到磁盘扇区的数据命名为待写入数据。本实施例中, 待写入数据可以是单片机在执行过程中的执行参数等数据。待写入数据包 括数据尾,数据尾即用于对待写入数据已经终止的情形进行标记的端部数 据。一般位于待写入数据的尾部。图3中采用的数据尾是“0x55”。
待写入数据的数据尾是有传递给数据写入程序之前的程序执行,也可 以由数据写入程序自己执行。将还未添加数据尾的数据成为初始数据。数 据写入程序先获得不含数据尾的初始程序,然后对初始数据进行预处理。 预处理过程至少包括将数据尾添加至初始数据的尾部,得到包含数据尾的 待写入数据。
为了保证待写入数据在写入过程中的保真性,即不存在数据丢失 的情形,本实施例的第一种预处理方式中,对初始数据的预处理过程 还包括添加数据头,数据头是指添加在初始数据之前,用于标识后续 接有数据的头部,图3中采用的数据头为“0xaa”。数据头以及数据 尾除了起到初始数据的起点以及终点的标识作用外,还能够保护数据 在写入过程中检验是否存在丢失。因此对初始数据预处理过程包括: 将预设的数据头添加至所述初始数据的头部,以及将预设的数据尾添 加至所述初始数据的尾部。通过这一处理过程,可得到待写入数据。 由于数据头以及数据尾是预设的,因此添加的数据头以及数据尾的长 度也是固定的。当初始数据为固定数据,即所有的初始数据的长度一 致时,这种方式不会影响到后续本实施例采用的转矩阵滚动存储方法。
但是当初始数据为可变数据,即数据长度会发生改变的数据,例如指 针变量(char)一般为4个字节,而短整型变量(short int)的长度一般 为2个字节。若直接将数据头以及数据尾添加至初是数据的两端,则待写 入数据的长度是不一致的。在这种情形下采用转矩阵滚动存储,即便某一 行写入了数据,也无法通过最后一列的遍历确定。因此,针对这种情形, 本实施例在预处理阶段,还有另外两种预处理方式。
在第二种预处理方式中,先根据预先用于确定写入扇区的列数的长度, 即写入长度,对初始数据进行填充,得到数据长度与所述写入数据相等的 中间数据。写入长度的获取与确定在后文会进行详细描述,故在此不再描 述。对初始数据进行填充的常用方式是用数值零,考虑后续读取数据时是 按照行的顺序进行读取,本实施例中,零填充的位置为初始数据的尾部。 然后在将数据头添加至所述中间数据的头部,以及将数据尾添加至所述中间数据的尾部,得到所述待写入数据。
在第三种预处理方式中,获得初始数据后,确定初始数据的长度为初 始数据的初始长度。然后将数据头与初始长度进行拼接,得到用于标识数 据起始以及数据长度的数据标签。然后再将数据标签作为一个整体,添加 至初始数据的头部,并将数据尾添加至所述初始数据的尾部,得到所述待 写入数据。
S20、根据所述待写入数据,确定行数与所述待写入数据的数据长度相 等的写入扇区为目的扇区。
具体地,磁盘中有若干个扇区,得到待写入数据后,先确定待写入数 据对应的写入扇区。
在确定写入扇区之前,需要确定扇区的行数以及列数。本实施例将还 未确定行数和列数的扇区命名为初始扇区,而写入扇区即为确定了行数以 及列数的初始扇区。确定初始扇区的行数与列数的方式为:
A10、获取写入长度。
具体地,写入长度是指待写入数据的数据长度。用户可根据待写入数 据的类型,确定写入长度。针对单片机,由于初始数据的数据类型较为单 一,因此,对于固定数据,写入长度是固定的。而对于第二种预处理方式 得到的待写入数据,预先根据初始数据的类型,确定初始数据中最长的数 据长度值。然后对最长的数据长度值、数据头的长度值以及数据尾的长度 值之和,得到写入长度。
但是对于待写入数据长度不一致的情形,如上文描述的采用第三种预 处理方式得到的待写入数据,由于待写入数据的数据长度不一致,写入长 度为每一次写入空白扇区的待写入数据的长度,其中,空白扇区为还未写 入数据的扇区。
A20、将所述写入长度作为预设的初始扇区对应的行数。
具体地,将所述写入长度作为预设的初始扇区对应的行数,例如,写 入长度为16字节,则初始扇区的行数为16。
A30、根据所述初始扇区的大小以及所述行数,计算所述初始扇区对应 的列数,得到写入扇区。
具体地,由于矩阵的大小不能超过初始扇区本身的大小,因此,将初 始扇区的大小作为被除数,将行数作为除数,计算初始扇区的列数。例如, 初始扇区的大小为128字节,则初始扇区对应的列数为8。确定了行数以及 列数的初始扇区作为可以进行数据写入的写入扇区。
值得注意的是,上述的数据头以及数据尾的数值可根据数据类型等进 行自由设定。
在确定了初始扇区的行数与列数后,得到了写入扇区。对于固定数据 这一类型的初始数据,由于所有的写入扇区的行数以及列数是相同的,因 此写入扇区中的目的扇区是通过初始数据的目的或用户设定的写入地址进 行确定。
针对第二种预处理方式得到的待写入数据,由于第二种处理方式得到 的待写入数据的数据长度是固定的,因此,确定其对应的目的扇区的方式 与固定数据相同。
针对第三种预处理方式得到的待写入数据,预先建立一个长度索引表, 该长度索引表中记录了已经确定了行数以及列数的写入扇区。
例如,当第一次获取待写入数据时,先将待写入数据的数据长度与预 设的长度索引表进行比较,判断是否与所述待写入数据对应的写入扇区, 与写入数据对应的写入扇区就是指行数与所述待写入数据的数据长度相等 的写入扇区。由于是第一次获取待写入数据,还未创建过写入扇区,因此, 长度索引表中还不存写入扇区的信息,因此不存在目的扇区。先根据前文 确定固定长度的待写入数据相同的方式,确定待写入数据对应的初始扇区。 然后将待写入数据的数据长度作为写入数据,确定初始扇区对应的列数, 并根据初始扇区的大小以及列数,计算初始扇区对应的行数,得到写入扇 区,这种写入扇区就是待写入数据的目的扇区。
然后将待写入数据存储至目的扇区中,同时,将目的扇区的扇区信息 写入到长度索引表中,目的扇区的扇区信息包括写入扇区的地址以及写入 数据的行数。由于这时候的目的扇区并不一定是下一个待写入数据的目的 扇区,因此,可将其作为写入扇区的写入信息。
当第二次获得待写入数据时,若第二次获得的待写入数据的数据长度 与第一次获得的待写入数据长度相同,则根据长度索引表,针对第二次获 得的待写入数据,可确定与其对应的写入扇区,直接将待写入数据写入对 应的写入扇区中。
本实施例提供了三种确定写入扇区的方式以及与其对应的预处理方式, 用户可根据数据的特性,进行选择或对这三种方式进行选择性融合。
S30、以所述目的扇区的最后一个字节为起点,对所述目的扇区的最后 一列进行遍历,直至遍历到的字节的数值与所述数据尾相同或遍历的次数 与所述目的扇区的列数相等。
由于对于扇区的遍历是以扇区的矩阵的最后一个字节为起点开始,遍 历最后一行,再以上一行的最后一个字节为起点,遍历倒数第二行,以此 顺序往复,直至遍历至矩阵的第一个字节,或者遍历到的字节的数值与数 据尾相同。
因此,本实施例不改变对扇区的遍历方式,如图3所示中的箭头所示, 仍然以最后一个字节为起点,对目的扇区的最后一列进行遍历,图中的圈 所包围的即为遍历的最后一列。本方案仅需要遍历最后一列,直至遍历的 次数与写入扇区的列数相等,或者遍历到的字节的数值与数据尾相同,才 结束遍历。
S40a、当遍历到的字节的数值与所述数据尾相同时,确定遍历该字节 之前的一列为写入列。
具体地,当遍历到的字节的数值与数据尾相同,则说明该字节所在的 一列已经写入了数据,需要重新写入的待写入数据应当写入在遍历该字节 之前的那一列作为写入列。
S40b、当遍历的次数与所述目的扇区的列数相等且最后遍历到的字节 的数值与所述数据尾不同时,确定所述目的扇区的第一列为写入列。
具体地,当遍历的次数与写入扇区的列数相等,则说明写入扇区的第 二列为未写入数据的列。值得注意的是,这里的未写入是指未写入可用的 数据,也可能是被零填充。若最后遍历到的字节,也就是第一列的字节, 与数据尾相同,则说明第一列被写入了数据,因此采用如前文描述的,确 定该字节的下一列,也就是第二列作为写入列。若最后遍历的字节与数据 尾不同,则说明第一列并未被写入数据,因此将第一列作为写入列。
S50、以所述写入列的第一个字节为起点,依次将所述待写入数据写入 所述写入列。
具体地,以所述写入列的第一个字节为起点,将待写入数据写入所述 写入列。写入过程是根据待写入数据中各个字节的排列进行依次写入。例 如扇区矩阵的大小为M xN,其中,M为行数,N为列数,而待写入数据可 用数列表示,如(n1,n2,…,nM),其中,n1~M表示待写入数据中的每一个 字节的数字。若写入列为扇区矩阵的第i列,则写入后的待写入数据的各 个字节的坐标可表示为(i,1),(i,2),…,(i,M),其中,i为小 于或等于N的正整数。
基于上述基于扇区的数据写入方法,本实施例提供了一种基于扇区的 数据写入装置,其中,所述基于扇区的数据写入装置100包括:
获取模块110,用于获取待写入数据,其中,所述待写入数据包括数据 尾;
第一确定120模块,用于根据所述待写入数据,确定行数与所述待写 入数据的数据长度相等的写入扇区为目的扇区;
遍历模块130,用于以所述目的扇区的最后一个字节为起点,对所述目 的扇区的最后一列进行遍历,直至遍历到的字节的数值与所述数据尾相同 或遍历的次数与所述目的扇区的列数相等;
第二确定模块140,用于当遍历到的字节的数值与所述数据尾相同时, 确定该字节的下一列为写入列;以及,当遍历的次数与所述目的扇区的列 数相等且最后遍历到的字节的数值与所述数据尾不同时,确定所述目的扇 区的第一列为写入列;
写入模块150,用于以所述写入列的第一个字节为起点,依次将所述待 写入数据写入所述写入列。
其中,所述数据写入装置100还包括预处理模块,所述预处理模块包 括:
获取单元,用于获取初始数据;
预处理单元,用于对所述初始数据进行预处理,得到包含数据尾的待 写入数据。
其中,所述初始数据包括固定数据;所述预处理单元具体用于:
将预设的数据头添加至所述初始数据的头部,以及将预设的数据尾添 加至所述初始数据的尾部,得到所述待写入数据。
其中,所述初始数据包括可变数据;所述预处理单元还用于:
根据预设的写入长度,对所述初始数据进行零填充,得到数据长度与 所述写入数据相等的中间数据;
将预设的数据头添加至所述中间数据的头部,以及将预设的数据尾添 加至所述中间数据的尾部,得到所述待写入数据。
其中,所述初始数据包括可变数据;所述预处理单元还用于:
将预设的数据头与所述初始数据的初始长度进行拼接,得到数据标签;
将所述数据标签添加至所述初始数据的头部,以及将预设的数据尾添 加至所述初始数据的尾部,得到所述待写入数据。
其中,所述写入扇区为确定了行数以及列数的初始扇区;所述数据写 入装置100还扇区处理模块,所述扇区处理模块用于:
获取写入长度;
将所述写入长度作为预设的初始扇区对应的列数;
根据所述初始扇区的大小以及所述列数,计算所述初始扇区对应的行 数,得到写入扇区。
其中,所述第二确定模块140具体用于:
根据所述待写入数据的数据长度以及预设的长度索引表,判断是否与 所述待写入数据对应的目的扇区;
若不存在,则将所述数据长度作为写入长度,确定与所述待写入数据 对应的初始扇区的行数以及列数,得到与所述待写入数据对应的目的扇区, 并将所述目的扇区的扇区信息写入所述长度索引表;
将所述写入扇区作为所述待写入数据对应的目的扇区。
基于上述基于扇区的数据写入方法,本实施例提供了一种计算机可读 存储介质,所述计算机可读存储介质存储有一个或者多个程序,所述一个 或者多个程序可被一个或者多个处理器执行,以实现如上述实施例所述的 基于扇区的数据写入方法中的步骤。
基于上述基于扇区的数据写入方法,本发明还提供了一种终端设备, 如图5所示,其包括至少一个处理器(processor)20;显示屏21;以及存 储器(memory)22,还可以包括通信接口(Communications Interface) 23和总线24。其中,处理器20、显示屏21、存储器22和通信接口23可 以通过总线24完成相互间的通信。显示屏21设置为显示初始设置模式中 预设的用户引导界面。通信接口23可以传输信息。处理器20可以调用存 储器22中的逻辑指令,以执行上述实施例中的方法。
此外,上述的存储器22中的逻辑指令可以通过软件功能单元的形式实 现并作为独立的产品销售或使用时,可以存储在一个计算机可读取计算机 可读存储介质中。
存储器22作为一种计算机可读存储介质,可设置为存储软件程序、计 算机可执行程序,如本公开实施例中的方法对应的程序指令或模块。处理 器20通过运行存储在存储器22中的软件程序、指令或模块,从而执行功 能应用以及数据处理,即实现上述实施例中的方法。
存储器22可包括存储程序区和存储数据区,其中,存储程序区可存储 操作系统、至少一个功能所需的应用程序;存储数据区可存储根据终端设 备的使用所创建的数据等。此外,存储器22可以包括高速随机存取存储器, 还可以包括非易失性存储器。例如,U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者 光盘等多种可以存储程序代码的介质,也可以是暂态计算机可读存储介质。
此外,上述计算机可读存储介质以及终端设备中的多条指令处理器加 载并执行的具体过程在上述方法中已经详细说明,在这里就不再一一陈述。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对 其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通 技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修 改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不 使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

Claims (10)

1.一种基于扇区的数据写入方法,其特征在于,所述方法包括:
获取待写入数据,其中,所述待写入数据包括数据尾;
根据所述待写入数据,确定行数与所述待写入数据的数据长度相等的写入扇区为目的扇区;
以所述目的扇区的最后一个字节为起点,对所述目的扇区的最后一列进行遍历,直至遍历到的字节的数值与所述数据尾相同或遍历的次数与所述目的扇区的列数相等;
当遍历到的字节的数值与所述数据尾相同时,确定遍历该字节之前的一列为写入列;以及,
当遍历的次数与所述目的扇区的列数相等且最后遍历到的字节的数值与所述数据尾不同时,确定所述目的扇区的第一列为写入列;
以所述写入列的第一个字节为起点,依次将所述待写入数据写入所述写入列。
2.根据权利要求1所述基于扇区的数据写入方法,其特征在于,所述获取待写入数据之前,还包括:
获取初始数据;
对所述初始数据进行预处理,得到包含数据尾的待写入数据。
3.根据权利要求2所述基于扇区的数据写入方法,其特征在于,所述初始数据包括固定数据;所述对所述初始数据进行预处理,得到包含数据尾的待写入数据包括:
将预设的数据头添加至所述初始数据的头部,以及将预设的数据尾添加至所述初始数据的尾部,得到所述待写入数据。
4.根据权利要求2所述基于扇区的数据写入方法,其特征在于,所述初始数据包括可变数据;所述对所述初始数据进行预处理,得到包含数据尾的待写入数据包括:
根据预设的写入长度,对所述初始数据进行零填充,得到数据长度与所述写入数据相等的中间数据;
将预设的数据头添加至所述中间数据的头部,以及将预设的数据尾添加至所述中间数据的尾部,得到所述待写入数据。
5.根据权利要求2所述基于扇区的数据写入方法,其特征在于,所述初始数据包括可变数据;所述对所述初始数据进行预处理,得到包含数据尾的待写入数据包括:
将预设的数据头与所述初始数据的初始长度进行拼接,得到数据标签;
将所述数据标签添加至所述初始数据的头部,以及将预设的数据尾添加至所述初始数据的尾部,得到所述待写入数据。
6.根据权利要求1所述基于扇区的数据写入方法,其特征在于,所述写入扇区为确定了行数以及列数的初始扇区;所述根据所述待写入数据,确定行数与所述待写入数据的数据长度相等的写入扇区为目的扇区之前,包括:
获取写入长度;
将所述写入长度作为预设的初始扇区对应的列数;
根据所述初始扇区的大小以及所述列数,计算所述初始扇区对应的行数,得到写入扇区。
7.根据权利要求6所述基于扇区的数据写入方法,其特征在于,所述根据所述待写入数据,确定行数与所述待写入数据的数据长度相等的写入扇区为目的扇区,包括:
根据所述待写入数据的数据长度以及预设的长度索引表,判断是否与所述待写入数据对应的目的扇区;
若不存在,则将所述数据长度作为写入长度,确定与所述待写入数据对应的初始扇区的行数以及列数,得到与所述待写入数据对应的目的扇区,并将所述目的扇区的扇区信息写入所述长度索引表;
将所述写入扇区作为所述待写入数据对应的目的扇区。
8.一种基于扇区的数据写入装置,其特征在于,所述数据写入装置具体包括:。
获取模块,用于获取待写入数据,其中,所述待写入数据包括数据尾;
第一确定模块,用于根据所述待写入数据,确定行数与所述待写入数据的数据长度相等的写入扇区为目的扇区;
遍历模块,用于以所述目的扇区的最后一个字节为起点,对所述目的扇区的最后一列进行遍历,直至遍历到的字节的数值与所述数据尾相同或遍历的次数与所述目的扇区的列数相等;
第二确定模块,用于当遍历到的字节的数值与所述数据尾相同时,确定该字节的下一列为写入列;以及,当遍历的次数与所述目的扇区的列数相等且最后遍历到的字节的数值与所述数据尾不同时,确定所述目的扇区的第一列为写入列;
写入模块,用于以所述写入列的第一个字节为起点,依次将所述待写入数据写入所述写入列。
9.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器执行,以实现如权利要求1~7任意一项所述的基于扇区的数据写入方法中的步骤。
10.一种终端设备,其特征在于,包括:处理器、存储器及通信总线;所述存储器上存储有可被所述处理器执行的计算机可读程序;
所述通信总线实现处理器和存储器之间的连接通信;
所述处理器执行所述计算机可读程序时实现如权利要求1~7任意一项所述的基于扇区的数据写入方法中的步骤。
CN202110949193.5A 2021-08-18 2021-08-18 一种基于扇区的数据写入方法及相关设备 Pending CN113721847A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110949193.5A CN113721847A (zh) 2021-08-18 2021-08-18 一种基于扇区的数据写入方法及相关设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110949193.5A CN113721847A (zh) 2021-08-18 2021-08-18 一种基于扇区的数据写入方法及相关设备

Publications (1)

Publication Number Publication Date
CN113721847A true CN113721847A (zh) 2021-11-30

Family

ID=78676745

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110949193.5A Pending CN113721847A (zh) 2021-08-18 2021-08-18 一种基于扇区的数据写入方法及相关设备

Country Status (1)

Country Link
CN (1) CN113721847A (zh)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102063379A (zh) * 2010-12-28 2011-05-18 天津市亚安科技电子有限公司 一种flash存储器的数据存储方法
CN105045528A (zh) * 2015-06-24 2015-11-11 武汉烽火众智数字技术有限责任公司 一种快速的fat32磁盘分区遍历及文件查找方法
WO2017161795A1 (zh) * 2016-03-25 2017-09-28 福建联迪商用设备有限公司 处理流水文件的方法及系统
CN109947364A (zh) * 2019-02-01 2019-06-28 浙江蓝点动力科技有限公司 一种用于flash/eeprom中的实时数据存储方法
CN112463020A (zh) * 2019-09-09 2021-03-09 杭州海康威视数字技术股份有限公司 基于Flash的数据存取方法、装置及设备

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102063379A (zh) * 2010-12-28 2011-05-18 天津市亚安科技电子有限公司 一种flash存储器的数据存储方法
CN105045528A (zh) * 2015-06-24 2015-11-11 武汉烽火众智数字技术有限责任公司 一种快速的fat32磁盘分区遍历及文件查找方法
WO2017161795A1 (zh) * 2016-03-25 2017-09-28 福建联迪商用设备有限公司 处理流水文件的方法及系统
CN109947364A (zh) * 2019-02-01 2019-06-28 浙江蓝点动力科技有限公司 一种用于flash/eeprom中的实时数据存储方法
CN112463020A (zh) * 2019-09-09 2021-03-09 杭州海康威视数字技术股份有限公司 基于Flash的数据存取方法、装置及设备

Similar Documents

Publication Publication Date Title
US7725646B2 (en) Method of using a flash memory for a circular buffer
US10437737B2 (en) Data storage device
CN104699417B (zh) 数据储存装置以及其数据存取方法
CN103425589A (zh) 控制装置、存储装置以及存储控制方法
CN112289360A (zh) 读取重试阈值电压选择
US20200226026A1 (en) Data storage devices and methods for firmware failure prevention
US20090259796A1 (en) Data writing method for non-volatile memory and storage system and controller using the same
CN104347118A (zh) 用于仿真电可擦除可编程只读存储器的系统及方法
CN112596668A (zh) 一种存储器的坏块处理方法及系统
CN112835528A (zh) 脏页刷新方法和装置、电子设备和存储介质
CN116719484A (zh) 一种磁盘阵列的写数据处理方法、装置、设备和介质
CN114063906B (zh) Nand闪存中物理块的管理方法、装置及ssd设备
CN109785891B (zh) 一种获取NAND Flash存储器浅擦除特性规律的方法
US8762685B2 (en) Data writing method, memory controller and memory storage apparatus
US20140089566A1 (en) Data storing method, and memory controller and memory storage apparatus using the same
CN115237351B (zh) Nand块动态重映射、读写命令处理方法及存储设备
CN113721847A (zh) 一种基于扇区的数据写入方法及相关设备
CN116382582A (zh) 一种raid重映射方法、系统、设备以及存储介质
CN113345510B (zh) 一种flash的容量识别方法及容量识别系统
CN107562655B (zh) 一种数据存储方法和装置
CN112347524A (zh) 闪存编程方法、装置及电子设备
CN113689909A (zh) 一种磨损均衡的可变数据页宽度的flash读写方法
CN112988037A (zh) 静态磨损均衡方法、终端和计算机可读存储介质
CN111427733A (zh) 一种测试磁盘稳定性的方法、系统、设备及介质
CN107632774B (zh) 修复磁盘挂载的方法及装置

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination