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

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

[复制链接]
麦克泰技术 发布时间:2020-9-4 13:38
在SSD(固态硬盘),移动电话和消费类设备中使用的NAND Flash芯片,通常针对速度和每比特位数进行优化,因此,它们必须使用专用逻辑或应用处理器来处理优化带来的复杂性。但是,对于NAND Flash连接到MCU的嵌入式系统,其约束是完全不同的。了解这些差异将帮助开发人员避免代价高昂且耗时的错误。
! {) w# q. c* a; Y' F- `
明确需求! F3 d! {) @# ?5 Y  J" _0 e
  q6 g1 S3 ^. ?2 X! L6 B
为了在面对NAND Flash的细微差别时,做出良好的设计决策,开发人员必须仔细确定系统需求。首先需要考虑的事项是:
•设备的使用寿命?
•需要的存储空间?
•数据保留时间?
•读/写数据的速度?
•数据组织方式?
•是否需要故障安全?
•可以容忍的设备故障率?
需求明确后,你就可以寻找满足这些要求的方法,在产品设计中集成合适的NAND Flash。
  i4 h6 F% A; Y; M9 _
NAND Flash基础知识

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

5 V# t% c6 `5 e! c' }- D( k
Flash的备用区用于存储元数据(meta-data),包括坏块标记和错误纠正码(ECC),NAND组织的简单示例,请参见图1。不同的NAND Flash其组织结构会有变化,详细信息请阅读设备的参考手册或数据表,了解所选设备的具体行为。
1.png 4 M0 a" V% K# c
6 z0 l  y+ k5 n, U4 f" x. w6 A
如何选择NAND设备和接口类型
$ N+ ~7 L2 Z! H% N) W

# k/ G& G- E' h8 s9 l4 t$ z
对于MCU开发人员而言,大多数NAND设备过于复杂而无法集成-主要是由于其纠错要求。通常,SLC(single-level Cell,每个存储单元存放1位数据)Flash需要进行1位校正位,而MLC(Multi Level Cell,单个存储单元可以存储多个位,如2位,4位等)需要进行多位校正位。

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

6 ~/ d0 N! \; U
NAND Flash与MCU的连接有两种方式。传统方法是使用地址与数据复用的8位数据总线。另一种方式是SPI接口,其优点是与MCU的接口简单,且大多数SPI接口的NAND Flash设备包含ECC引擎,可以减轻MCU的处理负担。
3 o9 ~& X# P, H$ }& \: m
关注NAND固有特性
" p+ D7 s' {) Q
0 }% R6 E# M/ V: x1 n0 V% F& s
使用NAND Flash的复杂性是许多细微差别导致的,这些差别是这种存储介质不可或缺的一部分。通常,Flash密度越高,使用越复杂。以下是需要注意的事项:
出厂坏块信息:出厂时,设备中的某些块即不可用。在设备生产时,将对每个块进行测试,并将测试失败的块标记为坏块。
ECC校验:所有NAND Flash使用过程中,一些位会变得粘滞或状态翻转。Flash密度越大越不稳定。为了满足设备参数,制造商需要指定所需的纠错级别。ECC存储在每个页的备用区域中。ECC需要大量的计算,纠错的位数越多,工作量越大。
数据保持:使用指定的ECC纠错时,数据可以保持稳定状态的时间。
擦写次数:当指定的ECC不能保护数据之前,每个块可以写入和擦除的次数。
读干扰:对页的读取或写入操作可能会干扰另一页面的内容。
1 a7 B3 p  N' M
NAND Flash还有许多微妙之处,但并未全部标注在文档中。制造商还对使用场景做出假设,这些并没有记录在案。使用故障安全的软件(如SafeFAT)是最可靠的方法。

) e; @* E% H# h  m( N
通常,给出的错误纠正、数据保持等数字是基于概率计算的,它们倾向于使用“典型”一词,而很少使用“保证”一词。不同的属性也会相互影响–例如,通常,块的擦除次数越多,数据保持率就越低。但此类信息无法从产品数据表中获得。此外,环境条件也会影响这些数字以及Flash使用的寿命。设计产品时,你应该确保设备在指定的参数范围内运行良好。
; f  y3 x/ x6 {' M) |
如果使用场景接近使用的NAND Flash部件的限制,建议您采取两种措施:
1、为您的应用场景建模设备的寿命
2、插入大量错误测试
无需畏惧软件管理
, g1 P& y( Y8 C$ V
NAND Flash的管理使用Flash转换层(FTL)。FTL对应用程序(或文件系统)隐藏Flash的操作细节,仅处理一组扇区,下图所示。
2.png
FTL的开发是一个专业主题。需要考虑的关键因素包括:
1、FTL是故障安全的吗?实现故障安全需要做什么?
2、支持的FLASH类型?
3、写入放大值?
4、磨损平衡(wear-leveling)能力?
5、处理边界编程?
6、在应用上下文中的性能要求?

- y5 m' s/ A. h& ?' J
总结
许多类型的NAND Flash可供MCU使用,仔细考虑系统要求,选择合适的NAND Flash部件可以构建强大的存储系统。但设计需要付出大量的努力并了解所选NAND部件的细节,这可能需要专业知识。
6 j9 N  a. R. w7 e+ E8 ~
收藏 评论0 发布时间:2020-9-4 13:38

举报

0个回答

所属标签

相似分享

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