NOR Flash基本原理

目录

1. Flash Memory中存储的信息

2. Flash操作

2.1 Read操作

2.2 Program操作

2.3 Erase操作

3 电压阈值分布

4 Block Erase

4.1 Pre-Program Phase

4.2 Erase Phase

4.3 Recovery Phase

5 Erase 中断

6 注意要点


        这是之前搞Flash IP时的一个学习笔记,有点记不清楚出处是在哪里了,分享给大家关于Nor Flash的理解

        NOR Flash的一个基本原理是必须先将其擦除,然后才能对其进行编程。另一个重要特征是擦除操作必须同时(批量)发生在整个内存块上,而不是按字节逐字节的方式依次发生。

        所以,Erase操作包含了三个步骤:Pre-Program,Erase,Recovery。了解这个三个步骤中硬件原理是提升系统鲁棒性的重要因素。

1. Flash Memory中存储的信息

        存储器的基本存储元件(单元)是由带“浮栅”的MOSFET组成的。困在存储单元浮栅内的电荷量决定了存储单元是否被编程或被擦除,浮栅中可以存储电荷,从而改变该单元的控制栅极(Control Gate)开关阈值电平Vth,当浮栅中没有电荷时(Erased)表示为“1”, 当浮栅中存有负电荷/电子时(Programmed)表示为“0”。如下图所示:

Source:源级

Tunnel Oxide:隧道氧化层

Control Gate:控制栅

Floating Gate:浮栅

Drain:漏极

P-well:P型衬底;每个p-well都有自己的电极,允许它在存储控制器的控制下,以特定的电压进行偏置。

Substrate:硅制造要求所有的存储单元都建立在一个共同的基础

        擦除、读取、编程等操作后续具体讲。

        为了存储大量的信息,Flash Memory由memory cell按照N行M列来组成,每个行列交叉点都是一个cell,存储一个bit数据。因此一个flash的容量就为N*M bit。为便于记忆,我们把行叫做Word-line(WL),列叫做Bit-Line(BL)如下所示:

        从上图看到,漏极通过bitline连接在一起,WL连接到控制栅;PAGE是一个WL中所有BL的集合,通常一个WL可以包含一个或者多个page。

        重要的一点是,在每个physical block中,p-well和BL是共享的。

        更进一步的,每个物理block可以分为更小的逻辑sector,方便管理。

2. Flash操作

        对于Nor Flash来说,在写block之前必须擦除,并且擦除操作还要包括对已擦出的cell进行预编程。

2.1 Read操作

        要确定单元格的状态(是已编程还是已擦除),必须读取单元格的内容,这是通过在MOSFET的栅极上施加大约5.5 V的参考电压来完成的。

        如上图:Q1状态是已擦除,浮栅里被捕获电子耗尽了,由于其GATE-SOURCE阈值电压比VTREF小(VGSTH1<VTREF)。当确定该单元的状态时,对GATE施加一个5.5V的电压,这种情况下,MOSFET传导电流,因此处于逻辑“1”。

        如上图:Q1状态是已编程,浮栅里充满了被捕获电子,由于其GATE-SOURCE阈值电压比VTREF大(VGSTH2>VTREF)。当确定该单元的状态时,对GATE施加一个5.5V的电压,这种情况下,MOSFET不传导电流,因此处于逻辑“0”。

        通常情况下,浮栅不带电荷,则场效应管处于不导通状态,场效应管的漏极电平为高,则表示数据1。

        编程时,场效应管的漏极和选择栅都加上较高的编程电压,源极则接地。这样大量电子从源极流向漏极,形成相当大的电流,产生大量热电子,并从衬底的二氧化硅层俘获电子,由于电子的密度大,有的电子就到达了衬底与浮栅之间的二氧化硅层,这时由于选择栅加有高电压,在电场作用下,这些电子又通过二氧化硅层到达浮栅,并在浮栅上形成电子团。浮栅上的电子团即使在掉电的情况下,仍然会存留在浮栅上,所以信息能够长期保存(通常来说,这个时间可达10年)。由于浮栅为负,所以选择栅为正,在存储器电路中,源极接地,所以相当于场效应管导通,漏极电平为低,即数据0被写入。由于热电子的速度快,所以编程时间短,并且数据保存的效果好,但是耗电量比较大。

        擦除时,源极加上较高的编程电压,选择栅接地,漏极开路。根据隧道效应和量子力学的原理,浮栅上的电子将穿过势垒到达源极,浮栅上没有电子后,就意味着信息被擦除了。

