【電腦科普】現行儲存界的王者 NAND Flash

作者 | 發布日期 2016 年 03 月 19 日 12:00 | 分類 手機 , 晶片 , 科技教育 follow us in feedly

NAND Flash,做為現行固態硬碟以及手機儲存空間的主流技術,它有高速傳輸以及抗震的優點,使其成為現行行動裝置的市場佔有者。然而,它究竟是怎麼運作的?市場上常聽到的 SLC、MLC 又是什麼東西?以下將一一說明。



便於管理,NAND Flash 分區!

一片 Flash 的內部會被區分成很多塊(block),每一塊再細分成許多頁(page)。我們可以將一片 Flash 比擬成一個書櫃,書櫃內部有很多本筆記本(block),每本筆記本裡都有相同樣數量的頁面(page),有些頁面有資料,有些是空白的,就像是我們手機或筆電的儲存空間一樣,有些地方有資料,有些地方是空的。

Screen Capture 2016-03-10 5.02.21 PM

當我們要在書櫃中找資料時,因為筆記本已經分門別類地放在架上,而且我們有張小抄記得要找的資料在哪一頁。因此,我們可迅速的找出該本筆記本,直接翻到該頁查看資料。當要修改筆記本內部的資料時,則會找一空白的頁面,將修改後的資料寫在此頁上,把原本那一頁塗黑,並記下新的資料在那邊。

在 Flash 內部,有個專門的元件負責管理資料的存放,而 flash 的結構就像是書櫃一樣。因此,我們可以輕易地如上所述那樣尋找資料以及撰寫資料。

因為修改資料是直接塗黑而非擦掉,因此,當其中一本筆記本差不多被塗黑之後,就只能將有用的資料抄至別處,直接換一本新的筆記本。Flash 則是當其中一塊裡面的頁面都差不多不能再寫資料的時候,將有用的資料存到另一塊中,將不能讀寫的那一塊重新充電,讓該塊變得像新的一樣。

 

速看元件結構,揭開 NAND Flash 的面紗

一個 NAND Flash 單元的結構如下圖。和 MOSFET 相比,它多了浮閘(Floating Gate),NAND Flash 便是藉由這個元件儲存資料。

政道

▲ 此為 Flash 的結構,除了 Floating Gate 的部分外,剩下的構造皆和 MOSFET 類似。

政道

▲ 將 Flash 的單元以 NAND 邏輯閘的方式排列,便成為 NAND Flash。(Source:​wikipedia user Cyferz [GFDL or CC-BY-SA-3.0], via Wikimedia Commons

當要將電子存放進浮閘時,便是調整控制閘(Word Line Control Gate)的電壓,讓部分電子以量子穿隧效應躍進浮閘。當電子充滿浮閘時,它便代表 0,當浮閘內部沒有電子時,則代表著 1。一旦要寫資料進入 memroy 中,則將部分元件的電子導出浮閘。這樣便可形成 0 和 1 相間的排列方式,滿足儲存資料的目標。

如果將多個 Flash 單元,以 NAND 邏輯閘的排列方式排列,如右上圖。這類的 Flash 便被稱為 NAND Flash。採用這個排列方式的 Flash 所具備的優點是可以減少 Source Line 和 Bit Line 的數量,在寸土寸金的晶圓上,容納更多的儲存元件。缺點則是讀資料時,一次只能讀取一個元件,不能整條一起讀,以及欲充電時,必須將整條 NAND Flash 單元一起充電。

當我們將多條 NAND Flash 單元擺放在一起,如下圖。便會形成一片 Flash。Page、Block 在硬體中大致是依此方法分配。

政道

▲ 2D NAND Flash 實際製作出來的電路簡圖,由圖中可以明顯得知 Block 是將多個 Page 組合起來而成。(Source:Slideshare

在既存結構下塞入更多資料,MLC

上面介紹的 NAND Flash 被歸類在 SLC(Single Level Cell)中,SLC 是指在一個 NAND Flash 單元中,只儲存一單位的資料,也就是 0 或 1。然而,製程演進的速度跟不上使用者對大容量 Flash memory 的需求。

因此,製造商便想到可以在單一 Flash 單元中,依據電子存放的多寡來分成4個等級。每一個等級代表一種資訊排列,分別為 00、01、10、11。如此,便可在既有的技術下,提供兩倍的儲存容量。採用這種技術的 NAND Flash 便被稱為 MLC(Multi-Level Cell)。

然而,因為 MLC 是將原本元件再多分2級,導致在電子數量的判斷上,將更加嚴格,讓 MLC 對錯誤的容忍度比 SLC 低,壽命也較短。至於現在逐漸在市場出現的 TLC(Triple-Level Cell),則是在一個 Flash 單元中分成 8 個等級,分別為 000、001、010、011、100、101、110、111。可想而知,TLC 的壽命必定小於 MLC。

 

NAND Flash 的壽命,讀寫次數上限

NAND Flash 會有壽命是因為在寫資料的時候,需要施加較高的電壓,將電子強行躍過絕緣體,以進入浮閘,或離開浮閘。每次執行這個步驟時,都會對絕緣體層造成傷害。漸漸的,絕緣體層將失去隔絕電子的能力,使浮閘無法再保存資料。

此外,大多數的使用者會頻繁的使用部分程式,電腦在讀寫資料的時候將無法平均的讀寫整片記憶體,而是頻繁的使用特定幾塊(block)。為了避免特定幾塊被迅速的使用而導致記憶體容量下降,製造商會再加上控制器,以變換定址的方式,平衡每一塊的使用次數,讓 NAND Flash 有更長的壽命。

因為有控制器在監控記憶體的使用情形,目前已經不需要太擔心 NAND Flash 的壽命,只要硬碟不要裝滿資料,留有部分的空間做平衡讀寫,基本上再換新電腦前,硬碟都不會有壞掉的問題。

在考慮傳輸速度以及單位儲存空間的價錢。現在以 NAND Flash 為核心的 SSD 逐漸成為主流,開始侵蝕傳統硬碟的市場,稱 NAND Flash 為現行儲存界的王者,相當合適。

(首圖來源:Flickr/Intel Free Press CC BY 2.0) 

發表迴響