02. 数据在flash的存储

news/2025/3/18 12:17:03/文章来源:https://www.cnblogs.com/lang77/p/18778692

然后我们要理解说文件是如何存储在Flash上的话,首先我们要理解在Flash中是如何存储0,1的

总结来说,从上到下是这样的结构:

  1. Flash就是通过双珊极场效应管的方法存储单位的0,1;
  2. 而双珊极场效应管是由场效应管设置而来;
  3. 如果要理解场效应管,首先我们要理解半导体导电原理。

我们从下到上开始理解

半导体导电原理

首先什么产生电流,产生电流就是电子的定向移动。

在自然界物质可以分为:绝缘体,导体 和 半导体。从化学来说,每一个物质都有自己的最外层的电子,在最外层为8的时候是稳定的,而<4的时候则倾向于失去电子,>4的时候是得到电子,而=4的时候,没有太大的倾向性所以叫半导体。

Si就是这样的半导体,在Si结构中都他们都是会形成共价键从而达到稳定的状态,但是在其中会有一些自由电子,能量比较强,于是他们就会变成自由的电子,然后产生一个+极的空穴,此时,如果在中间加一个电场,就会使得自由电子移动,然后空穴也不断抢夺附近的电子进行移动,但是这样产生的电流是微小的。

si结构

为了增大浓度,达到一定程度的时候才能产生电流,有两种方法,通过掺杂半导体的方式

  • N型半导体:掺杂5价元素(P元素,多一个电子和si产生共价键),电子浓度>>空穴浓度,导电介质是电子
  • P型半导体:掺杂3价元素(Be元素,少一个电子,空穴产生),空穴浓度>>电子浓度,导电介质是空穴

N型半导体

场效应管

那再来说说场效应管是如何导电的

场效应管

s:源极,d:漏极,g:栅极,b:衬底通常连接到源极或接地 二氧化硅是绝缘体

它的导电方式就是就是首先gb产生一个偏置电压(因为中间有二氧化硅,所以不会产生电流,而是产生电压,吸引电子),使得在sd之间聚合很多的电子,然后sd之间通电,因为之间有电子,所以可以产生电子之间的定向移动,产生电流,电子从 S 端进入沟道,并被电场推向 D 端,电子到达 D 端后进入外部电路(电源负极) 外部电路中的电子通过电源补充回 S 端,整个回路形成连续的电流流动,因此场效应管能够持续导电

双栅极场效应管

那现在就来说说双栅极场效应管是如何通过场效应管改造存储0,1的

双栅极场效应管

就是相比较于说场效应管,在二氧化硅内部有一个被其包裹的栅场,当我们写入0的时候就是向浮动栅中注入电荷,写入1的时候就不注入电荷。

向浮动栅注入电荷就是写入0(d端没有电了) 整个逻辑就是:

  1. 施加较高的 V_{GS}(控制栅电压) 和 V_{DS}(漏极电压)。
  2. 电子从源极进入沟道,部分电子在电场作用下被加速,获得足够能量跃迁到浮栅。
  3. 浮栅存储电子,ds沟道中间没有足够的电子,导致不易导通,d端得到0

同理,写入1就是清除浮栅中的电子,通常使用 FN 隧道效应

  1. 施加较高的 负 V_{GS}(控制栅电压)
  2. 浮栅中的电子通过隧道效应被拉出,流入衬底(P-substrate)
  3. 浮栅没有电子,阈值电压降低,MOSFET 容易导通,d端得到1

NOR Flash 和 NAND Flash

NOR Flash

NAND Flash

这两者之间的区别就是双栅极场效应管的连接方式,NOR是并联,就有专有地址线,可以随机寻址,而NAND是串联,不能随机寻址,然后读写操作会比较复杂,因为不仅要设置的位,其他的也要控制,而且因为其中一个有修改其他的也要配合,就次数很多会比较容易出现坏块。但是它的优点就是可以整块擦写操作,速度更快,排线密度要求更低。


以上我们理解了说Flash底层是如何存储0,1数据的,以及一个基本单位下flash是如何组织的

当Flash当然不是只存一个基本单位,1byte/2byte这种,就像是在磁盘中我们也不是通过一个一个bit来寻址的

所以在Flash结构中,我们也同样需要更大的单位来帮助我们更快的寻址

Flash芯片结构

Flash芯片结构

以上是一个Flash芯片结构的例子

  • 每个位线连接8/16/32个基本的存储单元,可以存储1/2/4 Bytes
  • 2048条位线组成的电路构成一个页(page),容量是2K/4K/8K Bytes
  • 2K个页组成一个块(block),若干个块构成整个NAND Flash存储芯片

以上的数据只是这个芯片的设计,不同芯片的设计是不同的;但是主要关注的是这个 "页" 和 "块" 的概念

寻址方式

Flash使用这样的方式进行组织,就给了更合适的寻址方式

首先理解NAND Flash的寻址是数据线,地址线复用。这个意思就是说,完成寻址的话是需要多个时间周期的。就是首先发送地址,然后是数据,对比来看就是如果数据线和地址线不是复用的,有单独的地址线就可以传地址线后就可以锁定对应的数据,如果写就可以划分同一个周期传递地址和数据。

然后就是他是串行寻址:

  • 以页位最小读写单位,以块位单位擦除
    • 因为以页位读写单位,所以它是不支持随机读写的,因为必须要把整个页读到缓存才能到对应的位置,就像磁盘是以扇区为最小读写单位一样
  • 3次地址发送(块号 + 块内页号 + 页内字节号),5个时钟周期?(为什么是5个不是4个?)

