|
EDA365欢迎您!
您需要 登录 才可以下载或查看,没有帐号?注册
x
NOR和NAND是现在市场上两种主要的非易失闪存技术。Intel于1988年首先开发出NOR flash技术,彻底改变了原先由EPROM和EEPROM一统天下的局面。紧接着,1989年,东芝公司发表了NAND flash结构,强调降低每比特的成本,更高的性能,并且象磁盘一样可以通过接口轻松升级。但是经过了十多年之后,仍然有相当多的硬件工程师分不清NOR和NAND闪存。
5 q# q: b( z7 h& c
! O) x5 z& P6 I. d8 \* H8 u 相“flash存储器”经常可以与相“NOR存储器”互换使用。许多业内人士也搞不清楚NAND闪存技术相对于NOR技术的优越之处,因为大多数情况下闪存只是用来存储少量的代码,这时NOR闪存更适合一些。而NAND则是高数据存储密度的理想解决方案。
/ m$ z- g% H9 F1 T5 A/ P* Q" v+ a+ \+ F7 V7 h2 E4 s% T: ^
NOR的特点是芯片内执行(XIP, eXecute In Place),这样应用程序可以直接在flash闪存内运行,不必再把代码读到系统RAM中。* j7 Q0 P" g* [5 Y
. _5 _ S& H% ~" XNOR的传输效率很高,在1~4MB的小容量时具有很高的成本效益,但是很低的写入和擦除速度大大影响了它的性能。
; l* J: b5 s, h9 i! q
\% T: o' |/ x2 z& f NAND结构能提供极高的单元密度,可以达到高存储密度,并且写入和擦除的速度也很快。应用NAND的困难在于flash的管理和需要特殊的系统接口。
7 k, s5 m$ I7 Z0 [& T
0 f- w2 l. @- ]- S5 K G! d& O" E- k8 `+ j
) F2 l3 K4 ~* G6 Z# r
性能比较/ ~6 {. t0 G0 A' \, P- R
. Y6 B! j5 i- p( f" z( r, @
flash闪存是非易失存储器,可以对称为块的存储器单元块进行擦写和再编程。任何flash器件的写入操作只能在空或已擦除的单元内进行,所以大多数情况下,在进行写入操作之前必须先执行擦除。NAND器件执行擦除操作是十分简单的,而NOR则要求在进行擦除前先要将目标块内所有的位都写为0。1 L; Q$ f- Z0 h9 m
5 ~" {7 C# t& m* Z& J% I3 S7 G8 _
由于擦除NOR器件时是以6?~128KB的块进行的,执行一个写入/擦除操作的时间为5s,与此相反,擦除NAND器件是以8~32KB的块进行的,执行相同的操作最多只需要4ms。+ t, a: S" V4 o: o4 a7 X0 ]
' N# f' Q& m6 l& F
执行擦除时块尺寸的不同进一步拉大了NOR和NADN之间的性能差距,统计表明,对于给定的一套写入操作(尤其是更新小文件时更多的擦除操作必须在基于NOR的单元中进行。这样,当选择存储解决方案时,设计师必须权衡以下的各项因素。" k; s8 ` ~3 j& o
2 i+ W: i4 t8 }; h- w
● NOR的读速度比NAND稍快一些。
& @; h2 s; a5 C3 L! R
0 d. i( f, T1 B% r ● NAND的写入速度比NOR快很多。% X% D. \, ?! [; m. x: s% V
# l- E6 K, p' ~. E7 q1 H3 Q ● NAND的4ms擦除速度远比NOR的5s快。
: D3 @- L8 U/ Y1 p1 g
" j+ S$ q$ j. R2 F) C$ O5 N" g: \ ● 大多数写入操作需要先进行擦除操作。2 e3 x% B! N9 k; u' |- o: P
& H: p# X% J8 k! r3 _
● NAND的擦除单元更小,相应的擦除电路更少。
+ G+ ]3 I m( C) l1 e
$ N( S: P" g, X( o; n2 N' k
5 j' r/ L: t6 E' Q8 U" b# K+ S/ B# a/ f# j3 n" x. w
接口差别
5 G7 n P5 v0 r
: N- \9 r( J9 `7 h! ^5 u; Z0 G NOR flash带有SRAM接口,有足够的地址引脚来寻址,可以很容易地存取其内部的每一个字节。
$ a, l+ C# K: }- Y1 g1 N! b3 ~% ?0 ^6 b
NAND器件使用复杂的I/O口来串行地存取数据,各个产品或厂商的方法可能各不相同。8个引脚用来传送控制、地址和数据信息。4 L" h& e- U# l/ Z; q: F! }. i% H
1 Z) _- P1 n+ |, s
NAND读和写操作采用512字节的块,这一点有点像硬盘管理此类操作,很自然地,基于NAND的存储器就可以取代硬盘或其他块设备。
m* w8 p% V7 `3 D! ?5 U4 h. i3 w' c! ^. }- ^) ?
6 t/ X9 D6 B, m' b/ o* t7 W* l
9 x7 }' v/ S! ~' Q
容量和成本
+ J* c0 s( @ |0 h7 K) B
" K* g9 r* ~0 o+ I; F* p: { NAND flash的单元尺寸几乎是NOR器件的一半,由于生产过程更为简单,NAND结构可以在给定的模具尺寸内提供更高的容量,也就相应地降低了价格。
, b' n2 l* Q; o. m; E, i3 I$ h; B( h( m g+ {9 A+ \
NOR flash占据了容量为1~16MB闪存市场的大部分,而NAND flash只是用在8~128MB的产品当中,这也说明NOR主要应用在代码存储介质中,NAND适合于数据存储,NAND在CompactFlash、Secure Digital、PC Cards和MMC存储卡市场上所占份额最大。
( z0 j+ v) R4 q0 Q
) {3 i; ]1 s/ t4 P3 [1 \0 G7 y$ m1 B/ L+ q4 f; j( R- L
0 _$ [! m5 W2 m
可靠性和耐用性: e% |; r( v: R( v
7 d# W- b6 i D7 E
采用flahs介质时一个需要重点考虑的问题是可靠性。对于需要扩展MTBF的系统来说,Flash是非常合适的存储方案。可以从寿命(耐用性)、位交换和坏块处理三个方面来比较NOR和NAND的可靠性。0 Z0 ^2 C- R! A9 r0 U' ^
8 [9 {. j6 L" k2 l1 |4 T 寿命(耐用性)
F. ]0 b3 w4 q2 d# W/ V) v7 h
M+ B: o6 y3 j4 V; b" `! ` 在NAND闪存中每个块的最大擦写次数是一百万次,而NOR的擦写次数是十万次。NAND存储器除了具有10比1的块擦除周期优势,典型的NAND块尺寸要比NOR器件小8倍,每个NAND存储器块在给定的时间内的删除次数要少一些。0 b* r+ O4 a6 v3 Q' a8 n2 k% o
5 ]% y* k2 Y, c5 T$ \$ u 位交换
7 ^3 C8 `4 Q! I+ Q$ `" L; s9 H3 V7 p: Z1 }
所有flash器件都受位交换现象的困扰。在某些情况下(很少见,NAND发生的次数要比NOR多),一个比特位会发生反转或被报告反转了。
2 f: t8 x7 }7 _1 n1 i$ c7 `+ W$ Y, N8 [9 c* B
一位的变化可能不很明显,但是如果发生在一个关键文件上,这个小小的故障可能导致系统停机。如果只是报告有问题,多读几次就可能解决了。5 n0 U B I# n m
8 u7 G8 _% G! u0 P( d& l" _, ? 当然,如果这个位真的改变了,就必须采用错误探测/错误更正(EDC/ECC)算法。位反转的问题更多见于NAND闪存,NAND的供应商建议使用NAND闪存的时候,同时使用EDC/ECC算法。, b0 ], b/ C& f, \, v0 P$ I
8 N& E1 s" F* l2 [/ h3 G/ t
这个问题对于用NAND存储多媒体信息时倒不是致命的。当然,如果用本地存储设备来存储操作系统、配置文件或其他敏感信息时,必须使用EDC/ECC系统以确保可靠性。
! v) }8 [* Q( P
% T1 n2 s6 x0 C( s) n# X/ B1 C 坏块处理/ A+ F w/ P6 ]/ L0 s0 Z
4 X _( A6 u. |+ Z8 i4 e NAND器件中的坏块是随机分布的。以前也曾有过消除坏块的努力,但发现成品率太低,代价太高,根本不划算。* S4 v3 F2 g3 @1 G
8 k# K1 _% d* @2 A G. ^ NAND器件需要对介质进行初始化扫描以发现坏块,并将坏块标记为不可用。在已制成的器件中,如果通过可靠的方法不能进行这项处理,将导致高故障率。
" Z' f! X8 [+ F- X: x, a+ \& v. o8 {; {2 e% T0 y
易于使用# U& R& e& a; }% R" @( Q' {
: b1 L6 i1 c& S+ F! o! A
可以非常直接地使用基于NOR的闪存,可以像其他存储器那样连接,并可以在上面直接运行代码。
. a/ k7 a; G8 `/ C$ t l e5 f. Z* G
) H3 U& }1 R: ], f* W5 P 由于需要I/O接口,NAND要复杂得多。各种NAND器件的存取方法因厂家而异。
+ G. U( U- q3 z( X' z) f2 f; X
在使用NAND器件时,必须先写入驱动程序,才能继续执行其他操作。向NAND器件写入信息需要相当的技巧,因为设计师绝不能向坏
5 P1 ^" Z; C: n( L9 S/ L
, n/ g$ q7 B- f6 V块写入,这就意味着在NAND器件上自始至终都必须进行虚拟映射。2 D% \2 }7 M" U$ `# |( I/ u4 F5 V! y
% ~- H5 t# A1 p9 O6 }. F
7 d* R. V n; k0 _) Z, t: n' K! i6 g/ N
% T$ Y7 M( U( i* W软件支持
, a6 b1 p% ]- l( W) R1 H% P
4 G( `( X; Q+ W- @+ O 当讨论软件支持的时候,应该区别基本的读/写/擦操作和高一级的用于磁盘仿真和闪存管理算法的软件,包括性能优化。
9 Q- J; E# W8 N! D3 f4 o8 I
! ~9 M" J. S( ]2 s3 D 在NOR器件上运行代码不需要任何的软件支持,在NAND器件上进行同样操作时,通常需要驱动程序,也就是内存技术驱动程序(MTD),NAND和NOR器件在进行写入和擦除操作时都需要MTD。0 \; i O& A$ d3 g% v! t
, H3 C3 Z2 ]- b ~
使用NOR器件时所需要的MTD要相对少一些,许多厂商都提供用于NOR器件的更高级软件,这其中包括M-System的TrueFFS驱动,该驱动被Wind River System、Microsoft、QNX Software System、Symbian和Intel等厂商所采用。& ~0 Y# c4 F1 A2 s& E" f( p
9 b. g8 C6 A2 s1 B0 j6 r& e5 I
驱动还用于对DiskOnChip产品进行仿真和NAND闪存的管理,包括纠错、坏块处理和损耗平衡。; ?. f2 z5 i8 g( k- k
|
|