EEPROM工作原理透彻详解
EEPROM(Electrically Erasable Programmable read only memory)即电可擦可编程只读存储器,是一种掉电后数据不丢失(不挥发)存储芯片。
EERPOM的基本结构有几种,这里讲解比较常用的FLOTOX管结构,如下图所示:

FLOTOX(Floating Gate Tunneling Oxide)MOS管即浮栅隧道氧化层晶体管,它是在标准CMOS工艺的基础上衍生的技术。
如上图所示,在传统的MOS管控制栅下插入一层多晶硅浮栅,浮栅周围的氧化层与绝缘层将其与各电极相互隔离,这些氧化物的电阻非常高,而且电子从浮栅的导带向周围氧化物导带的移动需要克服较高的势叠,因此,浮栅中的电子泄漏速度很慢,在非热平衡的亚稳态下可保持数十年。
浮栅延长区的下方有个薄氧区小窗口,在外加强电场的作用下漏极与浮栅之间可以进行双向电子流动,继而达到对存储单元的“擦除”与“写入”操作。
为强调浮栅周围氧化物的绝缘效果,我们把绝缘层去掉,如下图所示,其中的“电子”就是我们需要存储的数据:

其原理图符号如下所示:

我们通常利用F-N隧道效应(Fowler-Nordheim tunneling)对EEPROM存储单元进行“擦除”或“写入”操作,简单地说,即FLOTOX管的控制栅极与漏极在强电场的作用下(正向或负向),浮栅中的电子获得足够的能量后,穿过二氧化硅层的禁带到达导带,这样电子可自由向衬底移动(具体细节可自行参考相关资料,此处不赘述)。
对EEPROM存储单元进行“擦除”操作,就是将电子注入到浮栅中的过程(不要将此处的“擦除”操作与FLASH存储单元中的“擦除”操作弄反了,具体参考FLASH对应文章),如下图所示:

如上图所示,将FLOTOX管的源极与漏极接地,而控制栅极接高压(不小于12V),浮栅与漏极之间形成正向强电场,电子从漏极通过隧道氧化层进入浮栅。
为防止存储单元“擦除”(或“写入”操作)对其它单元产生影响,每个FLOTOX管均与一个选通管配对(按照制造工艺可分为N管与P管,这里我们以N管为例进行讲解,P管是类似的),前者就是存储电子的单元,而后者用来选择相应的存储单元的控制位,这种结构导致单位存储面积比较大,因此,EEPROM存储芯片的容量通常都不会很大。
一个bit位的存储单元电路状态如下图所示:

其中,SG表示选通管的选通栅(Select Gate),CG表示FLOTOX管的控制栅(Control Gate),VPP表示外接高压,此处以12V为例
对EEPROM存储单元进行“写入”操作,就是将浮栅中电子释放的过程(不要把“写入”与“擦除”操作弄反了),如下图所示:

如上图所示,将FLOTOX管的源极悬空,漏极接高压(不小于12V),而控制栅极接地,则浮栅与漏极之间形成负向强电场,电子从浮栅通过隧道氧化层回到漏极放电。
配合对应的选通管,则一个bit位的存储单元电路状态如下图所示:

多个bit位组成的存储单元阵列如下图所示:

当进行存储单元的“擦除”操作时,源线(Sources Lines, SL)与位线(Bit Lines, BL)均为低电平,而控制栅线(CL)为高电平(不小于12V),当对应存储单元的选通管打开时(Word Line, WL=VPP),如下图所示:

当进行存储单元的“写”操作时,位线为高电平(不小于12V),而源线悬空且比Program Gate Line为低电平,当对应存储单元的选通管打开时(SG=VPP),如下图所示:

每8个存储单元配置一个高压传输管,则一个字节的存储阵列如下图所示:

很明显,EEPROM的“擦除”与“写入”操作均需要高压(强电场)进行浮栅电子的注入或释放,而一般的EEPROM芯片为5V供电,那么这些高压从何而来?对于并行EEPROM芯片,有专用的引脚可作为擦除功能的高压供电端,下图来自ATMEL并行EEPROM型号AT28C16数据手册:


可以看到,在进行“擦除”操作时,需要在OE(Output Enable)引脚接入12V的高压。
但是串行EEPROM就没这么幸运了,比如我们最常用的AT24CXX系列EEPROM芯片,通常是3.3V或5V供电的,而且对外的接口通常是I2C串行总线那样的两根线,那高压从何而来?有人想到了升压电路,没错,下图来自ATMEL串行EEPROM型号AT24C02数据手册:

其中,H.V. PUMP(High Voltage Pump)就是高压泵(升压)电路,升压电路有很多种,比如整流倍压、变压器升压、BOOST升压、电荷泵等,但是,在集成电路设计中无法做成大容量电容与电感,因此,只有电荷泵电路比较适合片内升压,它的基本电路如下图所示:

我们分析其中一级就明白其升压原理了,如下图所示(原理与“整流倍压电路”类似,可参考《整流电路》文章):

在时钟周期CLKa期间,开关S1闭合,S2与地相连接,此时电容充电至VDD。

在时钟周期CLKb期间,开关S1打开,S2与电源VDD连接,此时电源VDD与电容C的电压串联起来对外供电,此时VOUT=为时源VDD的两倍,即2×VDD。
在集成电路设计中,可以使用NMOS或PMOS实现开关功能,电容则可使用MOS电容(即栅极作为一个极,而源极与漏极连接作为另一个极板),而二极管则用MOS管代替,如下图所示:

