CN116547652A - 闪存的数据处理方法和数据处理装置 - Google Patents

闪存的数据处理方法和数据处理装置 Download PDF

Info

Publication number
CN116547652A
CN116547652A CN202080107643.XA CN202080107643A CN116547652A CN 116547652 A CN116547652 A CN 116547652A CN 202080107643 A CN202080107643 A CN 202080107643A CN 116547652 A CN116547652 A CN 116547652A
Authority
CN
China
Prior art keywords
address
data
area
mapping relation
storage
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
CN202080107643.XA
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.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies 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 Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Publication of CN116547652A publication Critical patent/CN116547652A/zh
Pending legal-status Critical Current

Links

Classifications

    • 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/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/28Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

提出一种闪存的数据更新方法和数据处理装置。其中,在闪存的页面中,除了存储初始数据的初始数据区域,还划分用于存储更新后数据的重映射数据区域和用于存储更新后的数据的存储地址与原始地址的映射关系的地址重映射区域,并且,对初始数据区域中的原始地址中的数据进行更新时,将更新后的数据存储到重映射数据区域中,并记录该原始地址与存储更新后数据的地址的映射关系。利用该方法,不需要每次更新数据都擦除整个页面的数据,并重新烧写包含更新后数据的所有数据,从而可以提高闪存的数据更新效率,以及降低闪存的老化速度以提高闪存的使用寿命。

Description

