eeprom 和 flash 區別,及頁的概念

EEPROM和flash的區別 

之前對各種存儲器一直不太清楚,今天總結一下。

存儲器分爲兩大類:ram和rom。

ram就不講了,今天主要討論rom。

rom最初不能編程,出廠什麼內容就永遠什麼內容,不靈活。後來出現了prom,可以自己寫入一次,要是寫錯了,只能換一片,自認倒黴。人類文明不斷進步,終於出現了可多次擦除寫入的EPROM,每次擦除要把芯片拿到紫外線上照一下,想一下你往單片機上下了一個程序之後發現有個地方需要加一句話,爲此你要把單片機放紫外燈下照半小時,然後才能再下一次,這麼折騰一天也改不了幾次。歷史的車輪不斷前進,偉大的EEPROM出現了,拯救了一大批程序員,終於可以隨意的修改rom中的內容了。

EEPROM的全稱是“電可擦除可編程只讀存儲器”,即Electrically Erasable Programmable Read-OnlyMemory。是相對於紫外擦除的rom來講的。但是今天已經存在多種EEPROM的變種,變成了一類存儲器的統稱。

狹義的EEPROM:

這種rom的特點是可以隨機訪問和修改任何一個字節,可以往每個bit中寫入0或者1。這是最傳統的一種EEPROM,掉電後數據不丟失,可以保存100年,可以擦寫100w次。具有較高的可靠性,但是電路複雜/成本也高。因此目前的EEPROM都是幾十千字節到幾百千字節的,絕少有超過512K的。

flash:

flash屬於廣義的EEPROM,因爲它也是電擦除的rom。但是爲了區別於一般的按字節爲單位的擦寫的EEPROM,我們都叫它flash。

flash做的改進就是擦除時不再以字節爲單位,而是以塊爲單位,一次簡化了電路,數據密度更高,降低了成本。上M的rom一般都是flash。

flash分爲nor flash和nand flash。nor flash數據線和地址線分開,可以實現ram一樣的隨機尋址功能,可以讀取任何一個字節。但是擦除仍要按塊來擦。

nand flash同樣是按塊擦除,但是數據線和地址線複用,不能利用地址線隨機尋址。讀取只能按頁來讀取。(nandflash按塊來擦除,按頁來讀,norflash沒有頁)

由於nandflash引腳上覆用,因此讀取速度比nor flash慢一點,但是擦除和寫入速度比nor flash快很多。nand flash內部電路更簡單,因此數據密度大,體積小,成本也低。因此大容量的flash都是nand型的。小容量的2~12M的flash多是nor型的。

使用壽命上,nand flash的擦除次數是nor的數倍。而且nand flash可以標記壞塊,從而使軟件跳過壞塊。nor flash 一旦損壞便無法再用。

因爲nor flash可以進行字節尋址,所以程序可以在nor flash中運行。嵌入式系統多用一個小容量的nor flash存儲引導代碼,用一個大容量的nand flash存放文件系統和內核。

(這句話可以看出,可以按字節尋址的都可以當做數據存儲器,就是程序可以直接在上面運行,因爲cpu尋址可以是但地址去尋址。

那eeprom也不行,沒有地址線,只有i2c接口,注意eeprom是可以按字節操作,但是和按字節尋址還有區別,這裏按字節尋址是指cpu通過地址線直接去尋址。spi flash就不行,nand flash也不行。所以一般情況下ram和nor flash可以。)


另一篇區別:

掉電需保護且在程序運行過程中需要修改的想少量參數保存在EEPROM中,其擦除次數較Flash多,Flash用來做程序和一些掉電保護和不需要修改的數據。

Flash memory指的是“閃存”,所謂“閃存”,它也是一種非易失性的內存,屬於EEPROM的改進產品,它的最大特點是必須按塊(Block)擦除(每個區塊的大小不定,不同廠家的產品有不同的規格),而EEPROM則可以一次只擦除一個字節(Byte),目前“閃存”被廣泛用在PC機的主板上,用來保存BIOS程序,便於進行程序的升級。其另外一大應用領域是用來作爲硬盤的替代品,具有抗震、速度快、無噪聲、耗電低的優點,但是將其用來取代RAM就顯的不合適,因爲RAM需要能夠按字節改寫,而Flash ROM做不到。

FLASH的全稱是FLASH EEPROM,但跟常規EEPROM的操作方法不同。FLASH和EEPROM的最大區別是FLASH按扇區操作,EEPROM則按字節操作,二者尋址方法不同,存儲單元的結構也不同,FLASH的電路結構較簡單,同樣容量佔芯片面積較小,成本自然比EEPROM低,因而適合用作程序存儲器,EEPROM麻煩的多,所以更“人性化”的MCU設計會集成FLASH和EEPROM兩種非易失性存儲器,而廉價型設計往往只有FLASH,EEPROM在運行中可以被修改,而FLASH在運行時不能修改,EEPROM可以存儲一些修改的參數,Flash中存儲程序代碼和不需要修改的數據,所謂的Flash是用來形容整個存儲單元的內容可以一次性擦除。所以,理論上凡是具備這樣特徵的存儲器都可以稱爲Flash memory。EEPROM裏面也分FF-EEPROM和FLASH EEPROM的,現在大家所講的Flash memory實際上分爲兩大類,一類是FloatingGate Debice,一類是Charge TrappingDebice,這裏的分類標準主要是program與crase的機制不同。

一:FLASH和EEPROM的區別

   1:相同點是兩者都能掉電存儲數據

   2:不同點是:

                                     A:FALSH寫入時間長,EEPROM寫入時間短。

                B:FLASH擦寫次數少(10000次),EEPROM次數多(1000000次)

二:單片機的數據存儲器不能用FLASH,因爲:

    1:FLASH有一定的擦除,寫入次數,一般的單片機的FLASH擦除寫入次數的標稱值是10000次。

    2:FLASH寫入數據需要比較長的時間,大約需要4-6ms,而且寫FLASH需要加上9V的高壓,麻煩。

三:至於EEPROM,可以作爲數據存儲器,但是單片機如atmegal28,一般用RAM作爲數據存儲器,因爲EEPROM工藝複雜,成本高,適合於存儲掉電保護的數據,而這類數據往往不需要太多,所以一般的單片機都沒在內部集成EEPROM,需要的時候可以讓單片機外掛24C01一類的串行EEPROM。

區別:

1、  FLASH按扇區操作,EEPROM則按字節操作

2、  FLASH寫入時間長,EEPROM寫入時間短

3、  FLASH擦寫次數少(10000次),EEPROM次數多(1000000次)

4、  FLASH的電路結構簡單,成本低,EEPROM工藝複雜,成本高




發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章