Flash Memory從結(jié)構(gòu)上大體上可以分為AND、NAND、NOR和DINOR等幾種,現(xiàn)在市場(chǎng)上兩種主要的Flash Memory技術(shù)是NOR和NAND結(jié)構(gòu)。
Intel于1988年首先開發(fā)出NOR flash技術(shù),徹底改變了原先由EPROM和EEPROM一統(tǒng)天下的局面。緊接著,1989年,東芝公司發(fā)表了NAND flash結(jié)構(gòu),強(qiáng)調(diào)降低每比特的成本,更高的性能,并且象磁盤一樣可以通過接口輕松升級(jí)。
Nor Flash器件以及NAND Flash器件都是采用浮柵器件,在寫入之前必須先行擦除。浮柵器件也是利用電場(chǎng)的效應(yīng)來控制源極與漏極之間的通斷,柵極的電流消耗極小,不同的是場(chǎng)效應(yīng)管為單柵極結(jié)構(gòu),而FLASH為雙柵極結(jié)構(gòu),在柵極與硅襯底之間增加了一個(gè)浮置柵極。
浮置柵極是由氮化物夾在兩層二氧化硅材料之間構(gòu)成的,中間的氮化物就是可以存儲(chǔ)電荷的電荷勢(shì)阱。上下兩層氧化物的厚度大于50埃,以避免發(fā)生擊穿。
一 存儲(chǔ)單元工作原理
cc1. NOR存儲(chǔ)單元
快閃存儲(chǔ)器的擦寫技術(shù)來源于溝道熱電子發(fā)射(Channel Hot-Electron Injection)與隧道效應(yīng)(Fowlerordheim)。
NOR結(jié)構(gòu)的Flash memory主要用于存儲(chǔ)指令代碼及小容量數(shù)據(jù)的產(chǎn)品中,目前的單片最高容量為512M,NOR Flash memory產(chǎn)品的主要領(lǐng)導(dǎo)者為Intel公司、AMD公司、Fujitsu公司、ST Microelectronics和公司。
ccNOR結(jié)構(gòu)的Flash memory采用NOR SGC(Stacked Gate Cell)存儲(chǔ)單元,是從EPROM結(jié)構(gòu)直接發(fā)展而來,非常成熟的結(jié)構(gòu),采用了簡(jiǎn)單的堆疊柵構(gòu)造。圖1是其結(jié)構(gòu)原理圖。溝道熱電子發(fā)射(CHEI)器件的浮柵的充電(寫)是通過傳統(tǒng)的溝道熱電子發(fā)射(CHEI)在漏端附近完成的;浮柵的放電(擦除)在源端通過隧道氧化層的隧道效應(yīng)來實(shí)現(xiàn)。
cccc cc
cc這種結(jié)構(gòu)單元面積小,同EPROM的面積相當(dāng),編程(寫)時(shí)間短,在10μs左右,源漏結(jié)可以分開優(yōu)化,漏結(jié)優(yōu)化溝道熱電子發(fā)射,源結(jié)優(yōu)化隧道效應(yīng),采用了自對(duì)準(zhǔn)工藝。
cc隨著制造技術(shù)的進(jìn)步,存儲(chǔ)單元的特征尺寸越來越小,工作電壓降低,帶來的負(fù)面影響是熱電子發(fā)射效率降低,編程時(shí)較難工作于4V漏源電壓下。為提高熱電子發(fā)射效率,需要對(duì)源結(jié)、漏結(jié)、溝道摻雜分布進(jìn)行優(yōu)化1,整體工藝較復(fù)雜,編程電流也較大,大約400μA/bit(0.5μm)技術(shù)。工藝流程以0.25μm-0.35μm產(chǎn)品為例,采用DPDM制造的快閃存儲(chǔ)器需要23塊Mask版,進(jìn)行27次光刻。
cc2. 隧道效應(yīng)(Fowlerordheim)存儲(chǔ)單元
cc隧道效應(yīng)存儲(chǔ)單元是目前快速發(fā)展的快閃存儲(chǔ)器生產(chǎn)技術(shù),在快閃存儲(chǔ)器中一般組成NAND存儲(chǔ)陣列,單元面積小,其工藝較簡(jiǎn)單,容量大,成本低,適用于低價(jià)格、高容量、速度要求不高的Flash memory客戶用于數(shù)據(jù)存儲(chǔ);在MP3、PAD、數(shù)碼相機(jī)、2.5G及3G無線系統(tǒng)中得到了廣泛的應(yīng)用。
cc圖2是隧道效應(yīng)存儲(chǔ)單元結(jié)構(gòu)原理圖,其編程、擦除通過隧道氧化層的隧道效應(yīng)來實(shí)現(xiàn),類似EEPROM,其優(yōu)點(diǎn)是在編程時(shí)可以工作在2.5V的源漏電壓下,功耗低,非常適合非接觸式IC卡,同時(shí)NAND陣列的單元面積是NOR SGC單元面積的二分之一,適合于大容量集成。
cc
cc隧道效應(yīng)存儲(chǔ)單元擦寫工作電壓高,一般要求達(dá)到16V-20V,對(duì)器件、電路的設(shè)計(jì)要求高,編程(寫)時(shí)間較長(zhǎng),在50μs-100μs,不適合字節(jié)編程,適用于大容量頁(yè)編程,像EEPROM一樣,編程時(shí),加在隧道氧化層上電場(chǎng)強(qiáng)度高,存在SILC(stress induced leakage currents)效應(yīng),對(duì)工藝要求高。
3. 數(shù)據(jù)讀取原理
對(duì)于NOR以及NAND FLASH Memory,向浮柵中注入電荷表示寫入了‘0’,沒有注入電荷表示‘1’,所以對(duì)FLASH清除數(shù)據(jù)是寫1的,這與硬盤正好相反;
對(duì)于浮柵中有電荷的單元來說,由于浮柵的感應(yīng)作用,在源極和漏極之間將形成帶正電的空間電荷區(qū),這時(shí)無論控制極上有沒有施加偏置電壓,晶體管都將處于導(dǎo)通狀態(tài)。而對(duì)于浮柵中沒有電荷的晶體管來說只有當(dāng)控制極上施加有適當(dāng)?shù)钠秒妷海诠杌鶎由细袘?yīng)出電荷,源極和漏極才能導(dǎo)通,也就是說在沒有給控制極施加偏置電壓時(shí),晶體管是截止的。
如果晶體管的源極接地而漏極接位線,在無偏置電壓的情況下,檢測(cè)晶體管的導(dǎo)通狀態(tài)就可以獲得存儲(chǔ)單元中的數(shù)據(jù),如果位線上的電平為低,說明晶體管處于導(dǎo)通狀態(tài),讀取的數(shù)據(jù)為0,如果位線上為高電平,則說明晶體管處于截止?fàn)顟B(tài),讀取的數(shù)據(jù)為1。由于控制柵極在讀取數(shù)據(jù)的過程中施加的電壓較小或根本不施加電壓,不足以改變浮置柵極中原有的電荷量,所以讀取操作不會(huì)改變FLASH中原有的數(shù)據(jù)。
二 連接和編址方式
兩種FLASH具有相同的存儲(chǔ)單元,工作原理也一樣,為了縮短存取時(shí)間并不是對(duì)每個(gè)單元進(jìn)行單獨(dú)的存取操作,而是對(duì)一定數(shù)量的存取單元進(jìn)行集體操作,NAND型FLASH各存儲(chǔ)單元之間是串聯(lián)的,而NOR型FLASH各單元之間是并聯(lián)的,為了對(duì)全部的存儲(chǔ)單元有效管理,必須對(duì)存儲(chǔ)單元進(jìn)行統(tǒng)一編址。
1. NOR Flash連接
NOR Flash的每個(gè)存儲(chǔ)單元以并聯(lián)的方式連接到位線,方便對(duì)每一位進(jìn)行隨機(jī)存??;具有獨(dú)立的數(shù)據(jù)線和地址線,可以實(shí)現(xiàn)隨機(jī)存取;縮短了FLASH對(duì)處理器指令的執(zhí)行時(shí)間。
NOR Flash可以單字節(jié)或單字編程,但不能單字節(jié)擦除,必須以塊為單位或?qū)φ瑘?zhí)行擦除操作,在對(duì)存儲(chǔ)器進(jìn)行重新編程之前需要對(duì)塊或整片進(jìn)行預(yù)編程和擦除操作,但是擦除和編程速度較慢。
2. NAND Flash的結(jié)構(gòu)
NAND Flash 的數(shù)據(jù)是以bit的方式保存在memory cell,一般來說,一個(gè)cell 中只能存儲(chǔ)一個(gè)bit。這些cell 以8個(gè)或者16個(gè)為單位,連成bit line,形成所謂的byte(x8)/word(x16),這就是NAND Device的位寬。這些Line會(huì)再組成Page,若干個(gè)Page構(gòu)成一個(gè)Block,一個(gè)NAND Flash存儲(chǔ)器包含若干個(gè)Block。
三星的K9F1208U0M每頁(yè)528Bytes(512byte(Main Area)+16byte(Spare Area),參見說明1),每32個(gè)page形成一個(gè)Block(32*528B),具有4096個(gè)block,故總?cè)萘繛?096*(32*528B)=66MB,但是其中的2MB是用來保存ECC校驗(yàn)碼等額外數(shù)據(jù)的,故實(shí)際中可使用的為64MB。
說明1:NAND閃存的每一頁(yè)都有8B(頁(yè)長(zhǎng)度 256B)或者16B(頁(yè)長(zhǎng)度為512B)的OOB(Out Of Band)數(shù)據(jù)區(qū),用來存放ECC(Error Checking &Correction)、ECC有效標(biāo)志、壞塊標(biāo)志等。
NAND flash以頁(yè)為單位讀寫數(shù)據(jù),而以塊為單位擦除數(shù)據(jù)。按照這樣的組織方式可以形成所謂的三類地址:
Column Address:Starting Address of the Register. 翻成中文為列地址,地址的低8位
Page Address :頁(yè)地址
Block Address :塊地址
對(duì)于NAND Flash來講,地址和命令只能在I/O[7:0]上傳遞,數(shù)據(jù)寬度是8位。
3. NAND Flash尋址舉例
512byte需要9bit來表示,對(duì)于528byte系列的NAND,這512byte被分成1st half Page Register和2nd half Page Register,各自的訪問由地址指針命令來選擇,A[7:0]就是所謂的column address(列地址),在進(jìn)行擦除操作時(shí)不需要它,因?yàn)橐詨K為單位擦除。32個(gè)page需要5bit來表示,占用A[13:9],即該page在塊內(nèi)的相對(duì)地址。A8這一位地址被用來設(shè)置512byte的1st half page還是2nd half page,0表示1st,1表示2nd。Block的地址是由A14以上的bit來表示。
例如64MB(512Mb)的NAND flash(實(shí)際中由于存在spare area,故都大于這個(gè)值),共4096block,因此,需要12個(gè)bit來表示,即A[25:14],如果是128MB(1Gbit) 的528byte/page的NAND Flash,則block address用A[26:14]表示。而page address就是blcok address|page address in block。NAND Flash 的地址表示為: Block Address|Page Address in block|halfpage pointer|Column Address 地址傳送順序是Column Address,Page Address,Block Address。
由于地址只能在I/O[7:0]上傳遞,因此,必須采用移位的方式進(jìn)行。 例如,對(duì)于512Mbit x8的NAND flash,地址范圍是0~0x3FF_FFFF,只要是這個(gè)范圍內(nèi)的數(shù)值表示的地址都是有效的。 以NAND_ADDR 為例:
第1 步是傳遞column address,就是NAND_ADDR[7:0],不需移位即可傳遞到I/O[7:0]上,而halfpage pointer即A8 是由操作指令決定的,即指令決定在哪個(gè)halfpage 上進(jìn)行讀寫,而真正的A8 的值是不需程序員關(guān)心的。
第2 步就是將NAND_ADDR 右移9位,將NAND_ADDR[16:9]傳到I/O[7:0]上;
第3 步將NAND_ADDR[24:17]放到I/O上;
第4步需要將NAND_ADDR[25]放到I/O上;
因此,整個(gè)地址傳遞過程需要4 步才能完成,即4-step addressing。 如果NAND Flash 的容量是32MB(256Mbit)以下,那么,block adress最高位只到bit24,因此尋址只需要3步。
下面,就x16 的NAND flash 器件稍微進(jìn)行一下說明。 由于一個(gè)page 的main area 的容量為256word,仍相當(dāng)于512byte。但是,這個(gè)時(shí)候沒有所謂的1st halfpage 和2nd halfpage 之分了,所以,bit8就變得沒有意義了,也就是這個(gè)時(shí)候 A8 完全不用管,地址傳遞仍然和x8 器件相同。除了,這一點(diǎn)之外,x16 的NAND使用方法和 x8 的使用方法完全相同。
三 NAND Flash和NOR Flash的比較
如果只是用來存儲(chǔ)少量的代碼,這時(shí)NOR閃存更適合一些。而NAND則是高數(shù)據(jù)存儲(chǔ)密度的理想解決方案。
NOR的特點(diǎn)是芯片內(nèi)執(zhí)行(XIP, eXecute In Place),這樣應(yīng)用程序可以直接在flash閃存內(nèi)運(yùn)行,不必再把代碼讀到系統(tǒng)RAM中。NOR的傳輸效率很高,在1~4MB的小容量時(shí)具有很高的成本效益,但是很低的寫入和擦除速度大大影響了它的性能。
NAND結(jié)構(gòu)能提供極高的單元密度,可以達(dá)到高存儲(chǔ)密度,并且寫入和擦除的速度也很快。應(yīng)用NAND的困難在于flash的管理和需要特殊的系統(tǒng)接口。
1.性能比較
flash閃存是非易失存儲(chǔ)器,可以對(duì)稱為塊的存儲(chǔ)器單元塊進(jìn)行擦寫和再編程。任何flash器件的寫入操作只能在空或已擦除的單元內(nèi)進(jìn)行,所以大多數(shù)情況下,在進(jìn)行寫入操作之前必須先執(zhí)行擦除。NAND器件執(zhí)行擦除操作是十分簡(jiǎn)單的,而NOR則要求在進(jìn)行擦除前先要將目標(biāo)塊內(nèi)所有的位都寫為0。
由于擦除NOR器件時(shí)是以64~128KB的塊進(jìn)行的,執(zhí)行一個(gè)寫入/擦除操作的時(shí)間為5s,與此相反,擦除NAND器件是以8~32KB的塊進(jìn)行的,執(zhí)行相同的操作最多只需要4ms。
執(zhí)行擦除時(shí)塊尺寸的不同進(jìn)一步拉大了NOR和NADN之間的性能差距,統(tǒng)計(jì)表明,對(duì)于給定的一套寫入操作(尤其是更新小文件時(shí)),更多的擦除操作必須在基于NOR的單元中進(jìn)行。這樣,當(dāng)選擇存儲(chǔ)解決方案時(shí),設(shè)計(jì)師必須權(quán)衡以下的各項(xiàng)因素。
.NOR的讀速度比NAND稍快一些。
.NAND的寫入速度比NOR快很多。
.NAND的4ms擦除速度遠(yuǎn)比NOR的5s快。
。大多數(shù)寫入操作需要先進(jìn)行擦除操作。
.NAND的擦除單元更小,相應(yīng)的擦除電路更少。
2.接口差別
NOR flash帶有SRAM接口,有足夠的地址引腳來尋址,可以很容易地存取其內(nèi)部的每一個(gè)字節(jié)。
NAND器件使用復(fù)雜的I/O口來串行地存取數(shù)據(jù),各個(gè)產(chǎn)品或廠商的方法可能各不相同。8個(gè)引腳用來傳送控制、地址和數(shù)據(jù)信息(地址總線、數(shù)據(jù)總線復(fù)用)。
NAND讀和寫操作采用512字節(jié)的塊,這一點(diǎn)有點(diǎn)像硬盤管理此類操作,很自然地,基于NAND的存儲(chǔ)器就可以取代硬盤或其他塊設(shè)備。
3.容量和成本
NAND flash的單元尺寸幾乎是NOR器件的一半,由于生產(chǎn)過程更為簡(jiǎn)單,NAND結(jié)構(gòu)可以在給定的模具尺寸內(nèi)提供更高的容量,也就相應(yīng)地降低了價(jià)格。
NOR flash占據(jù)了容量為1~16MB閃存市場(chǎng)的大部分,而NAND flash只是用在8~128MB的產(chǎn)品當(dāng)中,這也說明NOR主要應(yīng)用在代碼存儲(chǔ)介質(zhì)中,NAND適合于數(shù)據(jù)存儲(chǔ),NAND在CompactFlash、Secure Digital、PC Cards和MMC存儲(chǔ)卡市場(chǎng)上所占份額最大。
4.可靠性和耐用性
采用flahs介質(zhì)時(shí)一個(gè)需要重點(diǎn)考慮的問題是可靠性。對(duì)于需要擴(kuò)展MTBF的系統(tǒng)來說,F(xiàn)lash是非常合適的存儲(chǔ)方案??梢詮膲勖陀眯裕?、位交換和壞塊處理三個(gè)方面來比較NOR和NAND的可靠性。壽命(耐用性)在NAND閃存中每個(gè)塊的最大擦寫次數(shù)是一百萬次,而NOR的擦寫次數(shù)是十萬次。NAND存儲(chǔ)器除了具有10比1的塊擦除周期優(yōu)勢(shì),典型的NAND塊尺寸要比NOR器件小8倍,每個(gè)NAND存儲(chǔ)器塊在給定的時(shí)間內(nèi)的刪除次數(shù)要少一些。
?。?)位交換
所有flash器件都受位交換現(xiàn)象的困擾。在某些情況下(很少見,NAND發(fā)生的次數(shù)要比NOR多),一個(gè)比特位會(huì)發(fā)生反轉(zhuǎn)或被報(bào)告反轉(zhuǎn)了。
一位的變化可能不很明顯,但是如果發(fā)生在一個(gè)關(guān)鍵文件上,這個(gè)小小的故障可能導(dǎo)致系統(tǒng)停機(jī)。如果只是報(bào)告有問題,多讀幾次就可能解決了。
當(dāng)然,如果這個(gè)位真的改變了,就必須采用錯(cuò)誤探測(cè)/錯(cuò)誤更正(EDC/ECC)算法。位反轉(zhuǎn)的問題更多見于NAND閃存,NAND的供應(yīng)商建議使用NAND閃存的時(shí)候,同時(shí)使用EDC/ECC算法。
這個(gè)問題對(duì)于用NAND存儲(chǔ)多媒體信息時(shí)倒不是致命的。當(dāng)然,如果用本地存儲(chǔ)設(shè)備來存儲(chǔ)操作系統(tǒng)、配置文件或其他敏感信息時(shí),必須使用EDC/ECC系統(tǒng)以確??煽啃?。
?。?)壞塊處理
NAND器件中的壞塊是隨機(jī)分布的。以前也曾有過消除壞塊的努力,但發(fā)現(xiàn)成品率太低,代價(jià)太高,根本不劃算。
NAND器件需要對(duì)介質(zhì)進(jìn)行初始化掃描以發(fā)現(xiàn)壞塊,并將壞塊標(biāo)記為不可用。在已制成的器件中,如果通過可靠的方法不能進(jìn)行這項(xiàng)處理,將導(dǎo)致高故障率。
5.易于使用
可以非常直接地使用基于NOR的閃存,可以像其他存儲(chǔ)器那樣連接,并可以在上面直接運(yùn)行代碼。
由于需要I/O接口,NAND要復(fù)雜得多。各種NAND器件的存取方法因廠家而異。在使用NAND器件時(shí),必須先寫入驅(qū)動(dòng)程序,才能繼續(xù)執(zhí)行其他操作。向NAND器件寫入信息需要相當(dāng)?shù)募记?,因?yàn)樵O(shè)計(jì)師絕不能向壞塊寫入,這就意味著在NAND器件上自始至終都必須進(jìn)行虛擬映射。
6.軟件支持
當(dāng)討論軟件支持的時(shí)候,應(yīng)該區(qū)別基本的讀/寫/擦操作和高一級(jí)的用于磁盤仿真和閃存管理算法的軟件,包括性能優(yōu)化。
在NOR器件上運(yùn)行代碼不需要任何的軟件支持,在NAND器件上進(jìn)行同樣操作時(shí),通常需要驅(qū)動(dòng)程序,也就是內(nèi)存技術(shù)驅(qū)動(dòng)程序(MTD),NAND和NOR器件在進(jìn)行寫入和擦除操作時(shí)都需要MTD。
使用NOR器件時(shí)所需要的MTD要相對(duì)少一些,許多廠商都提供用于NOR器件的更高級(jí)軟件,這其中包括M-System的TrueFFS驅(qū)動(dòng),該驅(qū)動(dòng)被Wind River System、Microsoft、QNX Software System、Symbian和Intel等廠商所采用。
驅(qū)動(dòng)還用于對(duì)DiskOnChip產(chǎn)品進(jìn)行仿真和NAND閃存的管理,包括糾錯(cuò)、壞塊處理和損耗平衡。(糾正一點(diǎn):NOR擦除時(shí),是全部寫1,不是寫0,而且,NOR FLASH SECTOR擦除時(shí)間視品牌、大小不同而不同,比如,4M FLASH,有的SECTOR擦除時(shí)間為60ms,而有的需要最大6S。)NOR FLASH的主要供應(yīng)商是INTEL ,MICRO等廠商,曾經(jīng)是FLASH的主流產(chǎn)品,但現(xiàn)在被NAND FLASH擠的比較難受。它的優(yōu)點(diǎn)是可以直接從FLASH中運(yùn)行程序,但是工藝復(fù)雜,價(jià)格比較貴。NAND FLASH的主要供應(yīng)商是SAMSUNG和東芝,在油盤、各種存儲(chǔ)卡、MP3播放器里面的都是這種FLASH,由于工藝上的不同,它比NOR FLASH擁有更大存儲(chǔ)容量,而且便宜。但也有缺點(diǎn),就是無法尋址直接運(yùn)行程序,只能存儲(chǔ)數(shù)據(jù)。另外NAND FLASH 非常容易出現(xiàn)壞區(qū),所以需要有校驗(yàn)的算法。在掌上電腦里要使用NAND FLASH 存儲(chǔ)數(shù)據(jù)和程序,但是必須有NOR FLASH來啟動(dòng)。除了SAMSUNG處理器,其他用在掌上電腦的主流處理器還不支持直接由NAND FLASH 啟動(dòng)程序。因此,必須先用一片小的NOR FLASH 啟動(dòng)機(jī)器,在把OS等軟件從NAND FLASH 載入SDRAM中運(yùn)行。
參考資料
1. 嵌入式Flash Memory Cell技術(shù)2. NAND與NOR FLASH的原理與異同
3. NAND Flash和NOR Flash的比較
4. nand flash 原理簡(jiǎn)介
內(nèi)容來自百科網(wǎng)