一种用于NandFlash的指针式逻辑地址映射表实现方法与流程

文档序号:12034514阅读:491来源:国知局

本发明涉及nandflash控制器技术领域,特别涉及一种用于nandflash的指针式逻辑地址映射表实现方法。



背景技术:

随着计算机技术的不断发展,存储设备的容量和速度都得到很大的提升。新型高速硬盘大多以nandflash芯片为存储介质,但是该存储芯片的控制复杂,需要垃圾回收和磨损均衡等控制机制。

基于上述情况,本发明提出了一种用于nandflash的指针式逻辑地址映射表实现方法。旨在通过使用地址指针,实现对单个逻辑地址的多级逻辑地址映射表,从而降低nandflash芯片发生写错误时垃圾回收导致的高昂时间成本。



技术实现要素:

本发明为了弥补现有技术的缺陷,提供了一种简单高效的用于nandflash的指针式逻辑地址映射表实现方法。

本发明是通过如下技术方案实现的:

一种用于nandflash的指针式逻辑地址映射表实现方法,其特征在于,包括以下步骤:

(1)建立一级逻辑地址映射表,所述一级逻辑地址映射表内每一条目的地址即为逻辑地址,条目内存储的内容为一级物理地址;

(2)根据nandflash芯片规格,为每一个plan(规划)建立一个空闲块物理地址子表;

(3)顺序读取nandflash存储芯片每个block(块)的坏块信息,将正常block的物理地址按顺序存储在一级逻辑地址映射表和对应的空闲块物理地址子表中;

(4)按逻辑地址顺序对nandflash芯片进行读写操作或擦除操作;

(5)当n级逻辑地址映射表中的block发生写入失败后,选取对应plan的空闲块创建n+1级逻辑地映射表,根据该物理地址找到对应的空闲块物理地址子表,并从中取出一个物理地址,将取出的物理地址添加到n+1级逻辑地址映射表中;将n级逻辑地址映射表中原地址条目的子地址指针填写n+1级逻辑地址映射表中的对应条目地址,将原地址条目的起始page(页面)填入0,结束page填入写入失败page前一页,将n+1级逻辑地址映射表中新条目的起始page填入写入失败page;

(6)使用copyback指令将写入失败的数据写入新逻辑地址,之后继续进行下一个读写操作。

所述步骤(4)中,当进行读操作时,从一级逻辑地址映射表开始读,按照对应的起始结束page信息,切换二级逻辑地址映射表直至读取该block完成,切换下一级逻辑地址映射表。

所述步骤(4)中,当进行擦除操作时,先将每个逻辑地址对应的最后一级逻辑地址映射表中的物理地址直接填入一级逻辑地址映射表,然后将其他级逻辑地址映射表全部擦除,最后将一级逻辑地址映射表中的block执行擦除操作。

当有某一个plan的空闲块物理地址子表使用完后,对应的一级逻辑地址映射表将向系统发送nandflash芯片损坏信号。

本发明的有益效果是:该用于nandflash的指针式逻辑地址映射表实现方法,通过使用地址指针,实现对单个逻辑地址的多级逻辑地址映射表,从而降低了nandflash芯片发生写错误时垃圾回收导致的高昂时间成本,避免了复杂的垃圾回收算法和磨损均衡算法的实现,大大降低了nandflash控制器的实现难度,同时提高了存储写入速度。

具体实施方式

为了使本发明所要解决的技术问题、技术方案及有益效果更加清楚明白,以下结合实施例,对本发明进行详细的说明。应当说明的是,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。

该用于nandflash的指针式逻辑地址映射表实现方法,包括以下步骤:

(1)建立一级逻辑地址映射表,所述一级逻辑地址映射表内每一条目的地址即为逻辑地址,条目内存储的内容为一级物理地址;

(2)根据nandflash芯片规格,为每一个plan(规划)建立一个空闲块物理地址子表;

(3)顺序读取nandflash存储芯片每个block(块)的坏块信息,将正常block的物理地址按顺序存储在一级逻辑地址映射表和对应的空闲块物理地址子表中;

(4)按逻辑地址顺序对nandflash芯片进行读写操作或擦除操作;

(5)当一级逻辑地址映射表中的block发生写入失败后,选取对应plan的空闲块创建二级逻辑地映射表,根据该物理地址找到对应的空闲块物理地址子表,并从中取出一个物理地址,将取出的物理地址添加到二级逻辑地址映射表中;将一级逻辑地址映射表中原地址条目的子地址指针填写二级逻辑地址映射表中的对应条目地址,将原地址条目的起始page(页面)填入0,结束page填入写入失败page前一页,将二级逻辑地址映射表中新条目的起始page填入写入失败page;

(6)使用copyback指令将写入失败的数据写入新逻辑地址,之后继续进行下一个读写操作。

当二级逻辑地址映射表中的block发生也写入失败后,按照步骤(5)和步骤(6)的方法,选取对应plan的空闲块创建三级逻辑地映射表,根据该物理地址找到对应的空闲块物理地址子表,并从中取出一个物理地址,将取出的物理地址添加到三级逻辑地址映射表中;将二级逻辑地址映射表中原地址条目的子地址指针填写三级逻辑地址映射表中的对应条目地址,将原地址条目的起始page(页面)填入0,结束page填入写入失败page前一页,将三级逻辑地址映射表中新条目的起始page填入写入失败page;

使用copyback指令将写入失败的数据写入新逻辑地址,之后继续进行下一个读写操作。

以后各级逻辑地址映射表中的block发生写入失败后,均按照步骤(5)和步骤(6)的方法以此类推。

所述步骤(4)中,当进行读操作时,从一级逻辑地址映射表开始读,按照对应的起始结束page信息,切换二级逻辑地址映射表直至读取该block完成,切换下一级逻辑地址映射表。

所述步骤(4)中,当进行擦除操作时,先将每个逻辑地址对应的最后一级逻辑地址映射表中的物理地址直接填入一级逻辑地址映射表,然后将其他级逻辑地址映射表全部擦除,最后将一级逻辑地址映射表中的block执行擦除操作。

当有某一个plan的空闲块物理地址子表使用完后,对应的一级逻辑地址映射表将向系统发送nandflash芯片损坏信号。



技术特征:

技术总结
本发明特别涉及一种用于Nand Flash的指针式逻辑地址映射表实现方法。该用于Nand Flash的指针式逻辑地址映射表实现方法,通过使用地址指针,实现对单个逻辑地址的多级逻辑地址映射表,从而降低了Nand Flash芯片发生写错误时垃圾回收导致的高昂时间成本,避免了复杂的垃圾回收算法和磨损均衡算法的实现,大大降低了Nand Flash控制器的实现难度,同时提高了存储写入速度。

技术研发人员:赵鑫鑫;姜凯;李朋;尹超
受保护的技术使用者:济南浪潮高新科技投资发展有限公司
技术研发日:2017.06.19
技术公布日:2017.10.24
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1