2.2 Program操作

        编程操作是基于称为“热电子注入”的物理过程。GATE与大电压相连(通常为+9V),同时漏极正偏压到约+ 4v,导致电子流从源极流向漏极。由于应用于GATE的强正电场,一些电子被“拉进”浮栅。一旦进入,这些电子就不再拥有逃离浮门限制所需的能量,它们仍然被困住:Cell被编程了。

        为了将一个单元置于编程状态,所需要的阈值电压至少要大于5.5V,最好6.5V.。

2.3 Erase操作

        擦除操作是基于Fowler-Nordheim Tunneling隧穿。

        首先往p-well添加正电压(约+8V),用于吸引浮栅中被困电压;同时,在选择栅施加负电压(-10V),用于排斥电子,因此源极和漏极断开。

        这两种电压叠加并产生一个大的电场,使电子能够隧穿氧化层。通过这个过程,浮栅耗尽了电子,降低了它们的阈值电压。如果观察单个细胞水平(通常在nA范围内),电流是微小的。由于电流非常小,电场必须维持很长时间才能提取足够数量的电子,这使得Erase操作相对缓慢

3 电压阈值分布

        VT是电池中MOSFET在特定水平(通常为10 uA)上传导电流所需的阈值电压。它与浮栅中被困的电荷量有关。含有大量被捕获电子的Cell(程序Cell)具有较高的VT,通常为6.5 V或更高。耗尽电子的cell(擦除cell)具有较低的VT,通常为4v或更低。

        在擦除和编程之间的VT范围的中间通常被用作参考阈值电压(VTREF),以确定特定的一组单元是否被编程或擦除。该电压用于被选择的WL(Word-Line),根据每个cell的浮栅状态以及被解码/选择的位行,模拟信号输出到shared WL。当WL电压从低电压依次增加到高电压时,y轴记录了从擦除状态切换到编程状态的单元数。

4 Block Erase

        在NOR Flash的生命周期内,设备会被多次擦除和编程。在这个过程中,由于单个单元的状态从被编程变为被擦除,VT分布发生了变化,反之亦然。为了保持良好的VT分布和良好的边距,Erase操作分三个不同的阶段完成:

  1. Pre-Program Phase
  2. Erase Phase
  3. Recovery Phase

4.1 Pre-Program Phase

        预编程的目的是为了让擦除操作工作在一个理想环境下。理论上讲,Erase操作同时影响所有cell,两个驼峰(橙色和蓝色曲线)都会向左移动。已经被擦除的cell位于负的VT区域,这在物理上是不可能的,因此,这些单元在VT接近0v时变得过度擦除,即使它们的栅极电压设置为0v时也会漏电流。

        因此,通过预编程,所有cell都处于编程状态,这样可避免过擦出现,如下:

4.2 Erase Phase

        Block Erase与Erase操作相同,不过是同时发生在完整的Logica块中;

        一个巨大的电场——施加在物理块的公共p-well上的正电压(+8 V),以及施加在被擦除的逻辑块内的所有WL上的负电压(-10 V)——使电子“隧穿”通过potential barrier。浮栅损耗越来越大,VT电压降低。

        在此过程中,一些cell可以移动到过度擦除的区域附近。如上所述,这种cell可以导电,即使当WL不活跃,其VT设置为接近0v。因为它是批量执行的,而且Erase操作必须持续到最慢的cell验证为止,因此Erase操作可能会导致较大的分布。

4.3 Recovery Phase

过度擦除的Cell被系统地软编程(以字节为基础),直到它们的VT足向右移动,以便它从左边越过恢复线。

        当内部算法正在进行时,Flash集成控制器保持一个用户可读的状态位断言(状态寄存器中的BUSY/READY位)。

5 Erase 中断

        如果擦除操作被设备重启或者电源关闭打断,此时擦除操作的三个阶段还没完成,会导致memory进入到一个undefined状态:可以是擦除三个阶段的任意状态,因此读取的数据不可信。

        如果Erase进程中断,内存设备可以通过几种不同的机制返回错误数据:

  1. 如果擦除中断是由软硬件复位、电源供电不足造成的,memory控制器会重启,并且会重置擦除操作。具体如下表所示

