CN113495681A - 一种nand flash文件数据存取方法、装置及存储介质 - Google Patents

一种nand flash文件数据存取方法、装置及存储介质 Download PDF

Info

Publication number
CN113495681A
CN113495681A CN202010263561.6A CN202010263561A CN113495681A CN 113495681 A CN113495681 A CN 113495681A CN 202010263561 A CN202010263561 A CN 202010263561A CN 113495681 A CN113495681 A CN 113495681A
Authority
CN
China
Prior art keywords
storage space
nand flash
designated
flash file
data
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
CN202010263561.6A
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.)
Hangzhou Ezviz Software Co Ltd
Original Assignee
Hangzhou Ezviz Software 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 Hangzhou Ezviz Software Co Ltd filed Critical Hangzhou Ezviz Software Co Ltd
Priority to CN202010263561.6A priority Critical patent/CN113495681A/zh
Priority to PCT/CN2021/082457 priority patent/WO2021203964A1/zh
Priority to US17/995,459 priority patent/US20230168830A1/en
Priority to EP21785191.4A priority patent/EP4134802A4/en
Publication of CN113495681A publication Critical patent/CN113495681A/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/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
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • 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/0604Improving or facilitating administration, e.g. storage management
    • 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
    • G06F3/0611Improving I/O performance in relation to response time
    • 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/0629Configuration or reconfiguration of storage systems
    • G06F3/0631Configuration or reconfiguration of storage systems by allocating resources to storage systems
    • 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/0643Management of files
    • 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/0662Virtualisation aspects
    • G06F3/0665Virtualisation aspects at area level, e.g. provisioning of virtual or logical volumes
    • 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]
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Abstract

本发明提供了一种NAND FLASH文件数据存取方法、装置及存储介质,该方法包括:将为指定NAND FLASH文件分配的指定存储空间划分为第一存储空间和第二存储空间;将指定NAND FLASH文件的管理数据存储在第一存储空间,并将指定NAND FLASH文件的有效数据存储在第二存储空间;根据存储在第一存储空间的指定NAND FLASH文件的管理数据读取存储在第二存储空间的指定NAND FLASH文件的有效数据。本发明能够简化指定NAND FLASH文件数据的读取过程、减少读取时间,提高读取效率。

Description

