作者:Bird
Flash memory 因為斷電後可以保存資料、可重複燒寫的特性,已經成為現今電子產品中不可或缺的零件,而且隨著半導體技術的進步,Flash memory 的密度、容量、存取速度都進步神速,以至於 SSD 已經取代了幾乎所有筆記型電腦上的傳統機械式硬碟。
接下來這個系列的文章,我想要探討一下 Flash memory 的原理、技術,以及在實作上使用它們的一些技巧。
分類
其實 Flash memory 並沒有一個相當正規化的分類,而且除了常常聽到的 NAND/NOR flash 分類之外,還有另一個也很常使用、斷電後可以保存內容的可讀寫記憶體 EEPROM。
不過一般認為的分類是這樣:EEPROM 可以以 byte(或是 word,看它的儲存單位寬度)為單位抹除、燒錄,但 Flash memory 必須以區塊(block) 為單位抹除、燒錄,而這兩種記憶體因為斷電後資料仍能保存的特性,有時候又被統稱為非揮發性記憶體(Non-Volatile Memory,NVM)。
除了技術上不同的分類外,用來存取記憶體的介面也是一個分類的方式。早期的 Flash memory 或是 EEPROM 使用與 ROM、EPROM 相容的並列式介面,需要很多訊號才能操作,後來有了如 I2C、SPI 等串列式介面,讓存取 EEPROM 或 Flash memory 所需要的訊號數量大幅減少,尤其 SPI 的速度相對來說夠快,可以快速存取大容量記憶體中的愛了,因此 8 支腳包裝的 SPI 介面 Flash memory 已經成為如今用量最大的 Flash memory 之一。許多 SoC 都選擇使用 SPI Flash memory 來儲存 Firmware,甚至因為 SPI 介面夠快,可以直接在 Flash memory 上執行 Firmware,而不需要將 Firmware 載入到 RAM 中再執行。
在開始之前,我們先聊一些歷史故事。
PROM
最早的可寫入式 Non-Volatile Memory 是一種叫 PROM 的元件,意思是 programmable ROM,但它只能寫一次,寫完之後內容就不能再改變。PROM 的原理很簡單,它是利用類似燒斷保險絲的方式來讓使用者燒錄內容,它裡面的每一個 bit 都有一個類似保險絲的元件,出廠時每一個 bit 裡的保險絲都是好的、導通的(我們假設當保險絲導通時,bit 的內容是 1)。
當零件送到使用者手上後,使用者可以遵照一些預先設計好的燒錄程序,用較高的電壓(因此在阻抗固定的情況下會產生較大的電流、產生較大的功率)將特定 bit 的保險絲「燒斷」。保險絲一旦燒斷,往後再讀取這個 bit 時,就會讀到 0。
因為保險絲被燒斷之後就不能再恢復了,因此 PROM 只能燒錄一次,嚴格來說,是每個 bit 只能燒錄一次,這種只能燒錄一次的特性,很適合用來儲存早期電腦的 Firmware 或是那些出廠之後就不會再改變的內容,而類似的技術,在現今的半導體產品中也很常使用到。
很多 SoC 或是 MCU 中有所謂的 OTP(one-time programmable)區塊,通常用來儲存產品序號、加密用金鑰、或是一些設定後就不能再改變的狀態,用的就是類似的技術,也因此在這些相關功能的說明文件中,除了 OTP 外,偶爾也會看到「fuse」這個詞,指的就是這些只能被燒斷一次的保險絲。
EPROM
60 年代貝爾實驗室發展出金屬氧化物半導體場效應電晶體 MOSFET,可以利用閘極上的電壓控制電晶體中通道的開閉,而且閘極與通道之間有一層絕緣的金屬氧化物,因此閘極不會有任何電流流向通道,而是利用閘極上的電荷所產生的電場來控制通道的產生與關閉。
雖然閘極與通道是絕緣的,但在一些特定的狀況下(電壓夠高、電場夠強…),電荷有機會穿過絕緣的金屬氧化物層進入閘極,於是在 1967 年,貝爾實驗室的 Dawon Kahng 和 Simon Min Sze 提出了浮動閘極(floating gate)的概念。
浮動閘極是一個與外界完全絕緣的閘極,沒有任何的電路相連,一旦電荷進入浮動閘極,它就很難逃脫,會一直儲存在浮動閘極裡。
EPROM 中的 MOSFET 結構是這樣的:
浮動閘極上的電荷有無,會影響控制閘極對電晶體的通道控制功能,因此就可以用浮動閘極上的電荷來「記憶」狀態。
要寫入資料時,對控制閘極施加夠高的電壓,就能讓數量足夠的電子藉由「量子穿隧效應」穿過絕緣層,從控制閘極進入浮動閘極,而當這個電場消失後,已經進入浮動閘極的電子就會被困在浮動閘極中達十年甚至十多年之久。
要清除資料時,則利用紫外線照射晶片。紫外線中的高能光子會使得絕緣層材料離子化而導電,讓浮動閘極中的電子有機會洩漏出來,因而可以清除浮動閘極中的電荷;由於紫外線是照射整顆晶片,所以全部的浮動閘極都會被一次清除,整個晶片上的資料全部都會被清除。
為了要讓紫外線可以照射晶片來清除資料,EPROM 的封裝上必須開個可以讓紫外線照進去的窗戶,而且因為紫外線只能穿過石英玻璃而不能穿過一般玻璃,因此這個窗戶必須用價格較高的石英玻璃製作。
雖然 EPROM 要清除資料時,需要將晶片拔出來放到紫外線下照射,相當麻煩,但至少它是第一個可以重複抹除再寫入資料的 non-volatile 記憶體產品,在早期的微電腦系統開發時代扮演相當重要的角色,老一輩的人可能都還會懷念當年要把 EEPROM IC 從電路板上拔下來,放到紫外線燈下照射的儀式感。
1978 年時,在原有的 EPROM 基礎下,利用了更薄的閘極氧化層,讓電子不僅可以被注入浮動閘極,也可以從浮動閘極中被洩漏出來,做出了可以利用電子方法抹除的 Non-Volatile Memory,這就是 EEPROM,現今所有 Non-Volatile Memory 的濫觴。
小結
這一回我們說明了 Non-Volatile Memory 的發展過程:從單次可寫入的 PROM,到可利用紫外線抹除再寫入的 EPROM,再到可以利用電子方法抹除再寫入的 EEPROM。
下一回我們會繼續說明 EEPROM 的原理,與 Flash memory 的發展。
(責任編輯:賴佩萱)
- 【Maker電子學】Flash 記憶體的原理與應用—PART14 - 2024/11/01
- 【Maker電子學】Flash 記憶體的原理與應用—PART13 - 2024/10/22
- 【Maker電子學】Flash 記憶體的原理與應用—PART12 - 2024/09/26