阶段

状态

影响

Pre-program

部分cell被编程,部分擦除

Block数据无意义

Erase

部分被编程、部分擦除、部分过擦

显示全部擦除,但某些bit处于过擦状态,擦除不完全状态

Recovery

部分被擦出、部分过擦

        过擦的bit,导致共享BL上的泄漏,从而导致共享同一物理BL上的所有其他位的编程裕度降低。

        上图展示了如果共享Bit Line上有一个泄露的cell,那么未选定WL上的“leaky cell”如何影响选定WL上“0单元格”的读取。当前选中WL[241],读取BL[1082]数据,但此时WL[65]BL[1082]处于过渡擦除状态;当泄漏量(漏电流)足够高时,所选单元中存储的“0”可能被错误读取为“1”。

        如果是由于Erase Suspend指令中断Erase操作,上述副作用同样会发生,区别在于,当前设备中的SUSPEND bit会置1,用户可用于追踪,通过考虑状态位的状态,如果采取适当的预防措施,可以确保操作的成功完成。虽然过度擦除不太可能损坏同一物理块中的数据,但最好不要在挂起期间将要编程或读取的数据映射到同一物理块中。

6 注意要点

  • 在发出软复位或硬复位和/或回收电源之前,始终检查BUSY/READY状态位是否有任何正在进行的操作。如果不这样做,可能会使内存处于未定义的状态,从而导致数据损坏;
  • 当确实需要中断擦除操作,使用Suspend 指令,并将重要的系统级代码(在进行EraseSuspend操作时需要读取的代码)保存在单独的物理块中,远离用于数据记录的内存或经常被擦除更改的memory;
  • 处理可能发生异步擦除中断的系统的另一种方法是,在逻辑块的开头编写一个唯一的字节值(“签名”),作为每次成功擦除操作的最后一步。如果由于计划外的电源中断或擦除操作过程中的小故障导致系统崩溃,作为崩溃恢复的一部分,将读取逻辑块的签名,并与已知的正确值进行比较。一个特定块的差异表明擦除操作没有正确完成,需要重复擦除,以恢复其正确的分布。
