Nand Flash均衡算法


Nand Flash由于有擦除次数的限制,因此在对其进行写操作时需要使用写均衡算法使得nand flash上各块的擦写次数均衡,从而提高nand flash的使用寿命。

2         FTL实现方案

2.1        FTL整体框架

图2-1 FTL整体框架

图2-1所示为FTL的整体框架示意图,途中的虚线框中模块即为FTL模块。从图中可知,FTL模块是Nand Flash应用层与Nand Flash驱动层之间增加的一个中间层,它所完成的功能是为Nand Flash提供均衡的擦写算法,使得Nand Flash上各个块的擦写次数均衡,从而提高Nand Flash的寿命。

FTL模块将定义了三种类型的地址,一是逻辑地址LA(Logical Address),是Nand Flash APP使用的地址空间;第二种是物理地址PA(Physical Address),即Nand Flash的实际地址,向下提供给Nand Flash Driver;还有一种地址是假物理地址PPA(Pseudo Physical Address)。FTL模块的功能就是将LA转换成PA,为了完成该转换,FTL模块提供了FTL层和BBR

层功能模块,如图1的虚线框所示。

FTL层功能是将LA转换成PPA。在该层中,逻辑地址按页映射到Pseudo Physical Address的页地址。BBR层则将PPA转换成PA,坏块管理已经擦除均衡算法主要在这一层实现。在2.2节和2.3节将会详细介绍这两层的实现。

1.1        FTL层实现

1.1.1         基本数据结构定义

FTL完成逻辑地址LA到假物理地址PPA的转换,LA与PPA使用了页地址的映射关系,如图2-2所示。

图2-2 LA与PPA的映射关系

图2-2中的每个小块表示一个page(一般为512bytes),同颜色的32个page构成一个Block。由图中可知,LA到PPA是按页映射。对于FAT文件系统,FTL的逻辑地址使用了簇的概念,实际上是使用了Block,这是一个可选项,在编译时指定,映射关系如图2-3所示。

图2-3 LA与PPA的映射关系(FAT)

    由图2-3可知,针对FAT文件系统,FTL的LA与PPA的映射使用了Block与Block对应,但是Block内的Page不要求对齐。

逻辑地址到假的物理地址的对应关系保存在数组L2PP[MAX_PAGES]中。

同时FTL还保存了PPA到LA的映射关系,PPA到LA的映射可以采用页地址映射和Block地址映射的方式(这是可选项,在编译时指定),IDCC提供的代码中采用了Block地址映射的方式。它们的映射示意图如图2-4所示。

图2-4 PPA到LA的映射关系

如果PPA的Block(PPABlock)指向LA中的一个Block(LA Block),表示LA Block的所有有效Page都指向了PPA Block中的Page,同时也只有LA Block的地址映射到该PPA Block;如果PPA Blcok指向0xFFFFFFFF,表示LA没有地址指向PPA Block;如果PPA Block指向的值为0xFFFFFFFE,表示LA中,有多个Block中的page映射到PPA Block。

FTL定义了数组PP2L[Max Blocks]来保存PPA到LA的映射关系。

由于LA到PPA采用了页映射关系,在LA中的某一页由PPA的page1换到page2后,page1还不能被LA中的地址映射,因为该页要被重新写的话需要先擦除,因此,只有page1所在的块被擦除后才能被使用,那么page1就会成为无效块,直到擦除它所在的块才能重新有效。为了记录该信息,FTL定义了SUT[MAXBlocks]来记录每一块中被使用的块和无效块。当无效块的个数为0并且正被使用的块为0表示该块是一个空闲块。

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值