相关文章

既生Flash,又何生EEPROM?

存储器Flash页、扇区、块的区别

这是我一个知识星球朋友的提问

刚开始我没有认真去思考这个问题,之后我仔细查了下资料,里面的内容还挺多。

先看看EMMC的结构

EMMC 是在nand flash的基础上增加了一个控制器,cpu和emmc交流实际上是和它的控制器进行交流。相当于emmc多了一个管家。

NAND FLASH的特点

1)  初始存储为1

2)写0只要操作一个page

3)写1需要操作整个block,1个block包含多个page

---

假装解释下为什么写 FLASH前,要先判断里面的内容

从读写速度上解释

上面是我从一个EMMC的规格书上截图出来的资料,EMMC的读写速度是不同的,不同的读写速度肯定是存在不同的读写时序,既然读写时序不同,那当然应该让代码越快越好。

所以,从这点上看,先读判断数值是应该的。

EMMC 可以无限次读写吗?

刚开始在微信群里面讨论的时候,得到的信息是,EMMC可以无限次读,但是不能无限次写。

因为写会意味着需要对存储区进行擦擦操作,这个我是可以理解的。

但是实际上是怎样的,我还是一知半解

然后,得到一个小姐姐指导之后,大概的理解是这样的。

EMMC完全写满后擦除算一次,普通的EMMC可以擦除3000次,所以容量*3000 就是EMMC可以写入的内容大小。「计算寿命这点我还是持怀疑态度

后面查资料了解到,不同的flash颗粒,它的擦除次数和速度是不同的,这就是不能无限写的关键原因。

我们平时使用的EMMC是TLC种类,这样的EMMC一个cell有3个bit位,可以表示 2^3 = 8中电平状态。

状态越少,需要表示的电平就约不精细,计算也就会越快,当然了,价格越贵,体积会越大,这样反而不利于消费电子。

如上图,SLC的速度很快,只需要两个电压级别。

TLC的速度会比较慢,需要8个电压级别来表示。

为什么EMMC的规格书上面都不写上最大擦除或者写入的次数?「也就是emmc的寿命」

到目前我也没有得到特别准确的答案,有了解的同学可以在评论区回答。我猜测是,因为EMMC有控制器,如果你不断的擦除一个位置,即使的超过最大次数,但是因为EMMC的控制器存在,它可以改变实际存储的EMMC地址,让你做不到在同一个区域不断的擦除。再加上容量的不确定,就不好确定EMMC的寿命了。

特斯拉召回是怎么回事?

我猜测,可能这个系统上的EMMC配置很小,可能就真的存在某个程序在不断的写入,导致EMMC擦除次数达到上限。

参考:

https://blog.csdn.net/weixin_42151788/article/details/114577735

https://szlin.me/2017/08/23/kernel_seccomp/

