當前位置:
首頁 > 科技 > 有了強力糾錯後垃圾快閃記憶體也能不翻車?固態硬碟糾錯技術漫談

有了強力糾錯後垃圾快閃記憶體也能不翻車?固態硬碟糾錯技術漫談

除了快閃記憶體顆粒之外,主控晶元在固態硬碟當中的地位也非常重要。主控不僅僅控制快閃記憶體的讀寫,更需要提供ECC糾錯服務。

固態硬碟離不開糾錯演算法,是因為他使用的NAND快閃記憶體從一開始就面臨著更容易出現的數據翻轉等錯誤,必須要有糾錯機制對其進行探測和糾正。這個過程是固態硬碟的主控內自動進行的,通常用戶不會感知到他的存在。下圖東芝TR200固態硬碟當中的TC58NC1010GSB主控,支持LDPC糾錯。

何為糾錯?

或許很多朋友還不清楚ECC糾錯是怎麼一回事,以及為什麼糾錯變得如此重要。下圖為ECC信息存儲示意圖:每個快閃記憶體扇區中都為存儲額外糾錯信息而預留了部分Spare空間。

NAND快閃記憶體在1987年由東芝發明,它比稍早出現的NOR快閃記憶體具備更大的存儲空間和更低的單位容量成本,不過同時也有更高的出錯率。這使得它必須搭配一定的糾錯引擎,來去除隨機出現的「比特翻轉」現象,簡單來說就是保障數據不出錯。

TLC化腐朽為神奇:從500次到3000次

TLC在被用於固態硬碟之前,並不被人們所看好:寫入壽命僅有幾百次,隨著製程微縮還可能進一步降低。

不過好在快閃記憶體的發展伴隨著糾錯技術的進步。雖然糾錯演算法變得日益複雜,但糾錯效果也在以日新月異的速度成長,高品質的原廠TLC快閃記憶體甚至能做到和過去的MLC一樣耐用。

糾錯的發展以及LDPC的優勢:

固態硬碟使用的糾錯碼主要有BCH和LDPC兩種,後者出現雖然較晚但卻已成為當代3D快閃記憶體的標配搭檔。不過LDPC雖強,效果還是跟固件的編製水平有關,尤其是LDPC中的軟解碼糾錯。

BCH與LDPC硬解碼糾錯用預定的閾值電壓去探測快閃記憶體單元中的數據內容,得到的結果非1即0。在初次糾錯失敗的情況下,BCH可以通過多次Read Retry重讀嘗試恢復正確的信息;LDPC硬解碼可以藉助LLR對數似然比來推測數據更大可能是1還是0。

BCH祭出Read Retry之後如果依然讀取失敗就意味著發生不可糾正的讀取錯誤:用戶數據丟失。而LDPC此時還可以再祭出大招:軟解碼糾錯。軟解碼糾錯需要糾錯引擎對快閃記憶體特性非常了解(不同快閃記憶體型號、不同擦寫次數、不同讀取干擾程度,甚至是不同溫度都可能有各自的優化解碼方案),採用多種讀取電壓進行嘗試,綜合LLR信息計算出可能性結果。

恰恰是LDPC軟解碼這種根據經驗進行「猜測」的能力,讓它具備了比BCH更強的糾錯效果。當然經驗不是憑空而來,而是需要對快閃記憶體脾性具有足夠多的了解,在這方面快閃記憶體原廠具備很強的話語權。這也是小編推薦大家選擇東芝等原廠固態硬碟的一個原因:不光快閃記憶體品質更好,糾錯處理也給力,穩定性和壽命自然好。

除了糾錯能力高下之外,糾錯延遲開銷也是一個重要指標。畢竟反覆讀取和嘗試解碼是需要更多時間作為代價的。在綜合各方面因素之後,LDPC硬解碼打頭陣,失敗後再由LDPC軟解碼上陣放大招的模式表現更好。

寫在最後:LDPC糾錯雖強,但快閃記憶體體質也不容忽視。垃圾快閃記憶體顆粒配LDPC,過多的軟解碼上陣雖然能在短時間內撐下來不丟數據,但會令讀取延遲增大,直觀表現就是效能下滑嚴重。說不定有些山寨SSD可能會卡而不死,讓用戶頭疼不已。

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

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


請您繼續閱讀更多來自 存儲極客 的精彩文章:

不拆也知道:iPhone里用的是什麼快閃記憶體?比安卓強在哪兒?
固態硬碟能裝XP系統嗎?從理論到實踐:完全可行!

TAG:存儲極客 |