成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

固態硬盤糾錯算法的前世今生

存儲 存儲設備 算法
糾錯編碼算法(Error Correction Code, ECC)是傳輸過程中發生錯誤后能在接收端自行發現并糾正的碼。早期被廣泛應用于通信領域,在發送端完成數據編碼,在接收端完成數據譯碼,保證數據的可靠傳輸。

 糾錯編碼算法(Error Correction Code, ECC)是傳輸過程中發生錯誤后能在接收端自行發現并糾正的碼。早期被廣泛應用于通信領域,在發送端完成數據編碼,在接收端完成數據譯碼,保證數據的可靠傳輸。NAND Flash作為一種廣泛使用的存儲介質,容易受到PE次數、數據保存時間、溫度和Cell間干擾等因素的影響,數據寫入后再讀出無法保證絕對的正確性,因此需要ECC算法做數據恢復。

 

在2D NAND Flash時代,SSD控制器一般采用BCH編碼保護數據正確性,BCH的幾個特性

1. 對于固定的碼長和碼率,有一組固定的生成多項式和校驗多項式,不需要單獨設計;

2. 有相對固定的編碼和譯碼算法;

3. 當錯誤數據個數小于一個指定值時,可以100%恢復數據;當數據錯誤個數大于這個指定值時,100%不能恢復數據;

4. BCH編碼只能接收硬信息,即一個有效數據只能用1 bit表示;

但是隨著3D NAND Flash技術的逐步成熟,3D NAND Flash表現出了更好的可靠性。因此,原本采用2D MLC的產品紛紛轉投3D TLC(可靠性對比: 2D MLC > 3D TLC > 2D TLC),對SSD主控的ECC編碼提出了更高的要求,因此,具備更強糾錯能力的低密度奇偶校驗編碼(Low Density Parity Check, LDPC)越來越多的被采用。

相對于BCH,LDPC具備以下特性:

1. 對于固定的碼長和碼率,需要單獨設計編譯碼使用的矩陣(通常指校驗矩陣);

2. 有多種解碼算法,但是***的糾錯算法計算復雜度太高,無法硬件化,需要權衡算法特點和譯碼精度,簡化算法;

3. 可以接收軟信息(即一個有效數據可以用多個 bit表示),這是LDPC取代BCH的主要原因;

4. 譯碼成功或失敗沒有絕對的界線,即可能在只錯幾個bit的情況下無法成功糾錯,但可以成功完成200 bit錯誤的數據譯碼;

5. 相同碼率情況下,碼長越長,糾錯能力越強;

詳細解釋一下以上5個特性:

1. 低密度奇偶校驗碼的低密度是指其校驗矩陣的稀疏性(在一個只有“0”元素和“1”元素的矩陣中,“1”元素的比例很低)。LDPC編碼和譯碼都可以利用校驗矩陣,矩陣的低密度意味著編譯碼算法的低復雜度、低運算量。對于固定碼長和碼率的LDPC碼,校驗矩陣有很多種,但是設計一個運算量小,復雜度低且糾錯能力強的校驗矩陣成為LDPC編碼應用的一個難點。

 

LDPC校驗矩陣H

2. 麻省理工學院Robert Gallager于1963年在博士論文中提出LDPC碼,但因其復雜的譯碼算法不易實現,并沒有被廣泛采用。1981年,Tanner提出了用圖模型來描述碼字的概念,從而將LDPC碼的校驗矩陣對應到被稱為Tanner圖的雙向圖上,采用Tanner 圖構造的LDPC碼,通過并行譯碼可以顯著地降低譯碼復雜度。

 

校驗矩陣H對應的Tanner

此后,越來越多的LDPC譯碼算法出現,其中***的是比特翻轉算法(Bit Flipping Algorithm)和最小和算法(Min-Sum Algorithm)。同時也出現了很多基于以上2種糾錯算法的變種算法,用較小的代價提高了譯碼精度。

下圖描述了一個編碼后數據位“1101”,在信道上傳輸后變為“1001”后接收端的比特翻轉譯碼的過程。

經過一次迭代后,錯誤bit被糾正。

 

 

 

 


 

 

3.軟信息是用多bit表示一個bit的值,即等價于可以用多位精度表示一個信息的置信度。

用硬信息表示一個信息,只有“0”或“1”。而軟信息更精確的表達了一個信息的置信度,軟信息可以有“0.1”、“0.4”、“0.65”、“0.99”等表達方式。有了軟信息,在相同碼率下譯碼器可以糾正更多的錯誤。

