【重要】这是我见过最好的Flash科普文了

news2024/11/18 15:28:55

一、Flash Memory简介

Flash Memory 是一种非易失性的存储器。在嵌入式系统中通常用于存放系统、应用和数据等。在 PC 系统中,则主要用在固态硬盘以及主板 BIOS 中。

另外,绝大部分的 U 盘、SDCard 等移动存储设备也都是使用 Flash Memory 作为存储介质。

二、Flash Memory的主要特性

与传统的硬盘存储器相比,Flash Memory 具有质量轻、能耗低、体积小、抗震能力强等的优点,但也有不少局限性,主要如下:

  1. 需要先擦除再写入
    Flash Memory 写入数据时有一定的限制。它只能将当前为 1 的比特改写为 0,而无法将已经为 0 的比特改写为 1,只有在擦除的操作中,才能把整块的比特改写为 1。

  2. 块擦除次数有限
    Flash Memory 的每个数据块都有擦除次数的限制(十万到百万次不等),擦写超过一定次数后,该数据块将无法可靠存储数据,成为坏块。
    为了最大化的延长 Flash Memory 的寿命,在软件上需要做擦写均衡(Wear Leveling),通过分散写入、动态映射等手段均衡使用各个数据块。同时,软件还需要进行坏块管理(Bad Block Management,BBM),标识坏块,不让坏块参与数据存储。(注:除了擦写导致的坏块外,Flash Memory 在生产过程也会产生坏块,即固有坏块。)

  3. 读写干扰
    由于硬件实现上的物理特性,Flash Memory 在进行读写操作时,有可能会导致邻近的其他比特发生位翻转,导致数据异常。这种异常可以通过重新擦除来恢复。Flash Memory 应用中通常会使用 ECC 等算法进行错误检测和数据修正。

  4. 电荷泄漏
    存储在 Flash Memory 存储单元的电荷,如果长期没有使用,会发生电荷泄漏,导致数据错误。不过这个时间比较长,一般十年左右。此种异常是非永久性的,重新擦除可以恢复。

三、NOR Flash 和 NAND Flash

根据硬件上存储原理的不同,Flash Memory 主要可以分为 NOR Flash 和 NAND Flash 两类。主要的差异如下所示:

  • NAND Flash 读取速度与 NOR Flash 相近,根据接口的不同有所差异;

  • NAND Flash 的写入速度比 NOR Flash 快很多;

  • NAND Flash 的擦除速度比 NOR Flash 快很多;

  • NAND Flash 最大擦次数比 NOR Flash 多;

  • NOR Flash 支持片上执行,可以在上面直接运行代码;

  • NOR Flash 软件驱动比 NAND Flash 简单;

  • NOR Flash 可以随机按字节读取数据,NAND Flash 需要按块进行读取。

  • 大容量下 NAND Flash 比 NOR Flash 成本要低很多,体积也更小;

(注:NOR Flash 和 NAND Flash 的擦除都是按块块进行的,执行一个擦除或者写入操作时,NOR Flash 大约需要 5s,而 NAND Flash 通常不超过 4ms。)

1、NOR Flash

NOR Flash 根据与 CPU 端接口的不同,可以分为 Parallel NOR Flash 和 Serial NOR Flash 两类。

Parallel NOR Flash 可以接入到 Host 的 SRAM/DRAM Controller 上,所存储的内容可以直接映射到 CPU 地址空间,不需要拷贝到 RAM 中即可被 CPU 访问,因而支持片上执行。Serial NOR Flash 的成本比 Parallel NOR Flash 低,主要通过 SPI 接口与 Host 连接。

1a5527aa555004e91311d9070f442a7b.png

鉴于 NOR Flash 擦写速度慢,成本高等特性,NOR Flash 主要应用于小容量、内容更新少的场景,例如 PC 主板 BIOS、路由器系统存储等。

2、NAND Flash

NAND Flash 需要通过专门的 NFI(NAND Flash Interface)与 Host 端进行通信,如下图所示:

458b19d935dda033f3cbb6be35309178.png

NAND Flash 根据每个存储单元内存储比特个数的不同,可以分为 SLC(Single-Level Cell)、MLC(Multi-Level Cell) 和 TLC(Triple-Level Cell) 三类。其中,在一个存储单元中,SLC 可以存储 1 个比特,MLC 可以存储 2 个比特,TLC 则可以存储 3 个比特。

