接part1介紹:
如何達到這個目的?業內常用的是對寫入數據的數據進行隨機化處理,這部分主要在SSD控制器中通過硬件實現。
-
上圖b/c:在控制器芯片通過硬件方式實現隨機化的讀寫流程,這個也是業內通常做法。隨機化處理是在寫入數據之前完成,也是在LDPC encode之前。這部分隨機化處理時間,也是會影響數據寫入時間tPROG和讀取出來tR。
-
上圖d/e:隨機化處理不是通過硬件實現,在業內并不常見做法。軟件的方式處理很慢,且容易出現問題。
隨機化的實現方式有多種,其中一種是利用線性反饋移位寄存器(LFSR)進行隨機化。LFSR是一種可以用于生成偽隨機序列的線性反饋移位寄存器,其初始值稱為種子(seed)。其原理是將存儲的數據進行移位操作,并向最低位添加新的隨機數據。這個新的數據是根據一個特定的反饋函數生成的,它確保了序列的隨機性。
ALFSR和LFSR是兩種不同類型的隨機數生成器,它們之間的區別主要體現在應用場景和生成隨機數的機制上。
LFSR(Linear Feedback Shift Register)是一種線性反饋移位寄存器,它利用線性反饋的方式從一些輸入位中選擇一些位并將其移到輸出位,從而實現隨機數的生成。LFSR的優點是簡單、速度快、硬件實現簡單,但它的隨機性相對較差,容易受到反饋函數的影響,可能存在預測性和循環性等問題。LFSR 有一個特點,如果初始狀態不是全零,那么它會在 2^k - 1 個狀態后回到初始狀態,其中 k 是寄存器的位數。這個周期性使得 LFSR 生成的序列不會出現重復。
ALFSR(Advanced Linear Feedback Shift Register)是一種高級線性反饋移位寄存器,它是在LFSR的基礎上改進而來的,通過增加更多的狀態和反饋函數來提高隨機性。ALFSR的反饋函數更復雜,可以更好地混合輸入位,從而生成更隨機、不可預測的隨機數。此外,ALFSR還采用了多周期跳變和狀態跳躍等技術,可以更好地防止循環和預測性。
因此,ALFSR和LFSR的主要區別在于應用場景和生成隨機數的機制。LFSR適用于對隨機性要求不太高、簡單快速的隨機數生成場景,而ALFSR則適用于對隨機性要求較高、需要更高質量和更安全隨機數的場景,例如密碼學、信息安全、計算機程序等。
LFSR/ALFSR方法也有一些局限性,它不能保證垂直方向上的數據隨機化,比如下圖,4-bit?AFSR隨機化處理后,依然有垂直方向的連續1或者連續0。
為了解決這個問題,有些控制器制造商會采用多種子方法來降低不同 ALFSR/LFSR 之間數據的相關性,從而增強數據的隨機性。比如下圖中,垂直方向和水平方向,均實現了隨機化處理。
水平方向隨機化(Horizontal Centric,HC)和雙向隨機化(Bidimensional Randomization)的效果對比如何呢?
在Endurance測試方面:
-
下圖左-水平方向隨機化:LSB、CSB、MSB的REBR相差很大,特別是LSB/MSB REBR較差
-
下圖右-雙向隨機化:RBER均有了較大的提升,其中LBA效果最好。
在Retention測試方面:
-
下圖左-水平方向隨機化:LSB、CSB、MSB的REBR均超過了ECC最高界限
-
下圖右-雙向隨機化:只有MSB超過了ECC最高界限,提升也很明顯。