天天看點

RAM、DRAM、硬碟、ROM、RAM、EPROM、FLASH差別和聯系

RAM、DRAM、硬碟、ROM、RAM、EPROM、FLASH差別和聯系

RAM、DRAM、硬碟、ROM、RAM、EPROM、FLASH差別和聯系

轉載

存儲原理

RAM(Random Access Memory )随機存取存儲器,主要的作用就是存儲代碼和資料供CPU 在需要的時候調用。

但是這些資料并不是像用袋子盛米那麼簡單,更像是圖書館中用有格子的書架存放書籍一樣,不但要放進去還要能夠在需要的時候準确的調用出來,雖然都是書但是每本書是不同的。

對于RAM 等存儲器來說也是一樣的,雖然存儲的都是代表0 和1 的代碼,但是不同的組合就是不同的資料。

讓我們重新回到書和書架上來,如果有一個書架上有10 行和10 列格子(每行和每列都有0-9 的編号),有100 本書要存放在裡面,那麼我們使用+個行的編号+個列的編号就能确定某一本書的位置。如果已知這本書的編号87,那麼我們首先鎖定第8 行,然後找到第7 列就能準确的找到這本書了。

在RAM 存儲器中也是利用了相似的原理。

現在讓我們回到RAM 存儲器上,對于RAM 存儲器而言,資料總線是用來傳入資料或者傳出資料的。因為存儲器中的存儲空間是如果前面提到的存放圖書的書架一樣通過一定的規則定義的,是以我們可以通過這個規則來把資料存放到存儲器上相應的位置,而進行這種定位的工作就要依靠位址總線來實作了。

對于CPU 來說,RAM 就象是一條長長的有很多空格的細線,每個空格都有一個唯一的位址與之相對應。

如果CPU 想要從RAM 中調用資料,它首先需要給位址總線發送位址資料定位要存取的資料,然後等待若幹個時鐘周期之後,資料總線就會把資料傳輸給CPU。

下面的示意圖可以幫助你很好的了解這個過程。

上圖中的小園點代表RAM 中的存儲空間,每一個都有一個唯一的位址線同它相連。

當位址解碼器接收到位址總線送來的位址資料之後,它會根據這個資料定位CPU想要調用的資料所在的位置,然後資料總線就會把其中的資料傳送到CPU。

上面所列舉的例子中,CPU 在一行資料中每次存取一個位元組的資料,但是在現實世界中是不同的,通常CPU 每次需要調用32bit 或者是64bit 的資料(這是根據不同計算機系統的資料總線的位寬所決定的)。如果資料總線是64bit 的話,CPU就會在一個時間中存取8 個位元組的資料,因為每次還是存取1 個位元組的資料,64bit 總線将不會顯示出來任何的優勢,工作的效率将會降低很多。

從“線”到“矩陣”

如果RAM 對于CPU 來說僅僅是一條“線”的話,還不能展現實際的運作情況。因為如果實際情況真的是這樣的話,在實際制造晶片的時候,會有很多實際的困難,特别是在需要設計大容量的RAM 的時候。

是以,一種更好的能夠降低成本的方法是讓存儲資訊的“空格”排列 為很多行,每個“空格”對應一個bit 存儲的位置。這樣,如果要存儲1024bits 的資料,那麼你隻要使用32x32 的矩陣就能夠達到這個目的了。很明顯,一個32x32 的矩陣比一個1024bit 的行裝置更緊湊,實作起來也更加容易。

請看下圖。

知道了RAM 的基本結構是什麼樣子的,我們就下面談談當存儲位元組的過程是怎樣的。

上面的示意圖 顯示的也僅僅是最簡單狀态下的情況,也就是當記憶體條上僅僅隻有一個RAM 晶片的情況。

對于X86 處理器,它通過位址總線發出一個具有22 位二進制數字的位址編碼,其中11 位是行位址,另外11 位是列位址,這是通過RAM 位址接口進行分離的。

行位址解碼器(row decoder)将會首先确定行位址,然後列位址解碼器(column decoder)将會确定列位址,這樣就能确定唯一的存儲資料的位置,然後該資料就會通過RAM 資料接口将資料傳到資料總線。

另外,需要注意的是,RAM 内部存儲資訊的矩陣并不是一個正方形的,也就是行和列的數目不是相同的,行的數目比列的數目少。

上面的示意圖 粗略的概括了一個基本的SRAM 晶片是如何工作的。

SRAM 是“static RAM(靜态随機存儲器)”的簡稱,之是以這樣命名是因為當資料被存入其中後不會消失。

DRAM 動态随機存儲器不同,DRAM 必須在一定的時間内不停的重新整理才能保持其中存儲的資料。

一個SRAM 單元通常由4-6 隻半導體組成,當這個SRAM 單元被賦予0 或者1 的狀态之後,它會保持這個狀态直到下次被賦予新的狀态或者斷電之後才會更改或者消失。

SRAM 的速度相對比較快,而且比較省電,但是存儲1bit 的資訊需要4-6 隻半導體制造成本太高了。

