1. 程式人生 > >ROM、RAM、DRAM、SRAM、SDRAM區別及特點

ROM、RAM、DRAM、SRAM、SDRAM區別及特點

常見儲存器概念辨析:

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

儲存器可以分為很多種類,其中根據掉電資料是否丟失可以分為RAM(隨機存取儲存器)和ROM(只讀儲存器),其中RAM的訪問速度比較快,但掉電後資料會丟失,而ROM掉電後資料不會丟失。

ROM和RAM指的都是半導體儲存器,ROM是Read Only Memory的縮寫,RAM是Random Access Memory的縮寫。ROM在系統停止供電的時候仍然可以保持資料,而RAM通常都是在掉電之後就丟失資料,典型的RAM就是計算機的記憶體。

    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,因為其讀取速度快,多用來儲存作業系統等重要資訊,而大容量的用NANDFLASH,最常見的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 了。
--------------------- 
作者:六角雅閣 
來源:CSDN 
原文:https://blog.csdn.net/liujiaoyage/article/details/37930475?utm_source=copy 
版權宣告:本文為博主原創文章,轉載請附上博文連結!