1. 程式人生 > >嵌入式開發中用到的儲存RAM FLASH ROM

嵌入式開發中用到的儲存RAM FLASH ROM

         RAM(Random AccessMemory)的全名為隨機存取記憶體,它相當於PC機上的移動儲存,用來儲存和儲存資料的。它在任何時候都可以讀寫,RAM通常是作為作業系統或其他正在執行程式的臨時儲存介質(可稱作系統記憶體)。   不過,當電源關閉時RAM不能保留資料,如果需要儲存資料,就必須把它們寫入到一個長期的儲存器中(例如硬碟)。正因為如此,有時也將RAM稱作“可變儲存器”。RAM記憶體可以進一步分為靜態RAM(SRAM)和動態記憶體(DRAM)兩大類。DRAM由於具有較低的單位容量價格,所以被大量的採用作為系統的主記憶。 ROM(Read OnlyMemory)的全名為唯讀記憶體,它相當於PC機上的硬碟,用來儲存和儲存資料。ROM資料不能隨意更新,但是在任何時候都可以讀取。即使是斷電,ROM也能夠保留資料。但是資料一但寫入後只能用特殊方法或根本無法更改,因此ROM常在嵌入式系統中擔任存放作業系統的用途。現在市面上主流的PDA的ROM大小是64MB以及128MB。   RAM和ROM相比,兩者的最大區別是RAM在斷電以後儲存在上面的資料會自動消失,而ROM就不會。   由於ROM不易更改的特性讓更新資料變得相當麻煩,因此就有了Flash Memory的發展 ,FlashMemory具有ROM不需電力維持資料的好處,又可以在需要的時候任意更改資料 ,不過單價也比普通的ROM要高。   SRAM速度非常快,是目前讀寫最快的儲存裝置了,但是它也非常昂貴,所以只在要求很苛刻的地方使用,譬如CPU的一級緩衝,二級緩衝。動態RAM(DynamicRAM/DRAM)保留資料的時間很短,速度也比SRAM慢,不過它還是比任何的ROM都要快,但從價格上來說DRAM相比SRAM要便宜很多,計算機記憶體就是DRAM的。       DRAM分為很多種,常見的主要有FPRAM/FastPage、EDORAM、SDRAM、DDRRAM、RDRAM、SGRAM以及WRAM等,這裡介紹其中的一種DDR RAM。   DDR RAM(Date-Rate RAM)也稱作DDRSDRAM,這種改進型的RAM和SDRAM是基本一樣的,不同之處在於它可以在一個時鐘讀寫兩次資料,這樣就使得資料傳輸速度加倍了。這是目前電腦中用得最多的記憶體,而且它有著成本優勢,事實上擊敗了Intel的另外一種記憶體標準-RambusDRAM。在很多高階的顯示卡上,也配備了高速DDR RAM來提高頻寬,這可以大幅度提高3D加速卡的畫素渲染能力。   記憶體工作原理:記憶體是用來存放當前正在使用的(即執行中)的資料和程式,我們平常所提到的計算機的記憶體指的是動態記憶體(即DRAM),動態記憶體中所謂的"動態",指的是當我們將資料寫入DRAM後,經過一段時間,資料會丟失,因此需要一個額外設電路進行記憶體重新整理操作。   具體的工作過程是這樣的:一個DRAM的儲存單元儲存的是0還是1取決於電容是否有電荷,有電荷代表1,無電荷代表0。但時間一長,代表1的電容會放電,代表0的電容會吸收電荷,這就是資料丟失的原因;重新整理操作定期對電容進行檢查,若電量大於滿電量的1/2,則認為其代表1,並把電容充滿電;若電量小於1/2,則認為其代表0,並把電容放電,藉此來保持資料的連續性。   ROM也有很多種,PROM是可程式設計的ROM,PROM和EPROM(可擦除可程式設計ROM)兩者區別是,PROM是一次性的,也就是軟體灌入後,就無法修改了,這種是早期的產品,現在已經不可能使用了,而EPROM是通過紫外光的照射擦出原先的程式,是一種通用的儲存器。另外一種EEPROM是通過電子擦出,價格很高,寫入時間很長,寫入很慢。   舉個例子,手機軟體一般放在EEPROM中,我們打電話,有些最後撥打的號碼,暫時是存在SRAM中的,不是馬上寫入通過記錄(通話記錄儲存在EEPROM中),因為當時有很重要工作(通話)要做,如果寫入,漫長的等待是讓使用者忍無可忍的。   FLASH儲存器又稱快閃記憶體,它結合了ROM和RAM的長處,不僅具備電子可擦除可程式設計(EEPROM)的效能,還不會斷電丟失資料同時可以快速讀取資料(NVRAM的優勢),U盤和MP3裡用的就是這種儲存器。在過去的20年裡,嵌入式系統一直使用ROM(EPROM)作為它們的儲存裝置,然而近年來Flash全面代替了ROM(EPROM)在嵌入式系統中的地位,用作儲存Bootloader以及作業系統或者程式程式碼或者直接當硬碟使用(U盤)。
  目前Flash主要有兩種NOR Flash和NADN Flash。NORFlash的讀取和我們常見的SDRAM的讀取是一樣,使用者可以直接執行裝載在NORFLASH裡面的程式碼,這樣可以減少SRAM的容量從而節約了成本。NANDFlash沒有采取記憶體的隨機讀取技術,它的讀取是以一次讀取一塊的形式來進行的,通常是一次讀取512個位元組,採用這種技術的Flash比較廉價。使用者不能直接執行NANDFlash上的程式碼,因此許多使用NAND Flash的開發板除了使用NAND Flah以外,還用了一塊小的NORFlash來執行啟動程式碼。   一般小容量的用NOR Flash,因為其讀取速度快,多用來儲存作業系統等重要資訊,而大容量的用NANDFLASH,最常見的NAND FLASH應用是嵌入式系統採用的DOC(Disk OnChip)和我們通常用的"閃盤",可以線上擦除。目前市面上的FLASH主要來自Intel,AMD,Fujitsu和Mxic,而生產NANDFlash的主要廠家有Samsung和Toshiba及Hynix。   現在的微控制器,RAM主要是做執行時資料儲存器,FLASH主要是程式儲存器,EEPROM主要是用以在程式執行儲存一些需要掉電不丟失的資料.   另外,一些變數,都是放到RAM裡的,一些初始化資料比如液晶要顯示的內容介面,都是放到FLASH區裡的(也就是以前說的ROM區),EEPROM可用可不用,主要是存一些執行中的資料,掉電後且不丟失   SRAM、SDRAM都用於程式工作時儲存臨時資料和程式,因為在系統調電後,儲存在其中的資料都會丟失。   FLASH用於系統中儲存長期的資料,如:配置資訊,程式等。   由於SRAM介面電路簡單,在小系統中常用,SDRAM的介面相對複雜,需要相應的控制器支援,但由於容量大、價格便宜、訪問速度快,所以常用在對記憶體容量和處理速度要求高的應用場合,在這種場合中,相應的處理器(CPU)都自帶有SDRAM控制器。   DRAM是動態儲存器(DynamicRAM)的縮寫SDRAM是英文SynchronousDRAM的縮寫,譯成中文就是同步動態儲存器的意思。從技術角度上講,同步動態儲存器(SDRAM)是在現有的標準動態儲存器中加入同步控制邏輯(一個狀態機),利用一個單一的系統時鐘同步所有的地址資料和控制訊號。使用SDRAM不但能提高系統表現,還能簡化設計、提供高速的資料傳輸。在功能上,它類似常規的DRAM,且也需時鐘進行重新整理。可以說,SDRAM是一種改善了結構的增強型DRAM。目前的SDRAM有10ns和8ns

