写flash,要不要加个判断?

电子说

1.3w人已加入

描述

“写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擦除次数达到上限。






审核编辑:刘清

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分