但是存儲不同于通信領域,存儲器讀出的數據只能是0或者1。因此,軟信息的獲取只能通過改變存儲器讀方式,多次讀取才能獲得。多次讀取同一個信息必然造成讀性能的下降,因此,在SSD控制器上,盡可能減少使用軟信息做譯碼的概率。

 

4. LDPC是一種概率譯碼算法,在不同的錯誤率的情況下均有一個譯碼成功概率,并且這個概率具備一個明顯的特點。當待譯碼數據錯率低時,LDPC譯碼失敗概率很低,可以低至1E-15,但是很難做到0失敗,主要原因是對于每個矩陣都存在一個陷阱集,當陷阱集中包含的位置的點發生數據錯誤,LDPC便無法成功譯碼。隨著錯誤率逐漸增加,譯碼失敗概率會快速增加到接近100%失敗。

 

5.對于BCH和LDPC,在相同碼率下,碼長越長,糾錯能力越強。對于市場上流行的3D TLC Flash的頁大小(頁大小決定糾錯算法碼率),我們比較了2KB/4KB BCH和2KB/4KB LDPC硬判決譯碼的糾錯能力。當碼長增加時,相同的譯碼算法以及相同的碼率下,糾錯能力提升了近50%。長碼長ECC算法的應用,更好的提高了糾錯算法的能力,推遲了SSD主控啟用LDPC軟判決譯碼的使用,減少軟判決譯碼帶來的負面影響(性能和功耗方面)。

 

總結:

數據正確性是SSD最基本的要求,糾錯編碼保證了數據萬無一失。隨著更多新的Flash結構出現,糾錯編碼算法也在逐步演進。LDPC算法***限度的保證了數據的正確性。并且,隨著越來越多SSD主控采用4KB LDPC,更好的延長了SSD的壽命。

責任編輯:武曉燕 來源: SSDFans
相關推薦

2011-08-23 09:52:31

CSS

2015-11-18 14:14:11

OPNFVNFV

2014-07-30 10:55:27

2025-02-12 11:25:39

2014-07-21 12:57:25

諾基亞微軟裁員

2019-06-04 09:00:07

Jenkins X開源開發人員

2014-07-15 10:31:07

asyncawait

2016-12-29 18:21:01

2021-06-17 07:08:19

Tapablewebpack JavaScript

2016-12-29 13:34:04

阿爾法狗圍棋計算機

2012-05-18 16:54:21

FedoraFedora 17

2013-05-23 16:23:42

Windows Azu微軟公有云

2016-11-03 13:33:31

2016-11-08 19:19:06

2018-11-01 09:19:39

固態硬盤LDPC閃存

2021-04-15 07:01:28

區塊鏈分布式DLT

2011-05-13 09:43:27

產品經理PM

2015-06-11 11:10:09

對象存儲云存儲

2019-08-05 10:08:25

軟件操作系統程序員

2013-11-14 16:03:23

Android設計Android Des
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 欧美精品一区二区在线观看 | 中文字幕在线一区二区三区 | 久久综合激情 | 亚洲国产精品久久久 | 视频一区欧美 | www.狠狠操 | 91中文字幕在线观看 | 一区二区三区在线 | 欧 | 亚洲精品自在在线观看 | 亚洲成人黄色 | 中文字幕亚洲一区 | 久久精品国产久精国产 | 久久99视频免费观看 | 亚洲综合久久久 | 91精品国产91久久久久久密臀 | 亚洲国产成人精品女人久久久 | 欧美在线一区二区三区 | 日韩欧美不卡 | 欧美综合国产精品久久丁香 | 欧美一区二区三区四区视频 | 天天插天天狠天天透 | 日本一二三区在线观看 | 一区二区亚洲 | 91高清视频在线 | 日本一区二区三区免费观看 | 日韩av一区在线观看 | 日日夜夜精品视频 | 免费看91 | 精品视频一区二区三区四区 | 热99视频 | 亚洲精品性视频 | 亚洲婷婷一区 | 中文字幕日韩欧美一区二区三区 | 欧美精品一区在线 | 亚洲一区二区久久 | 亚洲日产精品 | 免费av在线网站 | 精品国产伦一区二区三区观看说明 | 亚洲国产精品视频 | 天天插天天操 | 国产精品一区在线 |