看板 DSLR 關於我們 聯絡資訊
其實在於操作格式化的過程,對於記憶卡壽命的估計其實是有理可循, 先從硬碟及Nand Flash(快閃記憶體,記憶卡內的儲存元件)說起 我們知道硬碟儲存資料是靠磁頭讀寫臂在磁碟表面上飛快的穿梭並留下磁痕來紀錄資料 這就好比我們在吃喜酒時,中間旋轉圓桌就像磁盤,我們的筷子就像磁頭,想吃哪道菜就 轉阿轉阿轉到我們面前就夾。 而磁痕在紀錄上的特色,就是可以以磁區(Sector,約512位元組)為單位進行存取,感覺 上硬碟就像是很大的黑板,用粉筆寫下新的資料,如果在同樣位置要加上新的資料,只要 拿板擦把原來資料擦除,就可以再把新資料寫在上面。 快閃記憶體則完全不相同,快閃記憶體是透過將電荷鎖在電晶體的絕緣夾層來記憶資料。 一個快閃記憶體單元是由許多的塊(Block)構成,而塊又分成許多的頁(Page),頁才分成 許多的磁區。而快閃記憶體有一個非常GY的限制,就是在寫入時必須以"頁"為單位,而 刪除時又必須以整個"塊"為單位。 所以快閃記憶體就好比排滿一本本裝訂好無法拆頁的書的書架,而你想寫字上去但手上拿 的不是筆,而是活字版...必須將所有要寫的資料排成一整頁,再把資料一次"蓋"在其中 一頁上。而要刪除怎麼辦?抱歉這是用墨水印上去的,除非把整本訂好的書丟了,再拿一本 來印。可是你可能會想說,阿奇怪我在拍照的時候想刪就刪,想拍就拍,哪有這麼多毛? 沒錯,為了讓電腦及相機在操作Flash時能像硬碟一樣直覺,記憶卡的另外一個元件~記憶 卡控制器,會提供FTL(快閃記憶體轉換層)的功能。透過大量的演算法,讓Flash假裝自己 是顆硬碟一樣以磁區為基本單元來做操作。用上面的比喻就像另外做了一些索引的書、放 了一些書籤來查找資料所在的書目及頁面,所以我要刪除資料時,只要去修改索引指向的 書目,等到那本書上的資料全都不要時再將書丟棄即可。但是假裝的終究還是沒有辦法突 破,有一些規則還是要注意:1.不管寫入多少資料,若長度小於一個頁,仍需要佔一個頁 的空間。2.在連續的寫入上透過FTL演算法是可以忽略製作索引的。 快閃記憶體最大的優點就是在查找資料時,能夠非常快速的做反應。相對於硬碟物理的移 動懸臂,是完全不同等級的(在書架上抽一本書下來看,並翻到指定的頁面vs在攤開所有 資料的廣大黑板花一段時間跑到想找的資料前)。所以最近越來越多人喜歡用SSD來當系統 碟或在上面灌數位暗房軟體來修圖就是這個原因。但是快閃記憶體不是沒有缺點,最為人 所詬病的,就是有壽命限制,一般市面上流行、成熟的顆粒每個塊大約有5000~8000次的 寫入/刪除壽命,這是不是在說如果我格式化5000次後卡就會爆掉?不是,我們剛提到的 記憶卡控制器會將所有的塊寫入做一個最佳化,讓所有塊平均寫入以達到最大的使用壽命 。如果真的有塊壞掉了,記憶卡控制器也有辦法將其上面的資料重建至其他塊,之後會避 開操作那個塊直到系統最低需要的總塊數為止才會掛。所以網路上有人一知半解的說用久 了會變唯讀、用久了容量會變小都是不可信之謠言。一張16GB的記憶卡透過記憶卡控制器 的規劃,若平均壽命8000次則至少有128TB的寫入總資料量的壽命。所以不用擔心,在用壞 之前,你就會想換更大、更高容量的記憶卡了。 再來聊聊檔案系統,在剛剛介紹的實體記憶空間上系統會規劃磁區以方便儲存管理檔案, 一般記憶卡最普遍的檔案系統是FAT32及EXFAT(在格式化的時候通常會看到這些選項),這 些檔案系統會將數個磁區綁成一個簇(Cluster,預設32個磁區),在檔案系統的前方會有 一個檔案表,紀錄所有的簇分配的情況,舉例來說;記憶卡中目前有兩張照片,相片X放 在簇A、簇B、簇C...;相片Y放在簇D、簇E、簇F...。透過這個檔案表,電腦就可以將磁 區與檔案做一個關連。FAT32對於每個簇,需要花四個BYTE(32bit)來做紀錄。 如果我按下刪除相片X,那會發生什麼事呢?首先A7ii會先找到相片X的起始簇A,簇A會紀 錄檔名及基本檔案資訊,對記憶卡下指令蓋上一個刪除標誌(只佔一個位元組),這時就完 成刪除了,A7ii只操作了一個位元組檔案就不見了。你或許會想說,不對呀檔案還是在那 裡阿,沒錯,下次A7ii或電腦讀到刪除標誌時就會忽略這個檔案了。這也就是為什麼許多 相片救援軟體可以把被刪除的照片救回來的原因。阿你又會想,那這樣刪除只動一個位元 ,那有什麼傷卡的?不要忘了我們在FTL上所有的操作都是以頁為單位... 最後回到主題,一張存滿照片的記憶卡(以16G記憶卡A7ii一張RAW檔25MB,約600張相片) 一張一張刪除,會更動600次檔案表,寫入600次頁資料(實際上還有FTL工作時要寫入的索 引資料,總共約是1200次,我們先暫且不計)假設記憶體一個塊有256個頁,這樣就必須抹 除三個塊了。而格式化只需初始化檔案表,約 16G(總容量,單位Byte) / 16K(每個簇有32 個磁區,一個磁區有512Byte,所以一個簇是16KB) * 4(每個簇花4Byte紀錄) = 4MB的檔案 表,由於是連續的,主流的記憶體頁容量大概是32KB,所以會寫入128個頁資料(實際上檔 案表有備份,還要加上開機磁區跟磁碟標籤的簇及FTL索引資料,但同樣由於是連續的, 最多只會再多129個),所以只會抹除一個塊,這樣一張一張的刪除和格式化比起來,優勝 劣敗應該見真章了。 雖然說差兩三個塊好像差不多,但是好的使用習慣就是這樣培養起來的。遵循下列原則, 一張記憶卡只有一唯一用途(相機用的歸相機,手機歸手機)、拍完照插電腦把檔案複製出 來後,再插回相機格式化。有好習慣照片自然不容易消失。 (說完這篇這麼長,感覺這樣說起來記憶卡不容易嗝屁阿,為什麼還是容易掛(我沒有刻意 指某牌),這要牽扯到記憶體顆粒的體質及廠商的良心(和自己的人品),待以後有機會再分 享吧) -- 介紹我眼中的世界 https://www.flickr.com/photos/hayden_liu/ -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 223.136.142.153 ※ 文章網址: https://www.ptt.cc/bbs/DSLR/M.1457819537.A.DF2.html
rainywind23: 謝謝學長的教誨! 03/13 07:40
學弟還在學校?
linpo1206: 好文推推 03/13 07:45
chrislin0919: 推好文 03/13 08:21
downredrain: 太專業了~已跪~~~ 03/13 08:40
jack28001400: 好文必須推 03/13 08:43
Laviathan: 這要m起來 03/13 09:25
rextem: 字好多..所以結論是 格式化比檔案逐一刪除好嗎? 03/13 09:29
差異不大 但是要做結論的話 格式化是較好的方法
littlewhite: 推好文 03/13 09:36
Rogozov: 推,後來都會乖乖格式化 03/13 09:55
Aza: 好文推!!! 03/13 10:22
NewTypeNeo: 專業! 03/13 10:28
rjhowmanyo: 你格式化系? 03/13 10:59
不才小弟從事記憶卡相關產業工作
SuperPenguin: 專業推 03/13 11:30
godchildtw: 重點在最後一段 03/13 11:43
在這產業待了一陣子後會發現做記憶卡是相當多眉角可以搞的阿
friskies: u質文章 03/13 12:07
angel5566: 長知識了,推! 03/13 12:24
qq750717: 推專業 03/13 12:30
joe3477: flash 推 03/13 13:02
danisaku: 真是專業 03/13 13:19
Dryduckboy: 優良好文 03/13 13:51
james1986: 用久了 真的會唯讀啊.. 當年拿一張sd來當vista的readyb 03/13 14:06
james1986: 用久了 真的會唯讀啊.. 當年拿一張sd來當vista的readyb 03/13 14:06
james1986: oost 就是這樣死的.. 03/13 14:06
記憶卡在塊耗盡之後的行為很難預測 各家廠商的控制器會有不同的處理方案 我說不會唯讀可能有點果斷,想表達的是這跟各區塊的壽命並沒有直接關係,而是控制器 的處理方法。
flash0576: 你記憶卡系? 03/13 14:08
chadhsieh: 推 03/13 15:43
wu1990: 請問如果把記憶卡容量塞滿再一起格式化會比較好嗎?謝謝QA 03/13 16:49
wu1990: Q 03/13 16:49
相較於零散的刪除 裝滿後再格式化會較好 對於快閃記憶體的操作來說 有沒有塞滿其實差異不大 (不管刪除檔案 增加檔案 在記憶卡底層也都只是改變檔案表的一堆寫入的操作) 影響的效能其實有限
s155083: 黑燈神 03/13 17:57
billlushana1: 推A7黑燈哥! 03/13 18:08
canandmap: 為什麼有種走錯板的錯覺...? 03/13 18:48
記憶卡的保養就像數位時代之前的底片保養一樣 也是數位攝影器材重要的一個儲存媒介 我的分析應該不會太艱澀~
kryolanfans: 專業推XD 03/13 18:57
jjchen425: 推專業 03/13 19:28
ds1441: 我比較想問終身保固的記憶卡用到卡外殼硬化壞了還保固嗎 03/13 21:38
就我所知 因為記憶卡成本很低 市面上標榜終保的品牌 基本上只要確定是公司貨 且沒有人為的外傷 都是可以做更換的 (就算沒有一樣的卡,也會換同等高一階規格的卡給你)
scottlsw: 03/13 21:48
kiffy: 推一個! 03/13 22:15
festa: 好文推!! 03/14 00:27
ligacul: 格式化系好哭~~這篇太專業了 03/14 02:11
vutsix: 塞滿卡對wearleveling跟gc不會造成影響嗎? 03/14 10:54
格式化時,電腦對於記憶卡的操作也是一些寫入資料指令(將空欄位寫入檔案表) 記憶卡是分不出來現在是在拍照還是格式化 所以已經被分配的塊是沒有辦法用格式化回收的 由於快閃記憶體會有多餘備用的塊(這不包含在我們看到的容量中) 所以wearleveling跟gc的部分,控制器就會使用這些區塊來輪替及"熱"區塊整理"髒"區塊
mkym: 專業給推! 03/14 11:35
※ 編輯: hayden0828 (223.136.142.153), 03/14/2016 20:53:25
dragon629: 專業推~ 03/14 21:39
s8704112003: 超專業解說! 大推 03/18 23:31