一种NAND FLASH文件数据存取方法、装置及存储介质
技术领域
本发明涉及存储技术领域,特别涉及一种NAND FLASH文件数据存取方法、装置及存储介质。
背景技术
NAND FLASH是一种掉电保存的存储器,内部以块(BLOCK)为擦写单元,每个BLOCK包含64页(PAGE),页号从0到63,其中每一PAGE的存储空间长度是2KB,是最小的读写单元。
智能入户设备通常使用NAND FLASH存储设备参数信息,如不同光照条件下的图像参数文件、设备的编解码固件文件等,并在开机启动时根据当前环境信息(如当前环境的光照数值)读取对应的参数文件。
目前,智能入户设备通过挂载FLASH文件系统来进行NAND FLASH数据文件的读取。现有FLASH文件系统中,文件数据分为管理数据和有效数据,文件的管理数据根据文件的有效数据占用的BLOCK数分为一份或多份,并分别存放在存储文件的有效数据的每个BLOCK的PAGE0中。现有FLASH文件系统中,文件的管理数据占用空间大,在进行文件的有效数据读取时,需要读取多个BLOCK的PAGE0以查找文件的管理数据,并根据文件的管理数据读取文件的有效数据,读取过程复杂,耗时长、效率低,无法满足用户对智能入户设备的快速开机启动需求。
发明内容
有鉴于此,本发明的目的在于提供了一种NAND FLASH文件数据存取方法、装置及存储介质,能够简化指定NAND FLASH文件数据的读取过程、减少读取时间,提高读取效率。
为了达到上述目的,本发明提供了如下技术方案:
一种NAND FLASH文件数据存取方法,包括:
为指定NAND FLASH文件分配指定存储空间,并将指定存储空间划分为第一存储空间和第二存储空间;
将指定NAND FLASH文件的管理数据存储在第一存储空间,并将指定NAND FLASH文件的有效数据存储在第二存储空间;
根据存储在第一存储空间的指定NAND FLASH文件的管理数据读取存储在第二存储空间的指定NAND FLASH文件的有效数据。
一种NAND FLASH文件数据存取装置,包括:处理器、以及与所述处理器通过总线相连的非瞬时计算机可读存储介质;
所述非瞬时计算机可读存储介质,存储有可被所述处理器执行的一个或多个计算机程序;所述处理器执行所述一个或多个计算机程序时实现以下步骤:
为指定NAND FLASH文件分配指定存储空间,并将指定存储空间划分为第一存储空间和第二存储空间;
将指定NAND FLASH文件的管理数据存储在第一存储空间,并将指定NAND FLASH文件的有效数据存储在第二存储空间;
根据存储在第一存储空间的指定NAND FLASH文件的管理数据读取存储在第二存储空间的指定NAND FLASH文件的有效数据。
一种非瞬时计算机可读存储介质,所述非瞬时计算机可读存储介质存储指令,其特征在于,所述指令在由处理器执行时使得所述处理器执行如上述NAND FLASH文件数据存取方法中的步骤。
由上面的技术方案可知,本发明中,将为指定NAND FLASH文件分配的指定存储空间划分为第一存储空间和第二存储空间,将指定NAND FLASH文件的管理数据和有效数据分别存放在第一存储空间和第二存储空间,根据第一存储空间中各指定NAND FLASH文件的管理数据从第二存储空间中读取该指定NAND FLASH文件的有效数据。这种将指定NAND FLASH文件的管理数据和有效数据分别存储的方式,能够简化指定NAND FLASH文件数据的读取过程、减少读取时间,提高读取效率。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例一NAND FLASH文件数据存取方法流程图;
图2是本发明实施例二NAND FLASH文件数据存取方法流程图;
图3是本发明实施例指定存储空间划分示意图;
图4是本发明实施例三NAND FLASH文件数据存取方法流程图;
图5是本发明实施例提供的指定NAND FLASH文件存储示例图;
图6是本发明实施例四NAND FLASH文件数据存取方法流程图;
图7是本发明实施例NAND FLASH文件数据存取装置的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
参见图1,图1是本发明实施例一NAND FLASH文件数据存取方法流程图,如图1所示,该方法包括以下步骤:
步骤101、将为指定NAND FLASH文件分配的指定存储空间划分为第一存储空间和第二存储空间。
本实施例中,将一些需要进行快速读取的NAND FLASH文件称为指定NAND FLASH文件,可以预先为这些指定NAND FLASH文件分配一个指定存储空间,用于存储这些指定NANDFLASH文件的管理数据和有效数据。
步骤102、将指定NAND FLASH文件的管理数据存储在第一存储空间,并将指定NANDFLASH文件的有效数据存储在第二存储空间。
本实施例中,指定NAND FLASH文件的管理数据中,包括用于指示指定NAND FLASH文件的存储位置相关的信息。
步骤103、根据存储在第一存储空间的指定NAND FLASH文件的管理数据读取存储在第二存储空间的指定NAND FLASH文件的有效数据。
根据图1所示实施例可以看出,本实施例通过将指定NAND FLASH文件的管理数据和有效数据分别存储在第一存储空间和第二存储空间,使得在进行指定NAND FLASH文件的读取时只需要在第一存储空间执行一次文件的管理数据读取,之后就可以根据文件的管理数据去第二存储空间读取文件的有效数据,相比于现有一个BLOCK中同时存储管理数据和有效数据导致文件读取过程需要多次文件的管理数据和有效数据的读取而言,读取过程简单,因此可以有效减少读取时间,提高读取效率。
参见图2,图2是本发明实施例二NAND FLASH文件数据存取方法流程图,如图2所示,该方法包括以下步骤:
步骤2011、确定指定NAND FLASH文件的管理数据占用的存储空间总长度。
本实施例中,各指定NAND FLASH文件的管理数据的长度是已知的。所述指定NANDFLASH文件的管理数据占用的存储空间总长度,即所有指定NAND FLASH文件的管理数据的长度之和。例如,假设各指定NAND FLASH文件的管理数据的长度相同,均是20byte,则如果一共有100个指定NAND FLASH文件,则指定NAND FLASH文件的管理数据占用的存储空间总长度是2000byte。
步骤2012、根据所述存储空间总长度确定指定NAND FLASH文件的管理数据占用的页数M。
这里,M是正整数。
根据所述存储空间总长度确定指定NAND FLASH文件的管理数据占用的页数M,可采用以下公式
Figure BDA0002440344740000051
其中,
Figure BDA0002440344740000052
表示向上取整,L1是所述存储空间总长度,L是一个PAGE的存储空间长度(现有技术中,一PAGE的存储空间长度是2048byte)。以L1=2000byte为例,
Figure BDA0002440344740000053
步骤2013、在为指定NAND FLASH文件分配的指定存储空间中选取至少M页连续存储空间,将该连续存储空间作为第一存储空间并将指定存储空间的剩余存储空间作为第二存储空间。
本实施例中,在为指定NAND FLASH文件分配的指定存储空间中选取至少M页连续存储空间的具体方法可以为:在指定存储空间的起始端选取至少M页连续存储空间;或者,在指定存储空间的结束端反向选取至少M页连续存储空间。
例如图3所示,假设指定存储空间是BLOCKX至BLOCKX+99共100个BLOCK,且M=2,则可以选取BLOCKX的前两个PAGE:PAGE0和PAGE1作为第一存储空间,相应地,BLOCKX中的PAGE2至PAGE63、以及BLOCKX+1至BLOCKX+99作为第二存储空间。另外,实际实现中也可以选取BLOCK99的最后两个PAGE:PAGE62和PAGE63作为第一存储空间,相应地,BLOCKX至BLOCKX+98、以及BLOCKX+99中的PAGE0至PAGE61作为第二存储空间。
另外,在实际应用中,也可以选取指定存储空间中间的至少M页连续存储空间,将该连续存储空间作为第一存储空间并将指定存储空间的剩余存储空间作为第二存储空间。
以上步骤2011至步骤2013是图1所示步骤101的具体细化。
步骤202、将指定NAND FLASH文件的管理数据存储在第一存储空间,并将指定NANDFLASH文件的有效数据存储在第二存储空间;
步骤203、根据存储在第一存储空间的指定NAND FLASH文件的管理数据读取存储在第二存储空间的指定NAND FLASH文件的有效数据。
以上步骤202和步骤203与图1所示步骤101和102的实现原理相同,不再赘述。
根据图2所示实施例可知,本实施例与图1所示实施例相比,除了具有图1所示实施例的优点外,还通过计算指定NAND FLASH文件的管理数据占用的存储空间总长度,据此确定NAND FLASH文件的管理数据所需占用的页数M,从而采用在指定存储空间中选取不小于M页连续存储空间作为第一存储空间,保证第一存储空间能够存储所有指定NAND FLASH文件的管理数据。
参见图4,图4是本发明实施例三NAND FLASH文件数据存取方法流程图,如图4所示,该方法包括以下步骤:
步骤401、将为指定NAND FLASH文件分配的指定存储空间划分为第一存储空间和第二存储空间。
步骤4021、为每一指定NAND FLASH文件在第二存储空间中分配有效数据存储空间,基于该有效数据存储空间生成该指定NAND FLASH文件的管理数据。
本实施例中,所述管理数据包括文件名称、起始位置、文件长度等信息。
本实施例中,所述为每一指定NAND FLASH文件在第二存储空间中分配有效数据存储空间,基于该有效数据存储空间生成该指定NAND FLASH文件的管理数据,具体包括以下步骤:
S11、确定该指定NAND FLASH文件的有效数据所需占用的页数N,从第二存储空间中选取尚未分配的N页连续存储空间,将该连续存储空间确定为该指定NAND FLASH文件的有效数据存储空间。
S12、将该指定NAND FLASH文件的管理数据的文件名称、起始位置和文件长度分别设置为该指定NAND FLASH文件的文件名称、该指定NAND FLASH文件的有效数据存储空间的起始位置、该指定NAND FLASH文件的有效数据长度。
上述步骤S11中,确定该指定NAND FLASH文件的有效数据所需占用的页数N,可采用以下公式
Figure BDA0002440344740000071
其中,L2是该指定NAND FLASH文件的有效数据长度,L是一个PAGE的存储空间长度(现有技术中,一PAGE的存储空间长度是2048byte)。以L2=4098byte为例,
Figure BDA0002440344740000072
在确定该指定NAND FLASH文件的有效数据所需占用的页数N之后,可以从第二存储空间中选取尚未分配的N页连续存储空间,将该连续存储空间确定为该指定NAND FLASH文件的有效数据存储空间。例如假设指定存储空间为BLOCKX至BLOCKX+99,且已经选取BLOCKX的前两个PAGE:PAGE0和PAGE1作为第一存储空间,BLOCKX中的PAGE2至PAGE63、以及BLOCKX+1至BLOCKX+99作为第二存储空间,则如果第二存储空间尚未为任何文件分配有效数据存储空间,则可以将BLOCKX中的PAGE2至PAGE4这一连续存储空间分配给该指定NAND FLASH文件作为其有效数据存储空间,具体参见图5所示的File1。
步骤4022、将每一指定NAND FLASH文件的管理数据存储在第一存储空间,并将该指定NAND FLASH文件的有效数据存储到为该指定NAND FLASH文件分配的有效数据存储空间。
本实施例中,各指定NAND FLASH文件的管理数据在第一存储空间中的存储位置可以是随机的,与可以按照某种预先设定的顺序,例如按照文件名称的字母顺序排序后依次存放到第一存储空间中,本发明对此不做限定。
以上步骤4021至步骤4022是图1所示步骤102的具体细化。
步骤403、根据存储在第一存储空间的指定NAND FLASH文件的管理数据读取存储在第二存储空间的指定NAND FLASH文件的有效数据。
以上步骤401、步骤403分别与图1所示步骤101、步骤103的实现原理相同,不再赘述。
根据图4所示实施例可知,本实施例与图1所示实施例相比,除了具有图1所示实施例的优点外,还通过先给指定NAND FLASH文件分配有效数据存储空间,从而使得指定NANDFLASH文件的管理数据中的起始位置和指定NAND FLASH文件的有效数据的存放位置随之确定,进而可以实现后续对指定NAND FLASH文件的管理数据和有效数据的有序存放。
参见图6,图6是本发明实施例四NAND FLASH文件数据存取方法流程图,如图6所示,该方法包括以下步骤:
步骤601、将为指定NAND FLASH文件分配的指定存储空间划分为第一存储空间和第二存储空间。
步骤602、将指定NAND FLASH文件的管理数据存储在第一存储空间,并将指定NANDFLASH文件的有效数据存储在第二存储空间。
以上步骤601至步骤602与图1所示步骤101至步骤102的实现原理相同,不再赘述。
步骤6031、接收针对任一指定NAND FLASH文件的文件读取请求。
本实施例中,文件读取请求中携带待读取文件的文件名称。
步骤6032、读取第一存储空间中的管理数据,在读取的管理数据中查找文件名称与所述文件读取请求携带的文件名称相同的管理数据,将找到的管理数据确定为该指定NAND FLASH文件的管理数据。
本实施例中,可以将第一存储空间中的管理数据全部读取出来,然后在读取的管理数据中查找待读取文件的文件名称,找到后相应管理数据即为待读取文件的管理数据。
步骤6033、根据该指定NAND FLASH文件的管理数据中的起始位置和文件长度确定该指定NAND FLASH文件的结束位置。
本实施例中,所述管理数据中的起始位置包括起始块(BLOCK)和起始页(PAGE)。所述结束位置包括结束块(BLOCK)和结束页(PAGE)。
根据该指定NAND FLASH文件的管理数据中的起始位置和文件长度确定该指定NAND FLASH文件的结束位置,具体采用以下方式:
S21、根据该指定NAND FLASH文件的管理数据中的文件长度(即该指定NAND FLASH文件的有效数据长度)确定该指定NAND FLASH文件的有效数据占用的PAGE数量。
S22、根据该PAGE数量以及该指定NAND FLASH文件的管理数据中的起始位置确定该指定NAND FLASH文件的结束位置。
例如,假设该指定NAND FLASH文件的管理数据中的文件长度是2000,则可确定其占用PAGE数量是2。假设该指定NAND FLASH文件的起始位置为:BLOCKX(起始BLOCK)、PAGE63(起始PAGE),则根据该指定NAND FLASH文件的有效数据占用的PAGE数量2和该指定NANDFLASH文件的起始位置可确定该NAND FLASH文件的结束位置为BLOCKX+1(结束BLOCK)、PAGE1(结束PAGE)。
步骤6034、对第二存储空间中从该指定NAND FLASH文件的有效数据的起始位置到所述结束位置之间的数据进行读取。
这里,该指定NAND FLASH文件的有效数据的起始位置,即该指定NAND FLASH文件的管理数据中包括的起始位置。
本实施例中,对第二存储空间中从该指定NAND FLASH文件的有效数据的起始位置到所述结束位置之间的数据进行读取,具体包括:
S31、当该起始位置的起始块与所述结束位置的结束块相同时,对该起始位置的起始块中从该起始位置的起始页到所述结束位置的结束页的数据进行连续多页读取;
S33、当该起始位置的起始块与所述结束位置的结束块不同时,先对该起始位置的起始块中从该起始位置的起始页到该起始位置的起始块的尾页的数据进行连续多页读取,再依次对从该起始位置的起始块的下一块到所述结束位置的结束块的前一块的数据进行逐块读取,最后对所述结束位置的结束块中从所述结束位置的结束块的首页到所述结束位置的结束页的数据进行连续多页读取。
上述步骤S31中,该起始位置的起始块与所述结束位置的结束块相同,表明该指定NAND FLASH文件的起始页和结束页在同一BLOCK上,直接对从起始页到结束页的数据进行一次读取(连续多页读取)即可。
上述步骤S32中,该起始位置的起始块与所述结束位置的结束块不同,表明该指定NAND FLASH文件的起始页和结束页不在同一BLOCK上,该指定NAND FLASH文件的有效数据是跨BLOCK存放的,这种情况下,需要分多次读取数据,首先是对第一BLOCK上的有效数据的读取,其次是跨越的若干BLOCK上有效数据的读取,最后是最后一个BLOCK上的有效数据的读取,例如该指定NAND FLASH文件的有效数据存放情况如下:BLOCKX中的PAGE63、BLOCKX+1中的PAGE0-PAGE63、以及BLOCKX+2中的PAGE0,则会分三次读取完NAND FLASH文件的有效数据:1)先读取BLOCKX中的PAGE63,2)再整块读取BLOCKX+1,3)最后读取BLOCKX+2中的PAGE0。
以上步骤6031至步骤6034是图1所示步骤103的具体细化。
根据图6所示实施例可知,本实施例与图1所示实施例相比,除了具有图1所示实施例的优点外,还根据指定NAND FLASH文件的管理数据中的起始位置和文件长度确定该指定NAND FLASH文件的结束位置,从而快速定位到该指定NAND FLASH文件的有效数据存放位置并对有效数据进行逐块读取,可以进一步提高NAND FLASH文件的读取速度和读取效率。
以上对本发明实施例NAND FLASH文件数据存取方法进行了详细说明,本发明实施例还提供了一种NAND FLASH文件数据存取装置,以下结合图7进行详细说明。
参见图7,图7是本发明实施例NAND FLASH文件数据存取装置的结构示意图,如图7所示,该装置包括:处理器701、以及与所述处理器701通过总线相连的非瞬时计算机可读存储介质702;
所述非瞬时计算机可读存储介质702,存储有可被所述处理器701执行的一个或多个计算机程序;所述处理器701执行所述一个或多个计算机程序时实现以下步骤:
将为指定NAND FLASH文件分配的指定存储空间划分为第一存储空间和第二存储空间;
将指定NAND FLASH文件的管理数据存储在第一存储空间,并将指定NAND FLASH文件的有效数据存储在第二存储空间;
根据存储在第一存储空间的指定NAND FLASH文件的管理数据读取存储在第二存储空间的指定NAND FLASH文件的有效数据。
图7所示装置中,
所述处理器701,将为指定NAND FLASH文件分配的指定存储空间划分为第一存储空间和第二存储空间,包括:
确定指定NAND FLASH文件的管理数据占用的存储空间总长度;
根据所述存储空间总长度确定指定NAND FLASH文件的管理数据占用的页数M;
在指定存储空间中选取至少M页连续存储空间,将该连续存储空间作为第一存储空间并将指定存储空间的剩余存储空间作为第二存储空间。
图7所示装置中,
所述处理器701,在指定存储空间中选取至少M页连续存储空间时,用于:
在指定存储空间的起始端选取至少M页连续存储空间;或者,在指定存储空间的结束端反向选取至少M页连续存储空间。
图7所示装置中,
所述处理器701,将指定NAND FLASH文件的管理数据存储在第一存储空间,并将指定NAND FLASH文件的有效数据存储在第二存储空间,包括:
为每一指定NAND FLASH文件在第二存储空间中分配有效数据存储空间,基于该有效数据存储空间生成该指定NAND FLASH文件的管理数据;
将每一指定NAND FLASH文件的管理数据存储在第一存储空间,并将该指定NANDFLASH文件的有效数据存储到为该指定NAND FLASH文件分配的有效数据存储空间。
图7所示装置中,
所述管理数据包括文件名称、起始位置、文件长度;
所述处理器701,为每一指定NAND FLASH文件在第二存储空间中分配有效数据存储空间,基于该有效数据存储空间生成该指定NAND FLASH文件的管理数据,包括:
确定该指定NAND FLASH文件的有效数据所需占用的页数N,从第二存储空间中选取尚未分配的N页连续存储空间,将该连续存储空间确定为该指定NAND FLASH文件的有效数据存储空间;
将该指定NAND FLASH文件的管理数据的文件名称、起始位置和文件长度分别设置为该指定NAND FLASH文件的文件名称、该指定NAND FLASH文件的有效数据存储空间的起始位置、该指定NAND FLASH文件的有效数据长度。
图7所示装置中,
所述处理器701,根据存储在第一存储空间的指定NAND FLASH文件的管理数据读取存储在第二存储空间的指定NAND FLASH文件的有效数据,包括:
接收针对任一指定NAND FLASH文件的文件读取请求;
读取第一存储空间中的管理数据,在读取的管理数据中查找文件名称与所述文件读取请求携带的文件名称相同的管理数据,将找到的管理数据确定为该指定NAND FLASH文件的管理数据;
根据该指定NAND FLASH文件的管理数据中的起始位置和文件长度确定该指定NAND FLASH文件的结束位置;
对第二存储空间中从该指定NAND FLASH文件的有效数据的起始位置到所述结束位置之间的数据进行读取。
图7所示装置中,
所述起始位置包括起始块和起始页;
所述结束位置包括结束块和结束页;
所述处理器701,对第二存储空间中从该指定NAND FLASH文件的有效数据的起始位置到所述结束位置之间的数据进行读取,包括:
当该起始位置的起始块与所述结束位置的结束块相同时,对该起始位置的起始块中从该起始位置的起始页到所述结束位置的结束页的数据进行连续多页读取;
当该起始位置的起始块与所述结束位置的结束块不同时,先对该起始位置的起始块中从该起始位置的起始页到该起始位置的起始块的尾页的数据进行连续多页读取,再依次对从该起始位置的起始块的下一块到所述结束位置的结束块的前一块的数据进行逐块读取,最后对所述结束位置的结束块中从所述结束位置的结束块的首页到所述结束位置的结束页的数据进行连续多页读取。
本发明实施例还提供了一种非瞬时计算机可读存储介质,所述非瞬时计算机可读存储介质存储指令,所述指令在由处理器执行时使得所述处理器执行如上述图1、图2、图4、或图6所示的NAND FLASH文件数据存取方法中的步骤。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。

