最近工作涉及到anroid向6410移植的問題,由於只有乙個開發板讓別人先除錯,我自己就先惡補下flash驅動這方面的基礎。
首先是訪問次數。mlc架構理論上只能承受約1萬次的資料寫入,而slc架構可承受約10萬次,是mlc的10倍。這個1萬次指的是資料寫入次數,而非資料寫入加讀取的總次數。資料讀取次數的多寡對快閃儲存器壽命有一定影響,但絕非像寫入那樣嚴重。
其次是讀取和寫入速度。這裡仍存在認識上的誤區,所有快閃儲存器晶元讀取、寫入或擦除資料都是在快閃儲存器控制晶元下完成的,快閃儲存器控制晶元的速度決定了快閃儲存器裡資料的讀取、擦除或是重新寫入的速度。slc技術被開發的年頭遠早於mlc技術,與之相匹配的控制晶元技術上已經非常成熟。
第三是功耗。slc架構由於每cell僅存放1bit資料,故只有高和低2種電平狀態,使用1.8v的電壓就可以驅動。而mlc架構每cell需要存放多個bit,即電平至少要被分為4檔(存放2bit),所以需要有3.3v及以上的電壓才能驅動。
第四是出錯率。在一次讀寫中slc只有0或1兩種狀態,這種技術能提供快速的程式程式設計與讀取,簡單點說每cell就像我們日常生活中使用的開關一樣,只有開和關兩種狀態,非常穩定,就算其中乙個cell損壞,對整體的效能也不會有影響。在一次讀寫中mlc有四種狀態(以每cell訪問2bit為例),這就意味著mlc儲存時要更精確地控制每個儲存單元的充電電壓,讀寫時就需要更長的充電時間來保證資料的可靠性。它已經不再是簡單的開關電路,而是要控制四種不同的狀態,這在產品的出錯率方面和穩定性方面有較大要求,而且一旦出現錯誤,就會導致2倍及以上的資料損壞,所以mlc對製造工藝和控制晶元有著更高的要求。
第五是製造成本。mlc技術原來每cell僅存放1bit資料,而現在每cell能存放2bit甚至更多資料,這些都是在儲存體體積不增大的前提下實現的,所以相同容量大小的mlc nand flash製造成本要遠低於slc nand flash。
具體一顆flash是mlc還是slc,可以通過flash的規格書可以看出來。軟體中可以直接從讀出的flash id資訊中判斷出來的,具體在三星的軟體中,採用:
if (((nand->cellinfo >> 2) & 0x3) == 0) { //恰好io3 io2是00
nand_type = s3c_nand_type_slc;
else
nand_type = s3c_nand_type_mlc;
除非乙個cell採用2 level是slc的,其它全都是mlc的。
SLC和MLC的區別
slc全稱是single level cell,即單層單元快閃儲存器,而mlc全稱則是multi level cell,即為多層單元快閃儲存器。它們之間的區別,在於slc每乙個單元,只能儲存一位資料,mlc每乙個單元可以儲存兩位資料,mcl的資料密度要比slc大一倍。1.mlc 可是slc的儲存空間...
深入解析SSD中MLC與SLC的效能差異
from solid state disk 或solid state drive 也稱作電子硬碟或者固態電子盤,是由控制單元和固態儲存單元 dram 或flash 晶元 組成的硬碟。固態硬碟的介面規範和定義 功能及使用方法上與普通硬碟的相同,在產品外形和尺寸上也與普通硬碟一致。由於固態硬碟沒有普通硬...
深入解析SSD中MLC與SLC的效能差異
from 本文將詳細解析 ssd 固態硬碟的工作原理,並解析 slc 與 mlc 兩種不同的固態硬碟在效能和安全性上的差異。ssd 工作原理 下面是乙個關於 nand 閃盤的原理塔圖。從下圖我們可以看到,每乙個 單元 就是由乙個這樣的電晶體組成的。在單級單元 slc 快閃儲存器裝置中,乙個電晶體可容...