下面是常用概念的定義:
 1、DRAM DRAM(Dynamic RAM): 動態隨機儲存器。

 2、SDRAM SDRAM(SynchronousDRAM): 同步動態隨機儲存器。目前的168線64bit頻寬記憶體基本上都採用SDRAM晶片,工作電壓3.3V電壓,存取速度高達7.5ns,而EDO記憶體最快為15ns。並將RAM與CPU以相同時鐘頻率控制,使RAM與CPU外頻同步,取消等待時間。所以其傳輸速率比EDODRAM更快。

3、DDR SDRAM DDR(Double DataRate)SDRAM。其核心建立在SDRAM的基礎上,但在速度上有了提高。SDRAM僅在時鐘訊號的上升沿讀取資料,而DDR在時鐘訊號的上升沿和下降沿都讀取資料,因此,它的速度是標準SDRAM的2倍。   4、RDRAM RDRAM(RambusDRAM):匯流排式動態隨機儲存器,是由RAMBUS公司與INTEL公司合作提出的一項專利技術,它的資料傳輸率最高可達800MHZ,而它的匯流排寬度卻僅為16bit,遠遠小於現在的SDRAM的64bit。  5、SPD SPD(Serial Presence Detect): SPD是一顆8針的EEPROM(ElectricallyErasable Programmable ROM 電可擦寫可程式設計只讀儲存器),容量為256位元組,裡面主要儲存了該記憶體的相關資料,如容量、晶片廠商、記憶體模組廠商、工作速度等。SPD的內容一般由記憶體模組製造商寫入。支援SPD的主機板在啟動時自動檢測SPD中的資料,並以此設定記憶體的工作引數。