1. 程式人生 > >快閃記憶體flash進階知識

快閃記憶體flash進階知識

這一章關於快閃記憶體主要是SLC, MLC, TLC, 3D flash的比較,主要點如下:

1、FLASH的寫步驟ISPP
2、在寫資料之前要進行隨機化編碼
3、slc、mlc、tlc效能的比較
4、一個具體的flash讀寫的體系結構
5、目前定義的flash的IO介面規範
6、ssd裡面並行性的體現
7、mlc為什麼要採用格雷編碼
8、tlc的三步程式設計操作
9、3D FLASH的相關特性

下面分別對這9個方面進行具體的分析:

1、FLASH的寫步驟ISPP

快閃記憶體的程式設計操作實際是對快閃記憶體頁的寫操作,通過電壓來完成的,那麼快閃記憶體的程式設計操作特別地方是採用的ISPP,步進式的程式設計,如下:
在這裡插入圖片描述


從這個ISPP操作上可以看出,ISPP的中文是步進式程式設計操作,也就是說flash寫操作的時候,施加程式設計電壓的時候,不是電壓一次到位,二是步進式的一步一步的,首先加個在這裡插入圖片描述,然後進行判斷比較是否達到需要的程式設計電壓,如果沒有達到,在加在這裡插入圖片描述,直到達到,也就是一步一步的完成電壓的升高,完成指定編碼資料的程式設計。

2、在寫資料之前要進行隨機化編碼

在這裡插入圖片描述
之前都沒有了解到,在編碼資料寫入flash陣列之前,還要進行隨機化編碼這步。這個步驟的目的是為了降低錯誤率。隨機化編碼就是讓1和0平衡,這樣在不同的字線之間編碼的時候1和0相對均衡,就不會導致全是1編碼,BL線上面的cell之間就有電子游走,導致bit的錯誤翻轉。
具體的一個步驟,從圖中也可以看出來:
在這裡插入圖片描述

3、slc、mlc、tlc效能的比較

在這裡插入圖片描述
從圖上可以看出以下幾個特性:
(1)slc的P/Ecycle 擦寫次數可以達到幾十萬次,mlc、tlc都只能達到幾千次
(2)slc的讀寫時間最短,tlc的讀寫時間最長。
(3)slc的讀時間大概20多微秒,寫時間大概200微秒;mlc的讀時間大概50微秒,寫時間大概500微秒,tlc的讀時間大概75微秒,寫時間很長,大概有1.2毫秒左右。
(4)擦寫時間大概都是2~4ms.

4、一個具體的flash讀寫的體系結構

在這裡插入圖片描述

5、目前定義的flash的IO介面規範

在這裡插入圖片描述

6、ssd裡面並行性的體現

在這裡插入圖片描述
這個圖說明了一個ssd中的4個並行性,從圖上可以看出首先是通道數是一個並行,每個通道配合一個控制器,拿實物對應一樣,我們opsenssd上對應的那兩個c卡槽就是兩個通道;其次是一個通道上的chip並行,同樣對應openssd上面的4個chip;然後是一個chip內部的die之間的並行;最後是一個die內的plane之間的並行。

7、mlc為什麼要採用格雷編碼

在這裡插入圖片描述
之間分析了mlc程式設計時候,知道它有4個狀態,當時並沒有考慮編碼這個過程,但是也忽略了一個問題,那就是錯誤bit數。

當我們加電壓的時候在電壓臨界時,就容易發生錯誤,如果沒有編碼,那麼從10—>01就會發生2個bit的錯誤,但是進行格雷編碼,也就是每相鄰的兩個狀態之間只有一個bit不同,這樣可以保證,即使是發生了碼間誤擾,最多也只有1個的bit錯誤。
這就是為什麼採用格雷編碼的原因!!!

8、tlc的三步程式設計操作

在這裡插入圖片描述
TLC的三步寫步驟在當初做tlc controller已經瞭解的很清楚了,就是說tlc的三個邏輯頁不是順序寫的,要通過規定好的步驟,先寫哪個字線的哪一個邏輯頁,再寫哪個字線的邏輯頁,如右上圖所示,為什麼這麼做,分析可能的原因是,因為tlc一個cell裡包含三個bit,那麼的它的能量域非常細,如果LSB寫了之後,再緊接著寫CSB,這個時候會對第一個頁的電子遷移造成影響,需要等待一段時間寫之後,效果會更好。

tlc和slc、mlc的比較
在這裡插入圖片描述
從這個表可以看出來,tlc晶片採用slc模式,與之前的slc片子的讀寫時間相同,讀時間大概20-30微秒,寫時間大概200~300微秒。同時可以看出來,tlc的寫延遲非常大,可以達到2.4ms

9、3D FLASH的相關特性

首先3D FLASH沒有采用傳統的浮柵結構,而是採用了新的絕緣體用來儲存電子Charge Trap,如下:
在這裡插入圖片描述
其次3D flash的另外一個特性就是它可以一次寫三個邏輯頁一個wl的資料下去,不在採用一頁頁的程式設計,而是一次都寫入(1-pass):
在這裡插入圖片描述
也就說說同一個wl上的三頁資料同時被程式設計,那麼程式設計步驟就是順序的,需要的寫時間是1.1ms:
在這裡插入圖片描述

最後分析3D FLSAH的效能引數:
在這裡插入圖片描述
從圖上可以看出:
3D TLC也支援slc模式,在這個模式下,它的讀寫時間效能接近MLC的讀寫效能。
SD TLC在tlc模式下,讀時間只有90微秒,並且之前一直有問題的寫時間減少到1.1ms。(不是3D的tcl,寫時間2.4ms)