发 帖  
原厂入驻New
[资料] 技术小课堂| NAND Flash与MCU集成的细微之处
2020-9-4 13:51:34  75 MCU
分享
在SSD(固态硬盘),移动电话和消费类设备中使用的NAND Flash芯片,通常针对速度和每比特位数进行优化,因此,它们必须使用专用逻辑或应用处理器来处理优化带来的复杂性。但是,对于NAND Flash连接到MCU的嵌入式系统,其约束是完全不同的。了解这些差异将帮助开发人员避免代价高昂且耗时的错误。

明确需求
为了在面对NAND Flash的细微差别时,做出良好的设计决策,开发人员必须仔细确定系统需求。首先需要考虑的事项是:
•设备的使用寿命?
•需要的存储空间?
•数据保留时间?
•读/写数据的速度?
•数据组织方式?
•是否需要故障安全?
•可以容忍的设备故障率?
需求明确后,你就可以寻找满足这些要求的方法,在产品设计中集成合适的NAND Flash。

NAND Flash基础知识
NAND Flash以页(page)为组成单位,每个页除数据区域外,还包含一个额外的、小的备用区域(spare area),可以用来存储管理信息。页组成块(block)。Flash以块为单位擦除,以页为单位写入。一些设备允许部分页编程,但不允许字节写入。Flash块中的页必须以递增地方式顺序写入,按page0,page1,page2….顺序。某些设备需要先写入一定数量的页,然后才能擦除块。

Flash的备用区用于存储元数据(meta-data),包括坏块标记和错误纠正码(ECC),NAND组织的简单示例,请参见图1。不同的NAND Flash其组织结构会有变化,详细信息请阅读设备的参考手册或数据表,了解所选设备的具体行为。
1.png
如何选择NAND设备和接口类型
对于MCU开发人员而言,大多数NAND设备过于复杂而无法集成-主要是由于其纠错要求。通常,SLC(single-level Cell,每个存储单元存放1位数据)Flash需要进行1位校正位,而MLC(Multi Level Cell,单个存储单元可以存储多个位,如2位,4位等)需要进行多位校正位。

MCU开发人员可以从以下三类中选择NAND设备:
1、具有内置ECC计算引擎的Flash,MCU不需要处理ECC,大多数SPI NAND器件包含此功能。
2、Flash需要的1位ECC校正可以通过软件完成。
3、MCU集成了带ECC引擎的NAND控制器,能够匹配所选NAND Flash。通常,MCU集成的NAND控制器只能管理少量位错误(1-8),而应用处理器可能具有更为复杂的ECC引擎。

NAND Flash与MCU的连接有两种方式。传统方法是使用地址与数据复用的8位数据总线。另一种方式是SPI接口,其优点是与MCU的接口简单,且大多数SPI接口的NAND Flash设备包含ECC引擎,可以减轻MCU的处理负担。

关注NAND固有特性
使用NAND Flash的复杂性是许多细微差别导致的,这些差别是这种存储介质不可或缺的一部分。通常,Flash密度越高,使用越复杂。以下是需要注意的事项:
出厂坏块信息:出厂时,设备中的某些块即不可用。在设备生产时,将对每个块进行测试,并将测试失败的块标记为坏块。
ECC校验:所有NAND Flash使用过程中,一些位会变得粘滞或状态翻转。Flash密度越大越不稳定。为了满足设备参数,制造商需要指定所需的纠错级别。ECC存储在每个页的备用区域中。ECC需要大量的计算,纠错的位数越多,工作量越大。
数据保持:使用指定的ECC纠错时,数据可以保持稳定状态的时间。
擦写次数:当指定的ECC不能保护数据之前,每个块可以写入和擦除的次数。
读干扰:对页的读取或写入操作可能会干扰另一页面的内容。

NAND Flash还有许多微妙之处,但并未全部标注在文档中。制造商还对使用场景做出假设,这些并没有记录在案。使用故障安全的软件(如SafeFAT)是最可靠的方法。

通常,给出的错误纠正、数据保持等数字是基于概率计算的,它们倾向于使用“典型”一词,而很少使用“保证”一词。不同的属性也会相互影响–例如,通常,块的擦除次数越多,数据保持率就越低。但此类信息无法从产品数据表中获得。此外,环境条件也会影响这些数字以及Flash使用的寿命。设计产品时,你应该确保设备在指定的参数范围内运行良好。

如果使用场景接近使用的NAND Flash部件的限制,建议您采取两种措施:
1、为您的应用场景建模设备的寿命
2、插入大量错误测试


无需畏惧软件管理
NAND Flash的管理使用Flash转换层(FTL)。FTL对应用程序(或文件系统)隐藏Flash的操作细节,仅处理一组扇区,下图所示。
2.png FTL的开发是一个专业主题。需要考虑的关键因素包括:
1、FTL是故障安全的吗?实现故障安全需要做什么?
2、支持的FLASH类型?
3、写入放大值?
4、磨损平衡(wear-leveling)能力?
5、处理边界编程?
6、在应用上下文中的性能要求?


总结

许多类型的NAND Flash可供MCU使用,仔细考虑系统要求,选择合适的NAND Flash部件可以构建强大的存储系统。但设计需要付出大量的努力并了解所选NAND部件的细节,这可能需要专业知识。
0
分享淘帖 显示全部楼层

评论

高级模式
您需要登录后才可以回帖 登录 | 注册

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容图片侵权或者其他问题,请联系本站作侵删。 侵权投诉
发资料
关闭

站长推荐 上一条 /7 下一条

快速回复 返回顶部 返回列表