奸商在作假?為何軟體檢測不到硬碟緩存容量
在挑選硬碟的時候,除了介面之外很多人關心的就是緩存容量。有朋友應該已經發現,怎麼現在的硬碟都不顯示緩存容量了?!這裡面會有奸商的陰謀詭計嗎?
最近幾年購買的硬碟,不管是機械硬碟還是固態硬碟,在新版檢測軟體中都是查不到緩存容量的,下圖為CrystalDiskInfo檢測2TB機械硬碟,HDTune中乾脆將它的緩存標註為n/a(不存在)。這是ATA標準的一個局限,當時設計時只預留到32MB的代碼,而現在硬碟的容量全都超過了32MB,無法正確識別。
大家一定會好奇,硬碟緩存到底是做什麼用的呢?讀完本文你將會有一個全新的認識!
機械硬碟的緩存:運氣爆發可以提升讀取
通常來說,機械硬碟的讀取和寫入速度基本一樣。但如果在ATTO測試中使用較小的測試區塊(64K),你會發現讀取的速度明顯比寫入更快,甚至會發生讀取400MB/s以上現象:正常是不可能有這麼快的。
在機械硬碟中,緩存主要發揮了加速讀取的作用。如果一個數據剛剛被讀取過,將臨近它位置的數據保留在DRAM緩存中,就有機會被下一次讀取命中——直接從DRAM緩存讀出的速度遠比從機械碟片讀取快的多。
緩存命中意味著性能大幅提升,這就是機械硬碟緩存的主要作用。理論上大緩存的確有助於提升機械硬碟的讀取性能,但是提升幅度是非常有限的:它對於最重要的隨機讀取速度沒有幫助。
大緩存不一定意味著高性能,當前很多採用128M以上大緩存設計的機械硬碟採用了SMR疊瓦磁記錄技術,增大緩存容量是為了降低SMR帶來的性能衰減幅度。
固態硬碟的緩存:照顧寫入只是兼職
而固態硬碟就有很大的不同了,首先快閃記憶體的讀取比寫入更快,這是MLC、TLC快閃記憶體天生決定的,壓根不需要專門為讀取做緩存。在ATTO測試結果中代表讀取速度的灰色條總會比代表寫入的紅色條更長一些:
不過如果將測試區塊調小到64KB,你可能會發現不一樣的結果:紅條長度首次超過了灰條,小於4KB的區塊寫入速度比讀取速度還要快!
出現這種現象也很簡單:固態硬碟對小於4KB的區塊進行了緩存,將他們湊滿4KB或16KB(1個Page頁的大小)之後再合併寫入,造成寫入比讀取更快的結果。快閃記憶體的最小寫入單位是Page,固態硬碟通常使用4K作為頁的邏輯大小,而快閃記憶體頁的實際大小往往是16KB,只有512位元組或1KB、2KB還不夠一次寫入的最小單位,所以將他們緩存起來合併寫入是最明智的。
做小於4KB數據的緩存合併只需要很小的空間,固態硬碟對於DRAM緩存的需求並不是緩存數據,而是存儲對固態硬碟至關重要的FTL快閃記憶體映射表:管理邏輯地址與快閃記憶體物理地址的映射關係。
隨著技術的發展,DRAM緩存早已不是固態硬碟的必備組件。透過最新NVMe協議,固態硬碟可以調用主機內存的一小部分專用空間存儲FTL映射表,實現精簡增效。
在東芝推出的單晶元融合NVMe固態硬碟中,主控與快閃記憶體被封裝為一體,而DRAM緩存則被NVMe協議的HMB功能所取代,緩存容量最終成為了歷史。


※美光被禁售 內存固態硬碟會漲價嗎?
※用對這些設置 固態硬碟直降20度還不損失性能
TAG:存儲極客 |