实际的电荷泵电路有很多种结构,如多相时钟电荷泵、CTS电荷泵、栅交叉耦合衬底偏置电荷泵等等,读者可自行参考相关文档,此处不再赘述。
那怎么样实现数据的“读取”操作呢?当浮栅中注入(充电状态)或释放电子(放电状态)时,存储单元的阀值电压会发生改变,如下图所示:

在读取存储单元时,我们可以在控制栅上加一个中间电平,其值介于两个阀值Vth之间,这样浮栅有电子的高开启管不能导通,而浮栅放电后的低开启管能正常导通,由此分辨出单元存储的数据是“1”还是“0”。
EEPROM工作原理透彻详解的更多相关文章
- MapReduce工作原理图文详解 (炼数成金)
MapReduce工作原理图文详解 1.Map-Reduce 工作机制剖析图: 1.首先,第一步,我们先编写好我们的map-reduce程序,然后在一个client 节点里面进行提交.(一般来说可以在 ...
- MapReduce 1工作原理图文详解
MapReduce工作原理图文详解 一 MapReduce程序执行流程 程序执行流程图如下: 流程分析:1.在客户端启动一个作业.2.向JobTracker请求一个Job ID.3.将运行作业所需要的 ...
- MapReduce工作原理图文详解
目录:1.MapReduce作业运行流程2.Map.Reduce任务中Shuffle和排序的过程 1.MapReduce作业运行流程 流程示意图: 流程分析: 1.在客户端启动一个作业. 2.向Job ...
- LVS-DR工作原理图文详解
为了阐述方便,我根据官方原理图另外制作了一幅图,如下图所示:VS/DR的体系结构: 我将结合这幅原理图及具体的实例来讲解一下LVS-DR的原理,包括数据包.数据帧的走向和转换过程. 官方的原理说明:D ...
- <转>MapReduce工作原理图文详解
转自 http://weixiaolu.iteye.com/blog/1474172前言: 前段时间我们云计算团队一起学习了hadoop相关的知识,大家都积极地做了.学了很多东西,收获颇丰.可是开学 ...
- Iptables工作原理使用详解
Iptables防火墙简介 Iptables名词和术语 Iptables工作流程 基本语法 Filter 参数说明 NAT表: Icmp协议 TCP FLAG 标记 什么是状态检测 iptables的 ...
- IIS:连接数、并发连接数、最大并发工作线程数、应用程序池的队列长度、应用程序池的最大工作进程数详解
Internet Information Services(IIS,互联网信息服务),是由微软公司提供的基于运行Microsoft Windows的互联网基本服务.最初是Windows NT版本的可选 ...
- IIS连接数、并发连接数、最大并发工作线程数、应用程序池的队列长度、应用程序池的最大工作进程数详解
IIS:连接数.并发连接数.最大并发工作线程数.应用程序池的队列长度.应用程序池的最大工作进程数详解 iis性能指标的各种概念:连接数.并发连接数.最大并发工作线程数.应用程序池的队列长度.应用程序池 ...
- HashMap实现原理分析(详解)
1. HashMap的数据结构 http://blog.csdn.net/gaopu12345/article/details/50831631 ??看一下 数据结构中有数组和链表来实现对数据的存 ...
随机推荐
- Spring MVC工作原理及源码解析(四) ViewResolver实现原理及源码解析
0.ViewResolver原理介绍 根据视图的名称将其解析为 View 类型的视图,如通过 ModelAndView 中的视图名称将其解析成 View,View 是用来渲染页面的,也就是将 Mode ...
- OO第一单元总结——表达式求导
第一次作业 (1) UML结构图 (2)结构分析 Polynomial 类是对输入的字符串进行预处理,其中包括判断格式是否合法,运算符简化,分割成项等方法. Polynomial处理后得到的每一个项的 ...
- 6.注册CRT 以及SecureCRT访问
1.什么是 SecureCRT SecureCRT是一款支持SSH(SSH1和SSH2)的终端仿真程序,简单地说是Windows下登录Unix或Linux服务器主 机的软件. 1)准备工作:安装好Se ...
- Docker网络,手把手教你如何实现容器网络相关知识
Docker网络 理解Docker0 清空所有环境 测试 三个网络 #问题:docker 是如何处理容器网络访问的? [root@hsStudy /]# docker run -d -P --name ...
- 【yumex图形安装双击】【转载】CentOS yum的详细使用方法
CentOS yum的详细使用方法 yum是什么yum = Yellow dog Updater, Modified主要功能是更方便的添加/删除/更新RPM包.它能自动解决包的倚赖性问题.它能便于管理 ...
- 攻防世界 WriteUp
附:|>>>攻防世界-WEB-新手练习区<<<| WriteUp目录 01.|>>>baby_web<<<| 02.|>& ...
- Docker Swarm(九)资源限制
资源限制 docker run 針對限制容器資源有許多設置選項,但Swarm中的 docker service 是另一回事,目前只有cpu和memory的選項可以操作. 如果 docker 找不到足夠 ...
- 022.Python模块序列化模块(json,pickle)和math模块
序列化模块 一 序列化模块 pickle 1.1 基本认识 序列化:把不能够直接存储的数据变成可存储的过程就是序列化 反序列化:把储存的数据拿出来恢复成原来的数据类型就是反序列化 例如,一个文件不可 ...
- 云计算OpenStack---创建实例(11)
创建实例时,需要先创建网络及实例类型等其它配置: 一.创建虚拟网络(Self-service network) 网络概述图: 网络连接图: 1.创建self-service网络 (1)加载系统变量: ...
- 9.2-3 pstree & pgrep
9.2 pstree:显示进程状态树 pstree命令以树形结构显示进程和进程之间的关系. 如果不指定进程的PID号,或者不指定用户名称,则会以init进程为根进程,显示系统的所有进程 ...