CN101980177A - 一种操作Flash的方法和装置 - Google Patents
一种操作Flash的方法和装置 Download PDFInfo
- Publication number
- CN101980177A CN101980177A CN201010520788.0A CN201010520788A CN101980177A CN 101980177 A CN101980177 A CN 101980177A CN 201010520788 A CN201010520788 A CN 201010520788A CN 101980177 A CN101980177 A CN 101980177A
- Authority
- CN
- China
- Prior art keywords
- page
- mapping
- mapping table
- write operation
- write
- 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.)
- Granted
Links
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明涉及数据存储技术领域,公开了一种操作Flash的方法和装置,该方法包括:接收到写操作指令时确定写操作指向的逻辑页;查找该逻辑页在映射表中的第一映射页,该映射表用于建立逻辑页与映射页的映射关系;根据第一映射页中数据组织要写入的数据;从对映射区划分得到的页中,选取除指定页外的空闲页作为第二映射页,并在第二映射页上写入要写入的数据;将映射表中写操作指向的逻辑页的第一映射页修改为第二映射页。本发明优化了现有智能卡对扇区划分较大、用户区较小的片内Flash操作,减少了擦除操作次数,提高了Flash寿命及读取速度。
Description
技术领域
本发明涉及数据存储技术领域,尤其涉及一种操作Flash的方法和装置。
背景技术
闪存Flash在没有电流供应的条件下也能够长久地保存数据,其存储特性相当于硬盘,这项特性使得Flash成为各类便携型数字设备使用的存储介质。
闪存Flash通常情况下被划分为多个扇区,多个字节为一页,因此每个扇区包括多个页。对Flash进行读写时,以页为单位进行操作。在要写入数据的页为不可用状态如被其它文件数据占用时,对该页执行擦除操作,在Flash中无空闲页或空闲页不够时,以扇区为单位执行擦除操作,因此是以扇区为单位的回收机制。
通常情况下便携型数字设备使用的Flash容量比较小,因此扇区也比较小。如智能卡芯片内部的Flash大小一般在256k以内,其扇区均在512字节以内,有64字节/128字节/256字节/512字节四种。对于这种小容量Flash的操作方式都是直接对其物理地址进行操作,具体为:
在执行写操作时,根据维护的页信息表,获取要写入数据的页是否为空闲页,其中要写入数据的页是由操作系统根据特定规则确定的;
在要写入数据的页为空闲页时,根据该页物理地址将要写入的数据写入;在要写入数据的页不是空闲页时,将该页进行擦除。在Flash中无空闲页或空闲页不够时,以扇区为单位执行擦除操作实现回收。
对Flash采用直接对其物理地址进行操作的方式,在Flash容量比较小时,执行上述页擦除及扇区擦除的频率都比较高,但因为扇区小,擦写速度快,所以即使一条指令有几次对Flash的写操作都需要进行擦除也可以满足产品的性能要求。
但是目前越来越多的便携型数字设备使用大容量的Flash如NANDFlash,NANDFlash最大的优点在于容量可以做得很大,超过512MB容量的NAND产品相当普遍,如采用较多为1M容量,扇区大小为4k的Flash。对于这些大容量大扇区的片内Flash,操作系统可用的用户空间即用户区比较小,如为64K。对于扇区划分较大,用户区较小的片内Flash,如果采用上述直接对物理地址操作的方式进行读写,由于用户区比较小也会比较频繁地出现页擦除及扇区擦除操作。而扇区擦除操作中,由于扇区比较大因此擦除操作占用的时间长,在实际应用中速度太慢无法被用户接收,而且每操作一个扇区内的数据时都要将全部4K数据擦除对Flash的寿命也是一个很大的影响。
目前对于管理扇区较大的NANDFlash,有的采用文件系统下一层的文件分配表FAT管理机制如FAT16、FAT32等。文件分配表FAT管理机制功能强大,适于管理存储空间比较大、文件管理复杂的场景,多应用于计算机。但是在智能卡应用中,对于扇区划分较大,用户区较小的片内Flash来说,采用FAT管理机制复杂有余,又不能物尽其用。
发明内容
本发明实施例提供一种操作Flash的方法和装置,用以优化现有扇区划分较大,用户区较小的片内Flash操作方法。
本发明提供一种操作Flash的方法,该方法包括:
接收到写操作指令时确定写操作指向的逻辑页;
查找所述写操作指向的逻辑页在映射表中的第一映射页,所述映射表用于建立逻辑页与映射页的映射关系;
根据写操作指令及查找到的第一映射页中的数据组织要写入的数据;
从对映射区划分得到的页中,选取除指定页外的空闲页作为第二映射页,并在所述第二映射页上写入要写入的数据,所述指定页为在映射区中指定的一个空闲页;
将映射表中写操作指向的逻辑页的第一映射页,修改为所述第二映射页。
本发明还提供了一种操作Flash的装置,包括:
写逻辑页确定单元,用于接收到写操作指令时确定写操作指向的逻辑页;
写逻辑页确定单元,用于接收到写操作指令时确定写操作指向的逻辑页;
第一查找单元,用于查找所述写操作指向的逻辑页在映射表中的第一映射页,所述映射表用于反映所有逻辑页的映射页;
组织数据单元,用于根据写操作指令及查找到的第一映射页中的数据组织要写入的数据;
映射页选取单元,用于从对映射区划分得到的页中,选取除指定页外的空闲页作为第二映射页,并在所述第二映射页上写入要写入的数据,所述指定页为在映射区中指定的一个空闲页;
映射关系修改单元,用于将映射表中写操作指向的逻辑页的第一映射页,修改为所述第二映射页。
利用本发明提供的操作Flash的方法和装置,具有以下有益效果:通过建立映射表,并对映射表中映射页动态更新,由于映射页可以从Flash中除用户区外的设定辅助区选取,因此所操作的Flash空间变大,对于扇区划分较大,用户区较小的片内Flash来说,减少了扇区擦除操作次数,提高了Flash寿命及读取速度。
附图说明
图1为依照本发明实施例中示例的对Flash划分后的物理结构;
图2为本发明提供的操作Flash的方法流程图;
图3为依照本发明实施例中采用动态建立映射方式时对应的操作Flash的流程图;
图4为依照本发明实施例中操作Flash的方法中实现删除操作的流程图;
图5为依照本发明实施例中操作Flash的方法中实现读取操作的流程图;
图6为依照本发明实施例中操作Flash的详细过程流程图;
图7为依照本发明实施例中操作Flash的装置的结构图。
具体实施方式
下面结合附图和实施例对本发明提出的操作Flash的方法和装置进行更详细地说明。
本发明能够避免现有智能卡操作系统运行时,使用复杂的Flash管理模式实现其操作的同时,又能够快速地进行Flash的操作,并保证Flash的损耗在一定程度上均衡。
对于智能卡操作Flash时,虽然Flash的容量非常大,例如有1M,但是对于智能卡操作系统来说,能够进行操作的区域即用户区是有限,如用户区为64K,因此进行Flash操作时,是针对这64K可见的用户区进行数据读写。本发明将对Flash中用户区划分得到的页作为逻辑页,操作Flash时只面向这些逻辑页进行Flash操作。
依照本发明的实施例中,提供一种操作Flash的方法,如图2所示,该方法包括:
步骤S101,接收到写操作指令时确定写操作指向的逻辑页;
写操作指令中对数据的写操作是以页为单位的,每次写操作都会指向一个要写入数据的逻辑页。
步骤S102,查找所述写操作指向的逻辑页在映射表中的第一映射页,该映射表用于建立逻辑页与映射页的映射关系;
优选地,初始化时用户区所有逻辑页映射到映射区同一指定页,所述指定页为在映射区中指定的一个空闲页;
在映射表中建立所有逻辑页的映射页,这样,实际进行写操作时指向的页为其映射页。
步骤S103,根据写操作指令及查找到的第一映射页中数据组织要写入的数据;
由于写操作中既包含向一个空闲页中写入数据的操作,也包括对之前写入的某页数据进行修改的操作。因此,在查找到的第一映射页为空闲页时,说明操作系统还未向此次写操作指向的逻辑页写入数据,组织数据具体为将要写入的数据作为写入数据;在查找到第一映射页中有数据时,说明操作系统之前针对此次写操作指向的逻辑页写入过数据,对应地要修改这些数据,因此组织数据为根据写操作指令对写操作指向的逻辑页的第一映射页中数据进行修改。
步骤S104,从对映射区划分得到的页中,选取除指定页外的空闲页作为第二映射页,并在所述第二映射页上写入要写入的数据;
映射区的存储空间大于用户区的存储空间,映射区的具体位置根据实际情况进行设定,优选地,本实施例中所述映射区由所述用户区及Flash中除用户区外的设定辅助区组成。
本发明映射表中一个逻辑页对应一个映射页,上述第一映射页指未进行任何操作前查找到的映射页,第二映射页为进行相关操作后修改后的映射页。
组织好数据要写入时,应将组织好的数据写入到空闲页中。如果映射页是指定页,说明是针对该逻辑页第一次写入数据,将数据写入到映射区中除指定页外的空闲页中。优选地,如果写操作指向的逻辑页是空闲页时,可以将该逻辑页本身作为其映射页。如果映射页是除指定页外的页,说明是针对该逻辑页进行数据修改,修改后将修改好的数据写入到选取的空闲页中。
步骤S105,将映射表中写操作指向的逻辑页的第一映射页,修改为上述第二映射页。因此,更新了逻辑页和映射页之间的映射关系。下次对该逻辑页中数据进行操作时,可以根据映射关系找到上次写入的数据。
本发明提供的上述操作Flash的方法,对于大扇区的Flash,用户区较小的智能卡来说,首先,在写操作写入修改好的数据时,不用再像以前一样先将所在的页擦除再写,这样就大大提高了写Flash的速度;其次,由于Flash应用中多数操作都是针对用户区前部分,不需要每次写都擦就意味着大大增强了Flash的使用寿命,使损耗均衡和整个区域的使用效率得到了保证;由于空闲页的选取范围扩展为大于用户区的映射区,如扩展为由Flash中的用户区及Flash中除用户区外的设定辅助区组成的映射区,因此,Flash操作时实际操作的空间为映射区,通过映射表实现了对Flash中除用户区外的设定辅助区的利用,充分了Flash中空闲空间,且延长了Flash回收的周期,回收次数少则意味着设备性能的极大提高。
优选地,本实施例中设定辅助区采用与用户区相同的空间划分方式,所述设定辅助区的区域由Flash中除用户区外的闲置空间确定;所述映射表存放在映射表区,映射表区的区域由Flash中除映射区外的闲置空间确定。
仍以1M容量,用户区为64K的Flash为例,如图1所示,设定辅助区采用与相同的空间划分方式,具体为4K为一个扇区(sector),256字节为一个页(page),内有16个sector,每个sector内是16个page。设定辅助区包括3个sector,用来扩展用户区的映射关系,设定辅助区的区域的设计在Flash总空间充足的情况下可以任意分配其数量。映射表区包括2个sector,以页为单位进行映射,建立逻辑页对应的映射页。
从上面逻辑页的映射过程可以看出,写操作会使实际被使用的页作为映射页被记录在映射表中,因此,初始化应将所有逻辑页映射到同一空闲的指定页,代表所有的其它所有页都可以使用。优选地,初始化时所有逻辑页映射的同一指定页为对Flash中用户区划分得到的第一个扇区的第一页。
本实施例中确定空闲页所依据的信息除了映射表中的映射页以外,还利用了页信息表,页信息表用于标识页的使用信息,所标识的页的使用信息通过上电时遍历映射区获得,随着页的使用及而更新,如在上述选取了空闲页写入数据后,页信息表中相应地将这些空闲页标识为已写入数据。优选地,本实施例中确定映射区中空闲页具体包括:将映射区中在页信息表中标识为空闲页且未在映射表中作为映射页的页,确空为映射区中的空闲页。
建立映射表的目的是反映逻辑页对应的映射页,下面给出依照本发明实施例的一种优选的映射表反映逻辑页的映射页方式,本实施例中映射表包括与所有逻辑页总数相等数量个映射项,每个映射项反映一个逻辑页的一个映射页,如有256个逻辑页时,对应256个映射项;每个映射项由扇区号(sector号)和页号(page号)组成,且所有映射项中扇区号占用的字节数相等及页号占用的字节数相等,每个映射项反映的逻辑页由该映射项在映射表中的偏移确定,反映的映射页由该映射项中的扇区号和页号确定。
每个页的物理地址可以由其在Flash中所在sector及在sector内的page号确定,因此通过上述映射项的内容(扇区号和页号)可以唯一索引到映射页的物理地址。由于每个映射项占用的字节数是相同的,因此可以通过映射项的偏移确定其反映的逻辑页。具体地,映射项中扇区号占用的字节数,由对映射区划分得到的页组成的扇区个数总数确定,映射项中页号占用的字节数由组成一个扇区的页数确定。
优选地,本实施例中映射表还包括第一字段(下面称为T1字段)和第二字段(下面称为T2字段),T1字段用于标识无效或有效,T2字段用于标识映射表的流水号,写操作时使用的映射表即查找逻辑页的第一映射页的映射表,具体为T1字段标识为有效的映射表,如图3所示,依照本发明另一实施例中的操作Flash的方法,包括:
步骤S301,接收到写操作指令时确定写操作指向的逻辑页;
步骤S302,查找写操作指向的的逻辑页在映射表中的第一映射页,该映射表具体为T1字段标识为有效的映射表,初始化时建立的映射表中T1字段标识为有效;
步骤S303,根据查找到的第一映射页中数据及写操作指令组织要写入的数据;
步骤S304,从对所述映射区划分得到的页中,选取除指定页外的空闲页作为第二映射页,并在所述第二映射页上写入要写入的数据;
步骤S305,新建一映射表,将T1字段标识为有效的映射表中除T1字段以外内容复制到新建映射表中,并将新建映射表中T2字段加一;
步骤S306,在所述第二映射页上写入要写入的数据之后,将新建映射表中写操作指向的逻辑页的第一映射页,修改为所述第二映射页;
步骤S307,在新建映射表中写入标识为有效的T1字段,依据流水号将前一映射表中的T1字段标识修改为无效。
因此,执行下次写操作时查找逻辑页的映射页使用的映射表为最新建立的映射表。
上述T1字段和T2字段用来在创建新映射表完成后和去使能前一个映射表之前断电后再次上电时判断使用,操作过程保证了在写映射表断电时,再次上电时保证了数据不会因断电被找错。本实施例中在断电再次上电后接收到写操作指令时,确定写操作中查找逻辑页的第一映射页使用的映射表,即确定有效映射表的步骤,具体包括:
依据流水号查找两个最新建立的映射表;在这两个映射表中:
1)较老的映射表中T1字段标识为无效,且较新的映射表中T1字段标识为有效时,确定较新的映射表为写操作使用的映射表;
说明上次写操作及修改映射表的步骤已完成,因此使用最新的映射表。
2)两个映射表中T1字段均标识为有效,确定较新的映射表为写操作使用的映射表,并将较老的映射表T1字段修改为无效;
说明上次写操作及修改映射表的步骤已完成但未将较老映射表修改为无效时发生断电,因此可以使用最新的映射表。
3)较老的映射表中T1字段标识为有效,且较新的映射表中T1字段未填写时,确定较老的映射表为写操作使用的映射表。
这种情况下,断电有可能是在数据写入未完成或在数据写入完成而映射关系未修改时断电,也可能是在映射关系修改完后断电的,因为不确定断电时机,因而采用较老的映射表查找数据。
优选地,本实施例中上述映射表还包括校验字段XOR,所述校验字段XOR的取值由所述映射表中除T1字段外的内容累加和确定,这样,在上述确定写操作中使用的映射表的步骤中,还包括对上述两个最新的映射表,根据映射表中校验字段XOR进行校验的步骤,如对于3)这种情况,如果最新的映射表中的校验字段XOR与较老的映射表校验字段XOR不同,说明已完映射关系修改而填入新的校验字段,因此可以确定最新的映射表为有效的映射表。这种操作过程保证了在写映射表断电时,再次上电,可以根据有效的映射表,及其信息项中的校验值来判断当前最新的映射表是否正确,若不正确,采用流水号较老的用,保证了数据不会因断电被找错。
在文件系统的操作中,对Flash的操作一般为读操作、写操作和擦除操作。在上述实施例给出的写操作的基础上,优选地,本实施例中映射表还包括第三字段(下面称为V字段),所述V字段用于记录初始化时所有逻辑页映射到的同一指定页,如图4所示,还包括:
步骤S401,接收到删除操作指令时,确定删除操作指向的逻辑页;
步骤S402,查找删除操作指向的逻辑页在映射表中的第一映射页;
在采用上述动态建立映射表的方式时,这里使用的映射表为当前T1字段标识有效的映射表。
步骤S403,在查找到的第一映射页中写入使该第一映射页视为空闲页的数据;
现有Flash初始化时被格式化为全FF,因此数据为全FF的页为被视为空闲页。这样,本实施例中可以将要删除的文件实际占用的页执行一次数据写入操作,即将该页数据修改为全FF。由于将该页更新为空闲页,页信息表该页的使用信息由已写入数据更新为空闲页。
步骤S404,将映射表中删除操作指向的逻辑页的第一映射页,修改为所述映射表中V字段记录的指定页。
这样下次对该逻辑页进行写操作时,发现当前映射页为空闲页且之前的映射页已不在映射表中,说明还未被使用而可以列入空闲页中。
本发明实施例中擦除实事上只是一个虚拟操作,不会真正擦除。跟写的过程类似,只是将写的数据写为全FF,在写到整页都为FF的时候,将该逻辑页映射在指定页上即可。这样即节约了擦的时间,又能够极大地节约flash的存储空间,提高了FLASH的存储效率,并且能够延长Flash的回收时间,从性能、效率、和延长使用寿命上都起到了作用。
本实施例中基于上述实施例中给出的操作Flash方法中的写操作,如图5所示,还包括:
步骤S501,接收到读操作指令时确定读操作指向的逻辑页;
步骤S502,查找读操作指向的逻辑页在映射表中的第一映射页;
在采用上述动态建立映射表的方式时,这里使用的映射表为当前T1字段标识有效的映射表
步骤S503,根据所述读操作指令在所述第一映射页的相应位置读取数据。因此实现了Flash的读操作。
下面仍以1M容量,用户区为64K的Flash为例,说明本发明实施例中上述映射表的结构,如表1所示,该映射表中包括256个映射项,由于每个扇区有16页,所以采用4bit的页号;由于用户区有16个扇区,设定辅助区有3个扇区,因此最少要5bit扇区号,为了方便表示,本实施例中扇区号采用一个字节。这样每个映射项占用1.5个字节,其中扇区号占用前一个字节,页号占用后半个字节。每个映射项在映射表中的偏移除以1.5字节,就是其所代表的逻辑页,这样映射项的前一个字节表示该逻辑页的映射页所在的sector,后半个字节代表该逻辑页的映射页所在sector内的page号。在初始化后的状态下,由于Flash全部区域为FF状态,映射表的每一映射项的映射页都指向第一个全FF的page。
表1 映射表的结构
表1中,T1字段用于标识该映射表为有效还是无效,T2字段标识映射表的流水号,V1-V5为V字段,记录初始化时所有逻辑页映射到的同一指定页,本实施例中也将该指定页称为多映射页。该字段还可以记录映射到多映射页的逻辑页个数,并在映射页动态更新时相应进行更新。校验字段XOR是当前映射表所有数据的累加和的值,用来判断当前映射表是否完全正确。
本实施例中映射表结构中包含8字节映射信息项(即T1、T2、V1-V5和XOR)及512*8字节映射关系项,即本实施例为每个表的映射关系分配的空间大于其实际占用的空间如为每个映射表分配256*2个字节,以方便管理。
如表2所示,为初始化状态下的映射项,每1.5个字节表示一个映射关系,被映射的逻辑页由映射表的偏移决定,每1.5个字节偏移,被映射的逻辑页号增一,第一个代表逻辑页扇区的page 0,其映射页为物理扇区的page 1,page1内的数据为全FF,依次类推。
表2 初始状态下映射项
本发明上述实施例中,接收到写操作指令时执行写操作,通常情况下,一个写操作指令中可能包含多次写操作,如对于多个逻辑页涉及到写操作的情况包括跨页修改数据的情况。本发明实施例中接收到写操作指令时,对写操作指令进行解析,每解析到一次写操作,执行上述步骤S101~步骤S103完成一次写操作,在执行完写操作指令中的所有写操作后,再执行步骤S104。
依照本发明的优选实施例中,在接收到写操作指令时,具体是先在RAM中缓存中组织好数据,每次执行写操作时,在查找到的第一映射页中有数据时,将所述第一映射页中数据首先读取到RAM中进行缓存;根据读取的数据及写操作指令,在RAM中组织此次写操作要写入的数据,并在RAM记录此次写操作指向的逻辑页。对于第一映射页为空闲页的情况,直接在RAM中组织此次写操作要写入的数据,并记录此次写操作指向的逻辑页。
本实施例中在执行完写操作指令中的所有写操作后,根据所记录的不同逻辑页的个数,确定要选取的空闲页数目;从对所述映射区划分得到的页中,选取所确定的数目个除指定页外的空闲页作为第二映射页;将每次写操作在RAM中缓存的要写入的数据,写入一个空闲的第二映射页;并根据此次写操作中在RAM中记录的逻辑页,在映射表中将此次写操作指向的逻辑页的第一映射页,修改为写入此次写操作要写入的数据的第二映射页。这种操作方法是以每条指令为单位进行写操作启动的,指令执行过程中不直接在Flash中进行逐个的写操作,而是先在RAM中组织好此次要写入Flash所有数据后再进行数据写入,很大的提高了操作的效率,节约了指令执行时间,提高了设备性能。本实施例中如果采用映射表流水号的控制,可以省去了对断电保护的操作,可以通过这种机制直接实现指令执行的数据完整性。
另外,在解析写操作指令过程中,可能会涉及到对一个逻辑页的多次写操作,本实施例中对于这种情况,每次执行写操作时,在查找此次写操作指向的逻辑页在映射表中的第一映射页之前,还包括:确定RAM中记录有此次写操作指向的逻辑页时,在RAM中查找记录该逻辑页时所缓存的要写入的数据;根据查找到的所缓存的要写入的数据及写操作指令,在查找到的所缓存的要写入的数据位置,重新组织此次写操作要写入的数据;重新组织好数据时,确定执行完此次写操作。即直接在RAM中完成该条写操作指令中对相应页的数据修改,而不需要去Flash修改再存放然后再修改。
另外,在使用页信息表时,所述页信息表存放在RAM中,在上电时确定写操作中使用的映射表后,为了进一步方便操作,将确定的写操作使用的映射表区中的映射表缓存在RAM,在执行写操作时使用的映射表具体为RAM中缓存中的映射表,而不采用Flash中的有效映射表。在执行完所有写操作后,在将映射表区中新建映射表中写操作指向的逻辑页的第一映射页,修改为第二映射页;同时也将所述RAM中缓存的映射表中写操作指向的逻辑页的第一映射页,修改为第二映射页,实现同步更新。这样,下次接收到写操作指令时,可以直接使用RAM缓存的的页信息表和映射表进行写操作。修改完RAM和映射表区中新建映射表的映射关系之后,清空执行所述写操作指令中写操作时在RAM中缓存的要写入的数据和记录的逻辑页;发送指令返回码指示写操作指令执行完毕。
如图6所示,给出本发明实施中在上电后接收到写操作指令时执行写操作的详细过程,具体包括:
步骤S601,上电后遍历映射区,获得这些区域内页的使用信息并将其保存在RAM中的页信息表中,确定映射表区中有效的映射表,并将映射表区中有效的映射表缓存到RAM中;
该步骤中,确定映射表区中有效映射表具体根据映射表中T1字段和T2字段,确定方法如前所述。
步骤S602,接收到写操作指令时,对写操作指令解析过程中解析到写操作时,执行步骤S603;
步骤S603,确定此次写操作指向的逻辑页是否已记录在RAM中,若是,执行步骤S604’,否则执行步骤S604;
步骤S604’,在RAM中查找记录该逻辑页时所缓存的要写入的数据;根据查找到的所缓存的要写入的数据及写操作指令,在查找到的所缓存的要写入的数据位置,重新组织此次写操作要写入的数据,执行步骤S608;
步骤S604,查找此次写操作指向的逻辑页在RAM中的映射表中的第一映射页;
步骤S605,确定查找到的第一映射页是否为空闲页,若不是空闲页,执行步骤S606,否则执行步骤S607;
步骤S606,将所述第一映射页中数据首先读取到RAM中;
本实施例中,具体为读出到RAM的data缓存中。
步骤S607,在RAM中组织此次写操作要写入的数据,并在RAM中记录此次写操作指向的逻辑页。
如果读出了第一映射页数据的情况下,根据读取的数据及写操作指令,在RAM中组织此次写操作要写入的数据,而对于第一映射页为空闲页的情况,直接在RAM中组织此次写操作要写入的数据,并在RAM中记录此次写操作指向的逻辑页。
步骤S608,在指令还没有完成时,继续进行指令解析,解析过程中确定是否执行完所有写操作,若是,执行步骤S609,否则返回步骤S603执行下一次写操作;
这里的未执行完所有写操作包括写操作中对一个文件的写入需要跨页写入的情况。
步骤S609,根据RAM中所记录的不同逻辑页的个数,确定要选取的空闲页数目,从对所述映射区划分得到的页中,选取所确定的数目个除指定页外的空闲页作为第二映射页,将每次写操作在RAM中缓存的要写入的数据,写入一个空闲的第二映射页;
步骤S610,在映射表区查找空闲区域,并新建一映射表,将T1字段标识为有效的映射表中除T1字段以外内容复制到新建映射表中,并将新建映射表中T2字段加一;
步骤S611,在所有第二映射页上写入要写入的数据之后,将映射表区中新建映射表中及RAM中映射表中,每次写操作指向的逻辑页的第一映射页,修改为写入此次写操作要写入的数据的第二映射页;
优选地,本实施例中上述页信息表是缓存在RAM中的pagebuf数据结构中,pagebuf数据结构里面存放的数据代表页的使用信息,例如对于上述示例的16个扇区用户区和3个扇区设定辅助空间的情况,pagebuf数据结构的大小是(16*16+16*3)/8=38字节,也就是说,页信息表中的每个bit代表映射表区中一个page的使用情况,为1代表该页为空闲页,即该页数据为全ff,为0代表该页已不可用,即该页数据不为全ff。当需要分配新的映射页的时候,先在pagebuf中找到为1的页,再看该页是否是多映射页或在映射表作为映射页,如果既不是多映射页,也不映射表的映射页,代表该页可以被分配为新的映射页并可以直接写入数据,写入数据后更新pagebuf中该页为不可用。
步骤S612,在新建映射表中写入标识为有效的T1字段,依据流水号将前一映射表中的T1字段标识修改为无效;
步骤S613,清空执行所述写操作指令中写操作时在RAM中缓存的要写入的数据和记录的逻辑页;
步骤S614,发送指令返回码指示写操作指令执行完毕。
依照本发明的另一实施例中,还提供一种操作Flash的装置,如图7所示,包括:
写逻辑页确定单元701,用于接收到写操作指令时确定该写操作指向的逻辑页;
第一查找单元702,查找所述写操作指向的逻辑页在映射表中的第一映射页,所述映射表用于建立逻辑页与映射页的映射关系;
组织数据单元703,用于根据写操作指令及查找到的第一映射页中的数据组织要写入的数据;
映射页选取单元704,从对映射区划分得到的页中,选取除指定页外的空闲页作为第二映射页,并在所述第二映射页上写入要写入的数据,所述指定页为在映射区中指定的一个空闲页;
映射关系修改单元705,用于将映射表中写操作指向的逻辑页的第一映射页,修改为所述第二映射页。
优选地,所述设定辅助区采用与所述用户区相同的空间划分方式,所述映射表存放在映射表区,所述设定辅助区的区域由Flash中除用户区外的闲置空间确定;所述映射表存放在映射表区,所述映射表区的区域由Flash中除映射区外的闲置空间确定。
本实施例中映射表映射表还包括第一字段和第二字段,所述第一字段用于标识无效或有效,所述第二字段用于标识映射表的流水号,写操作时使用的映射表为第一字段标识为有效的映射表,还包括:
新建映射表单元706,用于在所述第二映射页上写入要写入的数据时时,新建一映射表,将第一字段标识为有效的映射表中除第一字段以外内容复制到新建映射表中,并将新建映射表中第二字段加一;
所述映射关系修改单元705,具体包括:
第一修改单元705a,用于在所述第二映射页上写入要写入的数据之后,将新建映射表中写操作指向的逻辑页的第一映射页,修改为所述第二映射页;
第二修改单元705b,用于在新建映射表中写入标识为有效的第一字段,依据流水号将前一映射表中的第一字段标识修改为无效。
优选地,本实施例中提供的装置,还包括:有效映射表确定单元700,用于用于在断电再次上电后接收到写操作指令时,依据流水号查找两个最新建立的映射表;在这两个映射表中:较老的映射表中第一字段标识为无效,且较新的映射表中第一字段标识为有效时,确定较新的映射表为写操作使用的映射表;两个映射表中第一字段均标识为有效,确定较新的映射表为写操作使用的映射表,并将较老的映射表第一字段修改为无效;较老的映射表中第一字段标识为有效,且较新的映射表中第一字段未填写时,确定较老的映射表为写操作使用的映射表。
本实施例中所述映射表还包括校验字段,所述校验字段的取值由所述映射表中除第一字段外的内容累加和确定;所述有效映射表确定单元700,在确定写操作中使用的映射表时,还用于根据映射表中校验字段对上述两个最新的映射表进行校验。
本实施例中该装置还包括:空闲页确定单元707,用于将映射区中在页信息表中标识为空闲页,且未在映射表中作为映射页的页,确定为映射区中的空闲页,所述页信息表用于标识页的使用信息,所标识的页的使用信息通过上电时遍历映射区获得,随着页的使用及而更新。
本实施例中所述映射表包括与所有逻辑页总数相等数量个映射项,每个映射项反映一个逻辑页的映射页;每个映射项由扇区号和页号组成,且所有映射项中扇区号占用的字节数相等及页号占用的字节数相等,每个映射项反映的逻辑页由该映射项在映射表中的偏移确定,反映的映射页由该映射项中的扇区号和页号确定。
本实施例中所述映射表还包括第三字段,所述第三字段用于记录初始化时所有逻辑页映射到的同一指定页,该装置还包括:
删除逻辑页确定单元708,用于接收到删除操作指令时,确定删除操作指向的逻辑页;第二查找单元709,用于查找删除操作指向的逻辑页在映射表中的第一映射页;数据修改单元710,在查找到的第一映射页中写入使该第一映射页视为空闲页的数据;指定映射关系修改单元711,用于将映射表中删除操作指向的逻辑页的第一映射页,修改为所述映射表中V字段记录的指定页。
本实施例中装置接收的写操作指令中包括至少一次写操作,所述写逻辑页确定单元701、第一查找单元702和组织数据单元703用于完成写操作指令中的所有写操作;所述映射页选取单元704,具体用于执行完写操作指令中的所有写操作后,从对所述映射区划分得到的页中,选取除指定页外的空闲页作为第二映射页。
优选地,本实施例中该装置还包括:
记录确定单元712,用于每次执行写操作时,确定RAM中是否记录有此次写操作指向的逻辑页;
所述组织数据单元703,具体用于确定RAM中未记录有此次写操作指向的逻辑页时,根据查找到的第一映射页中数据及写操作指令,在RAM中组织此次写操作要写入的数据,并在RAM中记录此次写操作指向的逻辑页;确定RAM中记录有此次写操作指向的逻辑页时,根据在RAM中查找到的记录该逻辑页时所缓存的要写入的数据,重新组织此次写操作写入的数据;
所述映射页选取单元704,具体用于执行完写操作指令中的所有写操作后,根据所记录的不同逻辑页的数目,从映射区中选取不同逻辑页的数目个除指定页外的空闲页作为第二映射页;
所述映射关系修改单元705,具体用于将每次写操作在RAM中缓存的组织好数据写入一个空闲的第二映射页,并在映射表区的新建映射表及RAM中缓存的映射表中,将此次写操作指向的逻辑页的第一映射页,修改为写入此次写操作要写入的数据的第二映射页;该装置还包括:
指令执行完毕确定单元713,用于映射关系修改单元完成修改后,清空执行写操作指令中写操作时在RAM中缓存的要写入的数据数据和记录的逻辑页,发送指令返回码指示写操作指令执行完毕。
为了实现写操作,本实施例中的装置,还包括:
读逻辑页确定单元714,用于接收到读操作指令时确定读操作指向的逻辑页;第三查找单元715,用于查找读操作指向的逻辑页在映射表中的第一映射页;读取单元716,用于根据所述读操作指令在所述第一映射页的相应位置读取数据。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
Claims (18)
1.一种操作Flash的方法,其特征在于,该方法包括:
接收到写操作指令时确定写操作指向的逻辑页;
查找所述写操作指向的逻辑页在映射表中的第一映射页,所述映射表用于建立逻辑页与映射页的映射关系;
根据写操作指令及查找到的第一映射页中的数据组织要写入的数据;
从对映射区划分得到的页中,选取除指定页外的空闲页作为第二映射页,并在所述第二映射页上写入要写入的数据,所述指定页为在映射区中指定的一个空闲页;
将映射表中写操作指向的逻辑页的第一映射页,修改为所述第二映射页。
2.如权利要求1所述的方法,其特征在于,该方法还包括:在初始化时,所有用户区逻辑页映射到映射区空闲页中同一指定页。
3.如权利要求1所述的方法,其特征在于,所述映射表还包括第一字段和第二字段,所述第一字段用于标识无效或有效,所述第二字段用于标识映射表的流水号,写操作时使用的映射表为第一字段标识为有效的映射表,在所述第二映射页上写入要写入的数据时,还包括:
新建一映射表,将第一字段标识为有效的映射表中除第一字段以外内容复制到新建映射表中,并将新建映射表中第二字段加一;
将映射表中写操作指向的逻辑页的第一映射页,修改为第二映射页,包括:
在所述第二映射页上写入要写入的数据之后,将新建映射表中写操作指向的逻辑页的第一映射页,修改为所述第二映射页;
在新建映射表中写入标识为有效的第一字段,依据流水号将前一映射表中的第一字段标识修改为无效。
4.如权利要求3所述的方法,其特征在于,在断电再次上电后接收到写操作指令时,还包括确定写操作中使用的映射表的步骤,具体包括:
依据流水号查找两个最新建立的映射表;在这两个映射表中:
较老的映射表中第一字段标识为无效,且较新的映射表中第一字段标识为有效时,确定较新的映射表为写操作使用的映射表;
两个映射表中第一字段均标识为有效,确定较新的映射表为写操作使用的映射表,并将较老的映射表第一字段修改为无效;
较老的映射表中第一字段标识为有效,且较新的映射表中第一字段未填写时,确定较老的映射表为写操作使用的映射表。
5.如权利要求1所述的方法,其特征在于,所述映射区中空闲页的确定包括:
将映射区中在页信息表中标识为空闲页,且未在映射表中作为映射页的页,确定为映射区中的空闲页,所述页信息表用于标识页的使用信息,所标识的页的使用信息通过上电时遍历映射区获得,随着页的使用及而更新。
6.如权利要求1所述的方法,其特征在于,所述映射表还包括第三字段,所述第三字段用于记录初始化时所有逻辑页映射到的指定页,还包括:
接收到删除操作指令时,确定删除操作指向的逻辑页;
查找删除操作指向的逻辑页在映射表中的第一映射页;
在查找到的第一映射页中写入使该第一映射页视为空闲页的数据;
将映射表中删除操作指向的逻辑页的第一映射页,修改为所述映射表中第三字段记录的指定页。
7.如权利要求1~6任一所述的方法,其特征在于,所述写操作指令中包括至少一次写操作,上述确定写操作指向的逻辑页到组织要写入的数据的步骤完成一次写操作;
执行完写操作指令中的所有写操作后,从对所述映射区划分得到的页中,选取除指定页外的空闲页作为第二映射页。
8.如权利要求7所述的方法,其特征在于,
每次执行写操作时,确定RAM中是否记录有此次写操作指向的逻辑页,若未记录,则查找此次写操作指向的逻辑页在RAM中缓存的映射表中的第一映射页,根据第一映射页中数据及写操作指令,在RAM中组织此次写操作要写入的数据,并在RAM中记录此次写操作指向的逻辑页;
确定RAM中记录有此次写操作指向的逻辑页时,根据在RAM中查找到的记录该逻辑页时所缓存的要写入的数据,重新组织此次写操作写入的数据;
执行完写操作指令中的所有写操作后,根据所记录的不同逻辑页的数目,从映射区中选取不同逻辑页的数目个除指定页外的空闲页作为第二映射页;
将每次写操作在RAM中缓存的组织好数据写入一个空闲的第二映射页,并在映射表区的新建映射表及RAM中缓存的映射表中,将此次写操作指向的逻辑页的第一映射页,修改为写入此次写操作要写入的数据的第二映射页;
清空执行所述写操作指令中写操作时在RAM中缓存的要写入的数据和记录的逻辑页,发送指令返回码指示写操作指令执行完毕。
9.如权利要求2所述的方法,其特征在于,初始化时所有逻辑页映射的同一指定页为对Flash中用户区划分得到的第一个扇区的第一页。
10.如权利要求1~6任一所述的方法,其特征在于,还包括:
接收到读操作指令时确定读操作指向的逻辑页;
查找读操作指向的逻辑页在映射表中的第一映射页;
根据所述读操作指令在所述第一映射页的相应位置读取数据。
11.一种操作Flash的装置,其特征在于,包括:
写逻辑页确定单元,用于接收到写操作指令时确定写操作指向的逻辑页;
第一查找单元,用于查找所述写操作指向的逻辑页在映射表中的第一映射页,所述映射表用于反映所有逻辑页的映射页;
组织数据单元,用于根据写操作指令及查找到的第一映射页中的数据组织要写入的数据;
映射页选取单元,用于从对映射区划分得到的页中,选取除指定页外的空闲页作为第二映射页,并在所述第二映射页上写入要写入的数据,所述指定页为在映射区中指定的一个空闲页;
映射关系修改单元,用于将映射表中写操作指向的逻辑页的第一映射页,修改为所述第二映射页。
12.如权利要求11所述的装置,其特征在于,映射表还包括第一字段和第二字段,所述第一字段用于标识无效或有效,所述第二字段用于标识映射表的流水号,写操作时使用的映射表为第一字段标识为有效的映射表,还包括:
新建映射表单元,用于在所述第二映射页上写入要写入的数据时时,新建一映射表,将第一字段标识为有效的映射表中除第一字段以外内容复制到新建映射表中,并将新建映射表中第二字段加一;
所述映射关系修改单元,具体包括:
第一修改单元,用于在所述第二映射页上写入要写入的数据之后,将新建映射表中写操作指向的逻辑页的第一映射页,修改为所述第二映射页;
第二修改单元,用于在新建映射表中写入标识为有效的第一字段,依据流水号将前一映射表中的第一字段标识修改为无效。
13.如权利要求12所述的装置,其特征在于,还包括:
有效映射表确定单元,用于在断电再次上电后接收到写操作指令时,依据流水号查找两个最新建立的映射表;在这两个映射表中:较老的映射表中第一字段标识为无效,且较新的映射表中第一字段标识为有效时,确定较新的映射表为写操作使用的映射表;两个映射表中第一字段均标识为有效,确定较新的映射表为写操作使用的映射表,并将较老的映射表第一字段修改为无效;较老的映射表中第一字段标识为有效,且较新的映射表中第一字段未填写时,确定较老的映射表为写操作使用的映射表。
14.如权利要求11所述的装置,其特征在于,还包括:
空闲页确定单元,用于将映射区中在页信息表中标识为空闲页,且未在映射表中作为映射页的页,确定为映射区中的空闲页,所述页信息表用于标识页的使用信息,所标识的页的使用信息通过上电时遍历映射区获得,随着页的使用及而更新。
15.如权利要求11所述的装置,其特征在于,所述映射表还包括第三字段,所述第三字段用于记录初始化时所有逻辑页映射到的指定页,还包括:
删除逻辑页确定单元,用于接收到删除操作指令时,确定删除操作指向的逻辑页;
第二查找单元,用于查找删除操作指向的逻辑页在映射表中的第一映射页;
数据修改单元,在查找到的第一映射页中写入使该第一映射页视为空闲页的数据;
指定映射关系修改单元,用于将映射表中删除操作指向的逻辑页的第一映射页,修改为所述映射表中第三字段记录的指定页。
16.如权利要求11~15任一所述的装置,其特征在于,所述写操作指令中包括至少一次写操作,所述写逻辑页确定单元、第一查找单元和组织数据单元用于完成写操作指令中的所有写操作;
所述映射页选取单元,具体用于执行完写操作指令中的所有写操作后,从对所述映射区划分得到的页中,选取除指定页外的空闲页作为第二映射页。
17.如权利要求16所述的装置,其特征在于,还包括:
记录确定单元,用于每次执行写操作时,确定RAM中是否记录有此次写操作指向的逻辑页;
所述组织数据单元,具体用于确定RAM中未记录有此次写操作指向的逻辑页时,根据查找到的第一映射页中数据及写操作指令,在RAM中组织此次写操作要写入的数据,并在RAM中记录此次写操作指向的逻辑页;确定RAM中记录有此次写操作指向的逻辑页时,根据在RAM中查找到的记录该逻辑页时所缓存的要写入的数据,重新组织此次写操作写入的数据;
所述映射页选取单元,具体用于执行完写操作指令中的所有写操作后,根据所记录的不同逻辑页的数目,从映射区中选取不同逻辑页的数目个除指定页外的空闲页作为第二映射页;
所述映射关系修改单元,具体用于将每次写操作在RAM中缓存的组织好数据写入一个空闲的第二映射页,并在映射表区的新建映射表及RAM中缓存的映射表中,将此次写操作指向的逻辑页的第一映射页,修改为写入此次写操作要写入的数据的第二映射页;
指令执行完毕确定单元,用于映射关系修改单元完成修改后,清空执行写操作指令中写操作时在RAM中缓存的要写入的数据数据和记录的逻辑页,发送指令返回码指示写操作指令执行完毕。
18.如权利要求11~15任一所述的装置,其特征在于,还包括:
读逻辑页确定单元,用于接收到读操作指令时确定读操作指向的逻辑页;
第三查找单元,用于查找读操作指向的逻辑页在映射表中的第一映射页;
读取单元,用于根据所述读操作指令在所述第一映射页的相应位置读取数据。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201010520788.0A CN101980177B (zh) | 2010-10-21 | 2010-10-21 | 一种操作Flash的方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201010520788.0A CN101980177B (zh) | 2010-10-21 | 2010-10-21 | 一种操作Flash的方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101980177A true CN101980177A (zh) | 2011-02-23 |
CN101980177B CN101980177B (zh) | 2013-07-31 |
Family
ID=43600679
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201010520788.0A Expired - Fee Related CN101980177B (zh) | 2010-10-21 | 2010-10-21 | 一种操作Flash的方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101980177B (zh) |
Cited By (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102231136A (zh) * | 2011-07-12 | 2011-11-02 | 晨星软件研发(深圳)有限公司 | 一种闪存存储设备的数据存储方法和装置 |
CN102789421A (zh) * | 2011-05-18 | 2012-11-21 | 安凯(广州)微电子技术有限公司 | 提高nand闪存读写性能的方法及装置 |
CN104317732A (zh) * | 2014-10-27 | 2015-01-28 | 上海动联信息技术股份有限公司 | 一种大容量Flash芯片的空间管理方法 |
CN105159601A (zh) * | 2015-08-07 | 2015-12-16 | 杭州海兴电力科技股份有限公司 | 一种提高Flash擦写寿命的方法 |
CN105468304A (zh) * | 2015-11-26 | 2016-04-06 | 恒宝股份有限公司 | 一种Native存储卡及其管理方法 |
CN105760313A (zh) * | 2015-08-07 | 2016-07-13 | 深圳市证通金信科技有限公司 | 基于SPI-Flash的文件系统的数据处理方法及装置 |
CN106021122A (zh) * | 2016-05-12 | 2016-10-12 | 青岛海信宽带多媒体技术有限公司 | 光模块中闪存数据的写入方法及装置 |
CN106227678A (zh) * | 2016-07-21 | 2016-12-14 | 北京四维益友信息技术有限公司 | 一种虚拟存储介质的存取方法 |
CN106354432A (zh) * | 2016-08-30 | 2017-01-25 | 北京小米移动软件有限公司 | 数据修改方法及装置 |
CN106598876A (zh) * | 2015-10-15 | 2017-04-26 | 慧荣科技股份有限公司 | 数据储存装置及其数据维护方法 |
CN107015913A (zh) * | 2016-01-28 | 2017-08-04 | 瑞昱半导体股份有限公司 | 记忆体装置以及映射表保证方法 |
CN107168647A (zh) * | 2017-04-17 | 2017-09-15 | 武汉永力科技股份有限公司 | Flash数据读写方法及系统 |
CN109407963A (zh) * | 2017-08-15 | 2019-03-01 | 深圳市中兴微电子技术有限公司 | 一种实现存储管理的方法及装置 |
CN110471626A (zh) * | 2019-08-15 | 2019-11-19 | 深圳融卡智能科技有限公司 | 应用于Java Card的Nor Flash管理层及方法 |
CN111930643A (zh) * | 2020-09-28 | 2020-11-13 | 深圳芯邦科技股份有限公司 | 一种数据处理方法及相关设备 |
US10866850B2 (en) | 2016-01-21 | 2020-12-15 | Raymx Microelectronics Corp. | Memory device for guaranteeing a mapping table and method thereof |
CN112597072A (zh) * | 2020-12-17 | 2021-04-02 | 北京华弘集成电路设计有限责任公司 | 一种Flash存储器的数据更新方法和装置 |
CN114442906A (zh) * | 2020-11-02 | 2022-05-06 | 深圳Tcl新技术有限公司 | 一种数据存储方法、终端及计算机可读存储介质 |
CN114518834A (zh) * | 2020-11-18 | 2022-05-20 | 中移物联网有限公司 | 一种信息存储方法、装置及电子设备 |
TWI789549B (zh) * | 2019-09-12 | 2023-01-11 | 晶豪科技股份有限公司 | 記憶體晶片,記憶體模組以及用來假性存取其記憶庫的方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1518000A (zh) * | 2003-01-26 | 2004-08-04 | 深圳市朗科科技有限公司 | 闪存介质中的数据管理方法 |
US20050108301A1 (en) * | 2003-11-14 | 2005-05-19 | Changjian Lou | Method for balancing wear when writing data in a flash memory |
CN101526927A (zh) * | 2008-03-07 | 2009-09-09 | 北京华虹集成电路设计有限责任公司 | Flash文件系统的数据处理方法及数据处理装置 |
-
2010
- 2010-10-21 CN CN201010520788.0A patent/CN101980177B/zh not_active Expired - Fee Related
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1518000A (zh) * | 2003-01-26 | 2004-08-04 | 深圳市朗科科技有限公司 | 闪存介质中的数据管理方法 |
US20050108301A1 (en) * | 2003-11-14 | 2005-05-19 | Changjian Lou | Method for balancing wear when writing data in a flash memory |
CN101526927A (zh) * | 2008-03-07 | 2009-09-09 | 北京华虹集成电路设计有限责任公司 | Flash文件系统的数据处理方法及数据处理装置 |
Cited By (28)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102789421A (zh) * | 2011-05-18 | 2012-11-21 | 安凯(广州)微电子技术有限公司 | 提高nand闪存读写性能的方法及装置 |
CN102231136A (zh) * | 2011-07-12 | 2011-11-02 | 晨星软件研发(深圳)有限公司 | 一种闪存存储设备的数据存储方法和装置 |
CN102231136B (zh) * | 2011-07-12 | 2014-06-11 | 晨星软件研发(深圳)有限公司 | 一种闪存存储设备的数据存储方法和装置 |
CN104317732A (zh) * | 2014-10-27 | 2015-01-28 | 上海动联信息技术股份有限公司 | 一种大容量Flash芯片的空间管理方法 |
CN105760313A (zh) * | 2015-08-07 | 2016-07-13 | 深圳市证通金信科技有限公司 | 基于SPI-Flash的文件系统的数据处理方法及装置 |
CN105159601B (zh) * | 2015-08-07 | 2018-12-07 | 杭州海兴电力科技股份有限公司 | 一种提高Flash擦写寿命的方法 |
CN105159601A (zh) * | 2015-08-07 | 2015-12-16 | 杭州海兴电力科技股份有限公司 | 一种提高Flash擦写寿命的方法 |
CN106598876B (zh) * | 2015-10-15 | 2020-02-14 | 慧荣科技股份有限公司 | 数据储存装置及其数据维护方法 |
CN106598876A (zh) * | 2015-10-15 | 2017-04-26 | 慧荣科技股份有限公司 | 数据储存装置及其数据维护方法 |
CN105468304A (zh) * | 2015-11-26 | 2016-04-06 | 恒宝股份有限公司 | 一种Native存储卡及其管理方法 |
US10866850B2 (en) | 2016-01-21 | 2020-12-15 | Raymx Microelectronics Corp. | Memory device for guaranteeing a mapping table and method thereof |
CN107015913A (zh) * | 2016-01-28 | 2017-08-04 | 瑞昱半导体股份有限公司 | 记忆体装置以及映射表保证方法 |
CN106021122A (zh) * | 2016-05-12 | 2016-10-12 | 青岛海信宽带多媒体技术有限公司 | 光模块中闪存数据的写入方法及装置 |
CN106227678B (zh) * | 2016-07-21 | 2018-12-28 | 北京四维益友信息技术有限公司 | 一种虚拟存储介质的存取方法 |
CN106227678A (zh) * | 2016-07-21 | 2016-12-14 | 北京四维益友信息技术有限公司 | 一种虚拟存储介质的存取方法 |
CN106354432A (zh) * | 2016-08-30 | 2017-01-25 | 北京小米移动软件有限公司 | 数据修改方法及装置 |
CN107168647A (zh) * | 2017-04-17 | 2017-09-15 | 武汉永力科技股份有限公司 | Flash数据读写方法及系统 |
CN107168647B (zh) * | 2017-04-17 | 2020-10-23 | 武汉永力科技股份有限公司 | Flash数据读写方法及系统 |
CN109407963A (zh) * | 2017-08-15 | 2019-03-01 | 深圳市中兴微电子技术有限公司 | 一种实现存储管理的方法及装置 |
CN110471626A (zh) * | 2019-08-15 | 2019-11-19 | 深圳融卡智能科技有限公司 | 应用于Java Card的Nor Flash管理层及方法 |
CN110471626B (zh) * | 2019-08-15 | 2023-04-25 | 无锡融卡科技有限公司 | 应用于Java Card的Nor Flash管理层及方法 |
TWI789549B (zh) * | 2019-09-12 | 2023-01-11 | 晶豪科技股份有限公司 | 記憶體晶片,記憶體模組以及用來假性存取其記憶庫的方法 |
CN111930643A (zh) * | 2020-09-28 | 2020-11-13 | 深圳芯邦科技股份有限公司 | 一种数据处理方法及相关设备 |
CN111930643B (zh) * | 2020-09-28 | 2021-01-12 | 深圳芯邦科技股份有限公司 | 一种数据处理方法及相关设备 |
CN114442906A (zh) * | 2020-11-02 | 2022-05-06 | 深圳Tcl新技术有限公司 | 一种数据存储方法、终端及计算机可读存储介质 |
CN114518834A (zh) * | 2020-11-18 | 2022-05-20 | 中移物联网有限公司 | 一种信息存储方法、装置及电子设备 |
CN114518834B (zh) * | 2020-11-18 | 2023-10-27 | 中移物联网有限公司 | 一种信息存储方法、装置及电子设备 |
CN112597072A (zh) * | 2020-12-17 | 2021-04-02 | 北京华弘集成电路设计有限责任公司 | 一种Flash存储器的数据更新方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
CN101980177B (zh) | 2013-07-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101980177B (zh) | 一种操作Flash的方法和装置 | |
KR101453264B1 (ko) | 메모리 디바이스에 대한 저장 어드레스 리매핑을 위한 방법과 시스템 | |
CN106547703B (zh) | 一种基于块组结构的ftl优化方法 | |
CN101169751B (zh) | 具有闪存设备的系统及其数据恢复方法 | |
US7450420B2 (en) | Reclaiming data storage capacity in flash memories | |
US8626987B2 (en) | Flash memory system and defragmentation method | |
EP1920335B1 (en) | Reclaiming data storage capacity in flash memory systems | |
TWI437441B (zh) | 多庫記憶體裝置之儲存位址重映射之方法及系統 | |
CN101241471A (zh) | 快闪存储器系统及其垃圾收集方法 | |
CN100426259C (zh) | 一种存储器文件数据虚拟存取方法 | |
CN101634967B (zh) | 用于闪存的区块管理方法、储存系统与控制器 | |
CN104268094A (zh) | 一种优化的闪存地址映射方法 | |
CN101238431A (zh) | 大容量数据存储系统 | |
JPWO2005106673A1 (ja) | 不揮発性記憶装置及びデータ書込み方法 | |
CN101606133A (zh) | 具有连续逻辑地址空间接口的直接数据文件系统的使用 | |
CN101488153A (zh) | 嵌入式Linux下大容量闪存文件系统的实现方法 | |
CN102135942A (zh) | 一种存储设备中实现损耗均衡的方法及存储设备 | |
CN101539887B (zh) | 快闪存储器管理方法与计算机系统 | |
CN102004697B (zh) | 一种Flash的回收方法和装置 | |
CN102012869B (zh) | 闪存储存系统的数据刻录方法 | |
CN105353979A (zh) | SSD内部数据文件系统eblock链接结构、管理系统及方法 | |
CN111324307B (zh) | 一种星载nand flash型固态存储器及分配存储空间的方法 | |
US20240069775A1 (en) | Compaction of a Logical-to-Physical Table for Zoned Namespace Nonvolatile Memory | |
CN101989235A (zh) | 快闪存储装置及快闪存储装置的运作方法 | |
Kim et al. | A new hash algorithm exploiting triple-state bucket directory for flash storage devices |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CP01 | Change in the name or title of a patent holder | ||
CP01 | Change in the name or title of a patent holder |
Address after: 100015 Beijing city Chaoyang District Dongzhimen West eight Street No. 2 room Wanhong Yan Dong Business Garden Patentee after: BEIJING WATCHDATA Co.,Ltd. Address before: 100015 Beijing city Chaoyang District Dongzhimen West eight Street No. 2 room Wanhong Yan Dong Business Garden Patentee before: BEIJING WATCH DATA SYSTEM Co.,Ltd. |
|
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20130731 Termination date: 20211021 |