技术复盘:Flash Memory揭秘(1)

news2024/12/28 17:53:33

目录

1.Flash基本原理概述

1.1 Non-volatile Memory的分类

1.2 Flash编程\擦除原理

2.小结


1.Flash基本原理概述

1.1 Non-volatile Memory的分类

Flash在嵌入式领域是非常重要的角色,主要用于存储数据代码,为代码的执行提供基础保证等。

实际上,Flash只是Non-volatile Memory中的一个分支,根据《Embedded Flash Memory for Embedded Systems》整理,嵌入式领域的非易失性存储器分为ROM、EEPROM、Flash等,如下图所示:

  • Mask ROM是在芯片掩膜阶段写入数据或者代码,对于MCU来说最常见就是启动代码,例如英飞凌的BootRom,一旦写入,用户就无法进行修改;
  • OTP类似Mask ROM,可以由用户写入敏感数据等,例如密钥、设备独有信息等;
  • EPROM(Electrically Programmable ROM):按字节编程,但不能擦除;
  • EEPROM(Electrically Erasable and Programmable ROM):按字节擦写,成本较高;
  • Flash则是软件开发人员最常接触到的存储器之一,它由根据存储单元的结构分为浮栅型、电子捕获型等。

1.2 Flash编程\擦除原理

以浮栅型Flash为例,它基本存储单位为bit,其存储物理结构叫做cell,这个Cell其实就是一个带浮栅的MOSFET,如下所示:

可以看到,浮栅晶体管在控制栅极(CG)下的绝缘层(Gate Oxide)新增了一层浮栅极(FG),用于保存电子。

一般情况下,源极和漏极里有电子,但是因为它们之间有缺电子的P型材料,它们之间没法流通。如果此时我们给CG和漏极施加正电压,源极接地,如下图:

电子就会迅速从源极流向漏极,同时由于CG电压更大,一部分电子通过隧穿效应(Quantum Tunneling Effect)通过隧道氧化层进入到FG,如下图:

这种情况下即使正电压被移除,电子也会因为隧道氧化层的绝缘作用保存在FG里,这种状态我们说晶体管存储了一个0,表示被编程了。

当我们想要擦除的时候,则在CG施加反向电压,如下:

在这种状态下,电子会被排斥并通过隧道氧化层回到P-Well中,这种状态对应“1”,即擦除状态。

这里我们提高了隧穿效应,所谓量子隧穿效应,即很多粒子冲向势垒,一部分粒子反弹,还会有一些粒子能通过一个隧道穿过势垒,如下图,这个隧道称作“量子隧道(quantum tunneling)”。

实际上,针对浮栅型Cell的Flash来说,编程常用CHE、FN、SSI等三种方式进行操作,如下图:

  • CHE:通过对CG和源施加高的电压,电子在源侧经过水平高电场加速,通过垂直高电场注入到FG,这种情况编程电流相对大;
  • FN:隧穿效应,如上所示;
  • SSI:该方式需要在源极施加高电压,CF和漏极电压较低,从而容易在FG和CG之间的间隙区域诱导出更高的电场。由于水平电场和垂直电场在间隙区都具有最大的场强,因此在间隙区可以高效率地产生热电子并注入到FG中。

2.小结

本章主要从NVM 的分类,Flash的编程\擦除基本原理做了分析,下一篇我们将继续描述Nor、NANDFlash区别,以及eFlash在车规MCU中遇到的问题。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1543316.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

marvelous designer打开发现gizmo(变换控制器)只有一个方向上有面控制器,缺另外两个面控制器

出现这种问题,其实是因为选中了屏幕坐标系 在3D界面下空白处点右键,选择gizmo,然后选择屏幕坐标系之外别的选项就能恢复到常规有多个面的控制器。

不能从所选图层建立3d模型--模大狮模型网

在Revit中,从所选图层直接创建3D模型并不是一个常规的操作方式。通常情况下,你需要手动创建文字或者图形,然后将其转换为3D模型。 如果你有一个平面上的文字或图形,想要将其转换为3D模型,你可以使用以下步骤&#xff1…

【包远程安装运行】SpringBoot+Mysql实现的美食分享菜谱制作平台+演示视频+开发文档(论文模板)

今天发布的是由【猿来入此】的优秀学员独立做的一个基于springboot脚手架的美食分享菜谱制作平台系统,该系统分为前台和后台,多用户分享平台。主要实现了 除脚手架功能以外下面是系统的功能: 前台普通用户:注册、登录、首页、美食…

波奇学Linux:网络接口

127.0.0.1本地回环ip&#xff0c;用于本地测试&#xff0c;不会进行网络通信 TCP是面向连接的&#xff0c;服务器比较被动 需要服套接字监听 listen状态 正常通信默认会进行主机序列和网络序列的转换 TcpServer.cc #pragma once#include<iostream> #include<string…

6、运行时数据区

Java虚拟机在运行Java程序过程中管理的内存区域&#xff0c;称之为运行时数据区。《Java虚拟机规范》中规定了每一部分的作用。 3.1 程序计数器 程序计数器&#xff08;Program Counter Register&#xff09;也叫PC寄存器&#xff0c;每个线程会通过程序计数器记录当前要执行的…

海外舆情监控的重要性以及云手机的推荐

海外市场不仅有着无尽的商机&#xff0c;同时也存在着各种各样的挑战。例如&#xff0c;海外市场舆情的复杂变化给企业带来了潜在风险&#xff0c;尤其在新媒体技术快速发展的时代&#xff0c;舆论对企业品牌形象的影响日益巨大。本文将详细探讨海外舆情监控的重要性以及为大家…

