• 沒有找到結果。

快閃記憶體 BCH-JN 軟式解碼步驟

於本節中,將 BCH-JN 演算法執行的詳細步驟說明如下

步驟1. 設定抑制係數α,最大疊代次數lmax,並計算每個位元節點初始的 LLR 為

) / 4 ( )

( 0

) 0

( c y N

L i = i ,並以初始LLR(L(0)(ci))開始進行解碼。

步驟2. 更新奇偶校驗矩陣: ()

(

b, (l)

)

l

b H L

H =φ ,ψ表示更新 Hb的動作。

A. 依據 LLR 絕對值 L(l) 的大小將每個位元位置進行排序,並且記錄排序後 的順序。

B. 利用高斯消去法,按照信任度由小至大的位置將

H

b(l)消為簡化梯式矩陣,

並得到(n-k) × (n-k) 單位矩陣即為低信任度矩陣。

0.65 0.7 0.75 0.8 0.85 0.9 0.95 1 1.05 1.1 1.15

10-6 10-5 10-4 10-3 10-2 10-1 100

cell-to-cell coupling strength factors

Page Error Rate

Flash PER

BCH原 始 文 獻(32767, 31133) LDPC(34520,32794) BCH(32767,31133)

38

步驟3. 利用高斯消去法正規後的 Hb(l),進行梯度下降法得到每個位元節點的額外 消息量: ()

(

b(l), (l)

)

l

ext H L

L =φ ,即(13)式的過程。ψ表示計算額外消息量之動作。

步驟4. 更新每個位元節點的 LLR: L(l+1) =L(l) −αL(extl),即(20)式的過程。在這裡 0<

α<1。

步驟5. 硬式決策: 直接找出小於零的 LLR 並記錄其位置及更改碼字。

步驟6. 終止條件:若所有的校驗節點均被滿足,或當到達最大的預設疊代次數時,

則停止疊代並且輸出目前經硬式決策後每個位元的決策值。若未達最大疊代次 數,則令

l

= l+1,回到步驟 2 進行下一次的疊代。

1. 接收訊號

2. BCH 校驗矩陣 (n-k)xn

JN排序

梯度下降法

軟式解碼輸出

高斯消去法

JN方法(將信任度 由小到大排列)

對數概似比例

疊代次數<最大疊代次數

SMITH

前一筆LLR暫存器

X

和積演算法

疊代次數=最大疊代 次數 或者 碼字收斂

圖 24 BCH-JN 快閃記憶體軟式解碼流程圖

39

常見快閃記憶體會產生錯誤的資料產生發生在 4 種狀況,如圖 25[21], [22],

說明快閃記憶體常發生錯誤的曲線被統計在不同使用時期的位元錯誤率(Bit Error Rate,簡稱 BER)表現上;

快閃記憶體發生錯誤資料統計分為以下 4 個狀況 1. 記憶體資料保存年限(Retention Errors)。

2. 擦失錯誤(Erase Errors)。

3. 讀取錯誤(Read Errors)。

4. 鄰近資料排干擾(Program Interference Errors)。

本篇論文的模擬環境選擇以 1 年記憶體資料保存年限和 3 千次讀寫次數的 10-5 位元錯誤率,做為模擬環境條件。

圖 25 快閃記憶體各種錯誤漸進線 資料來源[21]

40

圖 26 BCH-JN 快閃記憶體軟式解碼效益圖

3.4 定點數值(Fix-Point Value)模擬

定點數值表示法是以有限位元的精準度,表現一個固定範圍的浮點數數值,

定點數優點就是降低硬體複雜度和尋求以最少成本達到與浮點數接近的解碼效益。

定點數通常是以 2 補數(2’s complement)格式表式,由符號位元(sign bit)、整數部 分(integer part)位元及小數部分(fraction part)位元組成。定點模擬時其字元通常較 短,因此必須考慮所造成的有限字元長度效應(Finite World-length Effect),當有限 字元長度效應是浮點數轉到定點格式時,下面兩點是硬體實現關鍵的項目:

1. 溢位(Overflow)誤差 : 超出有限位元表示範圍。

2. 量化(Quantization)誤差 : 有限位元小數部分與浮點數的差異。

使用較多的位元能夠改善溢位及量化誤差,但會造成硬體成本的增加,為了 找出適當的位元數但又對於解碼算效益不會影響太大,在這節將直接規劃有限位

41

元寬度大小並與浮點數比較在解碼演算法的差異。

結合上一節快閃記憶體錯誤機率只發生電壓偏移單方向與傳統高斯通道會有 正負符號規格比較,我們只需要知道運算是不是小於零就能知道更改錯誤碼字的 位置,所以在目前軟式演算法不增加符號位元在快閃記憶體有限位元模擬。不論 疊代或者有限位元規劃寬度需要多少,目的就是要在軟式解碼演算法硬體實現中,

減低對浮點數的量化誤差。

針對軟式解碼在有限位元規劃,整理以下影響因素有哪些:

1. 模擬疊代次數。

2. 校驗矩陣寬度與低信任度矩陣和查表法(look-up Table,LUT)關係。

3. 軟式解碼效益。

3.4.1 模擬疊代次數

圖 27 BCH-JN 快閃記憶體浮點數疊代次數實驗

0.6 0.65

0.7 0.75

0.8 0.85

0.9 0.95

1 10-6 10-5 10-4 10-3 10-2 10-1 100

cell-to-cell coupling strength factors

PER / Page Error Rate

軟 式 實 數 疊 代 比 較 圖

BCH硬 式 解 碼 疊 代 次 數= 10 疊 代 次 數= 5 疊 代 次 數= 3

42

初始模擬我們先假定需要 10 次浮點數疊代,在實驗過程中本人在程式中,每 次做完程式就會回傳這一次疊代次數需要多少最後將疊代平均次數算出來為 5.2 次,透過此實驗我們選擇 5 次軟式疊代次數,最接近 10 次疊代解碼效益,在圖 26,10-5 PER 小於 0.01 係數(factor),係數指的是浮動閘上的電容耦合電壓強度。

3.4.2 校驗矩陣寬度與低信任度矩陣關係:

圖 28 說明在傳輸快閃記憶體為 512 位元組時,我們實際上收到的信任度大小 為 2100 單位長度(2bits/cell),對應到 BCH 校驗矩陣將會是(N-K)×N,[104 × 2100]。

假設定點模擬選定為 10 位元時,所以只會有 1024 種排列矩陣可能性,原始浮點 數排序數量是 2100 筆資料,在定點模擬排序數量將會是 1024 筆資料,根據梯度 下降法傳遞訊號概念,視為發生同一事件(訊息傳遞的概念,相同信任度可視為發 生同一狀況),所以透過校驗矩陣縮減是不會影響梯度下降法傳遞信任度。

圖 28 BCH-JN 定點模擬校驗矩陣規劃

查表法(Look-Up Table)是一個常在硬體運算中一個轉換數學運算的方式,能 夠減少硬體成本和運算時間方式。在 Matlab 模擬中,透過定點模擬範圍在有限位 元被假設為 10 位元做規劃,如圖 29。

整數 小數

圖 29 定點模擬 10 位元規劃範圍

43

本篇論文利用快閃記憶體估算信任度大小(19)式,將定點數輸入和輸出做 Log 初始運算時,若輸出有重覆就會忽略該輸入值,最後我們將會獲得多少組輸出完 成查表法。其中在定點模擬減少小數位元解析度(resolution)所造成的誤差即被定 義為量化誤差,多少量化誤差我們可以接受,在軟式解碼中,必須考慮到傳輸碼 字規格和解碼最後效益。在傳輸碼字規格中,512+13 位元組將會有 13×8=104 單 位長度的單位矩陣(Identity matrix),此單位長度在 JN 軟式解碼被定義為最小信任 獨立位置 (least reliable independent positions,簡稱 LRIPs),在此提出單位矩陣 寬度與查表法彼此是會互相影響規格大小,在查表法我們假定 10 位元,從接受資 料轉換成軟式解碼初始信任度,透過模擬將會有 158 組信任度大小規格,下面表 格為信任度轉換表格大小。

表 7 軟式解碼定點數值查表法大小

位元數量 查表法表格大小 可否適用 512 位元组傳輸規格

11 位元 225 是

10 位元 158 是

9 位元 110 否

8 位元 75 否

7 位元 49 否

透過上面表格評估,本篇論文將以較少位元並在和浮點數軟式解碼在解碼效 益不會差太多,做為定點數值模擬軟式解碼基礎。圖 30 為我們目前結合定點數值 規劃校驗矩陣大小。

圖 30 定點模擬軟式解碼校驗矩陣規格

44

圖 30 校驗矩陣在梯度下降法中,必須提前規劃在單位矩陣中的信任度大小是 在 0.5 以下(因為透過 tanh 轉換信任度大小將會在 0 到 1 之間),這部分對於提供 每次疊代額外消息量作為下次疊代參考信任度大小很重要,傳遞信任度位置不對 容易造成發散。

3.5 定點數值通道模擬和評估浮點數與定點複雜度

在此節為了找出適當的位元數,圖 31 以 10 位元定點數與浮點數軟式解碼比 較解碼效益,在 10-5 PER 相差為 0.1 factor,所以在定點數上本篇論文選擇 10 位 元做為硬體規劃。透過更高位元數模擬根據以前做的相關實驗會越靠近浮點數值,

但是相對在硬體的成本會支付相當高,特別在我們即將在第 4 章將會討論高斯電 路和梯度下降法在軟式硬體解碼器設計的規格。

圖 31 定點數值通道模擬

0.6 0.65 0.7

0.75 0.8

0.85 0.9

0.95 1

10-6 10-5 10-4 10-3 10-2 10-1 100

cell-to-cell coupling strength factors

Page Error Rate

定 點 數 和 實 數(疊 代 5次 )比 較 圖

硬 式 模 擬 定 點 數10位 元 模 擬 實 數 模 擬

45

透過 Matlab 執行疊代 5 次的軟式編碼器,我們分別對浮點數軟式解碼器和所 規劃的定數數值解碼器分別量測在軟式解碼器執行時,各個區塊(block)方程式所 執行的時間,其中以梯度下降法差異度最大,主要在浮點數所規劃的校驗矩陣為 104×2100 單位,與定點數值矩陣 104×158,相差約 12 倍的矩陣大小以及校驗節點 個別通知校驗節點的運算時間,分別在梯度下降法量測執行時間為 12.79 秒和 0.031 秒。

另外在高斯校驗矩陣所量測的浮點數和定點數執行時間為 2.45 秒和 0.659 秒。

圖 32 浮點數與定點複雜度比較

46

四、快閃記憶體控制器硬體實現

4.1 初步硬體規劃

硬體設計時,通常會將系統分為兩個部分:控制單元(control unit)與資料運算 單元(datapath),如圖33 所示。 控制單元產生控制訊號(control signals)用以控制 資料運算單元;而資料運算單元產生的狀態訊號(status signals)則會送至控制單元 當成部分的輸入訊號。

圖 33 數位電路的基本架構 資料來源數位系統講義

控制單元的設計也稱之為有限狀態機(finite state machine,簡寫為FSM)的設 計。其中在控制單元分成三個模組:

(a) 次狀態邏輯:組合電路,根據現在輸入(control inputs)與目前狀態(current state),產生下一個電路狀態(next state)。

(b) 狀態記憶暫存器:記憶單元,儲存目前的電路狀態(由正反器/暫存器組成,需 使用脈波clock來同步)。

(c) 輸出邏輯:組合電路,根據現在輸入與目前狀態,產生輸出控制訊號來控制 datapath單元進行所需運算。

資料運算單元(datapath)通常包含:算術邏輯單元(arithmetic logic unit,簡寫為 ALU)、加減法器、乘法器、比較器、選擇器、暫存器(register)、記憶體等。

47

4.2 快閃記憶體硬體架構規劃

圖 34,說明 BCH-JN 軟式解碼器在快閃記憶體規劃如下。

R/B

Clk CE_n DQ[7:0](inout)

W/R_nCLE

ALE ControllerFSM Tanner

Graph

Gaussian Elimination SMITH

JN Sorting Sum

Product Algorithm

RAM H_Matrix

LLR

Memory Cell Array

Log_LUT IO Controller Address Buffer

Data Buffer

ROM 512 bytes (1 Page)

Cyclic Encoder (4200,4096)

圖 34 快閃記憶體軟式解碼器硬體架構

在快閃記憶體控制器中,傳輸端(Host Interface)會有 3 個控制資料傳送進來 分別為命令(command)、位置(Address)和資料(Data),在命令模式中請參考表 4,

傳輸端會透過 CE_n、ALE、CLK、W/R_n 進入 FSM 控制器告訴輸入埠(IO)控制 器,輸入埠控制器會根據有限狀態機控制訊號傳送到後資料緩衝器(Data Buffer) 和位置緩衝器(Address Buffer)。圖 35 資料緩衝器會直接將資料傳送到後端循環編 碼器,循環編碼器採用位元串接平移方式得到校驗碼,使用(21)式生成多項式作為 串接編碼器乘法控制開關。

生成多項式G(x)

資料 碼字

圖 35 編碼器生成多項式 資料來源[1]

48 除過後所得到的餘數,循環編碼器就是除法器最後產生餘數即為校驗碼(Parity check code),(21)式為生成多項式,在圖 36 控制每個位元平移過後是否需要做加 洛法乘法做開關動作。

49

圖 37 排序比較器架構

在文獻[23]介紹利用串接概念,圖 38 將輸入數值用串接概念一筆一筆送進來 直接按照大小做排序當最後一筆資料進來時,下一個時序(clock)開始就可以將 SU

在文獻[23]介紹利用串接概念,圖 38 將輸入數值用串接概念一筆一筆送進來 直接按照大小做排序當最後一筆資料進來時,下一個時序(clock)開始就可以將 SU

相關文件