• 请不要在回答技术问题时复制粘贴 AI 生成的内容
allmightbe
V2EX  ›  程序员

为什么 NOR flash 的最小读取单位是字节, NAND flash 是页呢?

  •  
  •   allmightbe · Jan 14, 2024 · 1674 views
    This topic created in 866 days ago, the information mentioned may be changed or developed.

    上图从网上找的,应该是大概说明了两种 flash 的区别。 有一个点是:NOR 最小读取单位是字节,NAND 最小读取单位是页。我结合上图的 NOR 部分来理解“NOR 最小读取单位是字节”,是不是应该这么解释:

    • 当我选中了 word line ,就确定了一个字节的数据
    • 当我再选中了 bit line ,就确定了一个 bit 的数据。
    • 另外,当我两个线都确定了的话,是不是可以说 最小读取单位是 bit 了?

    另外,NOR 可以执行代码,是不是因为代码执行通常有函数跳转的过程,所以就必须就需要随机存取的能力;而 NAND 只能在一个页 顺序读取,而代码执行不可能全是顺利执行的过程,所以 NAND 不可以执行代码。

    • 或者反过来说,假设代码真是顺序执行的,是不是 NAND 的也可以。

    另外,这些概念 好像有点混淆了:block 块,page 页,sector 。它们之间的大小顺序是这样从大到小吗?分别作用的作用场景是啥啊?是不是这里理解:

    • 两种 flash 都可以按照 block 或 sector 来擦除
    • 只有 NAND 有 page 的概念,NAND 通过页的最小单元来读取

    nor 的地址线数据线不是复用的,NAND 的地址线数据线是复用的。一定是这样的吗?

    nand flash 可以标记坏块,从而使软件跳过坏块。nor flash 一旦损坏便无法再用。这一点的原因是啥啊?

    乱七八糟问题有点多,求各位大佬讲解一下,感谢!

    2 replies    2024-01-15 08:28:19 +08:00
    kokutou
        1
    kokutou  
       Jan 15, 2024 via Android
    就当作 nor 是土豪版本的 nand

    nand 为了节省电路 按页读取
    nand 比较容易有坏块,一般代码里都会配备有坏块管理
    smdbh
        2
    smdbh  
       Jan 15, 2024
    串行总线和并行总线,导致了以上所有的问题。
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   1137 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 31ms · UTC 17:49 · PVG 01:49 · LAX 10:49 · JFK 13:49
    ♥ Do have faith in what you're doing.