SSD知多少(2): Flash

SSD深入淺出理解筆記

Yuan Ko
Sep 11, 2022
https://www.wpgdadatong.com/cn/blog/detail?BID=B2545

SSD的寫入與擦除是利用將電子存在flating gate的時候,會讓電流不導通的情況來做的。

當電子在floating gate的電荷超過閾值Vth,會因為電子阻礙了量子穿隧效應,所以會讓電流無法導通,所以顯示為0。相反的,當flating gate之中沒有電子的存在時,他便會導通,因此讀取時顯示為1。讀取的時候則是利用在bit line這邊的感測器,讀到的1 或 0。

Floating gate之中的電子是利用Word line跟Bit line下去進行控制。要寫入的時候Word line為高電壓跟Bit line=0V。擦除的時候則相反,在Bit line高電壓,將floating gate的電子吸出。

另外,由於一個block共用一個P-substrate,所以要擦除時會一次擦除一個block。這也是SSD需要注意的特性

那我們了解到讀取的時候也是會加正電壓,之後在Bit line進行感測,這會造成輕微寫的情況產生,讓一部分的電子被吸入floating gate。多次的讀取之後就可能造成bit flip的情況產生。也就是所謂的讀干擾。可是要注意,讀干擾並不是影響讀取的那一個page,而是同一block之下的其他page。

可能會覺得奇怪,為什麼被讀干擾影響的是同一block之下的其他page。可以先看到下面的這張圖。

040716_0845_ReadDistu5.png

當我們進行讀取的時候,要被讀取的word line呈Vref,沒有要被讀取的呈現Vpass使其導通。可以看到下圖Vpass是一個相對更高的電壓。因此會造成輕微寫的情況,進而可能出現讀干擾(Read Disturb)。

寫的情況之下則會出現兩種干擾,Program Disturb & Pass Disturb:
1. Program Disturb: 同一條word line之下的因為,可能會因為有些絕緣層老化而導致沒有要寫入的部分被寫入。

2. Pass Disturb: 同一string 之下的會受到影響(抱歉,不明白為什麼同一string的儲存單元需要加壓9V,所以我也解釋不清楚為什麼會出現pass disturb)

更詳細的部分可以從下面的參考資料下去閱讀讀干擾的成因。

在我們無法預期寫干擾(Program-Disturb)或是讀干擾(Read-Disturb)的情況產生,所以我們需要具備一定糾錯能力的ECC來避免使用錯誤的資料。ECC的內容,我們留到下一章FTL再來講。

由於背景知識為程式為主,Flash硬體相關的知識為初學,有錯在煩請大家不要避諱,在留言處指出,我會再進行修改。

延伸閱讀:

SSD知多少(1): 綜述

SSD知多少(3): FTL

SSD知多少(4): PCIe

參考資料:

在撰寫這篇文章的時候,SSD Fans所寫的文章都幫助我更了解SSD之中的內容,可是在他們整理為 深入淺出SSD 之後卻有名詞前面沒有提過令我有些困惑的情況產生,有點可惜。

--

--

No responses yet