RAM和ROM和Flash ROM的區別
RAM(Random Access Memory)的全名為隨機存取記憶體,它相當於PC機上的移動儲存,用來儲存和儲存資料的。它在任何時候都可以讀寫,RAM通常是作為作業系統或其他正在執行程式的臨時儲存介質(可稱作系統記憶體)。
不過,當電源關閉時RAM不能保留資料,如果需要儲存資料,就必須把它們寫入到一個長期的儲存器中(例如硬碟)。正因為如此,有時也將RAM稱作“可變儲存器”。RAM記憶體可以進一步分為靜態RAM(SRAM)和動態記憶體(DRAM)兩大類。DRAM由於具有較低的單位容量價格,所以被大量的採用作為系統的主記憶。
ROM(Read Only Memory)的全名為唯讀記憶體,它相當於PC機上的硬碟,用來儲存和儲存資料。ROM資料不能隨意更新,但是在任何時候都可以讀取。即使是斷電,ROM也能夠保留資料。但是資料一但寫入後只能用特殊方法或根本無法更改,因此ROM常在嵌入式系統中擔任存放作業系統的用途。現在市面上主流的PDA的ROM大小是64MB以及128MB。
RAM和ROM相比,兩者的最大區別是RAM在斷電以後儲存在上面的資料會自動消失,而ROM就不會。
由於ROM不易更改的特性讓更新資料變得相當麻煩,因此就有了Flash Memory的發展 ,Flash Memory具有ROM不需電力維持資料的好處,又可以在需要的時候任意更改資料 ,不過單價也比普通的ROM要高。
SRAM速度非常快,是目前讀寫最快的儲存裝置了,但是它也非常昂貴,所以只在要求很苛刻的地方使用,譬如CPU的一級緩衝,二級緩衝。動態RAM(Dynamic RAM/DRAM)保留資料的時間很短,速度也比SRAM慢,不過它還是比任何的ROM都要快,但從價格上來說DRAM相比SRAM要便宜很多,計算機記憶體就是DRAM的。
DRAM分為很多種,常見的主要有FPRAM/FastPage、EDORAM、SDRAM、DDR RAM、RDRAM、SGRAM以及WRAM等,這裡介紹其中的一種DDR RAM。
DDR RAM(Date-Rate RAM)也稱作DDR SDRAM,這種改進型的RAM和SDRAM是基本一樣的,不同之處在於它可以在一個時鐘讀寫兩次資料,這樣就使得資料傳輸速度加倍了。這是目前電腦中用得最多的記憶體,而且它有著成本優勢,事實上擊敗了Intel的另外一種記憶體標準-Rambus DRAM。在很多高階的顯示卡上,也配備了高速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。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)和我們通常用的"閃盤",可以線上擦除。目前市面上的FLASH 主要來自Intel,AMD,Fujitsu和Mxic,而生產NAND Flash的主要廠家有Samsung和Toshiba及Hynix。