DRAM 隻要1 隻半導體就可以實作。

SRAM 晶片

早期的SRAM 晶片采用了20 線雙列直插(DIP:Dual Inline Package)封裝技術,它們之是以具有這麼多的針腳,是因為它們必須:

1) 每個位址信号都需要一根信号線;

2) 一根資料輸入線和一根資料輸出線;

3) 部分控制線(Write Enable, Chip Select);

4) 地線和電源線。

上圖顯示的是SRAM 晶片,但是并不是下面示意圖中的SRAM 晶片。

下面的是一個16K x 1-bit SRAM 晶片的針腳功能示意圖。

1) A0-A13 是位址輸入信号引腳;

2) /CS 是晶片選擇引腳,在一個實際的系統中,一定具有很多片SRAM 晶片,是以需要選擇究竟從那一片SRAM 晶片中寫入或者讀取資料;

3) /WE 是寫入啟用引腳,當SRAM 得到一個位址之後,它需要知道進行什麼操作,究竟是寫入還是讀取,/WE 就是告訴SRAM 要寫入資料;

4) Vcc 是供電引腳;

5) Din 是資料輸入引腳;

6) Dout 是資料輸出引腳;

7) GND 是接地引腳;

8) Output Enable(OE),有的SRAM 晶片中也有這個引腳,但是上面的圖中并沒有,這個引腳同/WE 引腳的功能是相對的,它是讓SRAM 知道要進行讀取操作而不是寫入操作。

從Dout 引腳讀取1bit 資料需要以下的步驟:

1) 通過位址總線把要讀取的bit 的位址傳送到相應的讀取位址引腳,這個時候/WE 引腳應該沒有激活,是以SRAM 知道它不應該執行寫入操作;

2) 激活/CS,選擇該SRAM 晶片;

3) 激活/OE 引腳,讓SRAM 知道是讀取操作;

第三步之後,要讀取的資料就會從DOut 引腳傳輸到資料總線。

寫入1bit 資料的過程如下:

1) 通過位址總線确定要寫入資訊的位置,确定/OE 引腳沒有被激活;

2) 通過資料總線将要寫入的資料傳輸到Din 引腳;

3) 激活/CS 引腳,選擇SRAM 晶片;

4) 激活/WE 引腳,通知SRAM 知道要進行寫入操作。

經過上面的四個步驟之後,需要寫入的資料就已經放在了需要寫入的地方。

DRAM 晶片

DRAM 相對于SRAM 來說更加複雜,因為在DRAM 存儲資料的過程中需要對于存儲的資訊不停的重新整理,這也是它們之間最大的不同。

下面讓我們看看DRAM 晶片的針腳的作用。

最早、最簡單也是最重要的一款DRAM 晶片是Intel 在1979 年釋出的2188 ,這款晶片是16Kx1 DRAM 18 線DIP 封裝。

“16K x 1 ”的部分意思告訴我們這款晶片可以存儲16384 個bit 資料,在同一個時期可以同時進行1bit 的讀取或者寫入操作。

上面的示意圖可以看出,DRAM 和SRAM 之間有着明顯的不同。

首先你會看到位址引腳從14 根變為7 根,那麼這顆16K DRAM 是如何完成同16K SRAM 一樣的工作的呢?答案很簡單,DRAM 通過DRAM 接口把位址一分為二,然後利用兩個連續的時鐘周期傳輸位址資料,這樣就達到了使用一半的針腳實作同SRAM 同樣的功能的目的,這種技術被稱為多路技術(multiplexing)。

那麼為什麼好減少位址引腳呢?這樣做有什麼好處呢?

前面我們曾經介紹過,存儲1bit 的資料SRAM 需要4~6 個半導體,但是DRAM 僅僅需要1 個半導體,那麼這樣同樣容量的SRAM 的體積比DRAM 大至少4 倍。這樣就意味着你沒有足夠空間安放同樣數量的引腳(因為針腳并沒有是以減少4倍)。

當然為了安裝同樣數量的針腳,也可以把晶片的體積加大,但是這樣就提高晶片的生産成本和功耗。

是以減少針腳數目也是必要的,對于現在的大容量DRAM 晶片,多路尋址技術已經是必不可少的了。

當然多路尋址技術也使得讀寫的過程更加複雜了,這樣在設計的時候不僅僅DRAM晶片更加複雜了,DRAM 接口也要更加複雜。

DRAM 晶片内部結構示意圖如下:

在上面的示意圖中,你可以看到在DRAM 結構中相對于SRAM 多了兩個部分:

1) 由/RAS (Row Address Strobe :行位址脈沖選通器)引腳控制的行位址門闩線路(Row Address Latch);

2) 由/CAS(Column Address Strobe :列位址脈沖選通器)引腳控制的列位址門闩線路(Column Address Latch)。

DRAM 讀取過程如下:

1) 通過位址總線将行位址傳輸到位址引腳;

2) /RAS 引腳被激活,這樣行位址被傳送到行位址門闩線路中;

