|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
NOR和NAND是现在市场上两种主要的非易失闪存技术。Intel于1988年首先开发出NOR flash技术,彻底改变了原先由EPROM和EEPROM一统天下的局面。紧接着,1989年,东芝公司发表了NAND flash结构,强调降低每比特的成本,更高的性能,并且象磁盘一样可以通过接口轻松升级。但是经过了十多年之后,仍然有相当多的硬件工程师分不清NOR和NAND闪存。4 t& r% L1 p- {
2 `: z4 M/ ^/ f 相“flash存储器”经常可以与相“NOR存储器”互换使用。许多业内人士也搞不清楚NAND闪存技术相对于NOR技术的优越之处,因为大多数情况下闪存只是用来存储少量的代码,这时NOR闪存更适合一些。而NAND则是高数据存储密度的理想解决方案。
{+ Z i7 \1 A6 ^, u2 o# d) C* y, u% T2 K- E8 S4 r
NOR的特点是芯片内执行(XIP, eXecute In Place),这样应用程序可以直接在flash闪存内运行,不必再把代码读到系统RAM中。
6 m6 E$ Q: r; ] k0 G. E; }1 _6 C! D( v+ V
NOR的传输效率很高,在1~4MB的小容量时具有很高的成本效益,但是很低的写入和擦除速度大大影响了它的性能。
5 l. B7 R& {& m# Y& w4 S7 p5 Q' r/ D8 ^
NAND结构能提供极高的单元密度,可以达到高存储密度,并且写入和擦除的速度也很快。应用NAND的困难在于flash的管理和需要特殊的系统接口。2 N$ _2 j! ]" o$ T. Q% U
- q" o/ o; k, Q4 c p% c- @6 W. x5 U) }) s1 ~4 p3 ~; R0 A, p/ B) R5 c
$ ?& D+ `1 |/ \* q) M* q性能比较
. T) g7 g& O! \6 e
( v" t9 ?, O9 k! L. k2 l9 i flash闪存是非易失存储器,可以对称为块的存储器单元块进行擦写和再编程。任何flash器件的写入操作只能在空或已擦除的单元内进行,所以大多数情况下,在进行写入操作之前必须先执行擦除。NAND器件执行擦除操作是十分简单的,而NOR则要求在进行擦除前先要将目标块内所有的位都写为0。4 U; z; K& ^; m: g
; F! ?5 [; F, f 由于擦除NOR器件时是以6?~128KB的块进行的,执行一个写入/擦除操作的时间为5s,与此相反,擦除NAND器件是以8~32KB的块进行的,执行相同的操作最多只需要4ms。) B7 M- _( F) f+ @
. w5 ]5 I- y4 i3 Q
执行擦除时块尺寸的不同进一步拉大了NOR和NADN之间的性能差距,统计表明,对于给定的一套写入操作(尤其是更新小文件时更多的擦除操作必须在基于NOR的单元中进行。这样,当选择存储解决方案时,设计师必须权衡以下的各项因素。/ h3 r, h% B( a3 J8 P, i; i$ d+ o
' S4 X: v$ n7 e8 C) |- @/ G7 j ● NOR的读速度比NAND稍快一些。
`+ l2 v5 V) }% `+ B7 m
* b z- J! z K- Y ● NAND的写入速度比NOR快很多。 x8 U( C9 I$ F7 W1 O: W. R
: a7 D; s9 f8 W ● NAND的4ms擦除速度远比NOR的5s快。. S" |+ B6 O" M. l. Q
% ~4 `9 z" W3 @! O C; ]8 s
● 大多数写入操作需要先进行擦除操作。
# s& ^' w, `6 _1 ?" N2 y
: k4 I! [$ w+ x" ]0 X y4 a ● NAND的擦除单元更小,相应的擦除电路更少。3 n4 |7 U8 v/ Q4 _& C- |# L
% X9 ~. o2 u$ V3 t2 A
& ]$ F) Y7 i o# A+ T. I
2 i# Z5 a6 Y: m! b9 [2 p. _接口差别
5 V0 k1 V I# e' x- B! b5 D& o5 f
NOR flash带有SRAM接口,有足够的地址引脚来寻址,可以很容易地存取其内部的每一个字节。
4 J4 h% k+ n7 V3 k# K( k9 T& D2 v
2 v/ Y$ |- P, ]3 Q, v NAND器件使用复杂的I/O口来串行地存取数据,各个产品或厂商的方法可能各不相同。8个引脚用来传送控制、地址和数据信息。$ h* P3 ~' [6 @) I
* r6 V6 N: b% T" a0 J
NAND读和写操作采用512字节的块,这一点有点像硬盘管理此类操作,很自然地,基于NAND的存储器就可以取代硬盘或其他块设备。+ S( m+ C3 R1 `
5 X, @/ \6 @# }, n7 h
9 \+ |2 y7 ~5 |2 U
4 h V% {; W' Z+ W; y. t1 Z6 e容量和成本$ U$ |' k# \: S* }! N
% a( h! P& }5 H NAND flash的单元尺寸几乎是NOR器件的一半,由于生产过程更为简单,NAND结构可以在给定的模具尺寸内提供更高的容量,也就相应地降低了价格。
; t/ O/ T1 {4 P" m8 \! B
3 M- q' r- J4 u" K, ~6 L. M1 L3 y+ n NOR flash占据了容量为1~16MB闪存市场的大部分,而NAND flash只是用在8~128MB的产品当中,这也说明NOR主要应用在代码存储介质中,NAND适合于数据存储,NAND在CompactFlash、Secure Digital、PC Cards和MMC存储卡市场上所占份额最大。0 p1 G: W+ b) H9 M
q' }2 j, N# v+ J% W
- e# w7 U% @" I, X
4 F* w7 [1 {0 q( [' E. I0 m4 R9 W可靠性和耐用性$ Q" a0 G; J& J5 q8 e4 `9 H
, ?- w) T7 P1 Y/ f3 U
采用flahs介质时一个需要重点考虑的问题是可靠性。对于需要扩展MTBF的系统来说,Flash是非常合适的存储方案。可以从寿命(耐用性)、位交换和坏块处理三个方面来比较NOR和NAND的可靠性。
8 \/ b' S. C$ n& N s
. x h/ s4 [/ \ 寿命(耐用性)
0 `3 K7 K/ q2 `9 `9 w; d z V1 j$ N s0 I) A+ _" J- d
在NAND闪存中每个块的最大擦写次数是一百万次,而NOR的擦写次数是十万次。NAND存储器除了具有10比1的块擦除周期优势,典型的NAND块尺寸要比NOR器件小8倍,每个NAND存储器块在给定的时间内的删除次数要少一些。$ G" y5 s2 O/ @3 V7 y1 R
3 v- n0 J7 T8 }" M. w1 o
位交换
0 \! ?( G& r! d1 _( }, E4 r. i$ r8 u5 k0 L
所有flash器件都受位交换现象的困扰。在某些情况下(很少见,NAND发生的次数要比NOR多),一个比特位会发生反转或被报告反转了。; s2 [3 T; E V# v+ }5 k" L ^
7 z( L8 D: Z1 [! L 一位的变化可能不很明显,但是如果发生在一个关键文件上,这个小小的故障可能导致系统停机。如果只是报告有问题,多读几次就可能解决了。
6 s1 y2 z0 R4 I0 N J6 @/ Q5 F. e" H' Q
当然,如果这个位真的改变了,就必须采用错误探测/错误更正(EDC/ECC)算法。位反转的问题更多见于NAND闪存,NAND的供应商建议使用NAND闪存的时候,同时使用EDC/ECC算法。& `# U3 D$ j d, e1 i( [- w
+ m# L4 I' _. ^$ b$ a+ c 这个问题对于用NAND存储多媒体信息时倒不是致命的。当然,如果用本地存储设备来存储操作系统、配置文件或其他敏感信息时,必须使用EDC/ECC系统以确保可靠性。# |9 }+ {) s1 g/ S& u! f
# I/ f0 c4 O7 ~7 C+ e8 N. b
坏块处理- [8 r! S2 Z6 l0 @! c3 d+ i* u( g+ ^
! y. v; N" z/ x) [: Z NAND器件中的坏块是随机分布的。以前也曾有过消除坏块的努力,但发现成品率太低,代价太高,根本不划算。
" K. b s0 y0 I' `; L- K9 E. v A' m- H/ H/ L4 x4 T. ]$ O! h
NAND器件需要对介质进行初始化扫描以发现坏块,并将坏块标记为不可用。在已制成的器件中,如果通过可靠的方法不能进行这项处理,将导致高故障率。 1 @1 Z5 M, @4 C0 ]" B4 `9 N4 `
, m B& r% N4 n, W9 q
易于使用9 g& X' c- g3 M" C- k3 _* a
. j9 _4 }) {4 U8 \, A$ K6 R 可以非常直接地使用基于NOR的闪存,可以像其他存储器那样连接,并可以在上面直接运行代码。4 U( B! P0 x# H$ Y# t5 B" |0 {
) k" y Q( y: z! U/ ]- T. k
由于需要I/O接口,NAND要复杂得多。各种NAND器件的存取方法因厂家而异。
' E; [3 H5 y% \' b: A# m) |
, r, l) v) t# u 在使用NAND器件时,必须先写入驱动程序,才能继续执行其他操作。向NAND器件写入信息需要相当的技巧,因为设计师绝不能向坏, p) T0 }, \6 P
7 W: g6 d+ R% v6 B0 ~块写入,这就意味着在NAND器件上自始至终都必须进行虚拟映射。* m9 ?: {5 O4 m+ i9 h! @
: z: ~# k! @ v M( ?
2 p& a, O; c4 s# H5 o7 C* R3 k
/ Q& {& I* ?" Q( C+ E: ?# Z6 d
软件支持# D/ \3 |! a* I; \. o
2 q% U5 g+ m+ H0 C
当讨论软件支持的时候,应该区别基本的读/写/擦操作和高一级的用于磁盘仿真和闪存管理算法的软件,包括性能优化。
: D3 Z4 q1 {" [( J
4 g9 ]+ G, _2 `% p0 x9 F0 q 在NOR器件上运行代码不需要任何的软件支持,在NAND器件上进行同样操作时,通常需要驱动程序,也就是内存技术驱动程序(MTD),NAND和NOR器件在进行写入和擦除操作时都需要MTD。
5 \3 P7 @, w' N
`# N, A2 R' Z- K4 {) a& g) Q 使用NOR器件时所需要的MTD要相对少一些,许多厂商都提供用于NOR器件的更高级软件,这其中包括M-System的TrueFFS驱动,该驱动被Wind River System、Microsoft、QNX Software System、Symbian和Intel等厂商所采用。
$ x Y; C0 s7 _/ Z! y/ Y
+ r# a# c7 [ M- N1 @( _ 驱动还用于对DiskOnChip产品进行仿真和NAND闪存的管理,包括纠错、坏块处理和损耗平衡。& P" Z' |/ B0 |. Y8 u9 y
|
|