上一回,我們聊完了SPI介面的NOR Flash記憶體,這一次我們要進入一個有點複雜而且有點混亂的世界:SD/MMC/eMMC。
不管是SD還是MMC/eMMC,它們其實都是帶有控制器的NAND Flash。我們在說明Flash記憶體的工作原理時,有講過因為結構和讀寫原理的關係,NAND Flash 的可靠度先天就比 NOR Flash要差。
NAND Flash在讀取時,需要打開一整排的cell電晶體,但目的只是為了感應其中一顆有沒有導通,因此很容易造成floating gate中儲存的電荷受到干擾,而影響儲存內容的正確性,但結構上NAND Flash的密度就是遠高於NOR Flash,因此大容量的儲存應用幾乎都是 NAND Flash的天下。
為了克服 NAND Flash先天可靠度較差、容易出錯的特性,通常不會直接使用它,而必須搭配一個控制器,幫忙做錯誤偵測、錯誤校正、寫入壽命管理等工作。
NAND Flash 的濫觴
在正式進入 SD/MMC/eMMC 的世界之前,我們先來看看 NAND Flash儲存媒體的濫觴:SmartMedia。
(圖片來源:Bird 提供)
年紀稍長的讀者對這種記憶卡可能還有點印象,在SD卡攻佔全世界的數位相機市場之前,它可能是最常用的數位相機儲存媒體,巔峰時期有將近50%的市占率。
SmartMedia是 Toshiba 在掌握了 NAND flash 的量產技術後,於 1995 年推出的可插拔記憶體產品。1996 年,Toshiba 與當時的數位相機大頭:Fuji、Olympus 以及電玩巨擘 Sega,聯合成立了 SmartMedia 的標準化組織:SSFDC Forum。SSFDC 的意思是 Solid-state Floopy Disk Card,嗯,你沒聽錯,就是固態軟碟的意思(年紀稍小一點的讀者可能連機械式硬碟都沒看過了,更不用說軟碟),但這在當時確實是一大突破。
SmartMedia 只有 0.76 mm 厚,確實比當年主流的 3.5 吋軟碟片要薄得多,也小得多(最早的 SmartMedia 容量從 2M Bytes 開始,也跟軟碟片差不多),當年甚至有做成 3.5 吋軟碟片形狀的 SmartMedia 讀卡機:你可以把 SmartMedia 裝進這個讀卡機,再把它放進 3.5 吋的磁碟機中讀取。在那個還沒有 USB,且 serial port 只有 115.2 Kbps 的年代,這樣子的讀取技術其實相當有創意,即使讀一張 8M Bytes 的卡可能需要花 5 分鐘以上。
SmartMedia本人其實就是一顆長得扁扁的、經過特殊封裝、將接腳露出來的NAND Flash晶片,它沒有控制器。咦,我們前面不是才說過,NAND Flash需要控制器來幫忙cover一些它先天特性不佳的問題嘛?
對,但是當初為了成本的考量,Toshiba決定不在SmartMedia裡面放NAND Flash的控制器,而是把這些功能交由使用SmartMedia的裝置來處理。這對日後的應用造成了一些始料未及的問題。
SmartMedia的介面共有22支腳,基本上是個parallel的介面,以D0-D7 8個bit來傳輸指令和資料,而且它沒有clock訊號,仍是非同步的邏輯介面,最快的傳輸速度大概是每秒2M Bytes。SmartMedia還分成3.3V和5V兩種,卡片的外型略有不同,裝置可以藉由卡片的外型來判斷該用5V還是3.3V的介面去驅動它(由於它已經是歷史了,細節我們就不多提)。
不過關於SmartMedia儲存格式的細節,倒是值得我們細究,因為從這裡可以看出很多NAND Flash的特性。
SmartMedia的儲存格式
SmartMedia跟所有的Flash memory 一樣,可以部分抹除也可以部分寫入,而且寫入的單位比抹除的單位要小。在SmartMedia中,抹除的單位叫block,一次最少要抹掉一個block,而寫入的單位是page,不管讀或寫的單位都是page。
1MB和2MB的SmartMedia,page的大小是256 Bytes,4 MB以上的SmartMedia,page的大小是512 Bytes,每一個page除了256/512 Bytes的大小之外,還會搭配一小塊額外的空間,叫做redundant section,或者叫做OOB(out of band)area。
只需不到短短一分鐘...
輸入您的信箱與ID註冊即可享有一切福利!
會員福利
免費電子報
會員搶先看
主題訂閱
好文收藏