层层 模块模块 访问访问 startint position
FAL 坏块管理 硬件适配模块 当HAL在执行LLD操作时检测到错误的时候.
FAL 后台任务 垃圾回收 根据操作系统的整体调度策略定.
FAL 缓存管理 转换模块 在每次对NFTL进行读写操作的时候.
HAL 错误纠正代码 硬件适配模块 在读写期间纠正错误.
FAL 垃圾回收 转换模块 外部操作请求或者是达到一定的阈值.
HAL 平台相关层 硬件适配模块高级逻辑 对每一次对NAND Flash进行的访问.
FAL 转换模块 外部模块 在外部操作期间.
FAL 耗损均衡 转换模块 对于新block的每一次分配.
NFTL软件具有如下特性:
可配置可配置:对于每一个软件模块,NFTL都提供了可以由用户定义的功能,这些功能允许特定的软件和硬件特性可配置。只需要简单
修改几行代码,RAM空间以及设备操作都可以配置.
简单集成简单集成:NFTL架构允许镁光的NAND Flash存储设备可以很容易地与许多标准文件系统集成。它由一套用户友好的带有一些数
值参数的API接口.最小化移植和开发的工作量可以加快产品开发周期.
模块化架构模块化架构:NFTL有一个模块化的结构,每个模块都可以被修改而不影响其他模块,也可以提取出来独立用于特定的环境.
掉电恢复功能掉电恢复功能(Power loss recovery,PLR):NFTL可以在每次系统上电的时候识别系统状态,即使出现突然掉电的情况,此外,
如果数据被破坏,NFTL将恢复有效数据并擦除余下的数据。在使用一个新的块之前,NFTL将首先擦除它,一个写确认操作称为
COMMIT用于确保当写数据的时候数据是有效的.
数据完整性数据完整性:NFTL通过坏块管理以及错误纠正模块来维护数据的完整性.
垃圾回收垃圾回收:垃圾回收机制模块用于释放被占用的flash内存空间.
后台垃圾回收后台垃圾回收:NFTL提供了使用操作系统的多线程的能力,从而提高无效空间的收集和清除的性能,使用指定的API,可以在系统
启动和运行期间启动或者停止后台垃圾回收机制,并且在分区一旦挂载完毕之后就启动线程,为了实现更多定制化需求来满足
特定的需求,独立地为每一个分区单独管理线程也是可能的,允许后台垃圾回收机制运行在一个或者多个分区上运行。
耗损均衡耗损均衡:NFTL保证了每个物理块的统一使用,延长了设备的生命周期。
多个块擦除多个块擦除:这是OneNAND的一个特性.
操作日志操作日志:NFTL执行的最后一条操作将被保存下来,这对于远程调试是很有用的.
静态耗损均衡静态耗损均衡:使用这种方法,长期稳定的数据被拷贝到另一个块,以至于原来的块可以用于存储频繁变化的数据,这一动作是
在每个块的最大和最小写次数差达到一定阈值时触发,使用这一技术,物理块的平均使用寿命得以保持.
调试信息调试信息:调试信息可以被打印到屏幕上,对于每一个模块也可以被使能或者不使能.
Multi-Plane支持支持:一些存储设备具有multi-plane特性,允许对多个plane上的block进行多设备操作.
坏块表坏块表:坏块列表被存在在坏块表中,存储在设备中的某个位置.
高级坏块标记高级坏块标记:NFTL增加了一些信息用于存储坏块被标记为坏块的原因.坏块的产生由如下这些事件触发:
出厂标记:该块在出厂是就被标记为坏块.
-写失败:对设备块的PROGRAM操作失败,该block上面的有效数据被保存到其他位置并将该block标记为坏块.
-擦除失败:块ERASE操作失败,该block被标记为坏块.
-读失败:READ操作失败,因为多余1个bit的数据出现错误.
坏块标记存储在spare area中,该域在每个设备中的位置可能会有所不同,如果该域中不包含0xFF,那么该块就被认为是坏块.
如下数值表示失败的操作以及造成坏块出现的原因:
-BAD_BLOCK_FACTORY_SHIPPED 0x00.
-BAD_BLOCK_AFTER_WRITE 0x01.
-BAD_BLOCK_AFTER_ERASE 0x02.
-BAD_BLOCK_AFTER_READ 0x04.
1bit ECC错误刷新错误刷新:当在执行READ操作的时候出现1bit ECC错误时,该块的所有数据都将被移动到一个新的空闲block,原来包含
1bit ECC错误的block将被擦除.
安全写安全写:在t_partitionInfo中设置SAFE_WRITE表示一个安全分区.在安全分区中,a ready verify is performed for each WRITE
operation.如果出现比较错误,那么sector将会重新写入,并且该block将被标记位坏块.
擦除验证擦除验证:A commit mark 被增加到已经擦除的block.该特性增加了NFTL掉电的安全级别.
多种分区类型多种分区类型:NFTL支持两种类型的分区,允许数据以如下两种策略进行存储:
-标准分区:这些分区提供完整的掉电恢复以及数据保护特性。他们可以用于在NAND Flash上存储任何在回话之间必须被保存的
NFTL软件特性软件特性