ChamberPlus System Level Studio

  首頁 | Contact to us

 

News
Products
FAQ
Technicality
Links
OldNews

互動區:

留下您的足跡

想討論嗎?

 

                                                            簡介 NAND Flash 及應用
------------------------------------------------------------------------------------------------------------------------------------------------

我就用 2005/12/14 電子時報的標題做為楔子:

『三星、英特爾混合式Flash硬碟蓄勢待發微軟Windows Vista扮推手 明年起橫掃低容量儲存市場』

來講一下NAND Flash 。

        以NAND Flash 的應用來說,他最終到會不會取代硬碟,還很難說,但的確,他在消費性市場或可攜性產品方面真是銳不可當。也將會在嵌入式或單晶片應用帶進一個新領域。

        以前單晶片都是應用在一些小系統,可能只是拿來寫寫 I/O,簡單的 計算或甚至播播一小段合成音樂等,但NAND Flash 克服了許多單晶片儲存資料的窘境。

        以前您的單晶片程式,可能用serial EEPROM 儲存一些設定值,或用EEPROM 建了一個很大的 Table 只是為了 Show 一段很漂亮的開機畫面∼∼又要壓縮或解壓縮∼但現在 data NAND Flash 出現可解決許多這類問題。

        舉一個笑話來說,以前,甚至以現在來說:所謂語音IC,幾乎是買ROM 送語音解碼IC,為什麼,因為現在的語音IC的解碼IC的技術,無論是運算技巧或IC設計與製造來說,都一日千里。幾乎依循 Moore's Law來實現,(就是每隔一段時間IC面積就縮小一倍)但語音資料,因為 ROM的特性,及客戶的要求是越來越長秒數播放,ROM所佔IC的比例就越來越大了。而且很討厭的是,要開這類的IC都得下Mask Code
(就是IC製造過程中,就得把程式碼及語音資料燒死在IC內部),這代表著,要冒著很大風險,及庫存壓力。

        再舉一個應用的例子,也是跟MP3 系統有關的,現在的MP3 機器,除了很炫的外觀外,操作上有一個很重要的規格,就是要支援多國語言,像西方國家語言還好,英文字母只有26 字,外加一些特殊字元也不多,所以,在程式中用ROM Table 就可以解決,但是像東方語系,幾乎就很難了,還來個日文、韓文、簡體中文及繁體中文等∼∼不得了,這些字幾乎是用畫的畫在顯示玻璃上。這些文字,就算您只用12x12 的字型,把常用的字拿出來,不多,以中文(簡繁都一樣)來說:就要 250 KBytes 左右
的長度。我想沒有人會笨到用 Program ROM 去建 Table 吧!但您知道嗎?250 KBytes 對NAND Flash 來說:只是九牛一毛而已。那更不用說要有多炫的開機畫面,甚至這個畫面是動畫方式∼又可以客至化的隨時下載更新及調整。


        現在這種可以隨時更新資料內容,又有儲存能力的NAND Flash ,幾乎拯救了大家,當然還有許多應用∼∼等大家回饋到討論版上!!

        我先來講幾個NAND Flash 的技術重點,

        第一:他不是 serial Interface,所以,會用掉您許多I/O Pins,而且他不能像一般Serial EEPROM 一般 一個Byte,一個Byte 讀,;而是一個Page ! 以前(就是 1Gbit size 以前,像SAMSUNG 的K9F6408/K9F5608/K9F2808/K9F1208... etc)一個 Page 是 512 Bytes ,跟DOS File 格式中的 Sector 一樣。現在的 NAND Flash 是 2048 Bytes。當然每一個Page 後面都還一段 16Bytes 的 Redunant area (512 Bytes/Page 為例),這個Redundant area 這來存什麼?!就是拿來存 ECC (Error Correcting Code), 及這個Page 的使用狀態等,沒關係,因為每 32 Page 會再構成一個 Block(512 Bytes/Page 為例), 所以,您只要處理每一個 Block 的第一個Page 就可以知道這個Block 的使用狀態了,因為NAND FLASH 在使用上,他有資料遺失風險,說的就是NAND Flash 會一個 Block 一個 Block 壞掉。真是浪費!