Claims (10)

1.一种NAND FLASH文件数据存取方法,其特征在于,该方法包括:
将为指定NAND FLASH文件分配的指定存储空间划分为第一存储空间和第二存储空间;
将指定NAND FLASH文件的管理数据存储在第一存储空间,并将指定NAND FLASH文件的有效数据存储在第二存储空间;
根据存储在第一存储空间的指定NAND FLASH文件的管理数据读取存储在第二存储空间的指定NAND FLASH文件的有效数据。
2.根据权利要求1所述的方法,其特征在于,
将为指定NAND FLASH文件分配的指定存储空间划分为第一存储空间和第二存储空间,包括:
确定指定NAND FLASH文件的管理数据占用的存储空间总长度;
根据所述存储空间总长度确定指定NAND FLASH文件的管理数据占用的页数M;
在指定存储空间中选取至少M页连续存储空间,将该连续存储空间作为第一存储空间并将指定存储空间的剩余存储空间作为第二存储空间。
3.根据权利要求2所述的方法,其特征在于,
在指定存储空间中选取至少M页连续存储空间的方法为:
在指定存储空间的起始端选取至少M页连续存储空间;或者,在指定存储空间的结束端反向选取至少M页连续存储空间。
4.根据权利要求1所述的方法,其特征在于,
将指定NAND FLASH文件的管理数据存储在第一存储空间,并将指定NAND FLASH文件的有效数据存储在第二存储空间,包括:
为每一指定NAND FLASH文件在第二存储空间中分配有效数据存储空间,基于该有效数据存储空间生成该指定NAND FLASH文件的管理数据;
将每一指定NAND FLASH文件的管理数据存储在第一存储空间,并将该指定NAND FLASH文件的有效数据存储到为该指定NAND FLASH文件分配的有效数据存储空间。
5.根据权利要求4所述的方法,其特征在于,
所述管理数据包括文件名称、起始位置、文件长度;
为每一指定NAND FLASH文件在第二存储空间中分配有效数据存储空间,基于该有效数据存储空间生成该指定NAND FLASH文件的管理数据,包括:
确定该指定NAND FLASH文件的有效数据所需占用的页数N,从第二存储空间中选取尚未分配的N页连续存储空间,将该连续存储空间确定为该指定NAND FLASH文件的有效数据存储空间;
将该指定NAND FLASH文件的管理数据的文件名称、起始位置和文件长度分别设置为该指定NAND FLASH文件的文件名称、该指定NAND FLASH文件的有效数据存储空间的起始位置、该指定NAND FLASH文件的有效数据长度。
6.根据权利要求5所述的方法,其特征在于,
根据存储在第一存储空间的指定NAND FLASH文件的管理数据读取存储在第二存储空间的指定NAND FLASH文件的有效数据,包括:
接收针对任一指定NAND FLASH文件的文件读取请求;
读取第一存储空间中的管理数据,在读取的管理数据中查找文件名称与所述文件读取请求携带的文件名称相同的管理数据,将找到的管理数据确定为该指定NAND FLASH文件的管理数据;
根据该指定NAND FLASH文件的管理数据中的起始位置和文件长度确定该指定NANDFLASH文件的结束位置;
对第二存储空间中从该指定NAND FLASH文件的有效数据的起始位置到所述结束位置之间的数据进行读取。
7.根据权利要求6所述的方法,其特征在于;
所述起始位置包括起始块和起始页;
所述结束位置包括结束块和结束页;
对第二存储空间中从该指定NAND FLASH文件的有效数据的起始位置到所述结束位置之间的数据进行读取,包括:
当该起始位置的起始块与所述结束位置的结束块相同时,对该起始位置的起始块中从该起始位置的起始页到所述结束位置的结束页的数据进行连续多页读取;
当该起始位置的起始块与所述结束位置的结束块不同时,先对该起始位置的起始块中从该起始位置的起始页到该起始位置的起始块的尾页的数据进行连续多页读取,再依次对从该起始位置的起始块的下一块到所述结束位置的结束块的前一块的数据进行逐块读取,最后对所述结束位置的结束块中从所述结束位置的结束块的首页到所述结束位置的结束页的数据进行连续多页读取。
8.一种NAND FLASH文件数据存取装置,其特征在于,该装置包括:处理器、以及与所述处理器通过总线相连的非瞬时计算机可读存储介质;
所述非瞬时计算机可读存储介质,存储有可被所述处理器执行的一个或多个计算机程序;所述处理器执行所述一个或多个计算机程序时实现以下步骤:
将为指定NAND FLASH文件分配的指定存储空间划分为第一存储空间和第二存储空间;
将指定NAND FLASH文件的管理数据存储在第一存储空间,并将指定NAND FLASH文件的有效数据存储在第二存储空间;
根据存储在第一存储空间的指定NAND FLASH文件的管理数据读取存储在第二存储空间的指定NAND FLASH文件的有效数据。
9.根据权利要求8所述的装置,其特征在于,
所述处理器,将为指定NAND FLASH文件分配的指定存储空间划分为第一存储空间和第二存储空间,包括:
确定指定NAND FLASH文件的管理数据占用的存储空间总长度;
根据所述存储空间总长度确定指定NAND FLASH文件的管理数据占用的页数M;
在指定存储空间中选取至少M页连续存储空间,将该连续存储空间作为第一存储空间并将指定存储空间的剩余存储空间作为第二存储空间。
10.一种非瞬时计算机可读存储介质,所述非瞬时计算机可读存储介质存储指令,其特征在于,所述指令在由处理器执行时使得所述处理器执行如权利要求1至7中任一权项所述的NAND FLASH文件数据存取方法中的步骤。
CN202010263561.6A 2020-04-07 2020-04-07 一种nand flash文件数据存取方法、装置及存储介质 Pending CN113495681A (zh)

