你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

来看看 NAND Flash与MCU集成的细微之处

[复制链接]
BMRTECH2017 发布时间:2020-9-4 13:38
在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 发布时间:2020-9-4 13:38

举报

0个回答

所属标签

STM32团队

意法半导体微控制器和微处理器拥有广泛的产品线,包含低成本的8位单片机和基于ARM® Cortex®-M0、M0+、M3、M4、M33、M7及A7内核并具备丰富外设选择的32位微控制器及微处理器


最新内容

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
微信公众号二维码 微信公众号
手机版二维码 手机版