STM32(十)常用存儲器介紹


一、 RAM存儲器

  RAM是“Random Access Memory"的縮寫,被譯為隨機存儲器。所謂“隨機存取”,指的是當存儲器中的消息被讀取或寫入時,所需要的時間與這段信息所在的位置無關。這個詞的由來是因為早期計算機曾使用磁鼓作為存儲器,磁鼓是順序讀寫設備,而RAM可隨讀取其內部任意地址的數據,時間都是相同的,因此得名。實際上現在RAM已經專門用於指代作為計算機內存的易失性半導體存儲器

根據RAM的存儲機制,又分為動態隨機存儲器DRAM(Dynamic RAM)以及靜態隨機存儲器SRAM(Static RAM)兩種。

1. DRAM

  動態隨機存儲器DRAM的存儲單元以電容的電荷表示數據,有電荷代表1,無電荷代表0,見圖23-2。但時間一長,代表1的電容會放電,代表0的電容會吸收電荷,因此它需要定期刷新操作,這就是“動態(Dynamic)”一詞所形容的特性。刷新操作會對電容進行檢查,若電量大於滿電量的1/2, 則認為其代表1,並把電容充滿電;若電量小於1/2,則認為其代表0,並把電容放電,藉此來保證數據的正確性。

2. SDRAM

  根據DRAM的通訊方式,又分為同步異步兩種,這兩種方式根據通訊時是否需要使用時鍾信號來區分。圖23-3是一種利用時鍾進行同步的通訊時序,它在時鍾的上升沿表示有效數據。由於使用時鍾同步的通訊速度更快,所以同步DRAM使用更為廣泛,這種DRAM被稱為SDRAM(Synchronous DRAM)。

 

3.DDR SDRAM

  為了進一步提高SDRAM的通訊速度,人們設計了DDR SDRAM存儲器(Double DataRate SDRAM)。它的存儲特性與SDRAM沒有區別,但SDRAM只在上升沿表示有效數據,在1個時鍾周期內,只能表示1個有數據;而DDR SDRAM在時鍾的上升沿及下降沿各表示一個數據,也就是說在1個時鍾周期內可以表示2位數據,在時鍾頻率同樣的情況下,提高了一倍的速度。至於DDRII和DDRII,它們的通訊方式並沒有區別,主要是通訊同步時鍾的頻率提高了。

當前個人計算機常用的內存條是DDRIII SDRAM存儲器,在-一個內存條上包含多個DDRIII SDRAM芯片。

4.SRAM

  靜態隨機存儲器SRAM的存儲單元以鎖存器來存儲數據,見圖23-4。這種電路結構不需要定時刷新充電,就能保持狀態(當然,如果斷電了,數據還是會丟失的),所以這種存儲器被稱為“靜態(Static)”RAM。

5. DRAM與SRAM的應用場合

  • DRAM的結構簡單得多,
  • DRAM的成本要更低
  • DRAM集成度更高。
  • 速度不如SRAM

 DRAM和SRAM的特性:

  • SRAM 一般只用於 CPU內部的 高速緩存(Cache),
  • 外部擴展的內存一般使用DRAM。
  • 在STM32系統的控制器中,只有STM32F429型號或更高級的芯片才支持擴展SDRAM,其它型號如STM32F1、STM32F2及STM32F407等型號只能擴展SRAM。

非易失性存儲器

  非易失性存儲器種類非常多,半導體類的有ROMFLASH,而其它的則包括光盤軟盤機械硬盤。.

二、 ROM存儲器

  ROM是“Read Only Memory”的縮寫,意為只能讀的存儲器。由於技術的發展,后來設計出了可以方便寫入數據的ROM,而這個“Read Only Memory”的名稱被沿用下來了,現在一-般用於指代非易失性半導體存儲器,包括后面介紹的FLASH存儲器,有些人也把它歸到ROM類里邊。

1.MASK ROM

  MASK(掩膜)ROM就是正宗的“ReadOnlyMemory",存儲在它內部的數據是在出廠時使用特殊工藝固化的,生產后就不可修改,其主要優勢是大批量生產時成本低。當前在生產量大,數據不需要修改的場合,還有應用。

2.OTPROM

  OTPROM(One Time Programable ROM)是一次可編程存儲器。這種存儲器出廠時內部並沒有資料,用戶可以使用專用的編程器將自己的資料寫入,但只能寫入一次,被寫入過后,它的內容也不可再修改。在NXP公司生產的控制器芯片中常使用OTPROM來存儲密鑰或設備獨有的mac地址等內容。

3.EPROM

  EPROM(Erasable Programmable ROM)是可重復擦寫的存儲器,它解決了PROM芯片只能寫入一次的問題。這種存儲器使用紫外線照射芯片內部擦除數據,擦除和寫入都要專用的設備。現在這種存儲器基本淘汰,被EEPROM取代。

4.EEPROM

  EEPROM(Electrically Erasable Programmable ROM)是電可擦除存儲器。EEPROM 可以重復擦寫,它的擦除和寫入都是直接使用電路控制,不需要再使用外部設備來擦寫。而且可以按字節為單位修改數據,無需整個芯片擦除。現在主要使用的ROM芯片都是EEPROM

三、 FLASH存儲器

  FLASH存儲器又稱為閃存,它也是可重復擦寫的存儲器,部分書籍會把FLASH存儲器稱為FLASH ROM,但它的容量一般比EEPROM大得多,且在擦除時,一般以多 個字節為單位。如有的FLASH存儲器以4096個字節為扇區,最小的擦除單位為一一個扇區。根據存儲單元電路的不同,FLASH 存儲器又分為NOR FLASHNAND FLASH,見表23-2。

 

 

  NOR與NAND的共性是在數據寫入前都需要有擦除操作,而擦除操作一般是以“扇區/塊”為單位的。而NOR與NAND特性的差別,主要是由於其內部“地址/數據線”是否分開導致的。

  • 由於NOR的地址線和數據線分開,它可以按“字節”讀寫數據,符合CPU的指令譯碼執行要求,所以假如NOR上存儲了代碼指令,CPU給NOR一個地址,NOR就能向CPU返回一個數據讓CPU執行,中間不需要額外的處理操作。
  • 由於NAND的數據和地址線共用,只能按“”來讀寫數據,假如NAND上存儲了代碼指令,CPU給NAND地址后,它無法直接返回該地址的數據,所以不符合指令譯碼要求。
  • 上表中的最后-項“是否支持XIP"描述的就是這種立即執行的特性(eXecute InPlace)。若代碼存儲在NAND.上,可以把它先加載到RAM存儲器上,再由CPU執行。所以在功能_上可以認為NOR是一種斷電后數據不丟失的RAM,但它的擦除單位與RAM有區別,且讀寫速度比RAM要慢得多。另外,FLASH的擦除次數都是有限的(現在普遍是10 萬次左右),當它的使用接近壽命的時候,可能會出現寫操作失敗。由於NAND通常是整塊擦寫,塊內有一位失效整個塊就會失效,這被稱為壞塊,而且由於擦寫過程復雜,從整體來說NOR塊塊更少,壽命更長由於可能存在壞塊,所以FLASH存儲器需要“探測/錯誤更正(EDC/ECC)”算法來確保數據的正確性。

  由於兩種FLASH存儲器特性的差異,NOR FLASH一般應用在代碼存儲的場合,如入式控制器內部的程序存儲空間。而NAND FLASH一般應用在大數據量存儲的場合,包SD卡、U盤以及固態硬盤等,都是NAND FLASH類型的。


免責聲明!

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



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