闪存的数据处理方法和数据处理装置 技术领域
本申请涉及存储领域,并且,更具体地,涉及闪存(flash)的数据处理方法和数据处理装置。
背景技术
flash是存储芯片的一种,通过特定的程序可以修改或者更新flash里面存储的数据。flash可以用作存储启动装载程序(bootloader)、操作系统或者程序代码,或者直接当硬盘使用。
现有flash的数据更新方法中,对页面中存储的数据进行更新时,哪怕该页面只需要更新1比特(bit)的数据,也需要先读取整个页面的数据缓存在存储器中,然后擦除整个页面;擦除完成后,将存储器中存储的数据再次写入该页面中,同时将该地址内更新后的数据写为最新的值;写完后,将整个页面的数据读出,跟存储器中存储的数据进行比对,判断写入的数据是否正确。
随着flash的广泛应用,大容量flash的也越来越多,大容量flash设计上一个页面的容量也比较大,按照现有的页面更新流程,每次需要更新页面中部分地址中的数据时,需要完成一次完整页面更新,不仅需要的时间长,影响更新效率,而且会导致其他地址进行不必要的擦除,加快flash的老化。
发明内容
本申请为flash提供了新的数据处理方法和数据处理装置,可以提高数据的更新效率,从而提高flash的业务交互性能;还可以延缓flash的老化速度,提升flash的使用寿命。
第一方面,本申请提供了一种闪存的数据处理方法。所述闪存中的页面划分为多个存储区域,所述多个存储区域包括初始数据区域、重映射数据区域和地址重映射区域。所述方法包括:接收数据更新请求消息,所述数据更新请求消息用于请求将所述闪存内指定页面的指定地址中的数据更新为指定数据,所述指定地址为所述初始数据区域中的地址;将所述指定数据写入所述重映射数据区域中的当前可用地址;将所述指定地址与所述重映射数据区域中的当前可用地址的地址映射关系,写入所述地址重映射区域。
该方法中的闪存,除了存储初始数据的初始数据区域,还划分用于存储更新后数据的重映射数据区域和用于存储更新后的数据的存储地址与原始地址的映射关系的地址重映射区域;并且,对初始数据区域中的原始地址中的数据进行更新时,该方法将更新后的数据存储到重映射数据区域中,并记录该原始地址与存储更新后数据的地址的映射关系。因此,使用本方法更新flash中的数据时,不需要每次更新数据都擦除整 个页面的数据,并重新烧写包含更新后数据的所有数据,从而可以提高闪存的数据更新效率,以及降低闪存的老化速度以提高闪存的使用寿命
结合第一方面,在第一种可能的实现方式中,所述指定页面还包括标记区域。相应地,所述方法还包括:判断所述标记区域中是否还有可用标记位,所述标记位用于指示所述地址重映射区域中与所述标记位对应的地址中是否存储有地址映射关系;在所述标记区域中是否还有可用标记位的情况下,根据所述标记区域中的可用标记位确定所述地址重映射区域中的当前可用地址。
该实现方式中,flash中再额外划分flag区域,该flag区域用标记位来表示addr remap区域中相应的地址是否已存储地址映射关系。这样,根据flag区域中的标记位就能判断出addr remap区域中是否还有能够存储地址映射关系的存储空间,并且在addr remap区域中还有能够存储地址映射关系的存储空间的情况下,基于标记位的位置计算出addr remap中的当前可用地址,而不用挨个读取addr remap区域中每个地址中的内容来判断addr remap区域中是否还能能够存储地址映射关系的存储空间以及查找addr remap中的当前可用地址,从而可以节省查找addr remap区域中当前可用地址的时间,进而提高flash的数据更新效率。
结合第一种可能的实现方式,在第二种可能的实现方式中,所述方法还包括:接收数据读取请求消息,所述数据读取请求消息用于请求读取所述指定页面中的所述指定地址中的数据;判断所述标记区域是否为空;所述标记区域不为空的情况下,根据所述标记区域中表示所述地址重映射区域中对应的地址中已存储地址映射关系的标记位的数量,确定所述地址重映射区域中的结束存储地址,所述结束存储地址为所述地址重映射区域中最后一个已经存储地址映射关系的地址;在所述地址重映射区域的起始存储地址至所述结束存储地址之间的存储空间中查询包含所述指定地址的目标地址映射关系,所述起始存储地址为所述地址重映射区域中第一个存储地址映射关系的地址;根据所述目标地址映射关系读取所述重映射数据区域中所述目标地址中的数据,所述目标地址为所述目标地址映射关系中包含的与所述指定地址具有映射关系的地址;所述标记区域不为空的情况下,读取所述指定地址中的数据。
结合第一方面,在第三种可能的实现方式中,所述方法还包括:判断所述地址重映射区域中是否还有可用地址。相应地,所述将所述指定数据写入所述重映射数据区域中的当前可用地址,包括:所述地址重映射区域中还有可用地址的情况下,将所述指定数据写入所述重映射数据区域中的当前可用地址。
该实现方式中,在addr remap区域中是否还有可用地址的情况下,才将所述指定数据写入remap data区域,将相应的地址映射关系写入addr remap区域,可以避免数据溢出,从而可以避免数据丢失。
结合第三种可能的实现方式,在第四种可能的实现方式中,所述方法还包括:接收数据读取请求消息,所述数据读取请求消息用于请求读取所述指定页面中的所述指定地址中的数据;在所述地址重映射区域的起始存储地址至所述结束存储地址之间的存储空间中查询包含所述指定地址的目标地址映射关系,所述起始存储地址为所述地址重映射区域中第一个存储地址映射关系的地址,所述结束存储地址为所述地址重映射区域中最后一个已经存储地址映射关系的地址;根据所述目标地址映射关系读取所 述重映射数据区域中所述目标地址中的数据,所述目标地址为所述目标地址映射关系中包含的与所述指定地址具有映射关系的地址。
结合第二种或第四种可能的实现方式,在第五种可能的实现方式中,所述在所述地址重映射区域的起始存储地址至所述结束存储地址之间的存储空间中查询包含所述指定地址的目标地址映射关系,包括:按照从所述结束存储地址开始至所述起始存储地址的顺序,依次读取所述地址重映射区域中每个地址对应的存储空间中存储的地址映射关系,并判断所述每个地址中的地址映射关系中是否为包含所述指定地址的地址映射关系,直到读取到的地址映射关系为包含所述指定地址的地址映射关系,并将最后一次读取到的地址映射关系作为所述目标地址映射关系。
第二方面,本申请提供了一种闪存的数据处理装置,所述闪存中的页面划分为多个存储区域,所述多个存储区域包括初始数据区域、重映射数据区域和地址重映射区域,所述装置可以包括用于实现第一方面或其中任意一种实现方式中的方法的一个或多个功能模块,每个功能模块可以通过软件和/或硬件的方式实现。
例如,所述装置包括接收模块和写入模块。接收模块用于接收数据更新请求消息,所述数据更新请求消息用于请求将闪存内指定页面的指定地址中的数据更新为指定数据,所述指定地址为所述初始数据区域中的地址;写入模块用于将所述指定数据写入所述重映射数据区域中的当前可用地址;所述写入模块还用于将所述指定地址与所述重映射数据区域中的当前可用地址的地址映射关系,写入所述地址重映射区域。
在第一种可能的实现方式中,所述指定页面还包括标记区域。相应地,所述装置还包括判断模块和确定模块。所述判断模块用于判断所述标记区域中是否还有可用标记位,所述标记位用于指示所述地址重映射区域中与所述标记位对应的地址中是否存储有地址映射关系;所述确定模块用于在所述标记区域中是否还有可用标记位的情况下,根据所述标记区域中的可用标记位确定所述地址重映射区域中的当前可用地址。
结合第一种可能的实现方式,在第二种可能的实现方式中,所述接收模块还用于接收数据读取请求消息,所述数据读取请求消息用于请求读取所述指定页面中的所述指定地址中的数据。
相应地,所述装置还包括判断模块、确定模块、查询模块和读取模块。所述判断模块用于判断所述标记区域是否为空;所述确定模块用于在所述标记区域不为空的情况下,根据所述标记区域中表示所述地址重映射区域中对应的地址中已存储地址映射关系的标记位的数量,确定所述地址重映射区域中的结束存储地址,所述结束存储地址为所述地址重映射区域中最后一个已经存储地址映射关系的地址;所述查询模块用于在所述地址重映射区域的起始存储地址至所述结束存储地址之间的存储空间中查询包含所述指定地址的目标地址映射关系,所述起始存储地址为所述地址重映射区域中第一个存储地址映射关系的地址;所述读取模块用于根据所述目标地址映射关系读取所述重映射数据区域中所述目标地址中的数据,所述目标地址为所述目标地址映射关系中包含的与所述指定地址具有映射关系的地址;所述读取模块还用于在所述标记区域不为空的情况下,读取所述指定地址中的数据。
在另一种可能的实现方式中,所述装置还包括判断模块和确定模块,判断模块用于判断所述地址重映射区域中是否还有可用地址,确定模块用于确定当前可用地址。
相应地,所述写入模块具体用于:在所述地址重映射区域中还有可用地址的情况下,将所述指定数据写入所述重映射数据区域中的当前可用地址。
在该实现方式中,可选地,所述接收模块还用于接收数据读取请求消息,所述数据读取请求消息用于请求读取所述指定页面中的所述指定地址中的数据。
相应地,所述装置还包括查询模块和读取模块。所述查询模块用于在所述地址重映射区域的起始存储地址至所述结束存储地址之间的存储空间中查询包含所述指定地址的目标地址映射关系,所述起始存储地址为所述地址重映射区域中第一个存储地址映射关系的地址,所述结束存储地址为所述地址重映射区域中最后一个已经存储地址映射关系的地址;所述读取模块用于根据所述目标地址映射关系读取所述重映射数据区域中所述目标地址中的数据,所述目标地址为所述目标地址映射关系中包含的与所述指定地址具有映射关系的地址。
在一些可能的实现方式中,进一步地,所述查询模块可以具体用于:按照从所述结束存储地址开始至所述起始存储地址的顺序,依次读取所述地址重映射区域中每个地址对应的存储空间中存储的地址映射关系,并判断所述每个地址中的地址映射关系中是否为包含所述指定地址的地址映射关系,直到读取到的地址映射关系为所述指定地址的地址映射关系,并将第一次读取到的地址映射关系作为所述目标地址映射关系。
第三方面,本申请提供了一种flash的数据处理装置,该装置可以包括与存储器耦合的处理器。其中,该存储器用于存储程序代码,该处理器用于执行该存储器中的程序代码,以实现第一方面或其中任意一种实现方式中的方法。
可选地,该装置还可以包括该存储器。
该装置为电子设备时,在一些实现方式中,该装置还可以包括收发器,用于与其他设备通信;或还可以包括与用户交互的输入输出装置。
该装置为用于电子设备的芯片时,在一些实现方式中,该装置还可以包括通信接口,用于与电子设备中的其他装置通信,例如用于与电子设备的收发器进行通信。
第四方面,本申请提供了一种计算机可读存储介质,该计算机可读介质存储用于处理器执行的程序代码,该程序代码包括用于实现第一方面或其中任意一种可能的实现方式中的方法的指令。
第五方面,本申请提供一种包含指令的计算机程序产品,当该计算机程序产品在处理器上运行时,使得该处理器实现第一方面或其中任意一种实现方式中的方法。
第六方面,本申请提供一种芯片,该芯片包括逻辑电路和flash,该逻辑电路和该flash用于实现第一方面或其中任意一种可能的实现方式中的方法。
附图说明
图1为本申请实施例的技术方案的一种应用场景的示意性;
图2为本申请一个实施例的flash的数据存储结构示意图;
图3为本申请一个实施例的数据更新方法的流程示意图;
图4为本申请一个实施例的数据读取方法的流程示意图;
图5为本申请一个实施例的数据更新方法的流程示意图;
图6为本申请另一个实施例的数据读取方法的流程示意图;
图7本申请又一个实施例的数据更新方法的流程示意图;
图8为本申请另一个实施例的flash的数据存储结构示意图;
图9为本申请一个实施例的数据处理装置的示意性结构图;
图10为本申请另一个实施例的数据处理装置的示意性结构图。
具体实施方式
为了更好地理解本申请实施例的技术方案,下面先对本申请实施例中使用到的一些概念进行介绍。
驱动程序(device driver),全称为“设备驱动程序”,是一种可以使计算机和设备通信的特殊程序,可以说相当于硬件的接口。
在一些应用场景中,驱动程序独立于操作系统;在另一些场景中,驱动程序包含于操作系统。但是不管是哪种场景,操作系统只能通过这个接口,才能控制硬件设备的工作。
针对本申请实施例中的flash的驱动程序,是一种可以使得计算机和flash通信的程序,计算机的操作系统通过flash的驱动程序控制flash工作。
例如,如图1中左边的图所示,电子设备的处理器上运行的应用程序可以通过操作系统调用flash的驱动程序向flash中写入数据、更新flash中的数据或读取flash中的数据。
作为另一种可能的实现方式,如图1右边的图所示,电子设备的处理器上运行的应用程序可以通过操作系统向芯片写入数据、更新芯片中的数据或读取芯片中的数据。其中,芯片上可以包括通信接口、逻辑电路和flash,通信接口接收到数据写入请求、数据更新请求或数据读取请求之后,逻辑电路可以根据请求分别向flash中写入数据、更新flash中的数据或读取flash中的数据。
图2是本申请一个实施例的flash的一个页面的数据存储结构示意性。如图2所示,本实施例将flash的一个页面划分为5个区域,分别是:头(header)区域,初始数据(initial data)区域,地址重映射(addr remap)区域,重映射数据(remap data)区域,标记(flag)区域。
head区域用于存储该页面的header信息,head信息可以自定义。
initial data区域又可以称为初始数据空间,用于存储初始写入该页面的代码(code)和数据(data),该代码和数据统一称为数据信息,简称为数据。
remap data区域为预留的空间。对initial data区域中指定地址中的数据进行更新时,remap data区域中的地址可以用来存储initial data中指定地址中期望更新得到的数据。
对initial data区域中指定地址中的数据进行更新时,addr remap区域中的每个地址用于initial data区域中的该指定地址和更新后的数据在remap data区域中的新地址的映射关系。
flag区域中包括多个标记位,这多个标记位与addr remap区域中的多个地址一一对应。flag区域中的每个标记位用于表示addr remap区域中对应的地址是否存储了地址映射关系。
本实施例中,标记位表示addr remap区域中对应的地址存储了地址映射关系时, 可以称为该标记位已置为有效,或者称为该标记位有效;标记位表示addr remap区域中对应的地址未存储地址映射关系时,可以称为该标记位无效;
例如,一个标记位的值为“1”,则表明该标记位有效,即表示addr remap区域中对应的地址存储了地址映射关系;一个标记位的值为“0”,则表明该标记位无效,即表示addr remap区域中对应的地址还未存储地址映射关系。
可以理解的是,上述flag区域中每个标记位的值与该标记位是否有效,即与addr remap区域中对应的地址是否存储地址映射关系之间的对应关系仅是示例,本实施例对此并不限制。
图3是图2所示的flash的数据更新方法的一种示例性流程图。如图3所示,该方法可以包括步骤301、步骤302、步骤303、步骤304、步骤305、步骤306、步骤307和步骤308。
本实施例的方法由flash的数据处理装置来执行。作为一种示例,该数据处理装置为运行在处理器上的flash驱动程序,或者说,该数据处理装置为运行了flash驱动程序的处理器。作为另一种示例,该数据处理装置为包含flash的芯片上的逻辑电路。
本实施例中,数据处理装置中可以记录flash的每个区域的地址范围,例如记录了每个区域的起始地址、结束地址以及每个区域中每个存储空间的大小,又如记录了每个区域的起始地址、每个区域的总存储空间大小以及每个区域中每个存储空间的大小。
301,接收数据更新请求消息,所述数据更新请求消息用于请求将flash内指定页面的指定地址中的数据更新为指定数据。
例如,数据处理装置可以接收来自操作系统的数据更新请求消息,也可以接收应用程序通过操作系统发送的数据更新请求消息。该消息请求将flash中指定页面中的指定地址中的数据更新为指定数据。
该数据处理装置为驱动程序时,作为一种示例,该数据更新请求消息中可以携带该指定页面的指示信息、该指定地址和该指定数据。
该数据处理装置为芯片中的逻辑电路时,该消息中可以仅携带该指定数据。
302,读取所述指定页面的flag区域中存储的信息。
例如,数据处理装置可以根据预先记录的、所述指定页面的flag区域的地址范围读取该地址范围对应的存储空间中的所有标记位。
303,判断所述flag区域中是否还有可用标记位,若是,则执行步骤304,否则执行步骤308。
或者可以说,判断flag区域中是否还有无效标记位。也可以说,判断flag区域中是否所有标记位都有效。
例如,按照步骤302中读取到的所有标记位的使用先后顺序,从第一个标记位开始,依次判断每个标记位是否为有效,即判断每个标记位是否已表示所述指定页面的addr remap区域中对应的地址中存储了地址映射关系。若找到无效标记位,即找到表示addr remap区域中对应的地址中未存储地址映射关系的标记位,则确定flag区域中还有可用标记位,且将该标记位记为当前可用标记位;若最后一个标记位都已有效,即最后一个标记位都已经表示addr remap区域中对应的地址中存储了地址映射关系,则确定flag区域中已无可用标记位。
304,根据所述flag区域中的可用标记位确定addr remap区域中的当前可用地址。
例如,数据处理装置中可以预先记录flag区域中的标记位在flag区域中的位置与addr remap区域中与该标记位对应的地址之间的映射关系。这样,驱动程序可以根据当前可用标记位在flag区域中的位置与该映射关系寻找出addr remap区域中对应的地址,为了描述方便,本实施例将该地址称为addr remap区域中的当前可用地址。
305,将所述指定地址和所述指定页面的remap data区域中的当前可用地址的映射关系存储到所述addr remap区域中的当前可用地址。
作为一种示例,数据处理装置可以按照地址从小到大或从大到小的顺序向remap data区域中写入或者说存储或者说烧写数据,并且每次向remap data区域中写入数据之后,都记录存储该数据的地址。这种情况下,数据处理装置可以基于该地址确定remap data区域中的当前可用地址。
306,将所述指定数据存储到所述remap data区域中的当前可用地址。
作为一种示例,数据处理装置将所述指定数据存储到remap data区域中的当前可用地址之后,记录下当前可用地址,以使得下一次更新数据时,基于该当前可用地址确定下一个当前可用地址。
307,向所述flag区域中的当前可用标记位写入表示所述addr remap区域中的当前可用地址已存储地址映射关系的值。
也就是说,将flag区域中的当前可用标记位烧写为有效。
308,进入换页流程。
例如,将所述指定页面中的所有内容写入另一个页面中,然后擦除所述指定页面中的内容。擦除所述指定页面中的内容之后,可以将所述另一个页面中的内容以及更新后的数据写入所述指定页面。
上述换页流程仅是一种示例,本实施例对此不作限制。其他换页流程的实现方式可以参考现有技术,此处不再赘述。
本实施例的数据更新方法中,在flash中,除了存储初始数据的初始存储空间initial data区域,还划分用于存储更新后数据的remap data区域和用于存储更新后的数据的存储地址与原始地址的映射关系的addr remap区域,并且,对initial data区域中的原始地址中的数据进行更新时,将更新后的数据存储到remap data区域中,并记录该原始地址与remap data中存储更新后数据的地址的映射关系,使得数据处理装置根据该原始地址以及该地址映射关系就能够读取到更新后的数据。
该数据更新方法,不需要每次更新数据都擦除整个页面的数据,并重新烧写包含更新后数据的所有数据,从而可以提高flash的数据更新效率,以及降低flash的老化速度以提高flash的使用寿命。
此外,本实施例中,再额外划分flag区域,该flag区域用标记位来表示addr remap区域中相应的地址是否已存储地址映射关系。这使得数据处理装置根据flag区域中的标记位就能判断出addr remap区域中是否还有能够存储地址映射关系的存储空间,并且在addr remap区域中还有能够存储地址映射关系的存储空间的情况下,基于标记位的位置计算出addr remap中的当前可用地址,而不用挨个读取addr remap区域中每个地址中的内容来判断addr remap区域中是否还能能够存储地址映射关系的存储空间以 及查找addr remap中的当前可用地址,从而可以节省查找addr remap区域中当前可用地址的时间,进而提高flash的数据更新效率。
可以理解的是,本实施例中的步骤305至步骤307的执行顺序只是一种示例,本实施例并不限制这三个步骤之间的执行顺序。
针对上述数据更新方法更新的数据的读取,本申请进一步提出了新的数据读取方法。图4为本申请一个实施例的数据读取方法的流程示意图。
如图4所示,本实施例的数据读取方法可以包括步骤401、步骤402、步骤403、步骤404、步骤405、步骤406和步骤407。
图4所示的方法由数据处理装置执行。作为一种示例,该数据处理装置为运行在处理器上的flash驱动程序,或者说,该数据处理装置为运行了flash驱动程序的处理器。作为另一种示例,该数据处理装置为包含flash的芯片上的逻辑电路。
401,接收数据读取请求消息,所述数据读取请求消息用于请求读取flash的指定页面中的指定地址中的数据。
例如,该数据读取请求消息中可以包括flash中页面指示信息,以指示读取的数据所属的页面;该数据读取请求消息中还可以包括该指定页面中的地址信息,用于指示应读取数据的地址空间。
402,读取所述指定页面的flag区域中存储的信息。该步骤可以参考步骤302,此处不再赘述。
403,判断所述flag区域是否为空,若是,则执行步骤407,否则执行步骤404。
作为一种示例,读取flag区域中所有标记位的内容,若任何一个标记位均表示所述指定页面的addr remap区域中对应的地址中还未存储地址映射关系,则可以确定flag区域中为空,否则可以确定flag区域不为空。
404,根据所述flag区域中表示所述指定页面的addr remap区域中对应的地址中已存储地址映射关系的标记位的数量,确定所述addr remap区域中的结束存储地址,所述结束存储地址为所述addr remap区域中最后一个已经存储地址映射关系的地址。
例如,数据处理装置中可以根据上述数量、addr remap区域的起始地址和addr remap区域中的单位地址大小,计算addr remap区域中最后一个已经存储了地址映射关系的地址,并将该地址作为结束存储地址。
可以理解的是,addr remap区域的起始存储地址指的是在addr remap区域中存储第一个地址映射关系的地址,且通常来说,数据处理装置按照地址从大到小或从小到大的顺序向addr remap区域中存储地址映射关系。
405,在所述addr remap区域的起始存储地址至所述结束存储地址之间的存储空间中查询包含所述指定地址的目标地址映射关系,所述起始存储地址为所述addr remap区域中第一个存储地址映射关系的地址。
作为一种示例,数据处理装置可以按照从起始存储地址开始至结束存储地址的顺序,依次读取addr remap区域中每个地址对应的存储空间中存储的地址映射关系,并判断该地址映射关系中为包含所述指定地址的地址映射关系。若该地址映射关系中为包含所述指定地址的地址映射关系,则将该地址映射关系确定为目标地址映射关系。
作为另一种示例,数据处理装置可以按照从结束存储地址开始至起始存储地址的 顺序,依次读取addr remap区域中每个地址对应的存储空间中存储的地址映射关系,并判断该地址映射关系中是否为包含所述指定地址的地址映射关系。若该地址映射关系中为包含所述指定地址的地址映射关系,则将该地址映射关系确定为目标地址映射关系。
若在读取所述指定地址中的数据之前,更新过所述地址中的数据两次或以上次数,则后一种示例与前一种示例相比,可以查询得到所述指定地址的最新目标地址映射关系,从而可以查询得到最新数据的存储地址,进而可以读取到最新数据。
406,根据所述目标地址映射关系读取所述指定页面的remap data区域中的目标地址中的数据,所述目标地址为所述目标地址映射关系中包含的与所述指定地址具有映射关系的地址。
407,读取initial data区域中的所述指定地址中的数据。
本实施例中,在步骤405中,若直到查询完起始存储地址至结束存储地址之间的存储空间,都没有查询到包含所述指定地址的地址映射关系,则可以执行步骤407。
本申请另一个实施例中,flash中可以不划分flag区域。如图8所示,本实施例中的flash可以划分为head区域、addr remap区域、remap data区域和initial data区域。
相应地,本实施例的flash的数据更新方法中可以不包括步骤302、步骤303、步骤304和步骤307。该实施例中,在步骤301之后,步骤305之前,可以包括如下步骤:判断addr remap区域中是否还有可用地址,若是,则执行步骤305,否则执行308。
下面通过几个示例介绍一下判断addr remap区域中是否还有可用地址的实现方式。可以理解的是,本申请的实施例中并不限定判断addr remap区域中是否还有可用地址的实现方式。
作为一种示例,数据处理装置向addr remap区域中写入地址映射关系式,按照地址从小到大的顺序写入。该示例中,数据处理装置判断addr remap区域中是否还有可用地址时,可以按照地址从小到大的顺序依次读取addr remap区域中每个地址对应的存储空间中的内容,并根据该存储空间中是否已存储有地址映射关系来判断该存储空间是否可用。若该存储空间中已存储有地址映射关系,则确定该存储空间对应的地址为不可用地址,且继续读取下一个地址对应的存储空间中的内容,重复前述操作;否则可以确定该存储空间对应的地址为可用地址,即确定addr remap区域中还有可用地址,且将该可用地址确定为addr remap区域中的当前可用地址。
若addr remap区域中所有存储空间中均存储了地址映射关系,则可以确定addr remap区域中已无可用地址。
作为另一种示例,数据处理装置向addr remap区域中写入地址映射关系时,按照地址从小到大的顺序写入,且数据处理装置每次向addr remap区域中写入地址映射关系之后,可以记录当前写入地址映射关系的地址。这样,数据处理装置需要判断该addr remap区域中还有可用地址时,可以判断记录的地址是否为addr remap区域中的最大地址,若是,则可以确定addr remap区域中已无可用地址,否则可以确定addr remap区域中还有可用地址,且将记录的地址加上单位存储空间大小即可得到addr remap区域中的当前可用地址。
由上述各个实施例可知,本申请的技术方案中,在数据处理装置接收到请求将flash 内指定页面的指定地址中的数据更新为指定数据的消息时,只要将指定数据存储到remap data区域中的存储空间中,并在addr remap区域中记录下该存储空间对应的新地址与该指定地址的映射关系即可。
也就是说,本申请提出的数据更新方法中,如图5所示,只要至少包括步骤501、步骤502、步骤503、步骤504和步骤505,即可以达到不擦除整页内容就能够更新指定地址中的数据的目的,从而可以节省数据更新时间,提高flash的使用寿命。
501,接收数据更新请求消息,所述数据更新请求消息用于请求将flash内指定页面的指定地址中的数据更新为指定数据。
该步骤可以参考步骤301,此处不再赘述。
502,判断所述指定页面的addr remap区域中是否还有可用地址,若是则执行步骤503,否则执行步骤505。
判断所述指定页面的addr remap区域中是否还有可用地址的方法参考前述相关内容,此处不再赘述。
在addr remap区域中是否还有可用地址的情况下,才将所述指定数据写入remap data区域,将相应的地址映射关系写入addr remap区域,可以避免数据溢出,从而可以避免数据丢失。
503,将所述指定地址与所述指定页面的remap data区域中的当前可用地址的地址映射关系,写入所述指定页面的addr remap区域中的当前可用地址中。
作为一种示例,将所述地址映射关系写入所述addr remap区域中的当前可用地址中之后,可以将该当前可用地址记录下来作为结束存储地址。
504,将所述指定数据写入所述指定页面的remap data区域中的当前可用地址。
505,进入换页流程。该步骤可以参考步骤308,此处不再赘述。
图5所示的数据更新方法对应的数据读取方法的一种流程示意图如图6所示。该方法可以包括步骤601、步骤602和步骤603。
601,接收数据读取请求消息,所述数据读取请求消息用于请求读取flash的指定页面中的指定地址中的数据。
602,在所述指定页面的addr remap区域的起始存储地址至结束存储地址之间的存储空间中查询包含所述指定地址的目标地址映射关系,所述起始存储地址为所述addr remap区域中第一个存储地址映射关系的地址,所述结束存储地址为所述addr remap区域中最后一个已经存储地址映射关系的地址。
603,根据所述目标地址映射关系读取所述指定页面的remap data区域中的目标地址中的数据,所述目标地址为所述目标地址映射关系中包含的与所述指定地址具有映射关系的地址。
本实施例中,步骤601、步骤602和步骤603可以分别参考步骤401、步骤405和步骤406,此处不再赘述。
在本申请的又一些实施例中,可选地,可以将flash中的每个页面的存储空间设计的较大,进一步可以将addr remap区域和remap data区域设计得较大,例如大到在该页面的生命周期中,进行更新的所有数据的存储空间均不会超过remap data区域的存储空间,相应地,进行更新所生成的地址映射关系所需的存储空间不会超过addr remap 区域的存储空间。
本实施例的数据更新方法的流程示意图如图7所示。该方法可以包括步骤701、步骤702和步骤703。
701,接收数据更新请求消息,所述数据更新请求消息用于请求将flash内指定页面的指定地址中的数据更新为指定数据。
702,将所述指定地址与所述指定页面的remap data区域中的当前可用地址的地址映射关系,写入所述指定页面的addr remap区域中的当前可用地址中。
703,将所述指定数据写入所述指定页面的remap data区域中的当前可用地址。
本实施例中的步骤701、步骤702和步骤703可以分别参考步骤501、步骤503和步骤504,此处不再赘述。
本实施例的数据更新方法对应的数据读取方法,可以参看图6所示的方法,此处不再赘述。
可以理解的是,本申请中的数据更新方法和数据读取方法,可以统称为flash的数据处理方法。此外,本申请各个实施例中的flash中可以不包括header区域。另外,本申请各个实施例中的header区域、addr remap区域、flag区域、remap data区域和initial区域的名称只是示例,本申请对这些区域的名称并不做限制,只要功能与前述各个实施例中的各个区域的功能相符,即属于本申请的保护范围。
图9为本申请一个实施例提供的数据处理装置的结构示意图。图9所示的装置可以用于执行前述任意一个实施例所述的方法。如图9所示,本实施例的装置900可以包括:接收模块901和写入模块902。可选地,装置900还可以包括查询模块903和读取模块904。进一步地,装置900还可以包括判断模块905和确定模块906。
在一种示例中,装置900可以用于执行图3所述的方法。例如,接收模块901可以用于执行步骤301,读取模块906可以用于执行步骤302,判断模块905可以用于执行步骤303,确定模块906可以用于执行步骤304,写入模块902可以用于执行步骤305至步骤308。
在一种示例中,装置900可以用于执行图4所述的方法。例如,接收模块901可以用于执行步骤401,读取模块906可以用于执行步骤402,判断模块905可以用于执行步骤403,确定模块906可以用于执行步骤404,查询模块903可以用于执行步骤405,读取模块906还可以用于执行步骤406和步骤407。
在一种示例中,装置900可以用于执行图5所述的方法。例如,接收模块901可以用于执行步骤501,判断模块905可以用于执行步骤502,写入模块902可以用于执行步骤503至步骤505。
在一种示例中,装置900可以用于执行图6所述的方法。例如,接收模块901可以用于执行步骤601,查询模块903可以用于执行步骤602,读取模块906还可以用于执行步骤603。
在一种示例中,装置900可以用于执行图7所述的方法。例如,接收模块901可以用于执行步骤701,写入模块902可以用于执行步骤702和步骤703。
图10为本申请另一个实施例提供的数据处理装置的结构示意图。图10所示的装置可以用于执行前述任意一个实施例所述的方法。
如图10所示,本实施例的装置1000包括:存储器1001、处理器1002、通信接口1003以及总线1004。其中,存储器1001、处理器1002、通信接口1003通过总线1004实现彼此之间的通信连接。
存储器1001可以是只读存储器(read only memory,ROM),静态存储设备,动态存储设备或者随机存取存储器(random access memory,RAM)。存储器1001可以存储程序,当存储器1001中存储的程序被处理器602执行时,处理器602用于执行图3至图7中任意图所示的方法的各个步骤。
处理器1002可以采用通用的中央处理器(central processing unit,CPU),微处理器,应用专用集成电路(application specific integrated circuit,ASIC),或者一个或多个集成电路,用于执行相关程序,以实现本申请各个实施例中的方法。
处理器1002还可以是一种集成电路芯片,具有信号的处理能力。在实现过程中,本申请各个实施例的方法的各个步骤可以通过处理器1002中的硬件的集成逻辑电路或者软件形式的指令完成。
上述处理器1002还可以是通用处理器、数字信号处理器(digital signal processing,DSP)、专用集成电路(ASIC)、现成可编程门阵列(field programmable gate array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
结合本申请实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器1001,处理器1002读取存储器1001中的信息,结合其硬件完成本申请的装置包括的单元所需执行的功能,例如,可以执行图3至图7任意图所示实施例的各个步骤/功能。
通信接口1003可以使用但不限于收发器一类的收发装置,来实现装置1000与其他设备或通信网络之间的通信。
总线1004可以包括在装置1000各个部件(例如,存储器1001、处理器1002、通信接口1003)之间传送信息的通路。
应理解,本申请实施例所示的装置1000可以是电子设备,或者,也可以是配置于电子设备中的芯片。
应理解,本申请实施例中的处理器可以为中央处理单元(central processing unit,CPU),该处理器还可以是其他通用处理器、数字信号处理器(digital signal processor,DSP)、专用集成电路(application specific integrated circuit,ASIC)、现成可编程门阵列(field programmable gate array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
还应理解,本申请实施例中的存储器可以是易失性存储器或非易失性存储器,或可包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(read-only memory,ROM)、可编程只读存储器(programmable ROM,PROM)、 可擦除可编程只读存储器(erasable PROM,EPROM)、电可擦除可编程只读存储器(electrically EPROM,EEPROM)或闪存。易失性存储器可以是随机存取存储器(random access memory,RAM),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的随机存取存储器(random access memory,RAM)可用,例如静态随机存取存储器(static RAM,SRAM)、动态随机存取存储器(DRAM)、同步动态随机存取存储器(synchronous DRAM,SDRAM)、双倍数据速率同步动态随机存取存储器(double data rate SDRAM,DDR SDRAM)、增强型同步动态随机存取存储器(enhanced SDRAM,ESDRAM)、同步连接动态随机存取存储器(synchlink DRAM,SLDRAM)和直接内存总线随机存取存储器(direct rambus RAM,DR RAM)。
上述实施例,可以全部或部分地通过软件、硬件、固件或其他任意组合来实现。当使用软件实现时,上述实施例可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令或计算机程序。在计算机上加载或执行所述计算机指令或计算机程序时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以为通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集合的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质。半导体介质可以是固态硬盘。
应理解,本文中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况,其中A,B可以是单数或者复数。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系,但也可能表示的是一种“和/或”的关系,具体可参考前后文进行理解。
本申请中,“至少一个”是指一个或者多个,“多个”是指两个或两个以上。“以下至少一项(个)”或其类似表达,是指的这些项中的任意组合,包括单项(个)或复数项(个)的任意组合。例如,a,b,或c中的至少一项(个),可以表示:a,b,c,a-b,a-c,b-c,或a-b-c,其中a,b,c可以是单个,也可以是多个。
应理解,在本申请的各种实施例中,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、 装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器、随机存取存储器、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。

Claims (16)

  1. 一种闪存的数据处理方法,其特征在于,所述闪存中的页面划分为多个存储区域,所述多个存储区域包括初始数据区域、重映射数据区域和地址重映射区域,所述方法包括:
    接收数据更新请求消息,所述数据更新请求消息用于请求将所述闪存内指定页面的指定地址中的数据更新为指定数据,所述指定地址为所述初始数据区域中的地址;
    将所述指定数据写入所述重映射数据区域中的当前可用地址;
    将所述指定地址与所述重映射数据区域中的当前可用地址的地址映射关系,写入所述地址重映射区域。
  2. 根据权利要求1所述的方法,其特征在于,所述指定页面还包括标记区域,相应地,所述方法还包括:
    判断所述标记区域中是否还有可用标记位,所述标记位用于指示所述地址重映射区域中与所述标记位对应的地址中是否存储有地址映射关系;
    在所述标记区域中是否还有可用标记位的情况下,根据所述标记区域中的可用标记位确定所述地址重映射区域中的当前可用地址。
  3. 根据权利要求2所述的方法,其特征在于,所述方法还包括:
    接收数据读取请求消息,所述数据读取请求消息用于请求读取所述指定页面中的所述指定地址中的数据;
    判断所述标记区域是否为空;
    所述标记区域不为空的情况下,根据所述标记区域中表示所述地址重映射区域中对应的地址中已存储地址映射关系的标记位的数量,确定所述地址重映射区域中的结束存储地址,所述结束存储地址为所述地址重映射区域中最后一个已经存储地址映射关系的地址;
    在所述地址重映射区域的起始存储地址至所述结束存储地址之间的存储空间中查询包含所述指定地址的目标地址映射关系,所述起始存储地址为所述地址重映射区域中第一个存储地址映射关系的地址;
    根据所述目标地址映射关系读取所述重映射数据区域中所述目标地址中的数据,所述目标地址为所述目标地址映射关系中包含的与所述指定地址具有映射关系的地址;
    所述标记区域不为空的情况下,读取所述指定地址中的数据。
  4. 根据权利要求1所述的方法,其特征在于,所述方法还包括:判断所述地址重映射区域中是否还有可用地址;
    相应地,所述将所述指定数据写入所述重映射数据区域中的当前可用地址,包括:
    所述地址重映射区域中还有可用地址的情况下,将所述指定数据写入所述重映射数据区域中的当前可用地址。
  5. 根据权利要求4所述的方法,其特征在于,所述方法还包括:
    接收数据读取请求消息,所述数据读取请求消息用于请求读取所述指定页面中的所述指定地址中的数据;
    在所述地址重映射区域的起始存储地址至所述结束存储地址之间的存储空间中查询包含所述指定地址的目标地址映射关系,所述起始存储地址为所述地址重映射区域 中第一个存储地址映射关系的地址,所述结束存储地址为所述地址重映射区域中最后一个已经存储地址映射关系的地址;
    根据所述目标地址映射关系读取所述重映射数据区域中所述目标地址中的数据,所述目标地址为所述目标地址映射关系中包含的与所述指定地址具有映射关系的地址。
  6. 根据权利要求3或5所述的方法,其特征在于,所述在所述地址重映射区域的起始存储地址至所述结束存储地址之间的存储空间中查询包含所述指定地址的目标地址映射关系,包括:
    按照从所述结束存储地址开始至所述起始存储地址的顺序,依次读取所述地址重映射区域中每个地址对应的存储空间中存储的地址映射关系,并判断所述每个地址中的地址映射关系中是否为包含所述指定地址的地址映射关系,直到读取到的地址映射关系为包含所述指定地址的地址映射关系,并将最后一次读取到的地址映射关系作为所述目标地址映射关系。
  7. 一种闪存的数据处理装置,其特征在于,所述闪存中的页面划分为多个存储区域,所述多个存储区域包括初始数据区域、重映射数据区域和地址重映射区域,所述装置包括:
    接收模块,用于接收数据更新请求消息,所述数据更新请求消息用于请求将闪存内指定页面的指定地址中的数据更新为指定数据,所述指定地址为所述初始数据区域中的地址;
    写入模块,用于将所述指定数据写入所述重映射数据区域中的当前可用地址;
    所述写入模块还用于将所述指定地址与所述重映射数据区域中的当前可用地址的地址映射关系,写入所述地址重映射区域。
  8. 根据权利要求7所述的装置,其特征在于,所述指定页面还包括标记区域,相应地,所述装置还包括判断模块和确定模块;
    所述判断模块用于判断所述标记区域中是否还有可用标记位,所述标记位用于指示所述地址重映射区域中与所述标记位对应的地址中是否存储有地址映射关系;
    所述确定模块用于在所述标记区域中是否还有可用标记位的情况下,根据所述标记区域中的可用标记位确定所述地址重映射区域中的当前可用地址。
  9. 根据权利要求8所述的装置,其特征在于,所述接收模块还用于接收数据读取请求消息,所述数据读取请求消息用于请求读取所述指定页面中的所述指定地址中的数据;
    相应地,所述装置还包括判断模块、确定模块、查询模块和读取模块;
    所述判断模块用于判断所述标记区域是否为空;
    所述确定模块用于在所述标记区域不为空的情况下,根据所述标记区域中表示所述地址重映射区域中对应的地址中已存储地址映射关系的标记位的数量,确定所述地址重映射区域中的结束存储地址,所述结束存储地址为所述地址重映射区域中最后一个已经存储地址映射关系的地址;
    所述查询模块用于在所述地址重映射区域的起始存储地址至所述结束存储地址之间的存储空间中查询包含所述指定地址的目标地址映射关系,所述起始存储地址为所述地址重映射区域中第一个存储地址映射关系的地址;
    所述读取模块用于根据所述目标地址映射关系读取所述重映射数据区域中所述目标地址中的数据,所述目标地址为所述目标地址映射关系中包含的与所述指定地址具有映射关系的地址;
    所述读取模块还用于在所述标记区域不为空的情况下,读取所述指定地址中的数据。
  10. 根据权利要求7所述的装置,其特征在于,所述装置还包括判断模块,用于判断所述地址重映射区域中是否还有可用地址;
    相应地,所述写入模块具体用于:
    在所述地址重映射区域中还有可用地址的情况下,将所述指定数据写入所述重映射数据区域中的当前可用地址。
  11. 根据权利要求10所述的装置,其特征在于,所述接收模块还用于接收数据读取请求消息,所述数据读取请求消息用于请求读取所述指定页面中的所述指定地址中的数据;
    相应地,所述装置还包括查询模块和读取模块;
    所述查询模块用于在所述地址重映射区域的起始存储地址至所述结束存储地址之间的存储空间中查询包含所述指定地址的目标地址映射关系,所述起始存储地址为所述地址重映射区域中第一个存储地址映射关系的地址,所述结束存储地址为所述地址重映射区域中最后一个已经存储地址映射关系的地址;
    所述读取模块用于根据所述目标地址映射关系读取所述重映射数据区域中所述目标地址中的数据,所述目标地址为所述目标地址映射关系中包含的与所述指定地址具有映射关系的地址。
  12. 根据权利要求9或11所述的装置,其特征在于,所述查询模块具体用于:
    按照从所述结束存储地址开始至所述起始存储地址的顺序,依次读取所述地址重映射区域中每个地址对应的存储空间中存储的地址映射关系,并判断所述每个地址中的地址映射关系中是否为包含所述指定地址的地址映射关系,直到读取到的地址映射关系为所述指定地址的地址映射关系,并将第一次读取到的地址映射关系作为所述目标地址映射关系。
  13. 一种闪存的数据处理装置,其特征在于,所述装置包括与存储器耦合的处理器,所述处理器用于执行所述存储器中的程序代码,以实现如权利要求1至6中任一项所述的方法。
  14. 一种计算机可读介质,其特征在于,所述存储介质中存储有计算机程序或指令,当所述计算机程序或指令被处理器执行时,实现如权利要求1至6中任一项所述的方法。
  15. 一种芯片,其特征在于,包括逻辑电路和闪存,所述闪存中的页面划分为多个存储区域,所述多个存储区域包括初始数据区域、重映射数据区域和地址重映射区域,所述逻辑电路用于实现如权利要求1至6中任一项所述的方法。
  16. 一种计算机程序产品,所述计算机程序产品能够在处理器上运行,其特征在于,所述计算机程序产品包含用于实现如权利要求1至6中任一项所述的方法的指令。
CN202080107643.XA 2020-12-03 2020-12-03 闪存的数据处理方法和数据处理装置 Pending CN116547652A (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2020/133497 WO2022116067A1 (zh) 2020-12-03 2020-12-03 闪存的数据处理方法和数据处理装置

Publications (1)

Publication Number Publication Date
CN116547652A true CN116547652A (zh) 2023-08-04

Family

ID=81853759

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202080107643.XA Pending CN116547652A (zh) 2020-12-03 2020-12-03 闪存的数据处理方法和数据处理装置

Country Status (2)

Country Link
CN (1) CN116547652A (zh)
WO (1) WO2022116067A1 (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117853312B (zh) * 2024-01-16 2024-08-09 上海为旌科技有限公司 一种从存储器提取图像数据的方法及装置

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100504814C (zh) * 2007-01-17 2009-06-24 忆正存储技术(深圳)有限公司 闪存的区块管理方法
KR20100082185A (ko) * 2009-01-08 2010-07-16 삼성전자주식회사 플래시 메모리, 캐시 메모리, 그리고 제어기를 포함하는 사용자 장치
CN104317753B (zh) * 2014-10-21 2017-09-22 中国科学院上海微系统与信息技术研究所 存储设备及其数据读写方法
CN107526535B (zh) * 2016-06-22 2020-07-10 伊姆西Ip控股有限责任公司 用于管理存储系统的方法和系统

Also Published As

Publication number Publication date
WO2022116067A1 (zh) 2022-06-09

Similar Documents

Publication Publication Date Title
CN109426619B (zh) 访问快闪存储器模块的方法及相关闪存控制器与电子装置
JP5597666B2 (ja) 半導体記憶装置、情報処理システムおよび制御方法
US7127551B2 (en) Flash memory management method
US9563551B2 (en) Data storage device and data fetching method for flash memory
US8281072B2 (en) Data processing system, controller, and method thereof for searching for specific memory area
US20070016719A1 (en) Memory device including nonvolatile memory and memory controller
TWI661303B (zh) 存取快閃記憶體模組的方法及相關的快閃記憶體控制器與電子裝置
CN106648463B (zh) Nand Flash块管理方法和系统
US11614885B2 (en) Data processing method for improving access performance of memory device and data storage device utilizing the same
US20150113210A1 (en) Data storage flash memory management method and program
KR20170010810A (ko) 플래시 메모리 내에 데이터를 판독/기록하기 위한 방법, 장치 및 사용자 장비
CN113961140B (zh) 数据处理方法及对应的数据储存装置
CN113885778B (zh) 数据处理方法及对应的数据储存装置
JP2000020252A (ja) 不揮発性半導体メモリを用いた記憶装置
US11327939B2 (en) Method and device for indexing dirty data in storage system page
CN112596668A (zh) 一种存储器的坏块处理方法及系统
CN113885779B (zh) 数据处理方法及对应的数据储存装置
CN116547652A (zh) 闪存的数据处理方法和数据处理装置
KR101826778B1 (ko) 플래쉬 라이프 사이클 및 성능 개선을 고려한 eeprom 에뮬레이션 구현 방법
CN112965661A (zh) 数据存储方法、装置、设备及存储介质
CN116048428A (zh) 数据请求处理方法、装置、存储设备和可读存储介质
CN108304331B (zh) 基于NorFlash的环形队列式数据存储方法及装置
US20090055574A1 (en) NAND Flash Memory Device And Related Method Thereof
KR100688463B1 (ko) 물리 메모리의 데이터 기록 및 삭제 방법
CN113760195B (zh) 一种基于嵌入式的fatfs文件系统

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