NAND Flash 的一个存储单元内部,是通过不同的电压等级,来表示其所存储的信息的。在 SLC 中,存储单元的电压被分为两个等级,分别表示 0 和 1 两个状态,即 1 个比特。在 MLC 中,存储单元的电压则被分为 4 个等级,分别表示 00 01 10 11 四个状态,即 2 个比特位。同理,在 TLC 中,存储单元的电压被分为 8 个等级,存储 3 个比特信息。

39b82a5181214fdc4c37aee744a1c559.png

NAND Flash 的单个存储单元存储的比特位越多,读写性能会越差,寿命也越短,但是成本会更低。Table 1 中,给出了特定工艺和技术水平下的成本和寿命数据。

36fc2d06936a35be57dc15d6f67af377.png

相比于 NOR Flash,NAND Flash 写入性能好,大容量下成本低。目前,绝大部分手机和平板等移动设备中所使用的 eMMC 内部的 Flash Memory 都属于 NAND Flash。PC 中的固态硬盘中也是使用 NAND Flash。

四、ROW flash 和 managed flash

由于 Flash Memory 存在按块擦写、擦写次数的限制、读写干扰、电荷泄露等的局限,为了最大程度的发挥 Flash Memory 的价值,通常需要有一个特殊的软件层次,实现坏块管理、擦写均衡、ECC、垃圾回收等的功能,这一个软件层次称为 FTL(Flash Translation Layer)。

在具体实现中,根据 FTL 所在的位置的不同,可以把 Flash Memory 分为 Raw Flash 和 Managed Flash 两类。

5fdd94b3ba736ed028c2f84c72200453.png

1、Raw Flash

在此类应用中,在 Host 端通常有专门的 FTL 或者 Flash 文件系统来实现坏块管理、擦写均衡等的功能。Host 端的软件复杂度较高,但是整体方案的成本较低,常用于价格敏感的嵌入式产品中。

通常我们所说的 NOR Flash 和 NAND Flash 都属于这类型。

2、Managed Flash

Managed Flash 在其内部集成了 Flash Controller,用于完成擦写均衡、坏块管理、ECC校验等功能。相比于直接将 Flash 接入到 Host 端,Managed Flash 屏蔽了 Flash 的物理特性,对 Host 提供标准化的接口,可以减少 Host 端软件的复杂度,让 Host 端专注于上层业务,省去对 Flash 进行特殊的处理。

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

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

相关文章

day 2

多态,虚函数,纯虚函数 1.多态:父类的指针或者引用,指向或初始化子类的对象,调用子类对父类重写的函数,进而展开子类的功能。 函数重写 1> 必须有继承关系 2> 子类和父类有同名同类型的函数 3>…

【深度学习实验】NumPy的简单用法

目录 一、NumPy介绍 1. 官网 2. 官方教程 二、实验内容 1. 导入numpy库 2. 打印版本号 3. arange 函数 4. array函数 5. reshape函数 6. 矩阵点乘(逐元素相乘) 7. 矩阵乘法 一、NumPy介绍 NumPy是一个常用于科学计算的Python库,尤…

司徒理财:8.31黄金高空低多布局静等非农来袭

黄金行情走势分析:      黄金现在处于底部震荡走势,反弹已经接近尾声,周五公布大非农数据,消息不确定的情况下,黄金不会轻易突破日线压力,今日将依托1950的压力位置做空看跌,看波段回调&…

【Python小项目】Python的GUI库Tkinter实现随机点名工具或抽奖工具并封装成.exe可执行文件

一、项目背景 受朋友所托,帮他在公司年会活动上做一个点名抽奖的小工具。经过沟通后,他发给我一个人员名单表格,是xlsx格式的excel工作表,并大概设计了一下抽奖工具的界面以及相关要求。话不多说,马上开始项目流程。 二、需求分析 客户需求总结如下: UI界面设计如下:…

SpringBoot之@RefreshScope

