CN104090732A - 非易失性存储器的管理方法和装置 - Google Patents

非易失性存储器的管理方法和装置 Download PDF

Info

Publication number
CN104090732A
CN104090732A CN201410347172.6A CN201410347172A CN104090732A CN 104090732 A CN104090732 A CN 104090732A CN 201410347172 A CN201410347172 A CN 201410347172A CN 104090732 A CN104090732 A CN 104090732A
Authority
CN
China
Prior art keywords
page
data
free
look
physical
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
CN201410347172.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.)
Beijing KT Micro Ltd
Original Assignee
Beijing KT Micro 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 Beijing KT Micro Ltd filed Critical Beijing KT Micro Ltd
Priority to CN201410347172.6A priority Critical patent/CN104090732A/zh
Publication of CN104090732A publication Critical patent/CN104090732A/zh
Pending legal-status Critical Current

Links

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

本发明涉及一种非易失性存储器的管理方法和装置。该非易失性存储器包括复数个物理页,物理页划分为数据页和空闲页,每个物理页包括页头和数据区,该方法包括:通过扫描全部物理页的页头信息在内存中建立数据页查找表和空闲页查找表,设置一个指向空闲页查找表中的一个物理页号的空闲页指针;当进行目标数据页的写操作时,根据空闲页查找表,对空闲页指针指向的物理页号对应的物理页依次进行擦除操作和写操作,将数据页查找表中目标数据页的物理页号与空闲页查找表中空闲页指针指向的空闲页的物理页号互换,配置空闲页指针指向空闲页查找表的另外一个物理页号。本发明可以提高写数据的效率,提高NVM的寿命。

Description