(其實硬碟也是有這樣的問題。)

(註:解釋一下ECC,照規格書來說:是用來修正每一個 Page 的資料內容,照他的說法是 1 Bit Error Correction ,2 Bits Error Detection ! 我個人覺得是廢話,第一:1 Bit Correction, 用8051 軟體去解,會解死了∼算都算不完∼!第二:2 Bits Error Detection,知道錯,您又能怎樣?又不知道錯在哪一個Bytes 中的哪一個bit!?不是廢話是什麼?! 那您又問我:那超過 2 Bits 呢?哈∼哈∼規格只能跟您說對不起了!
更是廢話一句!所以,NAND Flash 不要拿來存重要資料,或要有多備份幾份 的心理準備∼∼所以,他拿來存聲音及影像是再好不過的!但這部分是可以利用軟體的力量克服的,也有越來越多家公司投入這個領域,我想楔子新聞中的微軟也是看準這塊市場需求吧。)

        第二:他也不像我們在用SRAM 那樣,只要Read 或Write 訊號就好,他是要下命令的

        再來:最不方便的是,因為NAND Flash 的存取,有一個最重要的致命傷:(至少對我們做系統的來說),他只能 Page Write,及 Block Erase !天啊∼∼為什麼這樣!!結果是:您一次刪 32 Page (512 Bytes/Page為例)還好,但是萬一不是,您每一次要刪除每一個Page ,您就要先將 整個Block 搬到新的 Block address ,再一個Page 、一個Page搬過去∼這中間將您要刪除的Page 留著∼再把整個原來的Block 刪除!可憐的您,此時您的Block address 已經順序大亂了∼所以, 做NAND Flash 存取技術就要建這樣一個 Block Address Table !然後 1024 block 會構成 1 個Zone !每一顆 NAND Falsh 大小就是 依據這個Zone 數量來決定容量!


        簡單的一個系統結論:您要用單晶片來讀寫 NAND Flash 會碰到什麼問題!?第一您要有足夠的記憶體,足以一次讀寫一個Page !(512 Bytes 至少啊!)要有能建 Block Address Table 的記憶體。 當然有些人是用2 KBytes 啊!但我所知也有些做隨身碟的IC設計公司,是用比較小的memory buffer!要不要做 硬體的ECC 計算∼我個人覺得是見仁見智啊∼

        來講一個算是笑話好了:國際有某一家有名記憶卡的公司,推出新的記憶IC,號稱容量更大,成本更低的 Flash -- 啊∼就是MLCNAND Flash !(內行人知道我在講哪一家了!)他是 4 Bits ECC! 有他公司的業務人員大力推銷MLC NAND Flash 多好多好∼還用一些範例解釋他們應用的好處....我們突然問他說:您們有沒有用 8051 試過∼他當場?了一下的回答說:我們都是用 DSP 或32 bits ARM 耶∼ 這下換我們傻眼了∼∼這就說明了做NAND Flash 技術的挑戰性了!

        但若您真的需要用他來儲存資料的話,基本上,還蠻不錯的。尤其是一個完全封閉,不讓別人來讀資料的話,像我開宗明義所說:用來存開機畫面或一段語音資料。或是一些大型的資料庫。其實,使用上您可以很簡單的作存取功能。相對來說,您若希望作到像隨身碟那樣的資料流通方便性的話,我的建議是:還不如作讀卡功能,可能還比較快一點。(記憶卡裡面也是NAND Flash + 控制IC)

        您想想,若一棵單晶片若能存取 100~200 MBytes 的資料,您可以做多少事啊?

        但我相信當越來越多家半導體廠支援生產NAND FLASH之後,在單晶片應用方面,您就會看到越來越的產品支援了。

 

首頁 | News | Products | FAQ | Technicality | Links | OldNews

Telephone : 886-3-5439918    FAX : 886-3-5437632

Copyright(C) 2005 . ChamberPlus System Level Studio All rights reserved.  Last Update: 2008年01月18日。