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

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

[复制链接]
麦克泰技术 发布时间:2020-9-4 13:38
在SSD(固态硬盘),移动电话和消费类设备中使用的NAND Flash芯片,通常针对速度和每比特位数进行优化,因此,它们必须使用专用逻辑或应用处理器来处理优化带来的复杂性。但是,对于NAND Flash连接到MCU的嵌入式系统,其约束是完全不同的。了解这些差异将帮助开发人员避免代价高昂且耗时的错误。

2 [  |8 M( K2 B, W. Q2 u: y3 E
明确需求7 f2 D3 F$ y/ E6 n) I) {1 d" X
) J% a, @9 R1 S
为了在面对NAND Flash的细微差别时,做出良好的设计决策,开发人员必须仔细确定系统需求。首先需要考虑的事项是:
•设备的使用寿命?
•需要的存储空间?
•数据保留时间?
•读/写数据的速度?
•数据组织方式?
•是否需要故障安全?
•可以容忍的设备故障率?
需求明确后,你就可以寻找满足这些要求的方法,在产品设计中集成合适的NAND Flash。
2 @2 k# D7 T; Z- ^1 w& s
NAND Flash基础知识

7 h. Y6 I0 |) _' e2 h$ s
NAND Flash以页(page)为组成单位,每个页除数据区域外,还包含一个额外的、小的备用区域(spare area),可以用来存储管理信息。页组成块(block)。Flash以块为单位擦除,以页为单位写入。一些设备允许部分页编程,但不允许字节写入。Flash块中的页必须以递增地方式顺序写入,按page0,page1,page2….顺序。某些设备需要先写入一定数量的页,然后才能擦除块。
$ |$ [( r; z9 |3 S
Flash的备用区用于存储元数据(meta-data),包括坏块标记和错误纠正码(ECC),NAND组织的简单示例,请参见图1。不同的NAND Flash其组织结构会有变化,详细信息请阅读设备的参考手册或数据表,了解所选设备的具体行为。
1.png
/ H% r+ W0 e8 I7 q4 M. H9 I6 I' ^" z9 p8 v6 ^
如何选择NAND设备和接口类型

4 m, f7 x4 e/ j7 l) C8 Q& _* _9 V! |4 m8 o% ?/ @2 U
对于MCU开发人员而言,大多数NAND设备过于复杂而无法集成-主要是由于其纠错要求。通常,SLC(single-level Cell,每个存储单元存放1位数据)Flash需要进行1位校正位,而MLC(Multi Level Cell,单个存储单元可以存储多个位,如2位,4位等)需要进行多位校正位。

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

5 h# B" ~+ x% }: G$ o! k5 Z5 T
NAND Flash与MCU的连接有两种方式。传统方法是使用地址与数据复用的8位数据总线。另一种方式是SPI接口,其优点是与MCU的接口简单,且大多数SPI接口的NAND Flash设备包含ECC引擎,可以减轻MCU的处理负担。

- {) Z9 I: ^9 ^# b% A  p! n  U# J
关注NAND固有特性

8 Q9 j5 b: t. ~& w2 d6 N5 `/ {5 R; K6 c  z$ x* a
使用NAND Flash的复杂性是许多细微差别导致的,这些差别是这种存储介质不可或缺的一部分。通常,Flash密度越高,使用越复杂。以下是需要注意的事项:
出厂坏块信息:出厂时,设备中的某些块即不可用。在设备生产时,将对每个块进行测试,并将测试失败的块标记为坏块。
ECC校验:所有NAND Flash使用过程中,一些位会变得粘滞或状态翻转。Flash密度越大越不稳定。为了满足设备参数,制造商需要指定所需的纠错级别。ECC存储在每个页的备用区域中。ECC需要大量的计算,纠错的位数越多,工作量越大。
数据保持:使用指定的ECC纠错时,数据可以保持稳定状态的时间。
擦写次数:当指定的ECC不能保护数据之前,每个块可以写入和擦除的次数。
读干扰:对页的读取或写入操作可能会干扰另一页面的内容。
( Z  c# ?5 v, L4 s
NAND Flash还有许多微妙之处,但并未全部标注在文档中。制造商还对使用场景做出假设,这些并没有记录在案。使用故障安全的软件(如SafeFAT)是最可靠的方法。

1 c  `: j( u$ ]8 I' }: k
通常,给出的错误纠正、数据保持等数字是基于概率计算的,它们倾向于使用“典型”一词,而很少使用“保证”一词。不同的属性也会相互影响–例如,通常,块的擦除次数越多,数据保持率就越低。但此类信息无法从产品数据表中获得。此外,环境条件也会影响这些数字以及Flash使用的寿命。设计产品时,你应该确保设备在指定的参数范围内运行良好。
1 j% D$ h8 E  e7 h
如果使用场景接近使用的NAND Flash部件的限制,建议您采取两种措施:
1、为您的应用场景建模设备的寿命
2、插入大量错误测试
无需畏惧软件管理

1 S- w) F; c; j. {5 u2 |$ W) _
NAND Flash的管理使用Flash转换层(FTL)。FTL对应用程序(或文件系统)隐藏Flash的操作细节,仅处理一组扇区,下图所示。
2.png
FTL的开发是一个专业主题。需要考虑的关键因素包括:
1、FTL是故障安全的吗?实现故障安全需要做什么?
2、支持的FLASH类型?
3、写入放大值?
4、磨损平衡(wear-leveling)能力?
5、处理边界编程?
6、在应用上下文中的性能要求?
0 H! V/ l+ P. P6 t8 u6 x, ]) d
总结
许多类型的NAND Flash可供MCU使用,仔细考虑系统要求,选择合适的NAND Flash部件可以构建强大的存储系统。但设计需要付出大量的努力并了解所选NAND部件的细节,这可能需要专业知识。
! r1 |& n7 {5 h" E  U
收藏 评论0 发布时间:2020-9-4 13:38

举报

0个回答

所属标签

相似分享

关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新和工艺
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版