??個(gè)人主頁(yè): highman110
??作者簡(jiǎn)介:一名硬件工程師,持續(xù)學(xué)習(xí),不斷記錄,保持思考,輸出干貨內(nèi)容
目錄
1 Nand 和Nor的區(qū)別
2 從存儲(chǔ)原理上分析這些區(qū)別的原因
????????1、為什么nor flash的讀取速度比nand flash要稍快?
????????2、為什么nand flash的容量比nor flash更大?
????????3、為什么flash的寫入操作之前,必須要先進(jìn)行擦除?
????????4、為什么nor的擦除速度比nand慢這么多?
????????5、為什么nor flash的可擦除次數(shù)低于nand flash?
????????6、為什么nand flash的寫入速度比nor flash要快?
????????7、為什么NOR flash可以支持XIP,Nand flash不可以?
1 Nand 和Nor的區(qū)別
????????下表是從各個(gè)維度列舉的兩種flash的區(qū)別:
NOR flash |
NAND flash |
|
時(shí)間 |
Intel于1988年首先開發(fā)出NORf1ash技術(shù),徹底改變了原先由EPROM和EEPROM一統(tǒng)天下的局面。 |
1989年,東芝公司發(fā)表了NAND f1ash結(jié)構(gòu),強(qiáng)調(diào)降低每比特的成本,更高的性能,并且象磁盤一樣可以通過(guò)接口輕松升級(jí)。 |
特點(diǎn) |
1、存儲(chǔ)少量代碼 3、傳輸效率高,在1、4MB小容量時(shí)具有很高的成本效益 4、讀取速度快,寫入和擦除速度低 |
1、高數(shù)據(jù)存儲(chǔ)密度 3、flash的管理需要特殊的系統(tǒng)接口 4、NandFlash沒(méi)有掛接在地址總線上,如果想用NandFlash作為系統(tǒng)的啟動(dòng)盤,就需要CPU具備特殊的功能,如s3c2410在被選擇為NandFlash啟動(dòng)方式時(shí)會(huì)在上電時(shí)自動(dòng)讀取NandFlash的4k數(shù)據(jù)到地址0的SRAM中。 如果CPU不具備這種特殊功能,用戶不能直接運(yùn)行NandFlash上的代碼,那可以采取其他方式,比如好多使用NandFlash的開發(fā)板除了使用NandFlash以外,還用上了一塊小的NorFlash來(lái)運(yùn)行啟動(dòng)代碼。 |
性能比較 |
flash閃存是非易失性存儲(chǔ)器,可以對(duì)稱為塊的存儲(chǔ)器單元塊進(jìn)行擦寫和再編程。任何f1ash器件的寫入操作只能在空或已擦除的單元內(nèi)進(jìn)行,所以大多數(shù)情況下,在進(jìn)行寫入操作之前必須先執(zhí)行擦除。 2、執(zhí)行擦除時(shí)的塊尺寸/速度:擦除NOR器件時(shí),以64KB,128KB的塊執(zhí)行,執(zhí)行一個(gè)寫入/擦除操作的時(shí)間為5S。擦除NAND器件時(shí),以8KB,32KB的塊進(jìn)行,執(zhí)行操作最多只需要4ms。 3、NOR的讀速度比NAND稍快一些。 4、NAND的寫入速度比NOR快很多。 5、NAND的4ms擦除速度遠(yuǎn)比NOR的5s快。 6、NAND的擦除單元更小,相應(yīng)的擦除電路更少。 7、在應(yīng)用中,NOR flash由于功能豐富,不需要其他的軟件支持,就可以被系統(tǒng)直接尋址,并在內(nèi)部直接運(yùn)行操作代碼。而NAND flash的功能相對(duì)簡(jiǎn)單,通常需要搭配相應(yīng)的控制芯片和驅(qū)動(dòng)程序,才能對(duì)其進(jìn)行操作。 |
|
接口差別 |
1、NOR flash帶有SRAM接口,有足夠的地址引腳來(lái)尋址,可以很容易的存取內(nèi)部的每一個(gè)字節(jié); 2、升級(jí)麻煩,不同容量的NorFlash的地址線需求不一樣,在更換不同容量的NorFlash芯片時(shí)不方便(當(dāng)下的串行接口的器件已經(jīng)沒(méi)有這個(gè)問(wèn)題了)。 |
1、NAND flash使用復(fù)雜的I/O口來(lái)串行地址存取數(shù)據(jù),8個(gè)引腳用來(lái)控制傳送控制、地址和數(shù)據(jù)信息; 3、接口固定,升級(jí)簡(jiǎn)單。 |
容量和成本 |
1、1MB~16MB,成本較高。 |
1、8MB~128MB(現(xiàn)在還有更大的) |
壽命(耐性) |
NOR flash的每個(gè)塊的擦寫次數(shù)是10萬(wàn)次 |
NAND flash每個(gè)塊的最大擦寫次數(shù)是100萬(wàn)次 |
壞塊處理 |
冗余比特替換,是指在芯片設(shè)計(jì)時(shí),每組存儲(chǔ)單元會(huì)有若干個(gè)冗余比特,當(dāng)該組存儲(chǔ)單元存在失效的比特,就可以用冗余比特加以替換。冗余比特替換的方法常用于NOR flash中。當(dāng)失效的比特很多且連續(xù)時(shí),失效的比特所在的區(qū)域會(huì)被認(rèn)識(shí)是集體失效。在NOR flash中,失效的區(qū)域通常也會(huì)被冗余的存儲(chǔ)單元塊替換掉。 |
NAND的壞塊是隨機(jī)分布的,錯(cuò)誤檢查和糾正(ECC),是指芯片中每組存儲(chǔ)單元會(huì)有若干個(gè)比特用做數(shù)據(jù)的校驗(yàn),當(dāng)該組存儲(chǔ)單元存在失效的比特則通過(guò)相應(yīng)的數(shù)據(jù)校驗(yàn)算法,還原中真實(shí)的數(shù)據(jù)。錯(cuò)誤檢查和糾正的方法常用于NAND flash中。當(dāng)失效的比特很多且連續(xù)時(shí),失效的比特所在的區(qū)域會(huì)被認(rèn)識(shí)是集體失效。在NAND flash中,失效的區(qū)域會(huì)被標(biāo)記為不可用。 |
serial flash |
現(xiàn)在有些芯片為了減少啟動(dòng)引腳,可以采用QSPI serial flash作為啟動(dòng)存儲(chǔ)器。其采用spi/qspi 的方式進(jìn)行串行的讀取數(shù)據(jù),減小引腳消耗。這個(gè)只是通信方式的改變,其內(nèi)部結(jié)構(gòu)一般還是nor flash或者nand flash |
2 從存儲(chǔ)原理上分析這些區(qū)別的原因
????????1、為什么nor flash的讀取速度比nand flash要稍快?
????????首先nor flash的每個(gè)存儲(chǔ)單元是直接連接在位線和字線上的,相當(dāng)于每個(gè)單元時(shí)獨(dú)立的,而nand flash的存儲(chǔ)單元時(shí)串聯(lián)的,要訪問(wèn)其中某個(gè)單元時(shí),這個(gè)串聯(lián)中的其他晶體管要全部導(dǎo)通,才能正確訪問(wèn)到被訪問(wèn)的單元,所以nor flash的讀取速度比nand flash要稍快。
????????2、為什么nand flash的容量比nor flash更大?
????????由于陣列的連接方式區(qū)別,nor flash的版圖開銷更大,所以nor flash的容量一般不大,一般幾兆、幾十兆,而nand flash在本身陣列面積開銷小的優(yōu)勢(shì)下,還可以進(jìn)行3D堆疊,容量可以做得很大,甚至幾T,一般固態(tài)硬盤里使用的就是大容量的nand flash。關(guān)于3D nand的實(shí)現(xiàn),大家可以到B站學(xué)習(xí)一下硬件茶談的某期視頻。
????????3、為什么flash的寫入操作之前,必須要先進(jìn)行擦除?
????????flash的寫入操作之前,必須要先進(jìn)行擦除。因?yàn)閒lash只能將1寫為0,不能將0寫為1,寫1,也就是將存儲(chǔ)單元中的中的電子拉出來(lái),需要通過(guò)擦除操作處理。
????????4、為什么nor的擦除速度比nand慢這么多?
????????網(wǎng)上找到的說(shuō)法為:由于擦除NOR器件時(shí)是以64~128KB的塊進(jìn)行的,執(zhí)行一個(gè)寫入/擦除操作的時(shí)間為5s ,與此相反,擦除NAND器件是以8~32KB的塊進(jìn)行的,執(zhí)行相同的操作最多只需要4ms。我理解擦除的塊大小相差幾倍,而相應(yīng)的時(shí)間卻相差幾千倍,這有點(diǎn)不合理,塊的大小可能是一個(gè)影響因素,但我覺(jué)得根本原因還得從存儲(chǔ)單元的擦除原理來(lái)解釋。Nor flash擦除是以柵源之間的隧穿效應(yīng)實(shí)現(xiàn),隧穿通道比較集中,通道較小,而nand flash擦除以柵極和襯底之間的隧穿效應(yīng)實(shí)現(xiàn),隧穿通道更大,隧穿更分散,更容易完成電子隧穿,所以擦除時(shí)間更短。
????????5、為什么nor flash的可擦除次數(shù)低于nand flash?
????????由于nor flash擦除時(shí)隧穿通道集中,所以此處的隧道氧化層更容易在多次電子隧穿后損壞,所以nor flash的擦除次數(shù)一般十萬(wàn)次等級(jí),而nand flash由于分散隧穿,它的氧化層壽命更長(zhǎng),一般在一百萬(wàn)次等級(jí)。同時(shí)熱電子注入對(duì)氧化層的損傷又比FN隧穿要大,這也是nor壽命不及nand的一個(gè)原因。這條是我的猜測(cè),大家自行甄別。
????????6、為什么nand flash的寫入速度比nor flash要快?
????????nand flash的寫入速度比nor flash要快,原因是nand flash采用FN隧穿效應(yīng)進(jìn)行寫入,而nor flash采用的是熱電子注入,隧穿比熱電子注入的速度更快。文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-828283.html
????????7、為什么NOR flash可以支持XIP,Nand flash不可以?
????????我的理解是Nand flash也可以支持XIP,只是做起來(lái)麻煩點(diǎn)罷了。網(wǎng)上的說(shuō)法是nor flash有類似SRAM的接口,CPU可以直接從nor flash中取指,不用將數(shù)據(jù)拷貝到內(nèi)存,然后直接譯碼執(zhí)行,而nand flash由于地址和數(shù)據(jù)共用IO,需要有專門的nand flash控制器和驅(qū)動(dòng)程序才能進(jìn)行讀寫,同時(shí)nand flash由于容易發(fā)生位翻轉(zhuǎn)的,需要以頁(yè)為單位做ECC校驗(yàn),所以nand flash的讀操作是以頁(yè)為單位,而程序可能并不是連續(xù)存放在頁(yè)中,這樣讀就會(huì)出錯(cuò)。但是我個(gè)人理解,如果CPU硬件把nand 控制器已經(jīng)做好了,且flash中的數(shù)據(jù)是按既定數(shù)據(jù)寫進(jìn)去的,同時(shí)flash在程序數(shù)據(jù)端沒(méi)有壞塊,他也是可以支持XIP的。文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-828283.html
到了這里,關(guān)于【FLASH存儲(chǔ)器系列四】NAND和NOR兩種Flash的本質(zhì)區(qū)別是什么?的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!