很多人會問,為什么我買的SD卡4GB的容量確是3.7GB,沒有4GB,難道這是升級卡,或者是不足量的SD卡,其實并不是,閃存卡的實際容量往往要比其標(biāo)稱容量小,一個全新的閃盤產(chǎn)品標(biāo)稱容量為64MB,而在操作系統(tǒng)中格式化后其實際容量可能只有61.8MB。那么這里少的2.2MB的容量到哪兒去了?
這2.2MB的空間并非憑空蒸發(fā)了,而主要是操作系統(tǒng)識別與硬件設(shè)備生產(chǎn)廠商兩者容量計算公式上的不同所致。生產(chǎn)廠商為了計算方便,往往設(shè)定1KB=1000Bytes、1MB=1000KB、1G
B=1000MB。而操作系統(tǒng)的換算則為1KB=1024Bytes、1MB=1024KB、1GB=1024MB。這就產(chǎn)生了存儲設(shè)備標(biāo)配容量和實際使用容量出現(xiàn)差異的情況。由此推算可知128MB閃盤的實際容量理論上應(yīng)為125MB,64MB閃盤的容量應(yīng)該為62.5MB,以此類推。此外,由于閃存芯片本身在制造時的問題,閃存介質(zhì)允許有壞塊(Bad Block)的存在,這些壞塊不能被使用,也不算做有效容量。與硬盤一樣,閃存盤也是采用FAT文件系統(tǒng),而FAT文件系統(tǒng)包括MBR主引導(dǎo)分區(qū)、FAT文件分配表和ROOT目錄區(qū)等,這些區(qū)域也要占用閃存空間,一般需要占用幾百KB。
閃盤作為一項比較常用的移動存儲解決方案,個別廠商在其產(chǎn)品中加入了諸如保密、QQ聊天記錄備份等功能,這些功能實際上需要占用閃盤中的部分物理塊來存放特殊配置信息或數(shù)據(jù)。另外,有些朋友發(fā)現(xiàn)自己的閃盤在使用一段時間后,再次格式化,其容量竟然會自動變小了。這又是什么原因呢?
數(shù)據(jù)寫入的時候,閃存芯片內(nèi)部需要有至少一個物理塊(Block)作為交換塊使用。這是因為閃存的寫操作很特殊,必須是先擦除,然后才能寫入數(shù)據(jù),而擦除的最小單位是一個物理塊,但寫數(shù)據(jù)的最小單位卻是一個頁(Page)。在閃存的存儲單位中,一個物理塊包含若干個物理頁。因此寫數(shù)據(jù)時,需要有一個空的、可以使用的交換塊來存放不需要被擦除的數(shù)據(jù)。由于閃存的充放電特性,使得它的讀寫次數(shù)有物理上的限制。
通常廠商會在閃盤內(nèi)部做一個讀寫次數(shù)的計數(shù),當(dāng)閃存芯片的某個物理存儲區(qū)塊達到讀寫指定的最高次數(shù)時,那么該塊區(qū)將被設(shè)定為不再使用的區(qū)域,所以閃盤有可能在極度頻繁地使用下,容量越來越小。不過,目前多數(shù)閃盤產(chǎn)品已經(jīng)可以保證擦寫百萬次以上的使用壽命。目前市場上的閃存產(chǎn)品包括兩類:1. 未預(yù)留緩沖空間的;2. 預(yù)留有緩沖空間的。
對于第一種情況,因為沒有預(yù)留空間,閃存在讀寫時交換塊的損耗相當(dāng)大,于是就會出現(xiàn)容量越來越小的情況。對于第二種情況,廠商在設(shè)計時已經(jīng)預(yù)留部分物理塊,比如選擇1024個物理塊中的1000個作為數(shù)據(jù)存儲使用,其余24個物理塊(包括壞塊)用作緩沖交換塊部分。每次上電后,存儲單元的邏輯地址和物理地址需要重新對照,交換塊并不是固定的某一區(qū)塊,因而每一個物理塊進行讀寫操作的幾率幾乎相同,不會出現(xiàn)哪一個物理塊過早被損壞的現(xiàn)象。對于預(yù)留緩沖空間的閃盤來說,基本不會出現(xiàn)容量越來越小的情況。