注解RefreshScope时一个组合注解。 Target({ ElementType.TYPE, ElementType.METHOD }) Retention(RetentionPolicy.RUNTIME) Scope("refresh") Documented public interface RefreshScope {// Scope代理模式之ScopedProxyMode,包含TARGET_CLASS、INTERF…

技术领导力实战笔记:14

14|团队优化:如何妥善且优雅地做好解聘工作? 我们需要在思想上对这件事情有一个正确的认识,解聘对团队、个人和管理者三方都是有好处的。摆正自己的立场才能做出正确的决定。 1.公司发展太快,个人没有跟上脚步 2.个人…

Go在安装Gin时出现Failed to connect 报错问题的解决方案(已解决)

在命令行中输入:go get -u github.com/gin-gonic/gin指令安装Gin第三方包时出现连接错误与连接超时的情况如下: 在较新版本的Go中引入了全新的包管理机制,出现上述错误可能是包管理机制设置不恰当的问题,尝试在终端窗口输入如下…

Mysql数据库(1)—索引

索引是什么? 索引是帮助MySQL高效获取数据的排好序的数据结构。常见的索引数据结构包括: 二叉树红黑树Hash表B-Tree mysql索引分类 按逻辑结构分类:B tree索引、Hash索引、Full-text索引。按物理存储分类: (1&…

更健康舒适更科技的照明体验!SUKER书客护眼台灯 L1上手体验

低价又好用的护眼台灯是多数人的需求,很多人只追求功能性护眼台灯,显色高、无频闪、无蓝光等基础需求。但是在较低价格中很难面面俱到,然而刚发布的SUKER书客L1护眼台灯却是一款不可多得的性价比护眼台灯,拥有高品质光源&#xff…

自我管理篇--想要快速融入新公司,你需要用些小妙招呢

自我管理篇—想要快速融入新公司,你需要用些小妙招呢! 文章目录 一、建立良好的人际关系二、了解公司文化和价值观三、展现自己的能力和价值四、适应和融入团队五、建立良好的工作关系六、塑造专业的职业形象七、提升沟通和协调能力八、关注公司的发展动…

【数值计算方法】导论

目录 一、极简数学史 1. 萌芽时期 2. 古典数学时期 3. 近代前期 4. 近代后期 5. 现代数学 二,计算方法学什么? 1. 数值代数 a. 线性代数方程组求解(等价变换) b. 矩阵特征值特征向量(相似变换) …

【Android Framework系列】第13章 SVG矢量图形自定义组件(绘制中国地图)

1 前言 本章节我们来了解下什么是SVG矢量图形,怎么通过SVG实现图形的绘制,通过SVG实现不规则的自定义控件,项目实现一个中国地图,实现每个省都能够点击,项目地址在文末请自取。 2 SVG概念 2.1 SVG矢量图形 SVG 指可…

【机器视觉】HALCON目标图像检测实践(零基础版)

开发环境: 基本思路: 灰度阈值处理特征提取 ps:思考:如何通过阈值处理后,后续缩小检测目标范围? 二值化、梯度阈值、自适应阈值等方法来增强图像的对比度,从而突出目标特征,进一步缩小检测目标…

净利同比大增158%,国民内衣都市丽人已显“飞轮效应”

作者 | 曾响铃 文 | 响铃说 自2021年底创始人郑耀南回归开启“二次创业”后,都市丽人变革效果显著,稳健经营之路“渐入佳境”,好消息不断。 最新的半年财报,更是延续了这一点。最新财报显示,2023年上半年&#xff0…

基于AI智能分析网关EasyCVR视频汇聚平台关于能源行业一体化监控平台可实施应用方案

随着数字经济时代的到来,实体经济和数字技术深度融合已成为经济发展的主流思路。传统能源行业在运营管理方面也迎来了新的考验和机遇。许多大型能源企业已开始抓住机遇,逐步将视频监控、云计算、大数据和人工智能技术广泛应用于生产、维护、运输、配送等…

8.31 加载资源文件 信号与槽机制

登录窗口 #include "widget.h" #include "ui_widget.h"Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget) {ui->setupUi(this);this -> setFixedSize(540, 410); //固定窗口大小this -> setWindowTitle("啊啊啊"…

比较opencv,pillow,matplotlib,skimage读取图像的速度比

上面这些库都被广泛用于图像处理和计算机视觉任务; 不同的图像读取库(OpenCV,Pillow,matplotlib和skimage)的读取速度,是怎么样的一个情况? 下面分别从读取速度,以及转换到RGB通道…

文心一言向全社会开放

大家好,我是洋子 今天和大家宣传一件令人激动的事情 8月31日,文心一言率先向全社会全面开放。广大用户可以在应用商店下载“文心一言APP”或登陆“文心一言官网(https://yiyan.baidu.com)体验。同时,企业用户可以直接登陆百度智能云千帆大模…

云渲染平台是如何收费的?

现在的云渲染平台实在太多了,那么多平台,他们都是如何收费的呢?这篇文章我们就一块来看看吧。 一、渲染100(http://www.xuanran100.com?ycode1a12) 渲染100位于成都,是国内知名的云渲染公司,15分钟2毛60分钟8毛非常适…

《Flink学习笔记》——第十二章 Flink CEP

12.1 基本概念 12.1.1 CEP是什么 1.什么是CEP? 答:所谓 CEP,其实就是“复杂事件处理(Complex Event Processing)”的缩写;而 Flink CEP,就是 Flink 实现的一个用于复杂事件处理的库&#xff08…