“寫flash,要不要加個(gè)判斷?”這是我一個(gè)朋友的提問(wèn)。
剛開始,我并沒(méi)有認(rèn)真去思考這個(gè)問(wèn)題。但之后我仔細(xì)查了下資料,發(fā)現(xiàn)里面的內(nèi)容還挺多。
先看看EMMC的結(jié)構(gòu)
EMMC 是在nand flash的基礎(chǔ)上增加了一個(gè)控制器,cpu和emmc交流實(shí)際上是和它的控制器進(jìn)行交流。相當(dāng)于emmc多了一個(gè)管家。
NAND FLASH的特點(diǎn):
1) 初始存儲(chǔ)為1
2)寫0只要操作一個(gè)page
3)寫1需要操作整個(gè)block,1個(gè)block包含多個(gè)page
--- 假裝解釋下為什么寫FLASH前,要先判斷里面的內(nèi)容。
從讀寫速度上解釋
?
上面是我從一個(gè)EMMC的規(guī)格書上截圖出來(lái)的資料,EMMC的讀寫速度是不同的,不同的讀寫速度肯定是存在不同的讀寫時(shí)序,既然讀寫時(shí)序不同,那當(dāng)然應(yīng)該讓代碼越快越好。
所以,從這點(diǎn)上看,先讀判斷數(shù)值是應(yīng)該的。
EMMC可以無(wú)限次讀寫嗎?
剛開始在微信群里面討論的時(shí)候,得到的信息是,EMMC可以無(wú)限次讀,但是不能無(wú)限次寫! 因?yàn)閷憰?huì)意味著需要對(duì)存儲(chǔ)區(qū)進(jìn)行擦擦操作,這個(gè)我是可以理解的。
但是實(shí)際上是怎樣的,我還是一知半解……
然后,得到一個(gè)小姐姐的指導(dǎo)之后,我大概的理解是這樣的:
EMMC完全寫滿后擦除算一次,普通的EMMC可以擦除3000次,所以容量*3000 就是EMMC可以寫入的內(nèi)容大小?!?br />
計(jì)算壽命這點(diǎn)我還是持懷疑態(tài)度」
?
后面通過(guò)查資料了解到,不同的flash顆粒,它的擦除次數(shù)和速度是不同的,這就是不能無(wú)限寫的關(guān)鍵原因。
?
我們平時(shí)使用的EMMC是TLC種類,這樣的EMMC一個(gè)cell有3個(gè)bit位,可以表示 2^3 = 8中電平狀態(tài)。
狀態(tài)越少,需要表示的電平就約不精細(xì),計(jì)算也就會(huì)越快,當(dāng)然了,價(jià)格越貴,體積會(huì)越大,這樣反而不利于消費(fèi)電子。
如上圖所示,SLC的速度很快,只需要兩個(gè)電壓級(jí)別。TLC的速度會(huì)比較慢,需要8個(gè)電壓級(jí)別來(lái)表示。
為什么EMMC的規(guī)格書上面都不寫上最大擦除或者寫入的次數(shù)?
「也就是emmc的壽命」
到目前我也沒(méi)有得到特別準(zhǔn)確的答案,有了解的同學(xué)可以在評(píng)論區(qū)回答。
不過(guò)我猜測(cè)是,因?yàn)镋MMC有控制器,如果你不斷的擦除一個(gè)位置,即使的超過(guò)最大次數(shù),但是因?yàn)镋MMC的控制器存在,它可以改變實(shí)際存儲(chǔ)的EMMC地址,讓你做不到在同一個(gè)區(qū)域不斷的擦除。再加上容量的不確定,就不好確定EMMC的壽命了。
特斯拉召回是怎么回事?
?
我猜測(cè),可能這個(gè)系統(tǒng)上的EMMC配置很小,可能就真的存在某個(gè)程序在不斷的寫入,導(dǎo)致EMMC擦除次數(shù)達(dá)到上限。
審核編輯:劉清
-
控制器
+關(guān)注
關(guān)注
112文章
16365瀏覽量
178075 -
Nand flash
+關(guān)注
關(guān)注
6文章
241瀏覽量
39826 -
emmc
+關(guān)注
關(guān)注
7文章
216瀏覽量
52746
原文標(biāo)題:寫flash,要不要加個(gè)判斷?
文章出處:【微信號(hào):玩點(diǎn)嵌入式,微信公眾號(hào):玩點(diǎn)嵌入式】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論