1. 程式人生 > >RAM、SRAM、SDRAM、ROM、EPROM、EEPROM、Flash

RAM、SRAM、SDRAM、ROM、EPROM、EEPROM、Flash

結合 信號 減少 控制器 sta 取值 進行 應用 pro

常見存儲器概念辨析:
存儲器可以分為很多種類,其中根據掉電數據是否丟失可以分為RAM和ROM。
RAM (Random Access Memory):隨機存取存儲器
ROM (Read Only Memory):只讀存儲器
RAM和ROM指的都是半導體存儲器。
其中RAM的訪問速度比較快,但掉電後數據會丟失,相當於計算機的內存。
而ROM掉電後數據不會丟失。相當於計算機的硬盤,用來存儲和保存數據。
RAM 又可分為SRAM(Static RAM/靜態存儲器)和DRAM(Dynamic RAM/動態存儲器)。
SRAM 是利用雙穩態觸發器來保存信息的,只要不掉電,信息是不會丟失的。
DRAM是利用MOS(金屬氧化物半導體)電容存儲電荷來儲存信息,因此必須通過不停的給電容充電來維持信息,所以DRAM 的成本、集成度、功耗等明顯優於SRAM。


SRAM速度非常快,是目前讀寫最快的存儲設備了,但是它也非常昂貴,所以只在要求很苛刻的地方使用,譬如CPU的一級緩沖,二級緩沖。
DRAM保留數據的時間很短,速度也比SRAM慢,不過它還是比任何的ROM都要快,但從價格上來說DRAM相比SRAM要便宜很多,計算機內存就是DRAM的。
DRAM分為很多種,常見的主要有FPRAM/FastPage、EDORAM、SDRAM、DDR RAM、RDRAM等。
DDR RAM(Date-Rate RAM)也稱作DDR SDRAM,這種改進型的RAM和SDRAM是基本一樣的,不同之處在於它可以在一個時鐘讀寫兩次數據,這樣就使得數據傳輸速度加倍了。這是目前電腦中用得最多的內存,而且它有著成本優勢.

  而通常人們所說的SDRAM 是DRAM 的一種,它是同步動態存儲器,利用一個單一的系統時鐘同步所有的地址數據和控制信號。使用SDRAM不但能提高系統表現,還能簡化設計、提供高速的數據傳輸。在嵌入式系統中經常使用。

ROM也有很多種,PROM是可編程的ROM,PROM和EPROM(可擦除可編程ROM)兩者區別是,PROM是一次性的,也就是軟件灌入後,就無法修改了,這種是早期的產品,現在已經不可能使用了,而EPROM是通過紫外光的照射擦除原先的程序,是一種通用的存儲器。另外一種EEPROM是通過電子擦出,價格很高,寫入時間很長,寫入很慢。

Flash也是一種非易失性存儲器(掉電不會丟失),它擦寫方便,訪問速度快,已大大取代了傳統的EPROM的地位。由於它具有和ROM一樣掉電不會丟失的特性,因此很多人稱其為Flash ROM。FLASH存儲器又稱閃存,它結合了ROM和RAM的長處,不僅具備電子可擦出可編程(EEPROM)的性能,還不會斷電丟失數據同時可以快速讀取數據(NVRAM的優勢

),U盤和MP3裏用的就是這種存儲器。在過去的20年裏,嵌入式系統一直使用ROM(EPROM)作為它們的存儲設備,然而近年來Flash全面代替了ROM(EPROM)在嵌入式系統中的地位,用作存儲bootloader以及操作系統或者程序代碼或者直接當硬盤使(U盤)。


目前Flash主要有兩種NOR Flash和NADN Flash。NOR Flash的讀取和我們常見的SDRAM的讀取是一樣,用戶可以直接運行裝載在NOR FLASH裏面的代碼,這樣可以減少SRAM的容量從而節約了成本。NAND Flash沒有采取內存的隨機讀取技術,它的讀取是以一次讀取一塊的形式來進行的,通常是一次讀取512個字節,采用這種技術的Flash比較廉價。用戶不能直接運行NAND Flash上的代碼,因此好多使用NAND Flash的開發板除了使用NAND Flah以外,還作上了一塊小的NOR Flash來運行啟動代碼。
一般小容量的用NOR Flash,因為其讀取速度快,多用來存儲操作系統等重要信息,而大容量的用NAND FLASH,最常見的NAND FLASH應用是嵌入式系統采用的DOC(Disk On Chip)和我們通常用的"閃盤",可以在線擦除。


