RAM就不講了,今天主要討論ROM。
rom最初不能編程,出廠什么內容就永遠什么內容,不靈活。后來出現了prom,可以自己寫入一次,要是寫錯了,只能換一片,自認倒霉。人類文明不斷進步,終于出現了可多次擦除寫入的EPROM,每次擦除要把芯片拿到紫外線上照一下,想一下你往單片機上下了一個程序之后發現有個地方需要加一句話,為此你要把單片機放紫外燈下照半小時,然后才能再下一次,這么折騰一天也改不了幾次。歷史的車輪不斷前進,偉大的EEPROM出現了,拯救了一大批程序員,終于可以隨意的修改rom中的內容了。
EEPROM的全稱是“電可擦除可編程只讀存儲器”,即Electrically Erasable Programmable Read-Only Memory。是相對于紫外擦除的rom來講的。但是今天已經存在多種EEPROM的變種,變成了一類存儲器的統稱。
狹義的EEPROM:
這種rom的特點是可以隨機訪問和修改任何一個字節,可以往每個bit中寫入0或者1。這是最傳統的一種EEPROM,掉電后數據不丟失,可以保存100年,可以擦寫100w次。具有較高的可靠性,但是電路復雜/成本也高。因此目前的EEPROM都是幾十千字節到幾百千字節的,絕少有超過512K的。
flash:
flash屬于廣義的EEPROM,因為它也是電擦除的rom。但是為了區別于一般的按字節為單位的擦寫的EEPROM,我們都叫它flash。
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存放文件系統和內核。
審核編輯黃宇
-
FlaSh
+關注
關注
10文章
1640瀏覽量
148310 -
存儲
+關注
關注
13文章
4338瀏覽量
85998 -
EEPROM
+關注
關注
9文章
1027瀏覽量
81781
發布評論請先 登錄
相關推薦
EEPROM存儲器的工作原理 EEPROM與FLASH存儲器的比較
EEPROM輕量級的簡易類文件的數據讀寫庫:EEPROMFS
![<b class='flag-5'>EEPROM</b>輕量級的簡易類文件的數據讀寫庫:EEPROMFS](https://file1.elecfans.com/web1/M00/F5/24/wKgZoWc3CFOAZJklAAAddLlB3ao640.png)
ESP32S3的EEPROM是由FLASH虛擬的,直接在arduinoIDE中擦寫EEPROM時是否在底層自動進行了磨損平衡?
EEPROM與Flash存儲器的區別
STM8S003F3P6操作EEPROM會影響FLASH嗎?
STM8s 003 EEPROM斷電后不保存,eeprom數據被清零的原因?
求助,關于STM8的EEPROM問題求解
STM8L052寫EEPROM偶爾會死機的原因?怎么解決?
ESP32/Arduino如何使用EEPROM,并且讀取和寫入數據?
STM32 FLASH模擬EEPROM,燒寫程序時設置為讀保護Level-2級別,還能正常讀寫這個模擬的EEPROM嗎?
FLASH、EEPROM的區別和擴展【硬件干貨】
![<b class='flag-5'>FLASH</b>、<b class='flag-5'>EEPROM</b>的區別和擴展【硬件干貨】](https://file1.elecfans.com/web2/M00/C3/41/wKgaomXhqmGAAJbEAABnDcLQGeM058.png)
評論