非易失性存储器的管理方法和装置
技术领域
本发明涉及存储器领域,尤其涉及一种非易失性存储器的管理方法和装置。
背景技术
在社会高速发展的今天,非易失性存储器(Nonvolatile memory,简称:NVM)的使用已经随处可见,并跟生活息息相关,常见的NVM有电可擦可编程只读存储器(Electrically Erasable Programmable Read-OnlyMemory,简称:EEPROM)和闪存(Flash Memory,简称:FLASH)。比如,公交、社保、银行、电力、身份识别等各个领域都用到的智能卡都广泛使用了NVM。因此,保证NVM中数据高效安全存储就显得尤为重要。智能卡在工作过程中,如果发生断电或其他不可预知的错误,导致智能卡擦除或者写入数据过程异常终止,将会使写入数据不正确,这样就严重威胁数据完整性和安全性。因此需要有一种解决方案来完成数据的断电保护问题。
当前,解决断电保护问题一般是采用备份区来完成,即,在存储区申请一块备份区,用户更新数据的流程如下:
步骤1、擦除备份区;
步骤2、写旧数据到备份区;
步骤3、写备份区标识;
步骤4、擦除原数据区;
步骤5、写新数据到原数据区;
步骤6、写备份区清空标识。
通过上述这种方法来完成数据安全写入,这样,可以保证数据要么就全部写对,要么就没有写数据,不会出现其他情况,从而保证了数据的完整性。但是利用这种方法,安全更新一次数据需要写4次和擦两次,导致写数据的效率较低。而且,每写一次数据就需要写一次备份区和擦一次备份区,擦写备份区的次数就会很多,将大大减少NVM的寿命。
发明内容
本发明提供一种非易失性存储器的管理方法和装置,用以实现提高写数据的效率,提高NVM的寿命。
本发明提供一种非易失性存储器的管理方法,所述非易失性存储器包括复数个物理页,所述物理页划分为数据页和空闲页,每个物理页包括页头和数据区,所述方法包括:
通过扫描全部物理页的页头信息在内存中建立数据页查找表和空闲页查找表,其中,所述数据页查找表用于建立从所述数据页的逻辑页号到所述数据页的物理页号的映射,所述空闲页查找表用于存储所述空闲页的物理页号,设置一个指向所述空闲页查找表中的一个物理页号的空闲页指针;
当进行目标数据页的写操作时,根据所述空闲页查找表,对所述空闲页指针指向的物理页号对应的物理页依次进行擦除操作和写操作,将所述数据页查找表中所述目标数据页的物理页号与所述空闲页查找表中所述空闲页指针指向的空闲页的物理页号互换,配置所述空闲页指针指向所述空闲页查找表的另外一个物理页号。
本发明还提供一种非易失性存储器的管理装置,所述非易失性存储器包括复数个物理页,所述物理页划分为数据页和空闲页,每个物理页包括页头和数据区,所述装置包括:
查找表建立模块,用于通过扫描全部物理页的页头信息,在内存中建立数据页查找表和空闲页查找表,其中,所述数据页查找表用于建立从所述数据页的逻辑页号到所述数据页的物理页号的映射,所述空闲页查找表用于存储所述空闲页的物理页号;
指针设置模块,用于设置一个指向所述空闲页查找表中的一个物理页号的空闲页指针;
第一数据写模块,用于当进行目标数据页的写操作时,根据所述空闲页查找表,对所述空闲页指针指向的物理页号对应的物理页依次进行擦除操作和写操作,将所述数据页查找表中所述目标数据页的物理页号与所述空闲页查找表中所述空闲页指针指向的空闲页的物理页号互换,配置所述空闲页指针指向所述空闲页查找表的另外一个物理页号。
在本发明中,执行一次写操作只需要对NVM先后进行一次页擦除操作和一次页写操作,相对于现有技术中执行一次写操作需要对NVM写4次和擦两次,极大地节省了操作时间,提高了写数据的效率。由于对NVM的操作次数减少了,提高了NVM的寿命。
附图说明
图1为本发明NVM的管理方法实施例的流程示意图;
图2为本发明NVM的管理方法实施例中一个写数据实例的原理示意图;
图3为本发明非易失性存储器的管理装置实施例的结构示意图。
具体实施方式
下面结合说明书附图和具体实施方式对本发明作进一步的描述。
NVM的管理方法第一实施例
在本实施例中,该NVM包括复数个物理页,复数个物理页划分为数据页和空闲页,每个物理页包括页头和数据区。
如图1所示,为本发明NVM的管理方法实施例的流程示意图,该方法可以包括如下步骤:
步骤11、通过扫描全部物理页的页头信息在内存中建立数据页查找表和空闲页查找表;
其中,数据页查找表用于建立从数据页的逻辑页号到数据页的物理页号的映射,空闲页查找表用于存储空闲页的物理页号;可选地,该步骤可以在系统上电时执行;内存为易失性存储器;需要说明的是,该空闲页可以为写有旧数据的物理页,也可以为空白的物理页。
步骤12、设置一个指向空闲页查找表中的一个物理页号的空闲页指针;
步骤13、当进行目标数据页的写操作时,根据空闲页查找表,对空闲页指针指向的物理页号对应的物理页依次进行擦除操作和写操作,将数据页查找表中目标数据页的物理页号与空闲页查找表中空闲页指针指向的空闲页的物理页号互换,配置空闲页指针指向空闲页查找表的另外一个物理页号。
在步骤13中,写操作的输入为目标数据页的逻辑页号。写数据时,根据空闲页指针查找空闲页查找表得到空闲页的物理页号,计算页头,然后根据空闲页的物理页号在NVM中找到空闲页,先将空闲页中的数据擦除,再将数据和页头写入空闲页中。
在步骤13中,在内存中查找空闲页查找表和数据页查找表所花费的时间相对于在NVM中写数据和擦数据所花费的时间可以忽略不计。
在本实施例中,执行一次写操作只需要对NVM先后进行一次页擦除操作和一次页写操作,相对于现有技术中执行一次写操作需要对NVM写4次和擦两次,极大地节省了操作时间,提高了写数据的效率。由于对NVM的操作次数减少了,提高了NVM的寿命。
可选地,在步骤11中,数据页查找表的索引是数据页的逻辑页号,在数据页查找表中存放了与该逻辑页号对应的数据页的物理页号。
进一步地,在步骤11中,当执行建立数据页查找表和空闲页查找表时,根据页头信息判定上次写操作非正常结束时,执行异常处理程序。进一步地,异常处理程序可以包括如下两种情况:情况1、根据页头信息判定在擦除操作的过程中或者在写操作的过程中掉电,则将擦除了部分数据的物理页或写入了部分数据的物理页作为空闲页,然后将该空闲页的物理页号存储到空闲页查找表中,从而保证数据的完整性。
情况2、根据页头信息判定在写操作之后掉电,则将保存有新数据的物理页作为数据页,在数据页查找表中建立该数据页的逻辑页号到该数据页的物理页号的映射,将保存有旧数据的物理页作为空闲页,将该空闲页的物理页号存储到空闲页查找表中。
可选地,在步骤11中,扫描NVM的全部物理页的页头信息时,可以采用顺序扫描的方式读取全部物理页的页头信息或者采用随机无序扫描的方式读取全部物理页的页头信息。当采用顺序扫描的方式读取全部物理页的页头信息时,得到的空闲页查找表总是按照一个固定次序把空闲页的物理页号填入查找表,这样,有些物理页可能总是被先用了写数据;为了避免这个情况,在步骤12中,为空闲页指针分配一个随机数,使得空闲页指针随机指向空闲页查找表中的一个物理页号,这样,在步骤13中可以根据该空闲页指针随机地从空闲页中选取一个物理页写入数据。
可选地,当进行目标数据页的写操作时,根据数据页查找表判定目标数据页的物理页号对应的物理页是空白页,则直接在目标数据页的物理页号对应的物理页中写数据,直到把所有数据页都写了一次之后,再执行步骤13。其中,空白页表示该物理页从未写入过数据。
可选地,为了节省内存空间,数据页查找表以数据页的逻辑页号为索引存储数据页的物理页号,通过这种方式建立从数据页的逻辑页号到数据页的物理页号的映射。此时,在实际实现过程中,也可以将数据页查找表和空闲页查找表合成为一个表,而不必单独放置在两个内存模块。
可选地,在本实施例中,当进行目标数据页的读操作时,根据数据页查找表从目标数据页的物理页号对应的物理页中读取数据。该步骤的输入为目标数据页的逻辑页号和页偏移地址。具体地,读操作的输入为目标数据页的逻辑页号和页偏移地址,将目标数据页的逻辑页号送到数据页查找表,得到目标数据页的物理页号,根据目标数据页的物理页号和页偏移地址去NVM中读取目标数据页的物理页号对应的数据页中的数据。
可选地,当进行目标数据页的写操作或读操作时,如果输入为目标数据页的逻辑地址,本实施例还可以包括如下步骤:根据目标数据页的逻辑地址计算得到目标数据页的逻辑页号和页偏移地址。具体地,逻辑页号=(逻辑地址/逻辑页长度)的商的整数部分,逻辑页长度=物理页长度-物理页页头长度。例如:若物理页长度为256-byte,物理页页头长度为8-byte,则逻辑页长度为248-byte。
可选地,在步骤13中,当空闲页查找表中存储的物理页号对应的物理页中存在空白页时,可以配置空闲页指针指向一个空白页的物理页号,优选地,配置空闲页指针指向任意一个空白页的物理页号。当空闲页查找表中没有空白页时,可以配置空闲页指针顺序指向空闲页查找表的下一个物理页号。
下面通过一个具体实例详细说明本实施例的工作过程。
如图2所示,为本发明NVM的管理方法实施例中一个写数据实例的原理示意图,NVM包括12个物理页:物理页0-11,其中8个物理页被初始化为数据页,4个物理页被初始化为空闲页,NVM的选址方式为物理页号+页偏移地址。每个NVM物理页包括页头和数据区,页头的长度为8字节,数据区的长度等于逻辑页长度。其中,页头包括逻辑页号、空闲标志、计数位、第一检错码EDC1、预留区RFU和第二检错码EDC2;其中,第一检错码EDC1用于对页头除第二检错码EDC2外的数据进行检错,第二检错码EDC-2用于对数据区的数据进行检错,计数位用于根据逻辑页号对页写进行计数,即对同一个逻辑页号进行一次写操作,该计数位进行一次计数,根据计数位可以判定哪个物理页的数据是最新的。例如:计数位采用32比特顺序计数,计数从0开始,每写入一次逻辑页,该页的计数位加1。如果同一个逻辑页号对应两个物理页,这两个物理页的计数位必然不同。可以判定出计数位大的物理页的数据是新的,而计数位小的物理页的数据是旧的。受NVM的物理特性的限制,数据擦写的次数是有限的。计数位可以保证在NVM寿命以内,计数不会重复。
当系统上电时,顺序扫描NVM,在内存中建立数据页查找表和空闲页查找表,其中,数据页查找表中顺序存储逻辑页0-7对应的物理页号,空闲页查找表中存储空闲页0-3对应的物理页号。空闲页指针随机指向空闲页1对应的物理页号。例如:通过扫描物理页5的页头,得到其对应的逻辑页号为0,在数据页查找表索引为0的表格内填写物理页号5。可选地,在扫描NVM中的某一个物理页的页头时,采用第一检错码EDC1对页头进行检错,如果检查出页头错误,进入异常处理程序,具体为:根据页头信息判定该物理页在擦除数据或写数据的过程中掉电,则将擦除了部分数据的物理页或写入了部分数据的物理页作为空闲页,并将该物理页的物理页号存储到空闲页查找表中。当建立数据页查找表时,如果出现两个物理页号对应一个逻辑页号并且两个物理页号对应的物理页的页头都正确的情况,进入异常处理程序,具体为:根据这两个物理页号,获取对应的物理页的页头和数据;如果根据页头中的EDC2判定一个物理页的数据区中的数据错误而另一个物理页的数据区中的数据正确,则将数据错误的物理页作为空闲页并将该空闲页的物理页号存储到空闲页查找表中;将数据正确的物理页作为数据页并在数据页查找表中建立该物理页的逻辑页号到物理页号的映射;如果两个物理页中的数据都正确,根据页头中的计数位可以判定哪个物理页中的数据是新的,将存储有新数据的物理页作为数据页并在数据页查找表中建立该物理页的逻辑页号到数据页号的映射,将存储有旧数据的物理页作为空闲页并将该空闲页的物理页号存储到空闲页查找表中。
要进行的写操作为:在逻辑页5中写入3344,该写操作的输入为逻辑地址和数据3344,具体执行步骤如下:
步骤21、根据空闲页查找表,得到空闲页指针指向的空闲页1对应物理页号0,输出物理页号0;
步骤22、根据逻辑地址计算得到逻辑页号5和页偏移地址,根据数据页查找表得到逻辑页号5对应物理页号7,输出物理页号7;
步骤23、根据空闲页查找表,找到空闲页指针指向的物理页号0,计算页头;其中,新的页头中的计数位等于物理页7的页头中的计数位+1;
步骤24、擦除物理页号0对应的物理页0,根据页偏移地址将数据3344和新的页头写入物理页0中;
步骤25、更新数据页查找表,将逻辑页5对应的物理页号更新为0;
步骤26、更新空闲页查找表,将空闲页1对应的物理页号更新为7;
步骤27、分配空闲页指针指向空闲页2对应的物理页号。
如果在执行步骤24的写操作或擦除操作的过程中掉电导致物理页0中的数据错误时,在下次上电建立数据页查找表时,通过物理页0页头中的EDC1可以判定物理页0中的数据是错误的,然后,将物理页号0存储到空闲页查找表中,从而保证数据的完整性。
如果在执行完步骤24、执行步骤25之前掉电,即物理页0和7中的数据都是完整的,但物理页0中的数据是最新的,在下次上电建立数据页查找表时,会出现两个物理页号即物理页号0和7对应一个逻辑页号5的情况,此时,首先通过物理页0和7的页头中的EDC1和EDC2判定物理页0和7中的数据都是正确的,然后,根据页头中的计数位判定物理页0中的数据是最新的,物理页7中的数据是旧的,最后将物理页号7存入空闲页查找表,将物理页号0存入数据页查找表中,从而在保证数据完整性的基础上保证数据是最新的。
在图2所示示意图中读取逻辑页5的数据时,根据逻辑地址,计算得到逻辑页号5和页偏移地址,将逻辑页号5送到数据页查找表,得到相应的物理页号7,根据物理页号7和页偏移地址去NVM中读取物理页7中的数据。
NVM的管理方法第二实施例
与上一实施例的不同之处在于,在本实施例中,空闲页查找表中包括与逻辑页号一一对应的单向链表,单向链表的每一表项保存逻辑页号和与逻辑页号对应的物理页号,单向链表中保存的物理页号对应的物理页中的数据的历史从表头到表尾依次递减。也就是说,单向链表的表头中保存的物理页号对应的物理页中的数据是历史最长的,也就是最旧的,单向链表的表尾中保存的物理页号对应的物理页中的数据是历史最短的,也就是最新的。
在步骤13中,配置空闲页指针指向所述空闲页查找表的另外一个物理页号时,可以按照如下步骤执行:在空闲页查找表中寻找与目标数据页的逻辑页号对应的单向链表,如果与目标数据页的逻辑页号对应的单向链表存在,则将空闲页指针指向目标数据页的逻辑页号对应的单向链表的表头;如果与目标数据页的逻辑页号对应的单向链表不存在,则将空闲页指针指向任意单向链表的表头。换句话说,选择保存有最旧数据的物理页写入数据。
NVM的管理装置第一实施例
在本实施例中,NVM可以包括复数个物理页,复数个物理页划分为数据页和空闲页,每个物理页包括页头和数据区。
如图3所示,为本发明非易失性存储器的管理装置实施例的结构示意图,该装置可以包括查找表建立模块32、指针设置模块33和第一数据写模块34。
其中,查找表建立模块32用于扫描全部物理页的页头信息,在内存中建立数据页查找表和空闲页查找表,其中,数据页查找表用于建立从数据页的逻辑页号到数据页的物理页号的映射,空闲页查找表用于存储空闲页的物理页号。可选地,查找表建立模块32可以在系统上电时进行扫描,因为这两个查找表是在每次上电时根据NVM的页头信息重新建立的,所以它们存放在易失性存储器的内存里,内存为易失性存储器。指针设置模块33用于设置一个指向空闲页查找表中的一个物理页号的空闲页指针。第一数据写模块34用于当进行目标数据页的写操作时,根据空闲页查找表,对空闲页指针指向的物理页号对应的物理页依次进行擦除操作和写操作,将数据页查找表中目标数据页的物理页号与空闲页查找表中空闲页指针指向的空闲页的物理页号互换,控制空闲页指针指向空闲页查找表的下一个物理页号。需要说明的是,该空闲页可以为写有旧数据的物理页,也可以为空白的物理页。
具体地,在第一数据写模块34中,写操作的输入为目标数据页的逻辑页号。第一数据写模块34在写数据时,根据空闲页指针查找空闲页查找表得到空闲页的物理页号,计算页头,然后根据空闲页的物理页号在NVM中找到空闲页,先将空闲页中的数据擦除,再将数据和页头写入空闲页中。。在内存中查找空闲页查找表和数据页查找表所花费的时间相对于在NVM中写数据和擦数据所花费的时间可以忽略不计。
可选地,该装置可以采用软件、硬件电路、或软件和硬件电路相结合的方式实现。
本实施例的工作过程如下:当NVM上电时,查找表建立模块32通过扫描全部物理页的页头信息,在内存中建立数据页查找表和空闲页查找表,指针设置模块33设置一个指向空闲页查找表中的一个物理页号的空闲页指针。当进行目标数据页的写操作时,第一数据写模块34根据空闲页查找表,对空闲页指针指向的物理页号对应的物理页依次进行擦除操作和写操作,将数据页查找表中目标数据页的物理页号与空闲页查找表中空闲页指针指向的空闲页的物理页号互换,配置空闲页指针指向空闲页查找表的另外一个物理页号。
在本实施例中,每写一次数据,只需要第一数据写模块34对NVM先后进行一次页擦除操作和一次页写操作,相对于现有技术中执行一次写操作需要对NVM写4次和擦两次,极大地节省了操作时间,提高了写数据的效率。由于对NVM的操作次数减少了,也提高了NVM的寿命。
可选地,数据页查找表的索引是数据页的逻辑页号,在数据页查找表中存放了与该逻辑页号对应的数据页的物理页号。
进一步地,本实施例还可以包括异常处理模块35,与查找表建立模块32连接,用于根据查找表建立模块32提供的页头信息判定上次写操作非正常结束时,执行异常处理程序。
进一步地,异常处理模块35可以包括第一掉电处理单元351和第二掉电处理单元352,其中,第一掉电处理单元351用于根据查找表建立模块35提供的页头信息判定在擦除操作的过程中或者在写操作的过程中掉电,则将擦除了部分数据的物理页或写入了部分数据的物理页作为空闲页并将该物理页的物理页号存储到空闲页查找表中,从而保证数据的完整性;第二掉电处理单元352用于根据查找表建立模块32提供的页头信息判定在写操作之后掉电,则将保存有新数据的物理页作为数据页,在数据页查找表中建立该数据页的逻辑页号到该数据页的物理页号的映射,将保存有旧数据的物理页作为空闲页,将该空闲页的物理页号存储到空闲页查找表中。
例如:物理页的页头包括逻辑页号、空闲标志、计数位、第一检错码和第二检错码;其中,第一检错码用于对页头除第二检错码外的数据进行检错,第二检错码用于对数据区的数据进行检错,计数位用于根据逻辑页号对页写进行计数。查找表建立模块32扫描页头后,根据页头中的第一检错码判定页头是否正确,如果页头错误,将该物理页的物理页号发送给异常处理模块35,异常处理模块35根据页头信息判定该物理页号对应的物理页在写操作或擦除操作的过程中掉电,则将该将擦除了部分数据或写入了部分数据的物理页作为空闲页并将该物理页的物理页号存储到空闲页查找表中。当查找表建立模块32建立数据页查找表时,如果出现两个物理页号对应一个逻辑页号并且两个物理页号对应的物理页的页头都正确的情况,查找表建立模块32会将两个物理页号提供给异常处理模块35,异常处理模块35根据这两个物理页号,获取对应的物理页的页头和数据;如果根据页头中的EDC2判定一个物理页的数据区中的数据错误而另一个物理页的数据区中的数据正确,则异常处理模块35将数据错误的物理页作为空闲页并将该空闲页的物理页号存储到空闲页查找表中;将数据正确的物理页作为数据页并在数据页查找表中建立该物理页的逻辑页号到物理页号的映射;如果两个物理页中的数据都正确,根据页头中的计数位可以判定哪个物理页中的数据是新的,将存储有新数据的物理页作为数据页并在数据页查找表中建立该物理页的逻辑页号到数据页号的映射,将存储有旧数据的物理页作为空闲页并将该空闲页的物理页号存储到空闲页查找表中。
可选地,查找表建立模块32扫描全部物理页的页头信息时,可以采用顺序扫描的方式读取全部物理页的页头信息或者采用随机无序扫描的方式读取全部物理页的页头信息。当扫描模块31采用顺序扫描的方式读取全部物理页的页头信息时,得到的空闲物理页查找表总是按照一个固定次序把空闲页的物理页号填入查找表,这样,有些物理页可能总是被先用来写数据;为了避免这个情况,指针设置模块33可以包括随机数生成单元331和指针设置单元332,其中,随机数生成单元331用于生成随机数;指针设置单元332用于将随机数分配给空闲页指针,使得空闲页指针随机指向空闲页查找表中的一个物理页号;这样,第一数据写模块34可以根据该空闲页指针随机地从空闲页中选取一个物理页写入数据。
可选地,本实施例还可以包括第二数据写模块36,用于当进行目标数据页的写操作时,根据数据页查找表判定目标数据页为空白页,在目标数据页中写数据,直到把所有数据页都写了一次之后,再由第一数据写模块34进行写操作。其中,空白页表示该物理页从未写入过数据。
可选地,为了节省内存空间,数据页查找表以数据页的逻辑页号为索引存储数据页的物理页号,通过这种方式建立从数据页的逻辑页号到数据页的物理页号的映射。可选地,在实际实现过程中,也可以将数据页查找表和空闲页查找表合成为一个表。
可选地,本实施例还可以包括数据读模块37,用于当进行目标数据页的读操作时,根据数据页查找表从目标数据页中读取数据。
可选地,当进行目标数据页的写操作或读操作时,如果输入为目标数据页的逻辑地址,本实施例还可以包括计算模块38,与第一数据写模块34、第二数据写模块36和数据读模块37连接,用于根据目标数据页的逻辑地址,计算得到目标数据页的逻辑页号和页偏移地址。具体地,逻辑页号=(逻辑地址/逻辑页长度)的商的整数部分,逻辑页长度=物理页长度-物理页页头长度。例如:若物理页长度为256-byte,物理页页头长度为8-byte,则逻辑页长度为248-byte。
最后应说明的是:以上实施例仅用以说明本发明的技术方案而非限制,尽管参照较佳实施例对本发明进行了详细说明,本领域的普通技术人员应当理解,可以对本发明的技术方案进行修改或者等同替换,而不脱离本发明技术方案的精神和范围。