NAND Flash和NOR Flash的比較
  NAND則是高數據存儲密度的理想解決方案,NOR一般只用來存儲少量的代碼;NOR主要應用在代碼存儲介質中。NOR的特點是應用簡單、無需專門的接口電路、傳輸效率高,它是屬於芯片內執行(XIP, eXecute In Place),這樣應用程序可以直接在(NOR型)flash閃存內運行,不必再把代碼讀到系統RAM中。在1~4MB的小容量時具有很高的成本效益,但是很低的寫入和擦除速度大大影響了它的性能。NOR flash帶有SRAM接口,有足夠的地址引腳來尋址,可以很容易地存取其內部的每一個字節。NOR flash占據了容量為1~16MB閃存市場的大部分。NAND結構能提供極高的單元密度,可以達到高存儲密度,並且寫入和擦除的速度也很快。應用NAND的困難在於flash的管理和需要特殊的系統接口。
性能比較:
  ● NOR的讀速度比NAND稍快一些。
  ● NAND的寫入速度比NOR快很多。
  ● NAND的4ms擦除速度遠比NOR的5s快。
  ● 大多數寫入操作需要先進行擦除操作。
  ● NAND的擦除單元更小,相應的擦除電路更少。

易於使用:
  可以非常直接地使用基於NOR的閃存,可以像其他存儲器那樣連接,並可以在上面直接運行代碼。
  由於需要I/O接口,NAND要復雜得多。各種NAND器件的存取方法因廠家而異。
  在使用NAND器件時,必須先寫入驅動程序,才能繼續執行其他操作。向NAND器件寫入信息需要相當的技巧,因為設計師絕不能向壞塊寫入,這就意味著在NAND器件上自始至終都必須進行虛擬映射。
總結如下:
Nand Flash:適合大容量數據存儲,類似硬盤;
Nor Flash:適合小容量的程序或數據存儲,類似小硬盤;
SDRAM:主要用於程序執行時的程序存儲、執行或計算,類似內存,主要應用於嵌入式系統中()。
SRAM :主要應用於計算機緩存;
DRAM :主要應用於計算機內存;
Nor Flash有自己的地址線和數據線,可以采用類似於memory的隨機訪問方式,在Nor Flash上可以直接運行程序,所以Nor Flash可以直接用來做boot,采用Nor Flash啟動的時候會把地址映射到0x00上。
Nand Flash是IO設備,數據、地址、控制線都是共用的,需要軟件區控制讀取時序,所以不能像Nor Flash、內存一樣隨機訪問,不能EIP(片上運行),因此不能直接作為boot。

PS:為什麽不能再NAND 上運行程序?
代碼執行主要就是指令取值和數據存取, 對於指令存取和數據存取,CPU 直接將要預取的指令或者數據的地址發到系統總線上,對於ARM (就是AXBI) 總線, 這個地址會根據Soc之前的地址編碼送到不同的控制器,對於NAND Flash 根本就沒有地址線,只有數據線。 NAND Flash 的讀取是要靠軟件代碼經過 NAND Flash controller 發相關的命令和要地址等數據到NAND Flash芯片內部的控制器, 命令和地址都是經過數據線傳送的。一般需要多個周期, 由於需要數據讀寫,需要軟件介入,所以說他不是XIP 的。XIP 從某種意義上說是 CPU 送出的地址能否不經過任何軟件直接能夠尋址到相關的存儲單元。所以Nor Flash/SRAM/SDRAM 都是XIP 的,而Nand Flash 等就不是XIP 了。

RAM、SRAM、SDRAM、ROM、EPROM、EEPROM、Flash