3) 行位址解碼器根據接收到的資料選擇相應的行;

4) /WE 引腳被确定不被激活,是以DRAM 知道它不會進行寫入操作;

5) 列位址通過位址總線傳輸到位址引腳;

6) /CAS 引腳被激活,這樣列位址被傳送到行位址門闩線路中;

7) /CAS 引腳同樣還具有/OE 引腳的功能,是以這個時候Dout 引腳知道需要向外輸出資料;

8) /RAS 和/CAS 都不被激活,這樣就可以進行下一個周期的資料操作了。

DRAM 的寫入的過程和讀取過程是基本一樣的,隻要把第4 步改為/WE 引腳被激活就可以了。

DRAM 重新整理

我們已經提到過,DRAM 同SRAM 最大的不同就是不能比較長久的保持資料,這項特性使得這種存儲媒體對于我們幾乎沒有任何的作用。但是DRAM 設計師利用重新整理的技術使得DRAM 成為了現在對于我們最有用處的存儲媒體。

DRAM 内僅僅能保持其記憶體儲的電荷非常短暫的時間,是以它需要在其内的電荷消失之前就進行重新整理直到下次寫入資料或者計算機斷電才停止。

每次讀寫操作都能重新整理DRAM 内的電荷,是以DRAM 就被設計為有規律的讀取DRAM内的内容。這樣做有下面幾個好處。

1) 僅僅使用/RAS 激活每一行就可以達到全部重新整理的目的;

2) 用DRAM 控制器來控制重新整理,這樣可以防止重新整理操作幹擾有規律的讀寫操作。

在文章的開始,曾經說過一般行的數目比列的資料少,原因就是:行越少使用者重新整理的時間就會越少。

ROM、RAM的差別:

ROM(隻讀存儲器或者固化存儲器)

RAM(随機存取存儲器)

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

RAM有兩大類,一種稱為靜态RAM(Static RAM/SRAM),SRAM速度非常快,是目前讀寫最快的儲存設備了,但是它也非常昂貴,是以隻在要求很苛刻的地方使用,譬如CPU的一級緩沖,二級緩 沖。另一種稱為動态RAM(DynamicRAM/DRAM),DRAM保留資料的時間很短,速度也比SRAM慢,不過它還是比任何的ROM都要快,但從價格上來說DRAM相比SRAM要便宜很 多,計算機記憶體就是DRAM的。 

DRAM分為很多種,常見的主要有FPRAM/FastPage、EDORAM、SDRAM、DDRRAM、RDRAM、SGRAM以及WRAM等,這裡介紹其中的一種DDR RAM。DDRRAM(Date-Rate RAM)也稱作DDR SDRAM,這種改進型的RAM和SDRAM是基本一樣的,不同之處在于它可以在一個時鐘讀寫兩次資料,這樣就使得資料傳輸速度加倍了。這是目前電腦中用 得最多的記憶體,而且它有着成本優勢,事實上擊敗了Intel的另外一種記憶體标準-Rambus DRAM。在很多高端的顯示卡上,也配備了高速DDR RAM來提高帶寬,這可以大幅度提高3D加速卡的像素渲染能力。 

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以外,還作上了一塊小的NORFlash來運作啟動代碼。 

一般小容量的用NOR Flash,因為其讀取速度快,多用來存儲作業系統等重要資訊,而大容量的用NAND FLASH,最常見的NAND FLASH應用是嵌入式系統采用的DOC(Disk On Chip)和我們通常用的“閃盤”,可以線上擦除。目前市面上的FLASH 主要來自Intel,AMD,Fujitsu和Toshiba,而生産NAND Flash的主要廠家有Samsung和Toshiba。

ROM和硬碟的差別(電腦硬碟不是ROM,BIOS存在ROM當中):

隻讀記憶體(Read-Only Memory)就是ROM,它是一塊單獨的内部存儲器,和随機記憶體RAM(即平時說的記憶體)相似,但是隻能讀取,用來存儲和儲存永久資料的。ROM資料不能随意更新,但是在任何時候都可以讀取。即使是斷電,ROM也能夠保留資料。 

往ROM中注入資料需要另外的編譯器,PC上面是沒有這個功能的。一般在ROM出廠前注入資訊,沒有特殊情況一般不會更改内容,也就是說通常是一輩子都是同樣的内容。 

在PC中容易誤解的一點就是經常有人把ROM和HardDisk(硬碟)搞混淆,HardDisk是屬于外部存儲器,而ROM是内部存儲器。樣貌 也有很大差别,硬碟是一個立方體狀的東西,而ROM更像一個扁平固定長條狀的東西。硬碟可以輕易地改寫内容,但是ROM不可以。而且硬碟的容量比ROM大 得多。 

在PC中ROM内的内容有BIOS程式和機器碼和出廠資訊之類的東西。 

而計算機的外部存儲器中采用了類似錄音帶的裝置的東東就叫磁盤。軟碟、硬碟、U盤等都是磁盤的一種。

繼續閱讀