Claims (12)

1.一种非易失性存储器的管理方法,其特征在于,所述非易失性存储器包括复数个物理页,所述物理页划分为数据页和空闲页,每个物理页包括页头和数据区,所述方法包括:
通过扫描全部物理页的页头信息在内存中建立数据页查找表和空闲页查找表,其中,所述数据页查找表用于建立从所述数据页的逻辑页号到所述数据页的物理页号的映射,所述空闲页查找表用于存储所述空闲页的物理页号,设置一个指向所述空闲页查找表中的一个物理页号的空闲页指针;
当进行目标数据页的写操作时,根据所述空闲页查找表,对所述空闲页指针指向的物理页号对应的物理页依次进行擦除操作和写操作,将所述数据页查找表中所述目标数据页的物理页号与所述空闲页查找表中所述空闲页指针指向的空闲页的物理页号互换,配置所述空闲页指针指向所述空闲页查找表的另外一个物理页号。
2.根据权利要求1所述的方法,其特征在于,还包括:
执行所述建立数据页查找表和空闲页查找表时,根据所述页头信息判定上次写操作非正常结束时,执行异常处理程序。
3.根据权利要求2所述的方法,其特征在于,所述异常处理程序包括:
根据页头信息判定在擦除操作的过程中或者在写操作的过程中掉电,则将擦除了部分数据的物理页或写入了部分数据的物理页作为空闲页;
根据页头信息判定在写操作之后掉电,则将保存有新数据的物理页作为数据页,将保存有旧数据的物理页作为空闲页。
4.根据权利要求1所述的方法,其特征在于,所述空闲页查找表中包括与所述逻辑页号一一对应的单向链表,所述单向链表的每一表项保存逻辑页号和与所述逻辑页号对应的物理页号,所述单向链表中保存的物理页号对应的物理页中的数据的历史从表头到表尾依次递减。
5.根据权利要求4所述的方法,其特征在于,所述配置所述空闲页指针指向所述空闲页查找表的另外一个物理页号具体为:
在所述空闲页查找表中寻找与所述目标数据页的逻辑页号对应的单向链表,如果与所述目标数据页的逻辑页号对应的单向链表存在,则将所述空闲页指针指向所述目标数据页的逻辑页号对应的单向链表的表头;如果与所述目标数据页的逻辑页号对应的单向链表不存在,则将所述空闲页指针指向任意单向链表的表头。
6.根据权利要求1所述的方法,其特征在于,所述页头信息包括逻辑页号、空闲标志、计数位、第一检错码和第二检错码,其中,所述第一检错码用于对所述页头除所述第二检错码外的数据进行检错,第二检错码用于对所述数据区的数据进行检错。
7.一种非易失性存储器的管理装置,其特征在于,所述非易失性存储器包括复数个物理页,所述物理页划分为数据页和空闲页,每个物理页包括页头和数据区,所述装置包括:
查找表建立模块,用于通过扫描全部物理页的页头信息,在内存中建立数据页查找表和空闲页查找表,其中,所述数据页查找表用于建立从所述数据页的逻辑页号到所述数据页的物理页号的映射,所述空闲页查找表用于存储所述空闲页的物理页号;
指针设置模块,用于设置一个指向所述空闲页查找表中的一个物理页号的空闲页指针;
第一数据写模块,用于当进行目标数据页的写操作时,根据所述空闲页查找表,对所述空闲页指针指向的物理页号对应的物理页依次进行擦除操作和写操作,将所述数据页查找表中所述目标数据页的物理页号与所述空闲页查找表中所述空闲页指针指向的空闲页的物理页号互换,配置所述空闲页指针指向所述空闲页查找表的另外一个物理页号。
8.根据权利要求7所述的装置,其特征在于,还包括:
异常处理模块,用于根据所述查找表建立模块提供的页头信息判定上次写操作非正常结束时,执行异常处理程序。
9.根据权利要求8所述的装置,其特征在于,所述异常处理模块包括:
第一掉电处理单元,用于根据所述查找表建立模块提供的页头信息判定在擦除操作的过程中或者在写操作的过程中掉电,则将擦除了部分数据的物理页或写入了部分数据的物理页作为空闲页;
第二掉电处理单元,用于根据所述查找表建立模块提供的页头信息判定在写操作之后掉电,则将保存有新数据的物理页作为数据页,将保存有旧数据的物理页作为空闲页。
10.根据权利要求7所述的装置,其特征在于,所述空闲页查找表中包括与所述逻辑页号一一对应的单向链表,所述单向链表的每一表项保存逻辑页号和与所述逻辑页号对应的物理页号,所述单向链表中保存的物理页号对应的物理页中的数据的历史从表头到表尾依次递减。
11.根据权利要求10所述的装置,其特征在于,所述第一数据写模块用于在所述空闲页查找表中寻找与所述目标数据页的逻辑页号对应的单向链表,如果与所述目标数据页的逻辑页号对应的单向链表存在,则将所述空闲页指针指向所述目标数据页的逻辑页号对应的单向链表的表头;如果与所述目标数据页的逻辑页号对应的单向链表不存在,则将所述空闲页指针指向任意单向链表的表头。
12.根据权利要求7所述的装置,其特征在于,所述页头信息包括逻辑页号、空闲标志、计数位、第一检错码和第二检错码,其中,所述第一检错码用于对所述页头除所述第二检错码外的数据进行检错,所述第二检错码用于对所述数据区的数据进行检错。
CN201410347172.6A 2014-07-21 2014-07-21 非易失性存储器的管理方法和装置 Pending CN104090732A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201410347172.6A CN104090732A (zh) 2014-07-21 2014-07-21 非易失性存储器的管理方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201410347172.6A CN104090732A (zh) 2014-07-21 2014-07-21 非易失性存储器的管理方法和装置

