一、基本概念
最熟悉的兩個詞語應該是RAM與ROM,RAM(Random Access Memory)的全名為隨機存取記憶體,它相當于PC機上的移動存儲,用來存儲和保存數據的。它在任何時候都可以讀寫,RAM通常是作為操作系統或其他正在運行程序的臨時存儲介質,它的一切都是最好的,唯一缺點斷電一切東西都沒有了。
一般情況下,現在移動設備也多了,我們叫它內存,更通常的叫運行內存。還有一個熟悉的詞DDR2或DDR3,后面還會學習到的。
RAM 有兩大類,一種稱為靜態RAM(Static RAM/SRAM),SRAM速度非常快,是目前讀寫最快的存儲設備了,但是它也非常昂貴,所以只在要求很苛刻的地方使用,譬如CPU的一級緩沖,二級緩沖。
另一種稱為動態RAM(Dynamic RAM/DRAM),DRAM是通過在電容器中積累電荷來保存數據的存儲元件,電容器中充電狀態是1,放電狀態是0,由于電容器中的電荷在一點時間后會衰減,所以DRAM需要定期重新寫入數據的Refrash操作,DRAM保留數據的時間很短,速度也比SRAM慢,不過它還是比任何的ROM都要快。
但從價格上來說DRAM相比SRAM要便宜很多,計算機內存就是DRAM的。DRAM分為很多種,根據訪問方式和規格的不同,分為不同的種類常見的主要有FPRAM/FastPage、EDORAM、SDRAM、DDR RAM、RDRAM、SGRAM以及WRAM等。
DDR RAM(Double-Date-Rate RAM)也稱作DDR SDRAM,這種改進型的RAM和SDRAM是基本一樣的,不同之處在于它可以在一個時鐘讀寫兩次數據,這樣就使得數據傳輸速度加倍了。
最早的為 FP DRAM,也稱作快頁內存,不過限于其定時刷新的工作原理,所以導致這種內存的數據存取速度并不快。但是這種內存卻意外地成為了內存發展承上啟下的關鍵因素。因為之后的內存規范,與FP DRAM在工作原理上可謂是非常相似。
隨后EDO RAM出現在眾人面前,這種內存也屬于72Pin SIMM內存的范疇,不過由于有著更大的容量和更先進的尋址方式,所以在486時代非常盛行。這種內存與FP DRAM原理大致相同,但是由于這種內存簡化了數據訪問的流程,所以在存取速度上要比傳統的DRAM要快上不少。
速度雖然緩慢,看到了RAM的重要性,出現了SDRAM。而第一代SDRAM被稱為SDR SDRAM(Single Data Rate SDRAM)。64bit的帶寬與當時處理器的總線寬度保持一致,這就表示一條SDRAM就能夠讓電腦正常運行,這樣大大地降低了內存的購買成本。
由于內存的傳輸信號與處理器外頻同步,所以在傳輸速度上,DIMM標準SDRAM要大幅領先于SIMM內存。SDRAM出世之時恰逢Intel和AMD的主頻大戰,無論是主頻、倍頻和外頻都在不斷進行變化。倍頻和主頻的提升對于內存來說并不是問題,真正的問題在于處理器外頻的提高需要SDRAM工作在更高的頻率上。
所以SDRAM的頻率也經過了數次升級。從最早的PC66到PC133,從SDRAM頻率的變化就能看出處理器外頻的升級。而在超頻市場中,為了能夠讓處理器外頻達到更高的水平,市面上還出現了PC150、PC166等規格,可以說SDRAM在頻率上更加靈活,性能也能夠滿足平臺的需求。
DDR SDRAM英文名稱為Dual Date Rate SDRAM,從字面意思上也能知道,這種內存比第一代的SDR SDRAM多出一倍的傳輸速率。其秘密就在于DDR SDRAM在數據傳輸中同時使用了信號的上升沿和下降沿,這樣在相同的時鐘下,DDR SDRAM的傳輸速率得到了成倍的提高。
ROM(Read Only Memory)的全名為唯讀記憶體,它相當于PC機上的硬盤,用來存儲和保存數據。ROM數據不能隨意更新,但是在任何時候都可以讀取。即使是斷電,ROM也能夠保留數據。但是資料一但寫入后只能用特殊方法或根本無法更改,但這么久了ROM已經有了很大的發展,不再是最初的摸樣了。
rom最初不能編程,出廠什么內容就永遠什么內容,不靈活。后來出現了prom,可以自己寫入一次,要是寫錯了,只能換一片,自認倒霉。人類文明不斷進步,終于出現了可多次擦除寫入的EPROM,每次擦除要把芯片拿到紫外線上照一下,想一下你往單片機上下了一個程序之后發現有個地方需要加一句話,為此你要把單片機放紫外燈下照半小時,然后才能再下一次,這么折騰一天也改不了幾次。
歷史的車輪不斷前進,偉大的EEPROM出現了,拯救了一大批程序員,終于可以隨意的修改rom中的內容了,這一段話就說出了ROM的發展歷程。
狹義的EEPROM:這種rom的特點是可以隨機訪問和修改任何一個字節,可以往每個bit中寫入0或者1。這是最傳統的一種EEPROM,掉電后數據不丟失,可以保存100年,可以擦寫100w次。具有較高的可靠性,但是電路復雜/成本也高。
它的改寫是由高電壓或者由控制端的邏輯電平來完成的。因此目前的EEPROM都是幾十千字節到幾百千字節的,絕少有超過512K的。我們也就發現了EEPROM的確可以實現隨意讀寫,EEPROM的全稱是“電可擦除可編程只讀存儲器”,即Electrically Erasable Programmable Read-Only Memory。
可介紹的這兩種都不存在大容量并且也十分昂貴,那我們平時見到的幾十G的存儲設備是什么?flash就應運而生了。flash屬于廣義的EEPROM,因為它也是電擦除的rom。但是為了區別于一般的按字節為單位的擦寫的EEPROM,我們都叫它flash。flash做的改進就是擦除時不再以字節為單位,而是以塊為單位,一次簡化了電路,數據密度更高,降低了成本。上M的rom一般都是flash。
ROM的應用
對數指數、三角函數等常規計算通過寫出真值表,將自變量以地址碼的形式輸至ROM,用ROM表來實現。還有碼制轉換,例如二進制碼轉格雷碼。脈沖序列發生器,偽彩色處理電路,也就是將一幅黑白圖像變成彩色圖像顯示,將灰度圖像對應到red , green , blue三個通道上,最后將三個通道的顏色值合成為需要顯示的RGB顏色值即可。具體可參考 https://blog.csdn.net/huixingshao/article/details/42706699 。
接下來說一下flash的分類,flash分為nor flash和nand flash。nor flash數據線和地址線分開,可以實現ram一樣的隨機尋址功能,可以讀取任何一個字節。但是擦除仍要按塊來擦。nand flash同樣是按塊擦除,但是數據線和地址線復用,不能利用地址線隨機尋址。
讀取只能按頁來讀取。NOR Flash的讀取,用戶可以直接運行裝載在NOR FLASH里面的代碼。NAND Flash沒有采取內存RAM的隨機讀取技術,它的讀取是以一次讀取一塊的形式來進行的,通常是一次讀取512個字節,采用這種技術的Flash比較廉價。
用戶不能直接運行NAND Flash上的代碼,因此好多使用NAND Flash的開發板除了使用NAND Flah以外,還作上了一塊小的NOR Flash來運行啟動代碼。nandflash引腳上復用,因此讀取速度比nor flash慢一點,但是擦除和寫入速度比nor flash快很多。
nand flash內部電路更簡單,因此數據密度大,體積小,成本也低。因此大容量的flash都是nand型的。小容量的2~12M的flash多是nor型的。nor flash可以進行字節尋址,所以程序可以在nor flash中運行。嵌入式系統多用一個小容量的nor flash存儲引導代碼,用一個大容量的nand flash存放文件系統和內核。
編輯:jq
-
FPGA
+關注
關注
1630文章
21759瀏覽量
604377 -
DRAM
+關注
關注
40文章
2320瀏覽量
183637 -
ROM
+關注
關注
4文章
575瀏覽量
85837 -
RAM
+關注
關注
8文章
1369瀏覽量
114779 -
EDO
+關注
關注
0文章
3瀏覽量
7638
原文標題:FPGA中ROM與RAM相關知識總結
文章出處:【微信號:gh_9d70b445f494,微信公眾號:FPGA設計論壇】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論