降低混合映射算法中日志块映射表内存资源占用的方法技术

技术编号:12618379 阅读:117 留言:0更新日期:2015-12-30 15:34
本发明专利技术涉及NAND Flash存储器存储数据领域,尤其是涉及降低混合映射算法中日志块映射表内存资源占用的方法。本发明专利技术针对现有技术存在的问题,提供了一种降低内存资源消耗的方法,可以降低基于页映射的日志块映射表的缓存占用,能够显著降低LPMT占用资源,对与系统内存资源较为宝贵的嵌入式的片上系统具有实际意义。本发明专利技术中当有数据写入日志块时,查找LBIT中是否有同属于第k组的日志块且根据LPMT映射表信息确认是否能进行数据写入;当需要读取数据时,根据步骤1,查找LBIT中是否有同属于第k组的日志块且通过查找LPMT映射表是否存在offset项来确认该日志块中是存在有效数据,并进行数据读取。

【技术实现步骤摘要】

本专利技术涉及NAND Flash存储器存储数据领域,尤其是涉及。
技术介绍
半导体行业的蓬勃发展,出现了高性能的存储器NAND Flash, NAND Flash存储器使用半导体作为存储介质,具有高速,低能耗和防震等优点,但NAND Flash存储器本身也存在一些不足。首先,它的存储块的擦除次数是有限的;其次,NAND Flash必须要擦除之后才能重新写入,导致写入性能较低。因此,磨损均衡显得尤为重要,好的磨损均衡管理方法不但能够提高NAND Flash性能和效率,还能够大大的延长NAND Flash的使用寿命。基于此,出现了专门为NAND Flash存储器所使用的文件系统,如JFFS、JFFS2、YAFFS, TrueFFS等,这些NAND Flash专用的文件系统进行存储管理为NAND Flash设备提供专门的驱动和更好的数据管理。但是对于一个小型的S0C,由于资源的限制,想采用以上的文件系统对NANDFlash进行管理不太现实,所以亟需一个轻量级的管理方法,能够在有限资源的条件下,满足对NAND Flash的磨损均衡控制。目前对于小型的系统,常采用的管理方法为FTL (FlashTranslat1n Layer)ο典型的FTL管理机制采用以页为单位进行存储管理的方式,如图1所示,将物理页地址与逻辑页地址来进行一一对应,读、写操作都是按页进行,数据存储时存储在空白的页面存储区中,数据写入完成后需更新地址映射表中的转换信息。这种管理算法比较直接,但是由于采用的页映射机制,对于容量小、页数少的存储器,是极为方便的一种方法。但是,对于大容量NAND Flash来说,就显得比较吃力,例如,对于美光公司的MT29F32G08CBACA这个型号的NAND Flash来说,共有4096个物理块,每块有256页,基于页映射共需要4096*256*4=4MB的内存空间来保存当前的映射表,对于片上系统来说内存消耗过大。为了解决这个问题,提出了混合映射(Hybrid mapping)算法,它是基于块和页的混合映射的机制,如图2所示,在该算法中,将NAND Flash在逻辑上分为数据块和日志块两个部分,日志块是有多个空闲块组成。同时,在内存中存储着两个表:基于块映射的数据块地址映射表DBMT和基于页映射的日志块页映射表LPMT。写数据操作时,数据首先按页映射的方式写入日志块中,同时更新LPMT。当日志块数据存储满时,则对页映射表LPMT数据进行分析,将日志块中有效数据拷贝到空闲的数据块中,同时更新DBMT映射表,拷贝完成后释放当前的日志块,将数据写入空闲的日志块中,更新LPMT映射表。读数据操作时,首先查找LPMT页映射表,查询有效数据是否在日志块中,若是,则直接读取日志块中对应的数据,若不在该日志块上,则根据DBMT映射表,读取有效数据。根据混合映射算法,以MT29F32G08CBACA型号的NAND Flash为例,物理结构如图3,DBMT块映射表映射粒度为块,MT29F32G08CBACA共有4096个块,则DBMT存储的数值范围为0~0χ1000,用2个字节就可以表示出完整的信息,LPMT页映射表映射粒度为页,MT29F32G08CBACA共有4096*256个块,数值范围为0~0χ100000,需要4个字节才可以表示出完整的信息,需要消耗的内存如下:4096*2+ (TBN-X) *256*4,其中(TBN-X)为分配的日志块个数,可以看出,该算法所消耗的内存与日志块个数(TBN-X)有关,若(TBN-X)为64,则需要消耗内存为:4096*2+ 64*256*4 =72 KB0相对于基于页映射的算法,该算法内存消耗已经大大降低,但是经过分析发现,内存消耗主要部分为日志映射表LPMT,并且内存消耗与(TBN-X)相关,成倍数增长。
技术实现思路
本专利技术的目的在于:为了进一步降低内存消耗,增加日志块的个数,提高系统性能,本专利技术提供了一种降低内存资源消耗的方法,可以降低基于页映射的日志块映射表的缓存占用,能够显著降低LPMT占用资源,对与系统内存资源较为宝贵的嵌入式的片上系统具有实际意义,可广泛应用于片上系统的NAND Flash存储器的管理。本专利技术目的通过下述技术方案来实现: 一种包括: 步骤1:数据块和日志块都划分为K组,则第η组的日志块对应存储第η组数据块的数据,一个日志块组包括多个空闲块,一个空闲块包括多个空闲页;将数据需要写入的地址ADDR转换为组号η和组内偏移量offset ;设置日志块信息表LBIT记录对应日志块所属日志组号;所述11表示组别号;n为大于O的自然数,n = (ADDR/PPB)/(X/ K);offset = ADDR-η *(X/ K) * PPB 或 offset = ADDR % ( (X/K) * PPB) ;η 的范围为 0~Κ_1 ;步骤2:当有地址为ADDR_x的数据写入日志块组时,根据步骤1,查找日志块信息表LBIT中是否有组别属性为η的空闲块且根据LPMT映射表信息确认是否能进行数据写入;步骤3:当需要读取地址位ADDR_d的数据时,根据步骤1,查找日志块信息表LBIT中是否有组别属性为η的日志块且通过查找LPMT映射表是否存在offset项来确认该日志块中是存在有效数据,并进行数据读取。进一步的,所述步骤2具体包括: 步骤21:当有地址为ADDR_x的数据写入日志块组时,根据步骤1,查找日志块信息表LBIT中是否有组别属性为η的空闲块;若有,则执行步骤22 ;否则,从日志块中查找一个空闲块作为存储数据的日志块,修改该日志块信息表LBIT,将该日志块组别属性设置为η,然后将数据写入该日志块当中,同时更新LPMT ; 步骤22:根据LPMT映射表信息确认该空闲块中是否有空闲页,若有空闲页,则将数据直接写入该空闲块的空闲页中,同时更新LPMT ;若该空闲块中没有空闲页,则执行步骤23 ; 步骤23:从日志块中分配一个空闲块,修改该空闲块对应的日志块信息表LBIT信息,将该空闲块组别属性设置为η,然后将地址位ADDR_x的数据写入该空闲块当中,成为存储该数据的日志块,同时更新LPMT。进一步的,所述步骤3包括: 步骤31:当需要读取地位为ADDR_d的数据时,根据步骤1,查找日志块信息表LBIT中是否有组别属性为η的日志块,若有,则执行步骤32 ; 步骤32:查找LPMT映射表是否存在offset项来确认该日志块中是否存在有效数据,若存在,则读取该数据。本专利技术的有益效果: 在本专利技术中,将NAND Flash数据块和日志块划分为K组以及针对地址的转换即将地址ADDR转换为组号η和组内偏移量offset为算法关键,由于将数据块和日志块进行了分组,则LPMT只需要保存offset信息,所以大大减少了资源消耗。【附图说明】图1基于页映射的映射表示意图; 图2基于混合映射的映射表不意图; 图3 NAND Flash结构示意图; 图4 NAND Flash数据块和日志块逻辑分组示意图; 图5是LBIT表数据结构示意图; 图6a数据写入流程图; 图6b数据读取流程图。【具体实施方式】下列当前第1页1 2 本文档来自技高网
...