Priority Applications (4)

Application Number Priority Date Filing Date Title
CN202010263561.6A CN113495681A (zh) 2020-04-07 2020-04-07 一种nand flash文件数据存取方法、装置及存储介质
PCT/CN2021/082457 WO2021203964A1 (zh) 2020-04-07 2021-03-23 一种nand flash文件数据存取方法、装置及存储介质
US17/995,459 US20230168830A1 (en) 2020-04-07 2021-03-23 Method and apparatus for data access of nand flash file, and storage medium
EP21785191.4A EP4134802A4 (en) 2020-04-07 2021-03-23 METHOD AND DEVICE FOR DATA ACCESS TO NAND FLASH FILES AND STORAGE MEDIA

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010263561.6A CN113495681A (zh) 2020-04-07 2020-04-07 一种nand flash文件数据存取方法、装置及存储介质

Publications (1)

Publication Number Publication Date
CN113495681A true CN113495681A (zh) 2021-10-12

Family

ID=77995200

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010263561.6A Pending CN113495681A (zh) 2020-04-07 2020-04-07 一种nand flash文件数据存取方法、装置及存储介质

Country Status (4)

Country Link
US (1) US20230168830A1 (zh)
EP (1) EP4134802A4 (zh)
CN (1) CN113495681A (zh)
WO (1) WO2021203964A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114296637A (zh) * 2021-12-09 2022-04-08 广西东信数建信息科技有限公司 一种本地存储卷动态创建方法及设备

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101382876A (zh) * 2008-10-07 2009-03-11 北京创毅视讯科技有限公司 一种数据存储方法
CN102279805A (zh) * 2011-09-06 2011-12-14 四川九洲电器集团有限责任公司 一种存储器数据存放及读取方法
US20130080481A1 (en) * 2011-09-27 2013-03-28 Sybase, Inc. Extreme large space allocation
CN105468642A (zh) * 2014-09-09 2016-04-06 杭州海康威视数字技术股份有限公司 数据的存储方法及装置
CN108089821A (zh) * 2017-12-20 2018-05-29 福建星海通信科技有限公司 一种微控制器数据存储管理的方法
CN109189772A (zh) * 2018-08-21 2019-01-11 华清瑞达(天津)科技有限公司 用于无文件系统存储介质的文件管理方法及系统
CN110147203A (zh) * 2019-05-16 2019-08-20 北京金山云网络技术有限公司 一种文件管理方法、装置、电子设备及存储介质

