SSD數據在寫入NAND之前為何要隨機化?-part2

接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最高界限,提升也很明顯

圖片

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/213013.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/213013.shtml
英文地址,請注明出處:http://en.pswp.cn/news/213013.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

【K8S in Action】服務:讓客戶端發現pod 并與之通信(1)

服務是一種為一組功能相同的 pod 提供單一不變的接入點的資源。當服務存在時,它的 IP 地址和端口不會改變。 客戶端通過 IP 地址和端口號建立連接, 這些連接會被路由到提供該服務的任意一個 pod 上。 pod 是短暫,會刪除增加,調度…

Android 13 Settings藍牙列表卡頓問題排查及優化過程

一.背景 此問題是藍牙列表界面息屏后再點擊亮屏藍牙界面卡住,劃不動也不能返回,在人多的時候(附近開啟的藍牙設備過多的時候)會卡住大概四五秒才能滑動. 優化前效果見資源: 二.查找耗時點 根據Android Studio的Profiler工具進行排查,查找主線程時間線比較長的方法,如下:…

IDEA遠程調試與JDWP調試端口RCE漏洞

文章目錄 前言Docker遠程調試Java調試原理遠程調試實踐 JDWP端口RCE調試端口探測調試端口利用 總結 前言 在對一些 Java CVE 漏洞的調試分析過程中,少不了需要搭建漏洞環境的場景,但是本地 IDEA 搭建的話既麻煩(通過 pom.xml 導入各種漏洞組…

面向對象編程教程

面向對象編程是一種基于對象的編程范型,它將程序中的數據和操作數據的方法看作一個整體,通過封裝、繼承和多態等機制來實現代碼的復用和可擴展性。面向對象編程也是現代軟件開發的主流編程范式之一,廣泛應用于各種編程語言中,如C、…

Zookeeper系統性學習-應用場景以及單機、集群安裝

Zookeeper 是什么? Zookeeper 為分布式應用提供高效且可靠的分布式協調服務,提供了諸如統一命名服務、配置管理和分布式鎖等分布式的基礎服務。在解決分布式數據一致性方面,ZooKeeper 并沒有直接采用 Paxos 算法,而是采用了名為 …

Android Studio Gradle下載慢解決方法

Android Studio Gradle下載慢解決方法 最近在練習模型部署,主要是在手機端部署,所以使用到了Android Studio,但是在創建項目的時候,一致在下載gradle,而且網速還很慢,不對,是極慢哪種&#xff0…

MQTT發布、訂閱和取消訂閱

在本文中,我們將深入了解MQTT發布、訂閱和取消訂閱相關的內容。如果你剛接觸發布/訂閱模型,建議閱讀本專欄之前的文章。 什么是MQTT發布消息 在MQTT中,一個客戶端連接到代理(broker)之后可以立即發布消息。這些消息依…

NetSuite預算管理實踐

NetSuite預算相關的原生功能有兩個: 一個是Expense Commitments And Budget Validation這個SuiteApp,我們在一年前寫過一篇文章介紹過。它強調預算的過程控制,但由于功能很有限,沒有實際用處。 NetSuite Budget功能包_netsuite …

Vue3 pinia的基本使用

pinia的使用跟vuex很像,去除了很多沒用的api,寫法有兩種,一種老式的選項式api還有一種組合式api,用哪種根據自己喜好來,以下示例為組合式api 更多教程參考官網:pinia官網https://pinia.vuejs.org/zh/ 安裝…

機器學習基本概念2

資料來源: https://www.youtube.com/watch?vYe018rCVvOo&listPLJV_el3uVTsMhtt7_Y6sgTHGHp1Vb2P2J&index1 https://www.youtube.com/watch?vbHcJCp2Fyxs&listPLJV_el3uVTsMhtt7_Y6sgTHGHp1Vb2P2J&index2 分三步 1、 定義function b和w是需要透…

linux之autoconf(1)基礎介紹

Linux之autoconf(1)基礎介紹 Author:Onceday Date:2023年2023年12月10日 漫漫長路,才剛剛開始… 本文主要內容翻譯自Autoconf官方文檔,僅供學習交流之用。 全系列文章請查看專欄: buildroot編譯框架_Once_day的博客-CSDN博客。…

FL Studio21最新FL水果編曲軟件中文版在哪下載?

FL Studio21水果編曲軟件是一款專業的音樂制作軟件,被廣泛地應用于電子音樂、hip-hop、流行樂等多種音樂類型的制作。該軟件提供了豐富的音頻編曲工具和音樂效果器,讓用戶可以輕松地創作出高品質的音樂作品。同時,這也是一款非常易于上手的軟…

[ 云計算 | Azure 實踐 ] 在 Azure 門戶中創建 VM 虛擬機并進行驗證

文章目錄 一、前言二、在 Azure Portal 中創建 VM三、驗證已創建的虛擬機資源3.1 方法一:在虛擬機服務中查看驗證3.1 方法二:在資源組服務中查看驗證 四、文末總結 一、前言 本文會開始創建新系列的專欄,專門更新 Azure 云實踐相關的文章。 …

7-7 求補碼

整數在內存中以二進制補碼形式存儲。對于給定的整數n,要求輸出其4個字節長的補碼。1個字節8個二進制位。 輸入格式: 輸入一個整數n(?231≤n≤231?1)。 輸出格式: 輸出n的補碼。 輸入樣例1: 123輸出樣例1: 00000000000000000000000001111011輸入樣例2: -12…

YOLOv8改進 | 2023檢測頭篇 | 利用AFPN改進檢測頭適配YOLOv8版(全網獨家創新)

一、本文介紹 本文給大家帶來的改進機制是利用今年新推出的AFPN(漸近特征金字塔網絡)來優化檢測頭,AFPN的核心思想是通過引入一種漸近的特征融合策略,將底層、高層和頂層的特征逐漸整合到目標檢測過程中。這種漸近融合方式有助于…

【react hook】ahook的useThrottleEffect 是干嘛的

import { useThrottleEffect } from ahooks;useThrottleEffect 是 React Hooks 中的一個自定義 Hook,用于創建具有節流效果的副作用函數。 在 React 組件中,副作用函數通常在組件生命周期方法中執行,如 componentDidMount、componentDidUpda…

軟件無線電SDR-頻譜采集python實現

sdr做的頻譜采集,保存的500張頻譜圖,能看出來是什么東西嗎?

VC++使用GetProcessTimes獲取進程創建時間、銷毀時間、用戶態時間、內核態時間

一、GetProcessTimes函數簡介(微軟MSDN) 微軟提供了一個非常有用的API函數GetProcessTimes用來獲取進程創建時間、銷毀時間、用戶態時間、內核態時間,msdn連接為:GetProcessTimes 函數 (processthreadsapi.h) 其函數原型為&#…

Linux內核--內存管理(六)補充--內核頁表及內核虛擬空間

目錄 一、引言 二、內核頁表的結構 ------>2.1、頁表項結構 ------>2.2、swapper_pg_dir ------>2.3、內核頁表布局 ------>2.4、物理/虛擬 地址轉換 ------>2.5、頁表容量及表項偏移 ------>2.6、表項掩碼及控制區域 ------>2.7、頁標志位 ---…

【測試發布】

學習目標: 提示:這里可以添加學習目標 例如: 一周掌握 Java 入門知識 學習內容: 提示:這里可以添加要學的內容 例如: 搭建 Java 開發環境掌握 Java 基本語法掌握條件語句掌握循環語句 學習時間&#x…