Publications (1)

Publication Number Publication Date
CN104090732A true CN104090732A (zh) 2014-10-08

Family

ID=51638452

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410347172.6A Pending CN104090732A (zh) 2014-07-21 2014-07-21 非易失性存储器的管理方法和装置

Country Status (1)

Country Link
CN (1) CN104090732A (zh)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105095101A (zh) * 2015-08-03 2015-11-25 昆腾微电子股份有限公司 向存储器写入数据的方法及装置、智能卡
CN106294189A (zh) * 2015-05-25 2017-01-04 中兴通讯股份有限公司 内存碎片整理方法及装置
CN110427285A (zh) * 2019-08-06 2019-11-08 北京中电华大电子设计有限责任公司 一种高性能的智能卡镜像保护方法和数据结构
CN110568997A (zh) * 2019-09-12 2019-12-13 南方电网科学研究院有限责任公司 一种基于Flash存储器的数据写入方法、装置及设备
CN114035749A (zh) * 2018-01-12 2022-02-11 珠海极海半导体有限公司 电子设备和Flash存储器

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100250893A1 (en) * 2009-03-30 2010-09-30 Holly Katherine Cummins Batched virtual memory remapping for efficient garbage collection of large object areas
CN102473135A (zh) * 2009-07-29 2012-05-23 国际商业机器公司 存储设备的写入擦除耐久寿命
CN103399826A (zh) * 2013-08-15 2013-11-20 南京新联电子股份有限公司 一种基于nor flash的数据存储方法
CN103456360A (zh) * 2013-09-13 2013-12-18 北京昆腾微电子有限公司 非易失性存储器的管理方法和装置

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100250893A1 (en) * 2009-03-30 2010-09-30 Holly Katherine Cummins Batched virtual memory remapping for efficient garbage collection of large object areas
CN102473135A (zh) * 2009-07-29 2012-05-23 国际商业机器公司 存储设备的写入擦除耐久寿命
CN103399826A (zh) * 2013-08-15 2013-11-20 南京新联电子股份有限公司 一种基于nor flash的数据存储方法
CN103456360A (zh) * 2013-09-13 2013-12-18 北京昆腾微电子有限公司 非易失性存储器的管理方法和装置

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106294189A (zh) * 2015-05-25 2017-01-04 中兴通讯股份有限公司 内存碎片整理方法及装置
CN106294189B (zh) * 2015-05-25 2020-09-25 中兴通讯股份有限公司 内存碎片整理方法及装置
CN105095101A (zh) * 2015-08-03 2015-11-25 昆腾微电子股份有限公司 向存储器写入数据的方法及装置、智能卡
CN114035749A (zh) * 2018-01-12 2022-02-11 珠海极海半导体有限公司 电子设备和Flash存储器
CN110427285A (zh) * 2019-08-06 2019-11-08 北京中电华大电子设计有限责任公司 一种高性能的智能卡镜像保护方法和数据结构
CN110427285B (zh) * 2019-08-06 2023-05-09 北京中电华大电子设计有限责任公司 一种高性能的智能卡镜像保护方法
CN110568997A (zh) * 2019-09-12 2019-12-13 南方电网科学研究院有限责任公司 一种基于Flash存储器的数据写入方法、装置及设备