Family Cites Families (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1576593B1 (en) * 2002-12-24 2015-10-21 LG Electronics Inc. Dual journaling store method and storage medium thereof
US20060184718A1 (en) * 2005-02-16 2006-08-17 Sinclair Alan W Direct file data programming and deletion in flash memories
US20070016721A1 (en) * 2005-07-18 2007-01-18 Wyse Technology Inc. Flash file system power-up by using sequential sector allocation
US7984084B2 (en) * 2005-08-03 2011-07-19 SanDisk Technologies, Inc. Non-volatile memory with scheduled reclaim operations
US20070156998A1 (en) * 2005-12-21 2007-07-05 Gorobets Sergey A Methods for memory allocation in non-volatile memories with a directly mapped file storage system
US20070143567A1 (en) * 2005-12-21 2007-06-21 Gorobets Sergey A Methods for data alignment in non-volatile memories with a directly mapped file storage system
US20070143566A1 (en) * 2005-12-21 2007-06-21 Gorobets Sergey A Non-volatile memories with data alignment in a directly mapped file storage system
US20070143560A1 (en) * 2005-12-21 2007-06-21 Gorobets Sergey A Non-volatile memories with memory allocation for a directly mapped file storage system
US20070143378A1 (en) * 2005-12-21 2007-06-21 Gorobets Sergey A Non-volatile memories with adaptive file handling in a directly mapped file storage system
US20070143561A1 (en) * 2005-12-21 2007-06-21 Gorobets Sergey A Methods for adaptive file data handling in non-volatile memories with a directly mapped file storage system
US8296337B2 (en) * 2006-12-06 2012-10-23 Fusion-Io, Inc. Apparatus, system, and method for managing data from a requesting device with an empty data token directive
US8959280B2 (en) * 2008-06-18 2015-02-17 Super Talent Technology, Corp. Super-endurance solid-state drive with endurance translation layer (ETL) and diversion of temp files for reduced flash wear
KR101515525B1 (ko) * 2008-10-02 2015-04-28 삼성전자주식회사 메모리 장치 및 메모리 장치의 동작 방법
WO2010103760A1 (ja) * 2009-03-13 2010-09-16 パナソニック株式会社 アクセスモジュール、情報記録モジュール、コントローラ、及び情報記録システム
US8930647B1 (en) * 2011-04-06 2015-01-06 P4tents1, LLC Multiple class memory systems
JP2014179066A (ja) * 2013-02-14 2014-09-25 Panasonic Corp ストレージ制御装置、ストレージシステム、およびストレージ制御方法
US9009565B1 (en) * 2013-03-15 2015-04-14 Pmc-Sierra, Inc. Systems and methods for mapping for solid-state memory
CN105335095B (zh) * 2014-08-11 2019-04-05 北京兆易创新科技股份有限公司 闪存文件系统的处理方法及装置
KR101758331B1 (ko) * 2015-12-22 2017-07-31 성균관대학교산학협력단 비휘발성 메모리 기반의 파일 기록 장치 및 그 방법
JP6523193B2 (ja) * 2016-03-08 2019-05-29 東芝メモリ株式会社 ストレージシステム、情報処理システムおよび制御方法
CN106293532A (zh) * 2016-08-10 2017-01-04 广东佳禾声学科技有限公司 一种Flash数据储存方法
TWI679534B (zh) * 2017-09-18 2019-12-11 慧榮科技股份有限公司 資料儲存裝置以及資料儲存方法
CN109918234B (zh) * 2019-03-06 2020-07-07 苏州浪潮智能科技有限公司 一种基于ssd的元数据恢复方法、装置、设备及介质

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101382876A (zh) * 2008-10-07 2009-03-11 北京创毅视讯科技有限公司 一种数据存储方法
CN102279805A (zh) * 2011-09-06 2011-12-14 四川九洲电器集团有限责任公司 一种存储器数据存放及读取方法
US20130080481A1 (en) * 2011-09-27 2013-03-28 Sybase, Inc. Extreme large space allocation
CN105468642A (zh) * 2014-09-09 2016-04-06 杭州海康威视数字技术股份有限公司 数据的存储方法及装置
CN108089821A (zh) * 2017-12-20 2018-05-29 福建星海通信科技有限公司 一种微控制器数据存储管理的方法
CN109189772A (zh) * 2018-08-21 2019-01-11 华清瑞达(天津)科技有限公司 用于无文件系统存储介质的文件管理方法及系统
CN110147203A (zh) * 2019-05-16 2019-08-20 北京金山云网络技术有限公司 一种文件管理方法、装置、电子设备及存储介质

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114296637A (zh) * 2021-12-09 2022-04-08 广西东信数建信息科技有限公司 一种本地存储卷动态创建方法及设备

Also Published As

Publication number Publication date
EP4134802A1 (en) 2023-02-15
US20230168830A1 (en) 2023-06-01
EP4134802A4 (en) 2023-08-30
WO2021203964A1 (zh) 2021-10-14

Similar Documents

Publication Publication Date Title
KR101994021B1 (ko) 파일 조작 방법 및 장치
CN110149803B (zh) 数据存储方法、系统及终端设备
CN107168647B (zh) Flash数据读写方法及系统
US20170364300A1 (en) Controller, flash memory apparatus, method for identifying data block stability, and method for storing data in flash memory apparatus
US8275968B2 (en) Managing unallocated storage space using extents and bitmaps
US20190220443A1 (en) Method, apparatus, and computer program product for indexing a file
CN107209716B (zh) 内存管理装置和方法
CN107391030B (zh) 数据存储方法、装置、计算机可读存储介质以及计算机设备
KR101400506B1 (ko) 비휘발성 메모리 제어기 및 그 제어 방법
CN113495681A (zh) 一种nand flash文件数据存取方法、装置及存储介质
CN114816240A (zh) 一种数据写入方法及一种数据读取方法
CN111190835B (zh) 一种数据写入方法、装置、设备及介质
CN112965661A (zh) 数据存储方法、装置、设备及存储介质
CN116301614A (zh) 存储器数据存取方法、系统、设备和存储介质
CN110781101A (zh) 一种一对多映射关系的存储方法、装置、电子设备及介质
CN112035380B (zh) 一种数据处理方法、装置、设备及可读存储介质
CN115641887A (zh) 闪存管理方法及闪存设备
CN109189345B (zh) 一种在线数据整理方法、装置、设备及存储介质
CN109471813A (zh) 一种数据插入方法及相关装置
CN115237819A (zh) 一种数据存储、数据读取方法及装置
CN108345551B (zh) 一种存储数据的方法及装置
CN115657950B (zh) 一种基于多信道的数据读写处理方法、装置及相关设备
CN110147429B (zh) 文本比较方法、装置、计算机设备和存储介质
CN111104403B (zh) 一种lsm树数据处理方法、系统、设备及计算机介质
CN115964002B (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