写flash,要不要加个判断?相关推荐

  1. STM32写FLASH期间导致中断无法响应的解决思路

    思路一:将中断程序或者整个程序放到RAM执行 详情参考:解决STM32F0/F1内部FLASH写操作导致中断程序无法响应的问题 思路二:让我们回顾下初衷,我们要往FLASH保存数据? 显而易见,往FL ...

  2. SPI-读写FLASH

    SPI-读写FLASH SPI协议层 ​ SPI协议是由摩托罗拉公司提出的通讯协议(Serial Peripheral Interface),即串行外围设备接口,是一种高速全双工的通讯总线.它广泛地使 ...

  3. s3c4510 烧写flash

    原创:s3c4510 烧写flash(sst39vf3201) 补齐了所有文件 参考其他资料 作者:wangkj 栏目:ARM技术 原创:S3C4510 烧写FLASH(SST39VF3201) 补齐 ...

  4. mysql where后面if_mysql查询语句where后面加if判断

    mysql查询语句where后面加if判断 说明:WHERE  IF(条件,  true执行条件, false执行条件 ) SELECT * FROM book WHERE IF(price > ...

  5. js上拉加载ajax数据,原生ajax写的上拉加载实例

    上拉加载的思路 1 上拉加载是要把屏幕拉到最底部的时候触发ajax事件请求数据 2.所有要获取屏幕的高度 文档的高度 和滚动的高度 下面的代码是已经做好了兼容的可以直接拿来用 Javascript: ...

  6. c# MODBUS协议源码 上/下位机源码烧写Flash工具

    c# MODBUS协议源码 上/下位机源码烧写Flash工具 包含: 1.C#上位机源码 2.上位机源码包含MODBUS协议源码 3.下位机源码 下位机源码采用STM32F10x芯片 的uC/OS-I ...

  7. 写给准备參加秋招的学弟学妹们

    [-] 一前言 二面试简单介绍 三操作系统计算机网络数据库 四算法 和 数据结构 五C 六JAVA 七linux 八逻辑分析题 智力题 九行业了解 十设计模式 十一海量数据 十二写在最后 十三链接 一 ...

  8. oracle触发器判断空值,oracle触发器加条件判断、dblink

    --新增基站同步给电池组信息 create or replace trigger a_b_test after insert or update or delete on BJLT.BASESTATI ...

  9. 小壁虎EFM32如何写Flash实现存储

    概念 ROM和RAM指的都是半导体存储器,ROM是Read Only Memory的缩写,RAM是Random Access Memory的缩写.ROM在系统停止供电的时候仍然可以保持数据,而RAM通 ...

最新文章

  1. 机器视觉关键技术之图像增强技术
  2. dpkg ---- apt-get ------ aptitude 三种方式的区别 及命令格式
  3. 全网Star最多「近20k」的Spring Boot开源教程 2019 年要继续更新了
  4. Waymo离线点云序列3D物体检测网络 (3D Auto Labeling): Offboard 3D Object Detection from Point Cloud Sequences
  5. java程序员目标_Java程序员的目标,你都达到了多少条?
  6. 程序员怒了!你敢削减专利奖金,我敢拒绝提交代码!
  7. 字节流Stream(Output 、Input)、字符流(Reader、Writer)
  8. Hibernate之查询
  9. python装饰器详解 带参数-python中的装饰器详解
  10. java算法题解法_LeetCode算法题-Ugly Number(Java实现-四种解法)
  11. Windows文件服务器搭建
  12. 吴恩达深度学习教程及资料
  13. 【SDCC 2016】微影时代、普元、亚信、Fit2Cloud、VMware、京东商城、优维科技畅聊自动化运维与容器...
  14. Unity中的Character Controller 简介
  15. python获取发送到手机的短信,使用python将短信更新发送到手机
  16. 用java求一个数的绝对值
  17. java毕业设计——基于java+J2EE+Hibernate的校园二手交易网站设计与实现(毕业论文+程序源码)——二手交易网站
  18. 宝塔linux面板如何开启openssl,宝塔linux面板之升级OpenSSL教程
  19. 10.1 做一个全面发展的大学生——《逆袭大学》连载
  20. 【Paper Quickthrough】October Papers

热门文章

  1. ORACLE数据库 常用命令和Sql常用语句
  2. 二进制安装mysql 5.7、mariadb (附yum安装方式)
  3. HAProxy用法详解 全网最详细中文文档
  4. 让Visual Studio 也支持JS代码折叠 —— 续 [ Visual Studio | Js | ScriptOutline | SmallOutline ]...
  5. gpgga格式读取MATLAB,GPS编码格式及读取.doc
  6. 功率曲线k值_什么叫离心泵的流量——功率曲线?它们之间有什么关系?
  7. 前端之 JavaScript 基础
  8. 机器学习之 朴素贝叶斯、贝叶斯网络
  9. mysql datetime类型按天查询_mysql 时间相关sql , 按天、月、季度、年等条件进行查询...
  10. Golang语言写99乘法表-双重for循环