<think>好的,用户之前问过NorFlash中擦FF和写FF的区别,现在又问NorFlash存储数据的原理以及栅极的作用。我需要先回顾之前的回答,确保内容连贯,同时深入讲解存储原理和栅极的结构。 用户可能是嵌入式系统开发者或相关领域的学生,他们需要理解NorFlash的物理机制,以便更好地应用或在设计中考虑限制因素。用户可能想了解浮栅晶体管如何存储电荷,栅极的结构,以及擦写操作对栅极的影响。 之前的回答已经提到了NorFlash使用浮栅晶体管,电荷存储,擦除和写入的物理过程。现在需要详细展开存储原理,特别是栅极的结构和电荷如何影响数据存储。要确保术语准确,比如浮栅、控制栅、隧道氧化层等,同时用通俗的语言解释。 需要分步骤解释:首先介绍基本结构,包括各个层和栅极的作用;然后解释写入和擦除过程中电荷的变化;接着说明数据如何通过电荷状态读取;最后可能提到局限性和应用注意事项。要注意逻辑清晰,逐步深入,避免使用过于专业的术语而不解释。 可能用户对浮栅如何保持电荷有疑问,需要解释绝缘层的作用和电荷滞留的原理。同时,擦写操作的高电压机制也需要说明,比如FN隧穿和热电子注入的区别。此外,用户可能关心可靠性和寿命问题,如氧化层退化导致的数据 retention 问题,这也是栅极结构相关的点。 需要检查是否有技术细节错误,比如控制栅和浮栅之间的绝缘材料,以及擦除和写入时的电压极性是否正确。确保举例恰当,比如写入时如何将电子注入浮栅,擦除时如何移除。同时,强调NorFlash的随机访问特性,与NAND的区别,帮助用户全面理解。 最后,总结时要回顾关键点,确保用户理解栅极在存储中的核心作用,以及物理原理如何影响擦写操作和器件寿命。可能还需要补充实际应用中的注意事项,如磨损均衡,以连接之前的问题。</think>好的,我来逐步解释NorFlash的存储数据原理及其栅极结构: --- ### **1. NorFlash的核心结构:浮栅晶体管** NorFlash的每个存储单元本质是一个**浮栅MOSFET(金属-氧化物-半导体场效应晶体管)**,其核心结构如下: ``` |-----------| | 控制栅 | ← 外部可控制的电极 |-----------| | 绝缘层 | |-----------| | 浮栅 | ← 悬浮的电荷存储层 |-----------| | 隧道氧化层 | ← 极薄的绝缘层(约10nm) |-----------| | 衬底(硅) | ← 源极(S)和漏极(D) ``` **关键层的作用**: - **浮栅(Floating Gate)**:被绝缘层包围,用于存储电荷(电子)。 - **控制栅(Control Gate)**:外部施加电压以控制浮栅电荷状态。 - **隧道氧化层**:允许电子通过量子隧穿效应进出浮栅。 --- ### **2. 数据存储原理:电荷决定逻辑状态** #### **逻辑定义**: - **存储`1`(擦除状态)**:浮栅中无电子(无电荷)。 - **存储`0`(编程状态)**:浮栅中注入电子(有电荷)。 #### **电荷如何影响电流**: - **浮栅无电子**(逻辑1): 控制栅电压正常开启沟道,源漏极间可导通电流。 - **浮栅有电子**(逻辑0): 浮栅的负电荷抵消控制栅电场,需更高电压才能导通,实际表现为“关闭”状态。 --- ### **3. 写入(编程)和擦除的物理过程** #### **(1) 写入`0`(注入电子)** - **方法**:热电子注入(Channel Hot Electron Injection, CHE) - **操作**: 1. 源极接地,漏极加高压(约5-6V)。 2. 控制栅加高压(约12V),形成强纵向电场。 3. 电子从沟道获得能量,越过隧道氧化层进入浮栅。 - **结果**:浮栅捕获电子,存储单元变为逻辑`0`。 #### **(2) 擦除为`1`(移除电子)** - **方法**:Fowler-Nordheim隧穿(F-N Tunneling) - **操作**: 1. 源极悬空,衬底加高压(约12V)。 2. 控制栅接地,形成强电场方向从衬底指向浮栅。 3. 电子从浮栅隧穿氧化层返回衬底。 - **结果**:浮栅电子被清空,存储单元恢复逻辑`1`。 --- ### **4. 数据读取原理** - **步骤**: 1. 控制栅施加参考电压(约3V)。 2. 检测源漏极间电流: - 电流大 → 浮栅无电荷(逻辑`1`)。 - 电流小/无电流 → 浮栅有电荷(逻辑`0`)。 - **关键特性**:NorFlash支持**随机访问**(直接读取任意地址)。 --- ### **5. 栅极相关特性与限制** #### **(1) 浮栅的电荷保持** - **绝缘层作用**:浮栅被SiO₂等高绝缘性材料包围,电子可保留数十年(数据非易失性)。 - **退化问题**:反复擦写会导致隧道氧化层损伤,电子逐渐泄漏(寿命约10万次)。 #### **(2) 控制栅的电压控制** - **写入与擦除电压不对称**: - 擦除需更高电压(典型12V),写入电压较低(5-6V)。 - **外围电路需求**:需电荷泵生成高压,增加芯片复杂度。 --- ### **6. 对比NAND Flash的栅极结构** | **特性** | **NorFlash** | **NAND Flash** | |------------------|----------------------------------|---------------------------------| | **栅极连接方式** | 存储单元并联(支持随机访问) | 存储单元串联(仅支持块访问) | | **单元面积** | 较大(每个单元独立控制栅) | 较小(共享控制栅,密度更高) | | **擦写速度** | 擦除慢(毫秒级) | 擦除快(微秒级) | --- ### **7. 实际应用中的注意事项** - **写前擦除**:改写数据前必须擦除整块(因无法单bit从0→1)。 - **读取干扰**:频繁读取可能引发轻微电子注入,需纠错码(ECC)保护。 - **耐压限制**:高压操作需严格时序控制,防止栅极击穿。 --- ### **总结** NorFlash通过**浮栅捕获/释放电子**实现数据存储,栅极结构(浮栅+控制栅)和绝缘层的设计是其非易失性的核心。电荷的注入与移除依赖高压电场,这也决定了其擦写次数限制和操作特性。理解这一原理有助于优化存储管理(如均衡磨损)并规避物理层风险。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

CyberSecurity_zhang

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值