Flash Memory 简介

https://linux.codingbelief.com/zh/storage/flash_memory/index.html

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。)

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 连接。


图片: Parallel NOR Flash 与 Serial NOR Flash

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

更多 NOR Flash 的相关细节,请参考 NOR Flash 章节。

NAND Flash

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


图:NAND Flash Interface

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 个比特信息。


图片: SLC、MLC 与 TLC

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

Table 1

 SLCMLCTLC
制造成本30-35 美元 / 32GB17 美元 / 32GB9-12 美元 / 32GB
擦写次数10万次或更高1万次或更高5000次甚至更高
存储单元1 bit / cell2 bits / cell3 bits / cell

(注:以上数据来源于互联网,仅供参考)

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

更多 NAND Flash 的相关细节,请参考 NAND Flash 章节。

Raw Flash 和 Managed Flash

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

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


图片: Raw Flash 和 Managed Flash

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

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

参考资料

  1. NOR NAND Flash Guide: Selecting a Flash Storage Solution [PDF]
  2. Wiki: Common Flash Memory Interface [Web]
  3. Quick Guide to Common Flash Interface [PDF]
  4. MICRON NOR Flash Technology [Web]
  5. MICRON NAND Flash Technology [Web]
  6. Wiki:闪存 [Web]
  7. Wiki:Flash File System [Web]
  8. Wear Leveling in Micron® NAND Flash Memory [PDF]
  9. Understanding Flash: The Flash Translation Layer [Web]
  10. 谈NAND Flash的底层结构和解析 [Web]
  11. 闪存基础 [Web]
  12. Open NAND Flash Interface (ONFI) [Web]

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

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

相关文章

easyflash 教程

可以看easyflash下的docs文档,万一你们手头没有文档呢。这里我就直接黏贴了。 API 说明文档: docs/zh/api.md 通用移植文档: docs/zh/port.md EasyFlash API 说明 所有支持的API接口都在\easyflash\inc\easyflash.h中声明。以下内容较多&am…

FLASH场景式导航

这个东西适用的人可能比较少,不过如果你参与了政府网站的建设项目,可能会用得上。这个东西是参考TRS的场景式导航表现形式座的,在IE7/8、FF等浏览器OK,但在IE6这些老旧的浏览器可能会有点位置的问题,可以利用JS代码或者…

大学生必知必会技能系列02--虚拟机安装

学习linux的时候,在自己的pc笔记本上安装Linux不太方便,解决方法是,在笔记本上安装 vmware虚拟机,然后再把计划要学习的Linux版本安装到虚拟机中,此时外部电脑能办公,虚拟机上的 代码也能正常运用。 一、VMware 17 虚拟…

linux系统中代码突然无法执行,没有权限访问文件,但是可以在文件管理器中查看文件

前言 这段时间遇到了一个非常离谱的问题,我的只要设计移动硬盘中数据的所有代码突然无法运行,我折腾了很久一直觉得是移动硬盘坏了,但拿到其他电脑上去是可以运动的。今天终于偶然发现了问题。 直接说结论: 移动硬盘的挂载点变了…

一起来学习Vue2吧

虽然Vue3已经出来好一阵子了,但就目前而言,Vue2在市场上还是会占一大部分的,因为一些老项目是用Vue2写的,后期维护也是需要Vue2,而且学会Vue2,Vue3你也会的差不多了,到后面稍微看一下理解一下Vu…

2020版本以下激活界面点击输入序列号闪退

打开autoremove,点扩展里面的这两个,先卸载再安装服务 重启电脑再激活。

ubuntu sqlite3数据库环境配置 【亲测有效】

目录​​​​​​​ 一:源码资源下载 二:ubuntu下 sqlite3 配置 一:源码资源下载 SQLite Download Pagehttps://www.sqlite.org/download.html 二:ubuntu下 sqlite3 配置 2.打开终端将源码压缩包解压,输入以下命令 …

IPHONE省电省流量技巧 电池状况查询

有很多苹果用户纠结于自己的iphone偷跑流量,费电的问题,的确有些问题现在是硬伤,如果是设备上的问题我们用户是无法自己解决的,但是我们可以尽最大可能让自己的手机电池最大化,尽量少跑流量,少花冤枉钱。 特…

