NAND和NOR闪存有什么区别?

电器工程 闪光
2022-01-13 07:12:37

有什么区别,你会在哪里使用它们?

3个回答

有很多权衡。

维基百科还有:

尽管增加了晶体管,但地线和位线的减少允许更密集的布局和更大的每个芯片的存储容量。此外,NAND 闪存通常允许包含一定数量的故障(用于 BIOS ROM 的 NOR 闪存预计不会出现故障)。制造商试图通过将晶体管的尺寸缩小到可以可靠制造的尺寸以下来最大化可用存储量,进一步缩小会增加故障数量的速度比增加可用总存储量的速度要快。

因此,NOR 闪存可以更轻松地寻址,但甚至没有那么密集。

如果您看一下相当不错的比较PDF。

NOR具有较低的待机功耗,易于执行代码并且具有较高的读取速度。

NAND具有更低的有功功率(写入位更快且成本更低),更高的写入速度(很多),更高的容量,更低的每位成本,并且非常易于文件存储使用。由于在将其用于代码执行时读取速度较低,因此您确实需要将其鬼影到内存中。

引用上面有一张大桌子的一小部分......

NAND Flash的特点是:高密度、中等读取速度、高写入速度、高擦除速度,以及间接或类似I/O的访问。NOR Flash的特点是密度低、读取速度快、写入速度慢、擦除速度慢、访问接口随机。

NAND闪存更便宜,所以如果可以的话,你想用它。缺点是它不那么可靠。NAND 闪存在大多数操作中都更快,但值得注意的例外是小型随机访问读取。如果你想从内存中的随机地址读取几个字节,NOR 更快。对于大内存读取,NAND 做得相当好,并且实际上在足够大的块上击败了 NOR。

大多数嵌入式操作系统都包含纠正 NAND 闪存中错误的代码。还有一些具有硬件纠错功能的微控制器。真正的问题发生在引导时——一级引导加载程序没有纠错代码,而且它们还没有配置内存控制器来运行硬件 ECC。这有点像先有鸡还是先有蛋的问题——您无法正确加载 ECC 代码,因为您尚未加载 ECC 代码。

为了解决这个问题,一些内存制造商会指定芯片的某个区域以保证无错误(前 4 kB 或类似的区域)。您将带有软件 ECC 的引导加载程序放在那里(如U-boot),没有错误地读出它,然后用它来读出您的操作系统内核,随时纠正错误。您还可以将引导加载程序存储在串行闪存中,并将 NAND 闪存用于 OS 内核或文件系统等大型内容。

我发现这个 Atmel 应用笔记很有用:http: //www.atmel.com/dyn/resources/prod_documents/doc6255.pdf

NOR 允许随机访问,但 NAND 不允许(仅限页面访问。)

来自维基百科

NOR 和 NAND 闪存的名称来源于存储单元之间的互连结构。在 NOR 闪存中,单元与位线并行连接,允许单独读取和编程单元。单元的并联连接类似于 CMOS 或非门中晶体管的并联连接。在 NAND 闪存中,单元串联连接,类似于 NAND 门。串联连接比并联连接占用更少的空间,从而降低了 NAND 闪存的成本。它本身并不能阻止 NAND 单元被单独读取和编程。