西圣、漫步者、万魔开放式耳机如何?甄选机型实测对比测评

无论是通勤、工作还是休闲时光&#xff0c;耳机总能为我们带来沉浸式的音乐体验。近年来&#xff0c;开放式耳机以其独特的优势逐渐受到市场的青睐&#xff0c;其中西圣、漫步者、万魔等品牌在市场上相当火热&#xff0c;那这三款开放式耳机的实际到底如何&#xff0c;还是有许…

第一周周考技能

文章目录 1月1. 任意输入一个3位整数&#xff08;100~999&#xff0c;包含100与999&#xff09;&#xff0c;判断输入的整数是否是质数&#xff0c;如果是质数则输出是质数&#xff0c;否则输出不是质数2.“降序数”是指一个自然数的低位数字不大于高位数字的数。例如&#xff…

Python 使用 PyQt5 设计一个查询IP对话框程序

当前环境&#xff1a;Win10 x64 Python 3.8.10 PyQt5.15.2 PyQt-tools5.15.9.33 1 打开 designer.exe ,新建一个 Dialog without Buttons , 设计窗体。 C:\Python\Python38-32\Lib\site-packages\qt5_applications\Qt\bin\designer.exe 2 使用命令转换为 py C:\Python\Pyth…

【C++从练气到飞升】06---重识类和对象

&#x1f388;个人主页&#xff1a;库库的里昂 ✨收录专栏&#xff1a;C从练气到飞升 &#x1f389;鸟欲高飞先振翅&#xff0c;人求上进先读书。 目录 ⛳️推荐 一、再谈构造函数 1. 构造函数体赋值 2. 初始化列表 每个成员变量在初始化列表中只能出现一次--初始化只能初始…

电饭煲/电磁炉/空调/机顶盒显示驱动芯片特点与相关型号推荐

电饭煲、电磁炉、空调和机顶盒等家用电器通常都包括数码管或LED显示&#xff0c;用于显示时间、温度、设置等信息。这些芯片通常具有多位数码管或LED的支持、亮度控制、多种字符和符号的显示、低功耗设计等功能。 电饭煲、电磁炉、空调和机顶盒等家用电器的显示驱动芯片通常是…

Docker安装配置

1. 安装docker-ce sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo yum -y install docker-ce sudo systemctl enable docker 2. 设置代理 参照&#xff1a;https://docs.docker.com/config/daemon/systemd/#httpht…

基础篇Redis

基础篇Redis 1.Redis简单介绍 Redis是一种键值型的NoSql数据库&#xff0c;这里有两个关键字&#xff1a; 键值型NoSql 其中键值型&#xff0c;是指Redis中存储的数据都是以key.value对的形式存储&#xff0c;而value的形式多种多样&#xff0c;可以是字符串.数值.甚至json…

C语言入门——使用Visual C++

C语言简介 使用Visual C 语法解释 # include <stdio.h>int main(void){printf("hello,word !");return 0; } 在C语言中&#xff0c;main()函数的返回值通常被用来表示程序执行的状态。return 0;语句是结束main()函数的一种方式&#xff0c;并且它代表了程序正…

C语言字符函数与字符串函数:编织文字的舞会之梦(下)

欢迎来到白刘的领域 Miracle_86.-CSDN博客 系列专栏 C语言知识 先赞后看&#xff0c;已成习惯 创作不易&#xff0c;多多支持&#xff01; 目录 七、strncpy的使用以及模拟实现 八、strncat的使用以及模拟实现 九、strncmp的使用以及模拟实现 十、strstr的使用以及模拟…

通过 Elastic AI Assistant for Observability 进行警报管理,最大限度地提高 IT 效率

作者&#xff1a;来自 Elastic Felix Roessel 管理和关联 Elastic Observability 中的信号和警报 随着组织采用日益复杂和互连的 IT 系统&#xff0c;各种监控工具生成的大量警报带来了严峻的挑战 - 我们如何有效地筛选噪音以识别和响应最关键的问题&#xff1f; 事件管理和关…

Python学习笔记------文件操作

编码 编码就是一种规则集合&#xff0c;记录了内容和二进制间进行相互转换的逻辑。 编码有许多中&#xff0c;我们最常用的是UTF-8编码 计算机只认识0和1&#xff0c;所以需要将内容翻译成0和1才能保存在计算机中。同时也需要编码&#xff0c;将计算机保存的0和1&#xff0c…

云计算备考心得丨我是怎么备考并”A分”云计算HCIE的

大家好&#xff0c;我是誉天覃同学&#xff01;在3月22日的云计算HCIE3.0考试已顺利通过&#xff0c;很高兴有这个机会给大家分享备考的经历&#xff0c;希望对还在备考的同学能有一定的帮助。 首先先感谢一下负责实验辅导的苗苗老师跟石凡老师&#xff0c;以及云计算的授课老师…

软件工程-第8章 软件测试

8.1 软件测试目标域软件测试过程模型 8.2 软件测试技术 8.3 静态分析技术-程序正确性证明 8.4 软件测试步骤 8.5 本章小结

【题解】—— LeetCode一周小结12

【题解】—— 每日一道题目栏 上接&#xff1a;【题解】—— LeetCode一周小结11 18.区域和检索 - 数组不可变 题目链接&#xff1a;303. 区域和检索 - 数组不可变 1.计算索引 left 和 right &#xff08;包含 left 和 right&#xff09;之间的 nums 元素的 和 &#xff0c;其…