SRAM、DRAM、硬盘、ROM、RAM、EPROM、FLASH区别和联系
本文轉(zhuǎn)自xiaoyangger的專欄,地址為:http://blog.csdn.net/xiaoyangger/article/details/7683646
SRAM和DRAM的區(qū)別和聯(lián)系:
(電腦中的內(nèi)存屬于DRAM,CPU中的二級(jí)緩存屬于SRAM)
存儲(chǔ)原理
RAM(Random Access Memory )隨機(jī)存取存儲(chǔ)器,主要的作用就是存儲(chǔ)代碼和數(shù)據(jù)供CPU 在需要的時(shí)候調(diào)用。
但是這些數(shù)據(jù)并不是像用袋子盛米那么簡(jiǎn)單,更像是圖書館中用有格子的書架存放書籍一樣,不但要放進(jìn)去還要能夠在需要的時(shí)候準(zhǔn)確的調(diào)用出來(lái),雖然都是書但是每本書是不同的。
對(duì)于RAM 等存儲(chǔ)器來(lái)說(shuō)也是一樣的,雖然存儲(chǔ)的都是代表0 和1 的代碼,但是不同的組合就是不同的數(shù)據(jù)。
讓我們重新回到書和書架上來(lái),如果有一個(gè)書架上有10 行和10 列格子(每行和每列都有0-9 的編號(hào)),有100 本書要存放在里面,那么我們使用+個(gè)行的編號(hào)+個(gè)列的編號(hào)就能確定某一本書的位置。如果已知這本書的編號(hào)87,那么我們首先鎖定第8 行,然后找到第7 列就能準(zhǔn)確的找到這本書了。
在RAM 存儲(chǔ)器中也是利用了相似的原理。
現(xiàn)在讓我們回到RAM 存儲(chǔ)器上,對(duì)于RAM 存儲(chǔ)器而言,數(shù)據(jù)總線是用來(lái)傳入數(shù)據(jù)或者傳出數(shù)據(jù)的。因?yàn)榇鎯?chǔ)器中的存儲(chǔ)空間是如果前面提到的存放圖書的書架一樣通過(guò)一定的規(guī)則定義的,所以我們可以通過(guò)這個(gè)規(guī)則來(lái)把數(shù)據(jù)存放到存儲(chǔ)器上相應(yīng)的位置,而進(jìn)行這種定位的工作就要依靠地址總線來(lái)實(shí)現(xiàn)了。
對(duì)于CPU 來(lái)說(shuō),RAM 就象是一條長(zhǎng)長(zhǎng)的有很多空格的細(xì)線,每個(gè)空格都有一個(gè)唯一的地址與之相對(duì)應(yīng)。
如果CPU 想要從RAM 中調(diào)用數(shù)據(jù),它首先需要給地址總線發(fā)送地址數(shù)據(jù)定位要存取的數(shù)據(jù),然后等待若干個(gè)時(shí)鐘周期之后,數(shù)據(jù)總線就會(huì)把數(shù)據(jù)傳輸給CPU。
下面的示意圖可以幫助你很好的理解這個(gè)過(guò)程。
上圖中的小園點(diǎn)代表RAM 中的存儲(chǔ)空間,每一個(gè)都有一個(gè)唯一的地址線同它相連。
當(dāng)?shù)刂方獯a器接收到地址總線送來(lái)的地址數(shù)據(jù)之后,它會(huì)根據(jù)這個(gè)數(shù)據(jù)定位CPU 想要調(diào)用的數(shù)據(jù)所在的位置,然后數(shù)據(jù)總線就會(huì)把其中的數(shù)據(jù)傳送到CPU。
上面所列舉的例子中,CPU 在一行數(shù)據(jù)中每次存取一個(gè)字節(jié)的數(shù)據(jù),但是在現(xiàn)實(shí)世界中是不同的,通常CPU 每次需要調(diào)用32bit 或者是64bit 的數(shù)據(jù)(這是根據(jù)不同計(jì)算機(jī)系統(tǒng)的數(shù)據(jù)總線的位寬所決定的)。如果數(shù)據(jù)總線是64bit 的話,CPU 就會(huì)在一個(gè)時(shí)間中存取8 個(gè)字節(jié)的數(shù)據(jù),因?yàn)槊看芜€是存取1 個(gè)字節(jié)的數(shù)據(jù),64bit 總線將不會(huì)顯示出來(lái)任何的優(yōu)勢(shì),工作的效率將會(huì)降低很多。
從“線”到“矩陣”
如果RAM 對(duì)于CPU 來(lái)說(shuō)僅僅是一條“線”的話,還不能體現(xiàn)實(shí)際的運(yùn)行情況。因?yàn)槿绻麑?shí)際情況真的是這樣的話,在實(shí)際制造芯片的時(shí)候,會(huì)有很多實(shí)際的困難,特別是在需要設(shè)計(jì)大容量的RAM 的時(shí)候。
所以,一種更好的能夠降低成本的方法是讓存儲(chǔ)信息的“空格”排列 為很多行,每個(gè)“空格”對(duì)應(yīng)一個(gè)bit 存儲(chǔ)的位置。這樣,如果要存儲(chǔ)1024bits 的數(shù)據(jù),那么你只要使用32x32 的矩陣就能夠達(dá)到這個(gè)目的了。很明顯,一個(gè)32x32 的矩陣比一個(gè)1024bit 的行設(shè)備更緊湊,實(shí)現(xiàn)起來(lái)也更加容易。
請(qǐng)看下圖。
知道了RAM 的基本結(jié)構(gòu)是什么樣子的,我們就下面談?wù)劗?dāng)存儲(chǔ)字節(jié)的過(guò)程是怎樣的。
上面的示意圖 顯示的也僅僅是最簡(jiǎn)單狀態(tài)下的情況,也就是當(dāng)內(nèi)存條上僅僅只有一個(gè)RAM 芯片的情況。
對(duì)于X86 處理器,它通過(guò)地址總線發(fā)出一個(gè)具有22 位二進(jìn)制數(shù)字的地址編碼,其中11 位是行地址,另外11 位是列地址,這是通過(guò)RAM 地址接口進(jìn)行分離的。
行地址解碼器(row decoder)將會(huì)首先確定行地址,然后列地址解碼器(column decoder)將會(huì)確定列地址,這樣就能確定唯一的存儲(chǔ)數(shù)據(jù)的位置,然后該數(shù)據(jù)就會(huì)通過(guò)RAM 數(shù)據(jù)接口將數(shù)據(jù)傳到數(shù)據(jù)總線。
另外,需要注意的是,RAM 內(nèi)部存儲(chǔ)信息的矩陣并不是一個(gè)正方形的,也就是行和列的數(shù)目不是相同的,行的數(shù)目比列的數(shù)目少。
上面的示意圖 粗略的概括了一個(gè)基本的SRAM 芯片是如何工作的。
SRAM 是“static RAM(靜態(tài)隨機(jī)存儲(chǔ)器)”的簡(jiǎn)稱,之所以這樣命名是因?yàn)楫?dāng)數(shù)據(jù)被存入其中后不會(huì)消失。
DRAM 動(dòng)態(tài)隨機(jī)存儲(chǔ)器不同,DRAM 必須在一定的時(shí)間內(nèi)不停的刷新才能保持其中存儲(chǔ)的數(shù)據(jù)。
一個(gè)SRAM 單元通常由4-6 只晶體管組成,當(dāng)這個(gè)SRAM 單元被賦予0 或者1 的狀態(tài)之后,它會(huì)保持這個(gè)狀態(tài)直到下次被賦予新的狀態(tài)或者斷電之后才會(huì)更改或者消失。
SRAM 的速度相對(duì)比較快,而且比較省電,但是存儲(chǔ)1bit 的信息需要4-6 只晶體管制造成本太高了。
DRAM 只要1 只晶體管就可以實(shí)現(xiàn)。
SRAM 芯片
早期的SRAM 芯片采用了20 線雙列直插(DIP:Dual Inline Package)封裝技術(shù),它們之所以具有這么多的針腳,是因?yàn)樗鼈儽仨殻?br />
1) 每個(gè)地址信號(hào)都需要一根信號(hào)線;
2)一根數(shù)據(jù)輸入線和一根數(shù)據(jù)輸出線;
3)部分控制線(Write Enable, Chip Select);
4)地線和電源線。
上圖顯示的是SRAM 芯片,但是并不是下面示意圖中的SRAM 芯片。
下面的是一個(gè)16K x 1-bit SRAM 芯片的針腳功能示意圖。
1) A0-A13 是地址輸入信號(hào)引腳;
2)/CS 是芯片選擇引腳,在一個(gè)實(shí)際的系統(tǒng)中,一定具有很多片SRAM 芯片,所以需要選擇究竟從那一片SRAM 芯片中寫入或者讀取數(shù)據(jù);
3)/WE 是寫入啟用引腳,當(dāng)SRAM 得到一個(gè)地址之后,它需要知道進(jìn)行什么操作,究竟是寫入還是讀取,/WE 就是告訴SRAM 要寫入數(shù)據(jù);
4) Vcc 是供電引腳;
5)Din 是數(shù)據(jù)輸入引腳;
6)Dout 是數(shù)據(jù)輸出引腳;
7)GND 是接地引腳;
8)Output Enable(OE),有的SRAM 芯片中也有這個(gè)引腳,但是上面的圖中并沒(méi)有,這個(gè)引腳同/WE 引腳的功能是相對(duì)的,它是讓SRAM 知道要進(jìn)行讀取操作而不是寫入操作。
從Dout 引腳讀取1bit 數(shù)據(jù)需要以下的步驟:
1) 通過(guò)地址總線把要讀取的bit 的地址傳送到相應(yīng)的讀取地址引腳,這個(gè)時(shí)候/WE 引腳應(yīng)該沒(méi)有激活,所以SRAM 知道它不應(yīng)該執(zhí)行寫入操作;
2)激活/CS,選擇該SRAM 芯片;
3)激活/OE 引腳,讓SRAM 知道是讀取操作;
第三步之后,要讀取的數(shù)據(jù)就會(huì)從DOut 引腳傳輸?shù)綌?shù)據(jù)總線。
寫入1bit 數(shù)據(jù)的過(guò)程如下:
1) 通過(guò)地址總線確定要寫入信息的位置,確定/OE 引腳沒(méi)有被激活;
2) 通過(guò)數(shù)據(jù)總線將要寫入的數(shù)據(jù)傳輸?shù)紻in 引腳;
3)激活/CS 引腳,選擇SRAM 芯片;
4)激活/WE 引腳,通知SRAM 知道要進(jìn)行寫入操作。
經(jīng)過(guò)上面的四個(gè)步驟之后,需要寫入的數(shù)據(jù)就已經(jīng)放在了需要寫入的地方。
DRAM 芯片
DRAM 相對(duì)于SRAM 來(lái)說(shuō)更加復(fù)雜,因?yàn)樵贒RAM 存儲(chǔ)數(shù)據(jù)的過(guò)程中需要對(duì)于存儲(chǔ)的信息不停的刷新,這也是它們之間最大的不同。
下面讓我們看看DRAM 芯片的針腳的作用。
最早、最簡(jiǎn)單也是最重要的一款DRAM 芯片是Intel 在1979 年發(fā)布的2188 ,這款芯片是16Kx1 DRAM 18 線DIP 封裝。
“16K x 1 ”的部分意思告訴我們這款芯片可以存儲(chǔ)16384 個(gè)bit 數(shù)據(jù),在同一個(gè)時(shí)期可以同時(shí)進(jìn)行1bit 的讀取或者寫入操作。
上面的示意圖可以看出,DRAM 和SRAM 之間有著明顯的不同。
首先你會(huì)看到地址引腳從14 根變?yōu)? 根,那么這顆16K DRAM 是如何完成同16K SRAM 一樣的工作的呢?答案很簡(jiǎn)單,DRAM 通過(guò)DRAM 接口把地址一分為二,然后利用兩個(gè)連續(xù)的時(shí)鐘周期傳輸?shù)刂窋?shù)據(jù),這樣就達(dá)到了使用一半的針腳實(shí)現(xiàn)同SRAM 同樣的功能的目的,這種技術(shù)被稱為多路技術(shù)(multiplexing)。
那么為什么好減少地址引腳呢?這樣做有什么好處呢?
前面我們?cè)?jīng)介紹過(guò),存儲(chǔ)1bit 的數(shù)據(jù)SRAM 需要4~6 個(gè)晶體管,但是DRAM 僅僅需要1 個(gè)晶體管,那么這樣同樣容量的SRAM 的體積比DRAM 大至少4 倍。這樣就意味著你沒(méi)有足夠空間安放同樣數(shù)量的引腳(因?yàn)獒樐_并沒(méi)有因此減少4 倍)。
當(dāng)然為了安裝同樣數(shù)量的針腳,也可以把芯片的體積加大,但是這樣就提高芯片的生產(chǎn)成本和功耗。
所以減少針腳數(shù)目也是必要的,對(duì)于現(xiàn)在的大容量DRAM 芯片,多路尋址技術(shù)已經(jīng)是必不可少的了。
當(dāng)然多路尋址技術(shù)也使得讀寫的過(guò)程更加復(fù)雜了,這樣在設(shè)計(jì)的時(shí)候不僅僅DRAM 芯片更加復(fù)雜了,DRAM 接口也要更加復(fù)雜。
DRAM 芯片內(nèi)部結(jié)構(gòu)示意圖如下:
在上面的示意圖中,你可以看到在DRAM 結(jié)構(gòu)中相對(duì)于SRAM 多了兩個(gè)部分:
1) 由/RAS (Row Address Strobe :行地址脈沖選通器)引腳控制的行地址門閂線路(Row Address Latch);
2) 由/CAS(Column Address Strobe :列地址脈沖選通器)引腳控制的列地址門閂線路(Column Address Latch)。
DRAM 讀取過(guò)程如下:
1) 通過(guò)地址總線將行地址傳輸?shù)降刂芬_;
2)/RAS 引腳被激活,這樣行地址被傳送到行地址門閂線路中;
3)行地址解碼器根據(jù)接收到的數(shù)據(jù)選擇相應(yīng)的行;
4)/WE 引腳被確定不被激活,所以DRAM 知道它不會(huì)進(jìn)行寫入操作;
5)列地址通過(guò)地址總線傳輸?shù)降刂芬_;
6)/CAS 引腳被激活,這樣列地址被傳送到行地址門閂線路中;
7)/CAS 引腳同樣還具有/OE 引腳的功能,所以這個(gè)時(shí)候Dout 引腳知道需要向外輸出數(shù)據(jù);
8)/RAS 和/CAS 都不被激活,這樣就可以進(jìn)行下一個(gè)周期的數(shù)據(jù)操作了。
DRAM 的寫入的過(guò)程和讀取過(guò)程是基本一樣的,只要把第4 步改為/WE 引腳被激活就可以了。
DRAM 刷新
我們已經(jīng)提到過(guò),DRAM 同SRAM 最大的不同就是不能比較長(zhǎng)久的保持?jǐn)?shù)據(jù),這項(xiàng)特性使得這種存儲(chǔ)介質(zhì)對(duì)于我們幾乎沒(méi)有任何的作用。但是DRAM 設(shè)計(jì)師利用刷新的技術(shù)使得DRAM 成為了現(xiàn)在對(duì)于我們最有用處的存儲(chǔ)介質(zhì)。
DRAM 內(nèi)僅僅能保持其內(nèi)存儲(chǔ)的電荷非常短暫的時(shí)間,所以它需要在其內(nèi)的電荷消失之前就進(jìn)行刷新直到下次寫入數(shù)據(jù)或者計(jì)算機(jī)斷電才停止。
每次讀寫操作都能刷新DRAM 內(nèi)的電荷,所以DRAM 就被設(shè)計(jì)為有規(guī)律的讀取DRAM 內(nèi)的內(nèi)容。這樣做有下面幾個(gè)好處。
1)僅僅使用/RAS 激活每一行就可以達(dá)到全部刷新的目的;
2)用DRAM 控制器來(lái)控制刷新,這樣可以防止刷新操作干擾有規(guī)律的讀寫操作。
在文章的開始,曾經(jīng)說(shuō)過(guò)一般行的數(shù)目比列的數(shù)據(jù)少,原因就是:行越少用戶刷新的時(shí)間就會(huì)越少。
ROM、RAM的區(qū)別:
ROM(只讀存儲(chǔ)器或者固化存儲(chǔ)器)
RAM(隨機(jī)存取存儲(chǔ)器)
ROM和RAM指的都是半導(dǎo)體存儲(chǔ)器,ROM是Read Only Memory的縮寫,RAM是Random Access Memory的縮寫。ROM在系統(tǒng)停止供電的時(shí)候仍然可以保持?jǐn)?shù)據(jù),而RAM通常都是在掉電之后就丟失數(shù)據(jù),典型的RAM就是計(jì)算機(jī)的內(nèi)存。
RAM有兩大類,一種稱為靜態(tài)RAM(Static RAM/SRAM),SRAM速度非??欤悄壳白x寫最快的存儲(chǔ)設(shè)備了,但是它也非常昂貴,所以只在要求很苛刻的地方使用,譬如CPU的一級(jí)緩沖,二級(jí)緩 沖。另一種稱為動(dòng)態(tài)RAM(Dynamic RAM/DRAM),DRAM保留數(shù)據(jù)的時(shí)間很短,速度也比SRAM慢,不過(guò)它還是比任何的ROM都要快,但從價(jià)格上來(lái)說(shuō)DRAM相比SRAM要便宜很 多,計(jì)算機(jī)內(nèi)存就是DRAM的。
DRAM分為很多種,常見(jiàn)的主要有FPRAM/FastPage、EDORAM、SDRAM、DDR RAM、RDRAM、SGRAM以及WRAM等,這里介紹其中的一種DDR RAM。DDR RAM(Date-Rate RAM)也稱作DDR SDRAM,這種改進(jìn)型的RAM和SDRAM是基本一樣的,不同之處在于它可以在一個(gè)時(shí)鐘讀寫兩次數(shù)據(jù),這樣就使得數(shù)據(jù)傳輸速度加倍了。這是目前電腦中用 得最多的內(nèi)存,而且它有著成本優(yōu)勢(shì),事實(shí)上擊敗了Intel的另外一種內(nèi)存標(biāo)準(zhǔn)-Rambus DRAM。在很多高端的顯卡上,也配備了高速DDR RAM來(lái)提高帶寬,這可以大幅度提高3D加速卡的像素渲染能力。
ROM也有很多種,PROM是可編程的ROM,PROM和EPROM(可擦除可編程ROM)兩者區(qū)別是,PROM是一次性的,也就是軟件灌入后,就無(wú)法修 改了,這種是早期的產(chǎn)品,現(xiàn)在已經(jīng)不可能使用了,而EPROM是通過(guò)紫外光的照射擦出原先的程序,是一種通用的存儲(chǔ)器。另外一種EEPROM是通過(guò)電子擦 出,價(jià)格很高,寫入時(shí)間很長(zhǎng),寫入很慢。
舉個(gè)例子,手機(jī)軟件一般放在EEPROM中,我們打電話,有些最后撥打的號(hào)碼,暫時(shí)是存在SRAM中的,不是馬上寫入通過(guò)記錄(通話記錄保存在EEPROM中),因?yàn)楫?dāng)時(shí)有很重要工作(通話)要做,如果寫入,漫長(zhǎng)的等待是讓用戶忍無(wú)可忍的。
FLASH存儲(chǔ)器又稱閃存,它結(jié)合了ROM和RAM的長(zhǎng)處,不僅具備電子可擦出可編程(EEPROM)的性能,還不會(huì)斷電丟失數(shù)據(jù)同時(shí)可以快速讀取數(shù)據(jù) (NVRAM的優(yōu)勢(shì)),U盤和MP3里用的就是這種存儲(chǔ)器。在過(guò)去的20年里,嵌入式系統(tǒng)一直使用ROM(EPROM)作為它們的存儲(chǔ)設(shè)備,然而近年來(lái) Flash全面代替了ROM(EPROM)在嵌入式系統(tǒng)中的地位,用作存儲(chǔ)Bootloader以及操作系統(tǒng)或者程序代碼或者直接當(dāng)硬盤使用(U盤)。
目前Flash主要有兩種NOR Flash和NADN Flash。NOR Flash的讀取和我們常見(jiàn)的SDRAM的讀取是一樣,用戶可以直接運(yùn)行裝載在NOR FLASH里面的代碼,這樣可以減少SRAM的容量從而節(jié)約了成本。NAND Flash沒(méi)有采取內(nèi)存的隨機(jī)讀取技術(shù),它的讀取是以一次讀取一快的形式來(lái)進(jìn)行的,通常是一次讀取512個(gè)字節(jié),采用這種技術(shù)的Flash比較廉價(jià)。用戶 不能直接運(yùn)行NAND Flash上的代碼,因此好多使用NAND Flash的開發(fā)板除了使用NAND Flah以外,還作上了一塊小的NOR Flash來(lái)運(yùn)行啟動(dòng)代碼。
一般小容量的用NOR Flash,因?yàn)槠渥x取速度快,多用來(lái)存儲(chǔ)操作系統(tǒng)等重要信息,而大容量的用NAND FLASH,最常見(jiàn)的NAND FLASH應(yīng)用是嵌入式系統(tǒng)采用的DOC(Disk On Chip)和我們通常用的“閃盤”,可以在線擦除。目前市面上的FLASH 主要來(lái)自Intel,AMD,F(xiàn)ujitsu和Toshiba,而生產(chǎn)NAND Flash的主要廠家有Samsung和Toshiba。
ROM和硬盤的區(qū)別(電腦硬盤不是ROM,BIOS存在ROM當(dāng)中):
只讀內(nèi)存(Read-Only Memory)就是ROM,它是一塊單獨(dú)的內(nèi)部存儲(chǔ)器,和隨機(jī)內(nèi)存RAM(即平時(shí)說(shuō)的內(nèi)存)相似,但是只能讀取,用來(lái)存儲(chǔ)和保存永久數(shù)據(jù)的。ROM數(shù)據(jù)不能隨意更新,但是在任何時(shí)候都可以讀取。即使是斷電,ROM也能夠保留數(shù)據(jù)。
往ROM中注入數(shù)據(jù)需要另外的編譯器,PC上面是沒(méi)有這個(gè)功能的。一般在ROM出廠前注入信息,沒(méi)有特殊情況一般不會(huì)更改內(nèi)容,也就是說(shuō)通常是一輩子都是同樣的內(nèi)容。
在PC中容易誤解的一點(diǎn)就是經(jīng)常有人把ROM和HardDisk(硬盤)搞混淆,HardDisk是屬于外部存儲(chǔ)器,而ROM是內(nèi)部存儲(chǔ)器。樣貌 也有很大差別,硬盤是一個(gè)立方體狀的東西,而ROM更像一個(gè)扁平固定長(zhǎng)條狀的東西。硬盤可以輕易地改寫內(nèi)容,但是ROM不可以。而且硬盤的容量比ROM大 得多。
在PC中ROM內(nèi)的內(nèi)容有BIOS程序和機(jī)器碼和出廠信息之類的東西。
而計(jì)算機(jī)的外部存儲(chǔ)器中采用了類似磁帶的裝置的東東就叫磁盤。軟盤、硬盤、U盤等都是磁盤的一種。
總結(jié)
以上是生活随笔為你收集整理的SRAM、DRAM、硬盘、ROM、RAM、EPROM、FLASH区别和联系的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: linux命令之yum(软件的安装卸载)
- 下一篇: origin设置上下标