這是小獅子在後臺看到的一個比較有意思的留言。這位讀者由於買到了一個閒魚雜牌SATA SSD,掉盤後拆開發現裡面是四張SD組裝的。因此他問,兩者有什麼區別?為什麼SD卡可以用來仿冒固態硬盤呢?
一個由兩張大容量SD卡組成的假冒固態移動硬盤
都是基於NAND原理存儲
幾乎所有存儲在計算機RAM以外的非磁性芯片上的存儲器,都使用一種稱為NAND FLASH(非易失性存儲閃存)的技術。
FLASH(閃存)這種存儲方式,都是將信息存儲在由浮柵晶體管制成的存儲單元中。在NAND閃存中,幾個存儲器單元(通常是8個單元)串聯連接。這些單元讀取和寫入信息的速度,幾乎完全取決於它們的排列方式,接受和發送數據的控制器如何協調該過程。關於具體的NAND FLASH芯片如何通過施加電荷的方式進行寫入、移動、擦除的具體原理,可以查閱我們“鈦師父”公眾號硬件學堂欄目以前的文章。
此外,雖然有不同類型的NAND閃存,每種閃存都有其自己的缺點和優點,但你理論上可以將NAND晶體管從SSD移動到SD卡中。只要SD格式能夠與讀取它的設備通信,它就可以工作:NAND閃存的差異幾乎完全取決於它們如何分組到單元中。
然後這又回答大家更為熟悉的SLC、MLC、TLC了。
單層單元(SLC):每個單元存儲一個位(bit)。這是迄今為止最昂貴的單位方案。在普通消費級產品中,它僅用於SSD的緩存和一些高端SD卡。這樣每個塊可寫入10萬次,使其成為最耐用的產品。
多層單元(MLC):每個單元存儲兩個或更多位,但通常只存儲兩位。這種存儲分組方式不常見,但比SLC技術便宜得多。平均每個塊可以寫入4萬次。在消費級產品中幾乎也銷聲匿跡了,如今比較容易買到的僅有三星的970PRO。
三層單元(TLC):存儲三位的單元。實際上,這是目前SSD上最常見的單元類型。雖然塊的耐久性明顯低於上述其他單元(只有平均3000次寫入週期),但對於典型消費級使用而言已經足夠了——因為現在固態硬盤的主控芯片都覺有非常好的寫入平衡分配策略,可以保障每個塊不至於一直執行寫入而提前到壽命。
四層單元(QLC):存儲四位的單位。一些高容量固態硬盤和存儲卡選擇這種單元,因為它提供了更便宜的存儲空間,但1000次寫入週期的塊耐久性確實比較低。
SD卡可以做到和SSD一樣快,但沒必要
那麼,SD卡與固態硬盤為什麼差距這麼大呢?這是因為SD卡(包括類似的如CF等存儲卡)有如下的劣勢:
-
體積小而薄,無法放置如同SSD一樣的主控芯片。大部分的“存儲卡”確實也有“主控”,不過都是一個非常小的“米粒“芯片,主要是控制寫入讀取動作,而像SSD一樣的寫入均衡、模擬SLC緩存、發熱控制等策略,大部分消費級卡是沒有的。
-
沒有真正的硬件寫入緩存。
-
幾乎沒有專門的散熱性設計可言,一旦碰到大寫入負載發熱掉速非常正常。
當然,理論上,由於SD卡和SSD都是基於NAND FLASH原理,所以確實可以造一張SD卡,其讀寫速度與固態硬盤一樣快。
例如,對於尺寸較大的CF卡,就已經有了CF EXPRESS卡,通過植入主控,讀寫速度都達到了固態硬盤的千兆級別速度。而一些廠商正在推出一種名為SD Express的新技術,其中包括一個縮小版的NVMe SSD控制器,可以超越傳統SATA SSD的速度!
但是,無論是CF EXPRESS還是SD EXPRESS卡,又面臨一個尷尬的境地,就是終端設備(相機、攝像機、讀卡器)支持這種高速讀寫標準卡的反而非常少。
而且,目前存儲卡提供的空間還是太小,不能讓製造商創建大容量、快速的高速緩存。即使這是可能的,也必須應對這樣一個高速緩存產生的熱量,對於大容量存儲卡上NAND FLASH元件的晶體管密度來說,這在目前幾乎是無解的。
而對於存儲卡本來的用途來說,作為一個極高清晰度視頻和音頻記錄的記錄平臺,根據相機、攝像機等設備的特點,只需要儘可能多的順序讀寫性能,所以目前1000MB/s的讀寫性能已經可以滿足8k級別的素材拍攝了。
而如果性能真要和SSD對標,那麼非順序讀寫操作仍然會因為受限的緩存空間而速度緩慢,解決吧,又需要解決散熱和主控問題。拿到桌面系統使用,還需要用戶升級讀卡設備。用戶已經有了性能出色且使用方便的M.2接口的NVME接口的固態硬盤,為什麼非用SD卡呢?
當然,這一切的前提是建立在,SD卡只用於正常的順序讀寫的影像存儲為主的用途中,而不是用來仿冒固態硬盤。
回到假貨SSD:為何SD卡組裝貨性能略好於SD卡?
網上很多網友也反映,剛買回來的時候,SD卡組裝的“固態硬盤“往往性能湊合(以SATA接口算的話),只是讀寫負荷大了以後才現出原形。這是為什麼呢?難道是假貨真的裝上了固態硬盤的主控芯片嗎?
這個倒不是,假貨SD卡固態硬盤確實是加了控制器,不過一般來說,都是磁盤陣列控制器,用來把不同卡槽中的SD卡組成一個RAID磁盤陣列,實現讀寫分配和容量組合。
其中大部分的控制器都是默認將2/4張SD卡組成一個RAID0,這樣由於採用了分段(卡)寫入,相當於變相“並行“寫入,所以在讀寫性能上反而比單張存儲卡的確有提升。
但是,由於RAID0沒有數據冗餘設計,一旦寫入負荷超過了SD卡能承受的極限,那麼發生寫入錯誤後,基本上數據是沒辦法恢復的。