當前位置:
首頁 > 科技 > microSD卡會寫壞嗎?它裡面有固件嗎?它是如何構成的?

microSD卡會寫壞嗎?它裡面有固件嗎?它是如何構成的?

microSD卡會寫壞嗎?它裡面有固件嗎?它是如何構成的?

最近我遇到點煩心事,手機相冊忽然不能用了。開始時懷疑是小米手機的軟體問題,但是發現存在microSD卡(後文用uSD卡代替)上的電影也出現問題後,我終於找到問題的根源:uSD卡。這讓我有些吃驚,畢竟我買的Samsung EVO Plus 128GB uSD卡價格並不便宜,出於我對uSD卡構成和渠道的深刻了解,我之前一直向人推薦購買Samsung或者SanDisk的卡片。而我平時也就是看看電影,偶爾照照像,並不是自拍達人或者重度「視頻錄製愛好者」,按理來說並不需要Samsung Pro系列endurance很高的uSD。也許這次是我的運氣不好,碰到個質量有問題的卡,那怎麼辦呢?儘管Samsung EVO號稱十年的保固期,但我的私人數據該如何處理呢?

我決定Debug一下,將uSD插到我的樹莓派上,開始了一個下午的「奇幻之旅」。一番折騰後,發現幾乎所有的塊讀取指令都可以成功完成,但寫操作幾乎都是失敗的。這表明uSD卡的FTL(Flash Translation Layer)層出現了問題,壞塊可能已經導致新建映射關係完全失敗了。更多關於FTL的知識可以看我的知乎專欄文章。

好在映射表並沒有損壞,所以讀操作都可以完成,已有數據還是安全的。在備份了所有的照片和電影之後,我長舒了一口氣,看著這個uSD我又犯了難。要質保的話,我需要退還舊uSD卡,而因為不能寫,導致不能刪除所有數據,鬼知道Samsung的售後會如何對待我自拍的」美圖「和電影!uSD有價而數據無價,為了安全起見還是用我的終極辦法吧

microSD卡會寫壞嗎?它裡面有固件嗎?它是如何構成的?

羊角錘,數據安全專家的必備工具!

這件事讓我想起很多朋友在讀了我的NAND Flash系列和SSD硬碟系列文章後,問我uSD卡裡面有沒有FTL層。網上也有很多誤解認為uSD卡是沒有FTL層的。為了大家對uSD卡有個清楚的認識,今天我們就來了解一下uSD的構成以及回應一下誤解。

什麼是uSD卡?

關於uSD的由來我就不過多介紹了,網上資料很多。相信大家都希望自己的手機可以支持uSD卡,畢竟花500多塊錢,就可以購買到256G的額外容量,完全可以傲視iPhone的旗艦機的容量。雖說uSD的速度不及內置的NFS Flash,但作為存儲照片、影像和資料來說是綽綽有餘了。uSD很小:

microSD卡會寫壞嗎?它裡面有固件嗎?它是如何構成的?

microSD卡會寫壞嗎?它裡面有固件嗎?它是如何構成的?

它如此之小,以至於很多人認為它其中就是放的NAND Flash而別無它物,但事實是這樣嗎?


拆解uSD卡

uSD卡結構十分緊湊,拆開它並不像拆開SD那麼輕鬆,而且很可能會損壞它。幸虧有專業數據恢復公司這麼做過(參考資料1),我們來一起一睹廬山真面目:

microSD卡會寫壞嗎?它裡面有固件嗎?它是如何構成的?

原始uSD

microSD卡會寫壞嗎?它裡面有固件嗎?它是如何構成的?

上銼刀

microSD卡會寫壞嗎?它裡面有固件嗎?它是如何構成的?

初露端倪

microSD卡會寫壞嗎?它裡面有固件嗎?它是如何構成的?

廬山真面目

這裡用銼刀,也有些人用酸液腐蝕掉外面的套,會更加清楚些。看到這麼複雜的結構,你這時也許會十分驚訝,但如果我們看看它真正的組成框圖,你也許會更吃驚!

uSD的構成

將uSD描述為一個小SSD一點也不誇張,一個簡化的框圖如下:

microSD卡會寫壞嗎?它裡面有固件嗎?它是如何構成的?

它包括自己的控制器,內存(有可能是控制器自帶),和NAND Flash。猜猜這個控制器是什麼?

microSD卡會寫壞嗎?它裡面有固件嗎?它是如何構成的?

是ARM!尤其是在大多數Class 10的uSD上,ARM和DMA協調工作,才能保證傳輸速度。具體舉個例子,Samsung的uSD卡大多採用ARM7TDMI(詳情見參考資料2),它是基於ARMv4T架構的,T代表Thumb指令集,D是說支持JTAG調試(Debugging),M意指快速乘法器,I則對應一個嵌入式ICEBreaker模塊:

microSD卡會寫壞嗎?它裡面有固件嗎?它是如何構成的?

小小的uSD卡也是有程序的,也就是有固件的,Samsung的固件就有128KB大小。

這個ARM7TDMI據我所知,運行在100MHz的頻率上。它並不十分的昂貴,根據不同的出貨量,它的Cost也就在$0.10到$0.30之間。


結論

很多人都沒想到,uSD卡雖小,五臟俱全。ARM控制器加上固件,它包括了馮諾依曼所有的元素,它實現了FTL層,從而實現了負載均衡。儘管SD卡的標準並沒有明確要求實現負載均衡,但沒有負載均衡的FTL層,某些特殊設計的寫操作,在幾分鐘之內就可以寫壞uSD卡,這是不可以接受的。所以,幾乎所有uSD卡都實現了FTL層。

有趣的是現在很多SD卡,為了方便起見,直接內嵌了個uSD卡,節省了成本:

microSD卡會寫壞嗎?它裡面有固件嗎?它是如何構成的?

還有很多古怪的玩法,譬如SSD實際上是一堆uSD卡拼成,十分有趣。

另外評論區有朋友問TF卡和uSD的區別的問題。現在可以說他們是一回事,叫做不同的名字是有歷史原因的,簡單來說TF(TransFlash)發明比較早,後來被SD卡組織吸收合併,就幾乎變成了一回事,有些細微的區別,詳見參考資料3,但一般用戶無感。

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!

TAG: |