Similar Documents

Publication Publication Date Title
CN103456360B (zh) 非易失性存储器的管理方法和装置
US20200218446A1 (en) Method and apparatus for memory management
CN104750625B (zh) 数据储存装置以及快闪存储器控制方法
CN104090732A (zh) 非易失性存储器的管理方法和装置
CN106415502B (zh) 数据存储的方法和装置
TWI510923B (zh) 資料儲存裝置以及快閃記憶體控制方法
CN109582599A (zh) 数据储存装置以及非挥发式存储器操作方法
CN110032521A (zh) 用于增强闪存转换层映射灵活性以得到性能和寿命改进的方法和系统
CN102414666A (zh) 用于受管理的非易失性存储器的低等待时间读取操作
CN110211621B (zh) 闪存中的双向计数器
CN109144886A (zh) 数据储存装置
CN109508142A (zh) 数据存储装置及其操作方法
CN107133121A (zh) 数据存储装置及其操作方法
CN103879157A (zh) 成像盒存储芯片的参数发送方法、存储芯片及成像盒
CN108415663A (zh) 数据存储装置的操作方法
CN108475230A (zh) 一种存储系统和系统垃圾回收方法
CN104657678B (zh) 应答保护单调计数器、读取方法及计数方法
CN106484308B (zh) 数据保护方法、存储器控制电路单元及存储器储存装置
JP4488048B2 (ja) メモリコントローラ、メモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法
CN103559141A (zh) 非易失性存储器的管理方法和装置
CN109508145A (zh) 使用地址别名的存储器访问控制
JP5451682B2 (ja) フラッシュメモリ装置
CN110008059A (zh) 非易失性存储介质的数据更新方法、装置及存储介质
US10223195B2 (en) Counter in a flash memory
US20130318284A1 (en) Data Storage Device and Flash Memory Control Method

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
WD01 Invention patent application deemed withdrawn after publication

Application publication date: 20141008

WD01 Invention patent application deemed withdrawn after publication