NAND Flash的基本操作——讀、寫、擦除
轉載地址:http://blog.sina.com.cn/s/blog_5c401a150101d7hi.html
基本操作
這裡將會簡要介紹一下NAND Flash的基本操作在NAND Flash內部是如何進行的,基本操作包括:讀、寫和擦除。
讀:
當我們讀取一個儲存單元中的資料時(如圖2.4),是使用一個門電壓Vread(0V)作用於gate端,而沒有被讀取的儲存單元的gate端則被偏置於Vpass.r(通常為4-5v),這樣他們就能夠不管閥值電壓是多少而能夠通過電晶體。事實上,一個被擦除過的Flash儲存單元有一個低於0V的Vth值,而一個被寫過的儲存單元的Vth則一般會有一個正值,並且這個值的大小一般低於4V。實際上,使用0V來對一個所選儲存單元的gate端進行偏置的時候,所有串聯在一起的的儲存單元都會去傳導電流,而只有被定址的儲存單元會被擦除。
串電流通常的值大概在100-200nA。讀取儲存單元的技術是基於充電整合、對bitline的寄生電容的利用。
這個電容是用一個固定值(通常1-1.2V)來進行預充電:只有當儲存單元被擦除並且電流被釋放,那麼電容才
會被釋放。有一些電路是專門用來檢測bitline的寄生電容的狀態的:圖2.4展示的這個結構就是當前應用最多的
結構。bitline的寄生電容被標為Cbl,而NAND Flash串則相當於一個電流產生器。
在對bitline的充電過程中PMOS電晶體的門Mp是被一直接地的,而NMOS電晶體的門Mn則被一直保持在一個固定值V1.V1的典型值大概在2V左右。在充電的最後bitline將會有一個電壓Vbl。
Vbl = V1 - Vthn (2.1)
在上面這個公式中Vthn表示的是NMOS Mn的閥值電壓。
在這個時候Mn和Mp電晶體是被關掉的,Cbl是自由放電的。在一段時間(Tval)之後,Mn的gate會被偏置在
V2 < V1, 通常在1.6-1.4V左右。
如果一個Tval時間足夠將bitline 的電壓全部放電完成那麼:
Vbl = V2 - Vthn (2.2)
Mn會開啟並且輸出節電的電壓(Vout)變成了一個bitline一樣,最後模擬電壓Vout會被轉換成為一個數字值
使用一個簡單的閂鎖。關於讀操作肯定不會這麼簡單,更詳細的情況後續我們還會繼續講到。
寫:
NAND Flash的寫操作是利用電子隧道的量子影響來進行的,電子隧道的出現是由於有一個強電場。特別是
寫和擦除都是依靠電場的極性。
在寫的過程中,穿過氧化層的電子數量就是電場的一個功能:事實上,電場越大,穿過氧化層的電子數量就
越多。因此,為了提高寫的能力,一個可用的高電場(對應的就是高電壓)是必不可少的。這也是NAND Flash
的寫的方式的主要缺點,因為氧化層是會受到這些電壓的影響而在功能上有所衰退。
而這種寫方式的主要的優點則是每個儲存單元的電流可以非常低,這也是之所以Fowler-Nordheim機制比較
適合多個儲存單元並行寫的原因,也是NAND 頁大小所要求的。
用於對NAND Flash儲存單元進行寫的演算法是一個叫做“Program & Verify”的演算法,verify是用來檢查是否
儲存單元是否已經達到一個分佈的極限。
為了將電子觸發進入由氧化層包裹的floating gate中,我們要求有下列條件(圖2.5所示):
Vdd是作用於drain 選擇門
Vpass.p(8-10V)作用於沒有被選到的門上
Vpgm(20-25V)作用於選擇的那個門上(即將被寫的那個)
GND作用於源極選擇門上
GND作用於將要寫的那個bitline上
Vdd作用於其他的bitline上
self-boosting機制會阻止有著同一個gate的儲存單元去進行一個未要求的寫操作。所以關於這個過程一個
基本的想法就是在寫的過程中利用儲存單元的寄生電容來開發他所蘊含的潛能,這也是為了增加在氧化物隧道
之下的這塊區域的潛能。(如下圖所示)
當bitline被驅動到Vdd,drain二極體是diode-connected的並且對應的bitline是floating的。當Vpass.p
被運用到沒被選到的wordlines,寄生電容能夠提高通道的潛能,降低通過氧化物通道的電壓的下降,因此,
這種通道現象是應該被禁止的。
由於儲存單元的架構是矩陣式的,所有的對應wordline的儲存單元都是被同樣的電壓所偏置,即使那些沒有
準備被寫的儲存單元也是一樣,他們被稱為“disturbed”。disturbs的兩個重要的象徵都是和寫相關的:如圖
2.5所示Pass disturb和Program disturb會影響到儲存單元的穩定性。
擦除:
如圖2.6a所示NAND 儲存器是被定義為一個triple-well結構,通常每一個plane都有他自己的triple-well。
而source端則被所有的block所共用:用這種方法的話矩陣就會更緊湊並且結構也可以更多樣性,對iP-well的
偏置也會大大地降低。
這種電子擦除時通過使用一個高電壓和讓wordline保持接地來對iP-well進行偏置,以此來進行擦除的(如
圖2.6c)。因此,NAND 技術不需要負電壓。另外,這個物理機制是Fowler-Nordheim 通道。由於iP-well對所
有的block來說都是正常的,所以就不能在不管wordline floating的情況下對未選擇的blocks進行擦除。這種
方法當iP-well被改變了,由於在控制gate和iP-well之間電容性的加倍,floating wordline的潛能相應也提高
了(Fowler-Nordheim 通道機制被禁止)。
圖2.6b大概地畫出了擦寫演算法的各個階段。NAND的規格對擦除時間要求是非常嚴格的。因此,NAND的供應
商試圖就儘量少的步驟去完成擦除(最好只需要一個步驟即可)。結果,在擦除過程中就會有一個很高的電場
作用到儲存矩陣上。而事實上被擦除的區域是會朝著負的Vth值進行偏移。為了讓floating gate coupling最
小化,一般會推薦在擦除之後進行寫(PAE),這樣的目的是為了能夠將擦除區域可以向0V這個極限值靠近。
(當然,同時還要保證不會超過讀操作的極限值)。
一個SLC的block的擦除時間大概是1-1.5ms,而電子擦除脈衝大概持續700-800us。
製程技術上的提升和尺寸的減小對更演算法的複雜和精密程度有了更高的要求,特別是對每個儲存單元3/4bit
的這種技術。事實上可靠性的極限隨著技術的提升而在減少:更精密當然還有因此而帶來的更多功耗等問題;
為了能夠包含被擦除區域的頻寬,現在一般會推薦PAE技術。總而言之,擦除時間在新的NAND製程技術上將會
增加4-5ms。
關於擦除演算法後面會盡量用一章來專門解釋。
邏輯組織架構:
NAND儲存器是一種特有的方式進行儲存資料的,從圖2.7我們可以看到,一個NAND是被分為多個block和page
的。一個block是最小的擦除單元,任何一個block都含有多個page,一個block所含page的數目一般是16的倍數
(比如64或者是128)。一個page是讀寫的最小定址單元,每一個page又是有主區域和空閒區域組成(見圖2.8)
主區域的大小可以從4KB到8KB到16KB。而空閒區域則是被用來做ECC、系統指標;每一個4KB的主區域大概有幾百
bytes的空閒區域。
每一次我們想要對一塊NAND執行什麼操作的時候,我們就必須首先觸發我們想要操作的區域的地址。這個
地址分為行地址和列地址。行地址表示定址的頁,列地址表示定址的頁裡面具體的byte。當行地址和列地址都
被要求了,這個時候列地址會首先給出。每一個地址週期是8bits。第一個週期內包含了LSB。行列地址定址不
能夠在同一時間進行。
行地址識別操作需要的block和page,而page地址則佔用了LSB.
Pinout:
NAND儲存器和外部通訊是靠引腳(見圖2.10),這些引腳是由Command Interface來進行測定記錄的。
Command Interface的作用就是用來解釋在某一時刻對NAND的操作。
CE#: 晶片使能訊號,輸入“1”晶片進入stand-by態,否則是“0”。
R/B#: Ready/Busy訊號,輸出訊號用於指示目標態,當是低的時候表示NAND有操作正在進行。
RE#: 讀使能訊號,輸入訊號用來使能資料串的輸出。
CLE: 命令鎖閉使能,輸入訊號被host端用來表示 匯流排週期現在正用來輸入命令的。
ALE: 地址鎖閉使能,輸入訊號被host端用來表示 匯流排週期現在正用來輸入地址的。
WE#: 寫使能,輸入訊號控制對輸入資料的鎖/開。資料、命令和地址會在WE#的上升沿被鎖住。
WP#: 防寫,輸入訊號被用於停止對NAND的寫和擦除操作。
DQ<7:0>: 用於輸入/輸出資料。