【技术保护点】
一种降低混合映射算法中日志块映射表内存资源占用的方法,其特征在于包括:步骤1:数据块和日志块都划分为K组,则第n组的日志块对应存储第n组数据块的数据,一个日志块组包括多个空闲块,一个空闲块包括多个空闲页;将数据需要写入的地址ADDR转换为组号n和组内偏移量offset;设置日志块信息表LBIT记录对应日志块所属日志组号;所述n表示组别号;n为大于0的自然数, n = (ADDR/PPB)/(X/ K);offset = ADDR – n *(X/ K)* PPB或offset = ADDR % ((X/K)* PPB);n的范围为0~K‑1;步骤2:当有地址为ADDR_x的数据写入日志块组时,根据步骤1,查找日志块信息表LBIT中是否有组别属性为n的空闲块且根据LPMT映射表信息确认是否能进行数据写入; 步骤3:当需要读取地址为ADDR_d的数据时,根据步骤1,查找日志块信息表LBIT中是否有组别属性为n的日志块且通过查找LPMT映射表是否存在offset项来确认该日志块中是存在有效数据,并进行数据读取。

【技术特征摘要】

【专利技术属性】
技术研发人员:王志奇章睿任仕玖周道双杨瑞瑞
申请(专利权)人:成都三零嘉微电子有限公司
类型:发明
国别省市:四川;51

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1