什么软件测试苹果手机循环电池,如何检查iPhone电池的电池循环次数,看完你就明白了...

iPhone电池通常持续整个工作日,但很少超过一天,这意味着你仍然需要做夜间充电的仪式。此外,就像在大多数苹果手机上一样,iPhone内部的电池是锂离子(Li-Ion)电池,这意味着它会在一段时间后降级。 随着最近的iPhone性能减…

如何找回iPhone的访问限制密码

作者:Fiez Wang 链接:https://www.zhihu.com/question/20831363/answer/96581795 来源:知乎 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。 首先说结果:我的iPhone 6(IOS 10.3.2未…

用文件保存游戏服务器数据恢复,免越狱 教你恢复游戏数据存档

原标题:免越狱 教你恢复游戏数据存档 【手机中国 软件】从iOS 8.3开始,苹果已经对不支持 iTunes 共享的 App 进行限制文件的访问。也就是说不能简单有效的把部分游戏等数据覆盖!这两天iOS 9.2 - 9.3.3完美越狱发布,使用强大的 iBackupBot for iTunes 备份恢复工具尝试在iOS…

iphone忘记访问控制密码之后如何找回

转载: 忘记 iOS 的访问限制密码,如何找回或重设? 首先说结果:我的iPhone 5s(IOS 9.3.1未越狱)的『访问限制密码』已经成功破解,不需要恢复iPhone系统、不需要恢复备份、不需要越狱,…

Itunes备份

用3GS十多个月了。对iTunes这个东西简直是又爱又怕,学习了很多帖子,和大家分享一些体会,希望可以帮助大家玩好iPhone。 这篇教程主要是写给新人同时又想玩转iPhone的童鞋们看的,还是请老手无视 吧!这篇教程主要是讲iT…

00002 贪婪洞窟.001

00002贪婪洞窟.001 地牢类游戏我喜欢的有不少,比如《厕所穿越记》、《地下城冒险》等等,以及这次的研究对象《贪婪洞窟》。 从玩法上来说,《贪婪洞窟》不够上进,刷多了就显得单调、腻人。在那么几次更新中,除了“梦境”…

什么软件可以代替sc防火墙_什么软件可以测试iphone电池

iBackupBot可以测试iphone电池。在苹果官网的支持说明之中,会有充电次数上限,一旦充电次数过了上限,电池就还有出厂时的 80% 容量。苹果支持网页之中有写明数字。例如 iPhone 有 500 个循环,Apple Watch、MacBook 和 i…

Itunes备份功能图解教程——很详细哦!希望新手认真看看!

From: http://bbs.dospy.com/thread-8355410-1-301-1.html 目录 一、使用itunes进行备份的基本知识 1、iTunes什么时候会进行备份。 2、iTunes备份到底备份了什么? 3、iTunes的备份还有哪些特点? 二、使用备份和恢复的一些技巧 1、能否禁止iTun…

android usb充电电流,留心手机充电电流大小,别等到“机毁人伤”时才后悔!

如今很多智能手机都开始支持快速充电技术,可以在90分钟内充满100%的电力。不过,出于方面的考虑,很多用户会购买第三方的快充插头(充电器)备用。问题来了,一些杂牌快充插头根本达不到标称的供电水平,品质不过关的插头还存在安全隐患,极易“机毁人伤”。所以,我们要学会测…

对Apple Watch的取证分析(续)

在过去几年中,智能可穿戴设备的使用显著增加。2018年智能手表销量达1.41亿部,智能可穿戴设备销量同比增长近一倍。在激烈的市场竞争中,Apple Watch占据了主导地位,2018年可穿戴设备销量超过2250万台,占据了全球市场近一…

如何判断您是否需要新的iPhone电池

If Apple’s iOS is purposefully slowing down your phone, a battery upgrade may help. But don’t make that expensive step without checking for forced ‘performance management’ first. 如果Apple的iOS故意降低了手机的速度,则电池升级可能会有所帮助。 …

ios 7.x.x 不越狱添加输入词库

一、准备软件: 下载软件 附件中包含需要的2个软件和3个词库 1、iBackupBot for iTunes 5.1 注册iBackupBot help->registered iBackupBot注册码如下: 用户名:AXiS - Fighting For Fun 注册号:B6ECEFB6E061BC8B2B23459EFE035ABF…