和磁盘很相似

  1. 由控制器驱动进行底层读写
  2. 寻址方式都是多级地址
  3. 都是以整片为单位进行读写

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

3.三种简单的力

1.重力 万有引力定律: $F = G \frac{m_1 m_2}{r^2}$ 实际在模拟时使用的方程: $F = mg$(m是物体质量,g为指向向下的常数矢量) 2.摩擦力 2.1静摩擦力 当两个物体相对静止时,阻止它们开始运动的摩擦力称为静摩擦力。 $f_s = \mu_s N$ $ \mu_s$:静摩擦系数 $N$:法向力的大小 2…

01. 数据在磁场中的存储

数据在磁盘上的存储抽象数据存储在磁盘上,物理层面上是在每一个存储单元中,有类似2维的一个一个空间,每一个空间存储1bit或者1byte的数据. 当存储数据的时候都需要知道每一段数据的头地址由此进行读写 这样并不方便管理,所以将整个存储空间划分为更大的单位空间,以block的…

大数据分析是什么?

谢邀,这篇就用大白话聊聊大数据分析到底是什么,不拽专业术语,不卖关子,就用最平常普通的例子去给大家拆解清楚。 大数据分析听着挺高大上,其实离日常生活可近了,比如你刷短视频看到的推荐视频、购物软件猜你喜欢的商品,背后都是大数据分析的作用! 一、到底什么是大数据…

触觉智能RK3506核心板,工业应用方案分享(一)

在工业4.0与智能制造深度融合的今天,设备实时性、稳定性和成本效益成为企业核心竞争力的关键。而触觉智能RK3506核心板,基于RK3506B/RK3506J,仅59元起售,作为全新的入门工业级芯片平台,其工业宽温性能、发热量小,IO接口丰富, 即时性高, 低延迟, 反应速度快等特点,重新定…

day:24 python模块(5)——xlrd模块

一.xlrd 介绍 (1)xlrd是可用于读取excel表格数据(不支持写操作,写操作需要xlwt模块实现) (2)支持xlsx 和xls 格式的格式的表格(不支持csv文件,csv文件可用python自带的csv模块操作) (3)模块安装方式:pip3 install xlrd==1.2.0 (4)模块导入方式:import xlrd 二、…

20242825 2024-2025-2 《网络攻防实践》第三周作业

@目录一. 实验内容1.1 实验内容概述1.2 实验相关知识概述二. 实验过程2.1 动手实践tcpdump2.1.1 实验要求2.1.2 实验过程展示2.1.3 所使用网址链接2.2 动手实践Wireshark2.2.1 实验要求2.2.2 实验过程展示1. 你所登录的BBS服务器的IP地址与端口各是什么?2. TELNET协议是如何…

安装 SQL Server 后在开始菜单中找不到 SQL Server XXXX 配置管理器

找不到,没有的话,就没办法了。。。 可以 Win+R 打开运行窗口,输入右侧命令,打开对应版本的配置管理器: SQL Server 2022:SQLServerManager16.mscSQL Server 2019:SQLServerManager15.mscSQL Server 2017:SQLServerManager14.mscSQL Server 2016:SQLServerManager13.ms…

MinIO Linux 数据迁移

目录安装下载安装Minio客户端备份数据数据还原数据迁移设置别名迁移 从A服务器,迁移致B服务器,前提,需要两边的 Bucket 相同,如果B服务器没有A服务器里的 Bucket 需要先创建 安装 MinIO Linux 安装使用 & SpringBoot整合MinIO 下载 查看系统架构 Linux uname -m # 输出…

day:24 python模块(4)——json模块

一、json模块 将python转换成字符类型,将字符类型转换成python类型 json模块可以实现json数据的序列化和反序列化 (1)序列化:将可存放在内存中的python 对象转换成可物理存储和传递的形式 实现方法:load() loads() (2)反序列化:将可物理存储和传递的json数据形式转换为在…

OpenWrt Mi R4A千兆编译问题

原帖地址:https://www.right.com.cn/forum/thread-4052254-1-1.html 众多周知,小米R4A千兆版与小米R3G V2在硬件上是一样的,但使用coolsnowwolf编译出来的R3G V2或者R4A固件如果用Breed刷进是无法引导进入系统的; 如果要编译出可以用breed能引导的固件需要修改源码,方法很简…

Cloud Ace 宣布成为 Langfuse 亚太地区首个代理商,提供 LLM 全链路解决方案

Langfuse 作为领先的 LLM 工程平台,助力高效开发和管理生成式 AI 应用。Cloud Ace 提供 Langfuse 企业版许可证,支持大规模开发,强化安全管控,并提供本地化技术支持。Cloud Ace 宣布正式代理 Langfuse 产品,是 Langfuse 在亚太地区唯一的官方授权经销商,全面负责其商用许…

【Azure Fabric Service】演示使用PowerShell命令部署SF应用程序(.NET)

问题描述 在中国区微软云Azure上使用Service Fabrics服务,本地通过Visual Studio 2022的发布.NET应用,发现无法发布!在搜寻官方文档之后,可以通过PowerShell命令来进行发布。本文参考的文档如下: 1:将应用程序部署到 Service Fabric 群集 (https://docs.azure.cn/zh-cn/…