片外存儲器---FLASH以及頁、扇區、塊介紹


(一) 什么是FLASH存儲器?

  FLASH屬於廣義的ROM,因為它也是帶電擦除的ROM。但是為了區別於一般的按字節為單位的擦寫的E2PROM,我們叫它FLASH。FLASH做的改進就是擦除時不再以字節為單位,而是以塊為單位

  FLASH分為Nor FLASH和NAND FLASH。NOR FLASH數據線和地址線分開,可以實現RAM一樣的隨機尋址功能,可以讀取任何一個字節。但是擦除仍要按塊來擦。

  NAND FLASH同樣是按塊擦除,但是數據線和地址線復用,不能利用地址線隨機尋址。讀取只能按來讀取(NAND FLASH按塊來擦除,按頁來讀,NOR FLASH沒有頁)。由於NAND FLASH引腳上復用,因此讀取速度比NORFLASH慢一點,但是擦除和寫入速度比NORFLASH快很多。NAND FLASH內部電路更簡單,因此數據密度大,體積小,成本也低。因此大容量的FLASH都是NAND型的。小容量的2~12M的FLASH多是NOR型的。

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

(二)Flash中頁、扇區、塊是什么意思?有什么區別?

  Flash是用於存儲數據的存儲器,但很多人看到頁(Page)、扇區(Sector)、塊(Block)等這些單位時總是分不清楚到底是什么含義,下面就來詳細講解一下!

  下面以W25Q128芯片為例,先看下面這段話:

  W25Q128存儲芯片是由65536可編程的頁組成的,每頁有256個字節。一次最多可以寫256個字節。可以一次擦除16頁(4K字節)、128頁(32K字節)、256頁(64K字節)或者一整片。W25Q128有4096個可擦除的扇區,256個可擦除的塊。4K字節的扇區對於數據和參數存儲有更高的靈活性。
  如果不理解的話,先看完下面的內容之后,再回過頭來看就會理解了。

 5.1下面是芯片的內部框圖:

 

 

5.2:頁是什么意思?

       頁就是flash中一種區域划分的單元,就像一本書中的一頁一樣,圖中紅色框選部分就為1頁。

一頁內存地址為 :0X000000-0X0000FFh,共256個字節(16x16=256)。

  

  不同存儲器的頁大小是不同的。

5.3: 扇區

  扇區和頁類似,也是一種存儲結構單元,只是扇區更常見,大部分Flash主要還是以扇區為最小的單元。圖中粉紅色部分為一個扇區的大小。我們從sector 0 ,也就是扇區0 開始分析(粉紅色框下下面的扇區)。我們看到:

  一個扇區是從  0x000000-----0x0000FF
          0x000100-----0x0001FF
          0x000200-----0x0002FF
          0x000300-----0x0003FF

            ......
          0x000f00----0x000FFF 為止 ===========16*256=4096字節=4K

一個扇區有16個頁,又因為每一個頁有256字節,所以一個扇區有4k字節。

5.3塊

  塊是比扇區更高一個等級,一般1塊包含多個扇區也就是圖中藍色標識的區域。我們看到: 

一塊的是從    0x000000-0x000FFF

       0x001000-0x001FFF

            0x002000-0x002FFF

       0x003000-0x003FFF

                                   .......

       0x00F000-0x00FFFF為止= ====================4K*16=64K

 

可以看出,一個塊有16個扇區組成。
而一個芯片內部存儲區域是綠色部分所畫的,有256個塊,所以W25Q128總共的存儲空間為256個塊。即一個FLASH為256個塊,一個塊為16個扇區,一個扇區為4K字節。所以:256*16*4K=16384K=16M/8=128Mbit。

 

5.4包含關系圖:

 

(三)使用FLASH 時候,必須知道的事。

1、由於FLASH的物理特性,決定了FLASH每一位的操作只能從1變為0(寫操作)。
2、大多數FLASH芯片或單片機內未使用FLASH存儲空間每一位出廠默認都是1。
3、對FLASH寫操作之前必須將待操作FLASH空間數據都置為1

  如果內存地址上的數據是0的話,不進行置1的擦除動作,當我們想內存地址寫1時候是失敗的,因為內存只能從1變為0,不能從0變為1。所以必須在寫操作之前將flash擦除。

4、對FLASH的擦除操作即是把待操作的空間的每一位都置為1。
5、所以FLASH寫操作前需有擦除操作。
W25Q128JV存儲芯片的擦除比較靈活,可以按扇區、塊甚至是整片擦除。(擦除是需要時間的,比如整片擦除約用時幾十秒)。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM