RAM(Random Access Memory)隨機存取存儲器對于系統性能的影響是每個(gè)PC用戶(hù)都非常清楚的,所以很多朋友趁著(zhù)現在的內存價(jià)格很低紛紛擴容了內存,希望借此來(lái)得到更高的性能。不過(guò)現在市場(chǎng)是多種內存類(lèi)型并存的,SDRAM、DDR SDRAM、RDRAM等等,如果你使用的還是非常古老的系統,可能還需要EDO DRAM、FP DRAM(塊頁(yè))等現在不是很常見(jiàn)的內存。 對于很多用戶(hù)或者有一定經(jīng)驗的高級用戶(hù)來(lái)說(shuō),他可能能說(shuō)出Athlon XP和Pentium 4的主要不同點(diǎn),能知道GeForce3和Radeon之間的區別,但是如果真的讓他說(shuō)出各種內存之間的實(shí)現機理的主要差別或者解釋CAS 2和CAS 3之間的主要差別的話(huà),就可能不是非常的清楚了。畢竟CPU和顯卡之類(lèi)的東西更容易引起我們的興趣。我個(gè)人在這方面的知識也是比較片面甚至是一知半解的,所以一直在收集這個(gè)方面的資料。在網(wǎng)上有很多很好的資源,其中Ars technica、Aceshardware、simpletech等網(wǎng)站的資料對于我系統的了解這個(gè)方面的知識有很大的幫助。本文主要以Ars technica的文章為基礎編寫(xiě)而成,為大家比較詳細的介紹RAM方面的知識。 雖然RAM的類(lèi)型非常的多,但是這些內存在實(shí)現的機理方面還是具有很多相同的地方,所以本文的將會(huì )分為幾個(gè)部分進(jìn)行介紹,第一部分主要介紹SRAM和異步DRAM(asynchronous DRAM),在以后的章節中會(huì )對于實(shí)現機理更加復雜的FP、EDO和SDRAM進(jìn)行介紹,當然還會(huì )包括RDRAM和SGRAM等等。對于其中同你的觀(guān)點(diǎn)相悖的地方,歡迎大家一起進(jìn)行技術(shù)方面的探討。 存儲原理 為了便于不同層次的讀者都能基本的理解本文,所以我先來(lái)介紹一下很多用戶(hù)都知道的東西。RAM主要的作用就是存儲代碼和數據供CPU在需要的時(shí)候調用。但是這些數據并不是像用袋子盛米那么簡(jiǎn)單,更像是圖書(shū)館中用有格子的書(shū)架存放書(shū)籍一樣,不但要放進(jìn)去還要能夠在需要的時(shí)候準確的調用出來(lái),雖然都是書(shū)但是每本書(shū)是不同的。對于RAM等存儲器來(lái)說(shuō)也是一樣的,雖然存儲的都是代表0和1的代碼,但是不同的組合就是不同的數據。 讓我們重新回到書(shū)和書(shū)架上來(lái),如果有一個(gè)書(shū)架上有10行和10列格子(每行和每列都有0-9的編號),有100本書(shū)要存放在里面,那么我們使用一個(gè)行的編號+一個(gè)列的編號就能確定某一本書(shū)的位置。如果已知這本書(shū)的編號87,那么我們首先鎖定第8行,然后找到第7列就能準確的找到這本書(shū)了。在RAM存儲器中也是利用了相似的原理 現在讓我們回到RAM存儲器上,對于RAM存儲器而言數據總線(xiàn)是用來(lái)傳入數據或者傳出數據的。因為存儲器中的存儲空間是如果前面提到的存放圖書(shū)的書(shū)架一樣通過(guò)一定的規則定義的,所以我們可以通過(guò)這個(gè)規則來(lái)把數據存放到存儲器上相應的位置,而進(jìn)行這種定位的工作就要依靠地址總線(xiàn)來(lái)實(shí)現了。對于CPU來(lái)說(shuō),RAM就象是一條長(cháng)長(cháng)的有很多空格的細線(xiàn),每個(gè)空格都有一個(gè)唯一的地址與之相對應。如果CPU想要從RAM中調用數據,它首先需要給地址總線(xiàn)發(fā)送地址數據定位要存取的數據,然后等待若干個(gè)時(shí)鐘周期之后,數據總線(xiàn)就會(huì )把數據傳輸給CPU。下面的示意圖可以幫助你很好的理解這個(gè)過(guò)程。 上圖中的小園點(diǎn)代表RAM中的存儲空間,每一個(gè)都有一個(gè)唯一的地址線(xiàn)同它相連。當地址解碼器接收到地址總線(xiàn)送來(lái)的地址數據之后,它會(huì )根據這個(gè)數據定位CPU想要調用的數據所在的位置,然后數據總線(xiàn)就會(huì )把其中的數據傳送到CPU。 上面所列舉的例子中CPU在一行數據中每次知識存取一個(gè)字節的數據,但是在現實(shí)世界中是不同的,通常CPU每次需要調用32bit或者是64bit的數據(這是根據不同計算機系統的數據總線(xiàn)的位寬所決定的)。如果數據總線(xiàn)是64bit的話(huà),CPU就會(huì )在一個(gè)時(shí)間中存取8個(gè)字節的數據,因為每次還是存取1個(gè)字節的數據,64bit總線(xiàn)將不會(huì )顯示出來(lái)任何的優(yōu)勢,women工作的效率將會(huì )降低很多。 從“線(xiàn)”到“矩陣” 如果RAM對于CPU來(lái)說(shuō)僅僅是一條“線(xiàn)”的話(huà),還不能體現實(shí)際的運行情況。因為如果實(shí)際情況真的是這樣的話(huà),在實(shí)際制造芯片的時(shí)候,會(huì )有很多實(shí)際的困難,特別是在需要設計大容量的RAM的時(shí)候。所以,一種更好的能夠降低成本的方法是讓存儲信息的“空格”排列為很多行--每個(gè)“空格”對應一個(gè)bit存儲的位置。這樣,如果要存儲1024bits的數據,那么你只要使用32x32的矩陣就能夠達到這個(gè)目的了。很明顯,一個(gè)32x32的矩陣比一個(gè)1024bit的行設備更緊湊,實(shí)現起來(lái)也更加容易。請看下圖: 知道了RAM的基本結構是什么樣子的,我們就下面談?wù)劗敶鎯ψ止澋倪^(guò)程是怎樣的: 上面的示意圖顯示的也僅僅是最簡(jiǎn)單狀態(tài)下的情況,也就是當內存條上僅僅只有一個(gè)RAM芯片的情況。對于X86處理器,它通過(guò)地址總線(xiàn)發(fā)出一個(gè)具有22位二進(jìn)制數字的地址編碼--其中11位是行地址,另外11位是列地址,這是通過(guò)RAM地址接口進(jìn)行分離的。行地址解碼器(row decoder)將會(huì )首先確定行地址,然后列地址解碼器(column decoder)將會(huì )確定列地址,這樣就能確定唯一的存儲數據的位置,然后該數據就會(huì )通過(guò)RAM數據接口將數據傳到數據總線(xiàn)。另外,需要注意的是,RAM內部存儲信息的矩陣并不是一個(gè)正方形的,也就是行和列的數目不是相同的--行的數目比列的數目少。(后面我們在討論DRAM的過(guò)程中會(huì )講到為什么會(huì )這樣) 上面的示意圖粗略的概括了一個(gè)基本的SRAM芯片是如何工作的。SRAM是“static RAM(靜態(tài)隨機存儲器)”的簡(jiǎn)稱(chēng),之所以這樣命名是因為當數據被存入其中后不會(huì )消失(同DRAM動(dòng)態(tài)隨機存儲器是不同,DRAM必須在一定的時(shí)間內不停的刷新才能保持其中存儲的數據)。一個(gè)SRAM單元通常由4-6只晶體管組成,當這個(gè)SRAM單元被賦予0或者1的狀態(tài)之后,它會(huì )保持這個(gè)狀態(tài)直到下次被賦予新的狀態(tài)或者斷電之后才會(huì )更改或者消失。SRAM的速度相對比較快,而且比較省電,但是存儲1bit的信息需要4-6只晶體管制造成本太高了(DRAM只要1只晶體管就可以實(shí)現)。 RAM芯片


前面的介紹都相對比較簡(jiǎn)單、抽象。下面我們會(huì )結合實(shí)際的RAM芯片進(jìn)行介紹。在談到這個(gè)問(wèn)題的時(shí)候,我們會(huì )涉及到一個(gè)比較重要的技術(shù):封裝。你應該聽(tīng)說(shuō)過(guò)諸如30線(xiàn)SIMMS、72線(xiàn)SIMMS和168線(xiàn)DIMMS或者RIMMs其中的一個(gè)或者幾個(gè)術(shù)語(yǔ)吧。如果要解釋這些術(shù)語(yǔ)之間的不同,就應該了解RAM的封裝技術(shù)。
SRAM芯片
早期的SRAM芯片采用了20線(xiàn)雙列直插(DIP:Dual Inline Package)封裝技術(shù),它們之所以具有這么多的針腳,是因為它們必須:
每個(gè)地址信號都需要一根信號線(xiàn)
一根數據輸入線(xiàn)和一根數據輸出線(xiàn)
部分控制線(xiàn)(Write Enable, Chip Select)
地線(xiàn)和電源線(xiàn)

上圖顯示的是SRAM芯片,但是并不是下面示意圖中的SRAM芯片
下面的是一個(gè)16K x 1-bit SRAM芯片的針腳功能示意圖:

CS是芯片選擇引腳
在一個(gè)實(shí)際的系統中,一定具有很多片SRAM芯片,所以需要選擇究竟從那一片SRAM芯片中寫(xiě)入或者讀取數據
WE是寫(xiě)入啟用引腳(如上表,在CS、WE上面的線(xiàn)我沒(méi)有寫(xiě)入,表示低電平有效或者是邏輯0時(shí)有效):
當SRAM得到一個(gè)地址之后,它需要知道進(jìn)行什么操作,究竟是寫(xiě)入還是讀取,WE就是告訴SRAM要寫(xiě)入數據
Vcc是供電引腳
Din是數據輸入引腳
Dout是數據輸出引腳
GND是接地引腳
Output Enable(OE):有的SRAM芯片中也有這個(gè)引腳,但是上面的圖中并沒(méi)有。這個(gè)引腳同WE引腳的功能是相對的,它是讓SRAM知道要進(jìn)行讀取操作而不是寫(xiě)入操作。
從Dout引腳讀取1bit數據需要以下的步驟:
SRAM讀取操作
1)通過(guò)地址總線(xiàn)把要讀取的bit的地址傳送到相應的讀取地址引腳(這個(gè)時(shí)候/WE引腳應該沒(méi)有激活,所以SRAM知道它不應該執行寫(xiě)入操作)
2)激活/CS選擇該SRAM芯片
3)激活/OE引腳讓SRAM知道是讀取操作
第三步之后,要讀取的數據就會(huì )從DOut引腳傳輸到數據總線(xiàn)。怎么過(guò)程非常的簡(jiǎn)單吧?同樣,寫(xiě)入1bit數據的過(guò)程也是非常的簡(jiǎn)單的。
SRAM寫(xiě)入操作
1)通過(guò)地址總線(xiàn)確定要寫(xiě)入信息的位置(確定/OE引腳沒(méi)有被激活)
2)通過(guò)數據總線(xiàn)將要寫(xiě)入的數據傳輸到Dout引腳
3)激活/CS引腳選擇SRAM芯片
4)激活/WE引腳通知SRAM知道要盡心寫(xiě)入操作
經(jīng)過(guò)上面的四個(gè)步驟之后,需要寫(xiě)入的數據就已經(jīng)放在了需要寫(xiě)入的地方。
DRAM芯片
現在我們知道了在一個(gè)簡(jiǎn)單的SRAM芯片中進(jìn)行讀寫(xiě)操作的步驟了了,然后我們來(lái)了解一下普通的DRAM芯片的工作情況。DRAM相對于SRAM來(lái)說(shuō)更加復雜,因為在DRAM存儲數據的過(guò)程中需要對于存儲的信息不停的刷新,這也是它們之間最大的不同。下面讓我們看看DRAM芯片的針腳的作用。
最早、最簡(jiǎn)單也是最重要的一款DRAM芯片是Intel在1979年發(fā)布的2188,這款芯片是16Kx1 DRAM 18線(xiàn)DIP封裝。“16K x 1”的部分意思告訴我們這款芯片可以存儲16384個(gè)bit數據,在同一個(gè)時(shí)期可以同時(shí)進(jìn)行1bit的讀取或者寫(xiě)入操作。(很抱歉找不到這款芯片的實(shí)物圖片,只好自己簡(jiǎn)單的畫(huà)了一個(gè)示意圖)

那么為什么好減少地址引腳呢?這樣做有什么好處呢?前面我們曾經(jīng)介紹過(guò),存儲1bit的數據SRAM需要4-6個(gè)晶體管但是DRAM僅僅需要1個(gè)晶體管,那么這樣同樣容量的SRAM的體積比DRAM大至少4倍。這樣就意味著(zhù)你沒(méi)有足夠空間安放同樣數量的引腳(因為針腳并沒(méi)有因此減少4倍)。當然為了安裝同樣數量的針腳,也可以把芯片的體積加大,但是這樣就提高芯片的生產(chǎn)成本和功耗,所以減少針腳數目也是必要的,對于現在的大容量DRAM芯片,多路尋址技術(shù)已經(jīng)是必不可少的了。
當然多路尋址技術(shù)也使得讀寫(xiě)的過(guò)程更加復雜了,這樣在設計的時(shí)候不僅僅DRAM芯片更加復雜了,DRAM接口也要更加復雜,在我們介紹DRAM讀寫(xiě)過(guò)程之前,請大家看一張DRAM芯片內部結構示意圖:

RAM(Random Access Memory)隨機存取存儲器對于系統性能的影響是每個(gè)PC用戶(hù)都非常清楚的,所以很多朋友趁著(zhù)現在的內存價(jià)格很低紛紛擴容了內存,希望借此來(lái)得到更高的性能。不過(guò)現在市場(chǎng)是多種內存類(lèi)型并存的,SDRAM、DDR SDRAM、RDRAM等等,如果你使用的還是非常古老的系統,可能還需要EDO DRAM、FP DRAM(塊頁(yè))等現在不是很常見(jiàn)的內存。
對于很多用戶(hù)或者有一定經(jīng)驗的高級用戶(hù)來(lái)說(shuō),他可能能說(shuō)出Athlon XP和Pentium 4的主要不同點(diǎn),能知道GeForce3和Radeon之間的區別,但是如果真的讓他說(shuō)出各種內存之間的實(shí)現機理的主要差別或者解釋CAS 2和CAS 3之間的主要差別的話(huà),就可能不是非常的清楚了。畢竟CPU和顯卡之類(lèi)的東西更容易引起我們的興趣。我個(gè)人在這方面的知識也是比較片面甚至是一知半解的,所以一直在收集這個(gè)方面的資料。在網(wǎng)上有很多很好的資源,其中Ars technica、Aceshardware、simpletech等網(wǎng)站的資料對于我系統的了解這個(gè)方面的知識有很大的幫助。本文主要以Ars technica的文章為基礎編寫(xiě)而成,為大家比較詳細的介紹RAM方面的知識。
雖然RAM的類(lèi)型非常的多,但是這些內存在實(shí)現的機理方面還是具有很多相同的地方,所以本文的將會(huì )分為幾個(gè)部分進(jìn)行介紹,第一部分主要介紹SRAM和異步DRAM(asynchronous DRAM),在以后的章節中會(huì )對于實(shí)現機理更加復雜的FP、EDO和SDRAM進(jìn)行介紹,當然還會(huì )包括RDRAM和SGRAM等等。對于其中同你的觀(guān)點(diǎn)相悖的地方,歡迎大家一起進(jìn)行技術(shù)方面的探討。
存儲原理
為了便于不同層次的讀者都能基本的理解本文,所以我先來(lái)介紹一下很多用戶(hù)都知道的東西。RAM主要的作用就是存儲代碼和數據供CPU在需要的時(shí)候調用。但是這些數據并不是像用袋子盛米那么簡(jiǎn)單,更像是圖書(shū)館中用有格子的書(shū)架存放書(shū)籍一樣,不但要放進(jìn)去還要能夠在需要的時(shí)候準確的調用出來(lái),雖然都是書(shū)但是每本書(shū)是不同的。對于RAM等存儲器來(lái)說(shuō)也是一樣的,雖然存儲的都是代表0和1的代碼,但是不同的組合就是不同的數據。
讓我們重新回到書(shū)和書(shū)架上來(lái),如果有一個(gè)書(shū)架上有10行和10列格子(每行和每列都有0-9的編號),有100本書(shū)要存放在里面,那么我們使用一個(gè)行的編號+一個(gè)列的編號就能確定某一本書(shū)的位置。如果已知這本書(shū)的編號87,那么我們首先鎖定第8行,然后找到第7列就能準確的找到這本書(shū)了。在RAM存儲器中也是利用了相似的原理
現在讓我們回到RAM存儲器上,對于RAM存儲器而言數據總線(xiàn)是用來(lái)傳入數據或者傳出數據的。因為存儲器中的存儲空間是如果前面提到的存放圖書(shū)的書(shū)架一樣通過(guò)一定的規則定義的,所以我們可以通過(guò)這個(gè)規則來(lái)把數據存放到存儲器上相應的位置,而進(jìn)行這種定位的工作就要依靠地址總線(xiàn)來(lái)實(shí)現了。對于CPU來(lái)說(shuō),RAM就象是一條長(cháng)長(cháng)的有很多空格的細線(xiàn),每個(gè)空格都有一個(gè)唯一的地址與之相對應。如果CPU想要從RAM中調用數據,它首先需要給地址總線(xiàn)發(fā)送地址數據定位要存取的數據,然后等待若干個(gè)時(shí)鐘周期之后,數據總線(xiàn)就會(huì )把數據傳輸給CPU。下面的示意圖可以幫助你很好的理解這個(gè)過(guò)程。
上圖中的小園點(diǎn)代表RAM中的存儲空間,每一個(gè)都有一個(gè)唯一的地址線(xiàn)同它相連。當地址解碼器接收到地址總線(xiàn)送來(lái)的地址數據之后,它會(huì )根據這個(gè)數據定位CPU想要調用的數據所在的位置,然后數據總線(xiàn)就會(huì )把其中的數據傳送到CPU。
上面所列舉的例子中CPU在一行數據中每次知識存取一個(gè)字節的數據,但是在現實(shí)世界中是不同的,通常CPU每次需要調用32bit或者是64bit的數據(這是根據不同計算機系統的數據總線(xiàn)的位寬所決定的)。如果數據總線(xiàn)是64bit的話(huà),CPU就會(huì )在一個(gè)時(shí)間中存取8個(gè)字節的數據,因為每次還是存取1個(gè)字節的數據,64bit總線(xiàn)將不會(huì )顯示出來(lái)任何的優(yōu)勢,women工作的效率將會(huì )降低很多。
從“線(xiàn)”到“矩陣”
如果RAM對于CPU來(lái)說(shuō)僅僅是一條“線(xiàn)”的話(huà),還不能體現實(shí)際的運行情況。因為如果實(shí)際情況真的是這樣的話(huà),在實(shí)際制造芯片的時(shí)候,會(huì )有很多實(shí)際的困難,特別是在需要設計大容量的RAM的時(shí)候。所以,一種更好的能夠降低成本的方法是讓存儲信息的“空格”排列為很多行--每個(gè)“空格”對應一個(gè)bit存儲的位置。這樣,如果要存儲1024bits的數據,那么你只要使用32x32的矩陣就能夠達到這個(gè)目的了。很明顯,一個(gè)32x32的矩陣比一個(gè)1024bit的行設備更緊湊,實(shí)現起來(lái)也更加容易。請看下圖:
知道了RAM的基本結構是什么樣子的,我們就下面談?wù)劗敶鎯ψ止澋倪^(guò)程是怎樣的:
上面的示意圖顯示的也僅僅是最簡(jiǎn)單狀態(tài)下的情況,也就是當內存條上僅僅只有一個(gè)RAM芯片的情況。對于X86處理器,它通過(guò)地址總線(xiàn)發(fā)出一個(gè)具有22位二進(jìn)制數字的地址編碼--其中11位是行地址,另外11位是列地址,這是通過(guò)RAM地址接口進(jìn)行分離的。行地址解碼器(row decoder)將會(huì )首先確定行地址,然后列地址解碼器(column decoder)將會(huì )確定列地址,這樣就能確定唯一的存儲數據的位置,然后該數據就會(huì )通過(guò)RAM數據接口將數據傳到數據總線(xiàn)。另外,需要注意的是,RAM內部存儲信息的矩陣并不是一個(gè)正方形的,也就是行和列的數目不是相同的--行的數目比列的數目少。(后面我們在討論DRAM的過(guò)程中會(huì )講到為什么會(huì )這樣)
上面的示意圖粗略的概括了一個(gè)基本的SRAM芯片是如何工作的。SRAM是“static RAM(靜態(tài)隨機存儲器)”的簡(jiǎn)稱(chēng),之所以這樣命名是因為當數據被存入其中后不會(huì )消失(同DRAM動(dòng)態(tài)隨機存儲器是不同,DRAM必須在一定的時(shí)間內不停的刷新才能保持其中存儲的數據)。一個(gè)SRAM單元通常由4-6只晶體管組成,當這個(gè)SRAM單元被賦予0或者1的狀態(tài)之后,它會(huì )保持這個(gè)狀態(tài)直到下次被賦予新的狀態(tài)或者斷電之后才會(huì )更改或者消失。SRAM的速度相對比較快,而且比較省電,但是存儲1bit的信息需要4-6只晶體管制造成本太高了(DRAM只要1只晶體管就可以實(shí)現)。
RAM芯片
前面的介紹都相對比較簡(jiǎn)單、抽象。下面我們會(huì )結合實(shí)際的RAM芯片進(jìn)行介紹。在談到這個(gè)問(wèn)題的時(shí)候,我們會(huì )涉及到一個(gè)比較重要的技術(shù):封裝。你應該聽(tīng)說(shuō)過(guò)諸如30線(xiàn)SIMMS、72線(xiàn)SIMMS和168線(xiàn)DIMMS或者RIMMs其中的一個(gè)或者幾個(gè)術(shù)語(yǔ)吧。如果要解釋這些術(shù)語(yǔ)之間的不同,就應該了解RAM的封裝技術(shù)。
SRAM芯片
早期的SRAM芯片采用了20線(xiàn)雙列直插(DIP:Dual Inline Package)封裝技術(shù),它們之所以具有這么多的針腳,是因為它們必須:
每個(gè)地址信號都需要一根信號線(xiàn)
一根數據輸入線(xiàn)和一根數據輸出線(xiàn)
部分控制線(xiàn)(Write Enable, Chip Select)
地線(xiàn)和電源線(xiàn)
上圖顯示的是SRAM芯片,但是并不是下面示意圖中的SRAM芯片
下面的是一個(gè)16K x 1-bit SRAM芯片的針腳功能示意圖: .
A0-A13是地址輸入信號引腳
CS是芯片選擇引腳
在一個(gè)實(shí)際的系統中,一定具有很多片SRAM芯片,所以需要選擇究竟從那一片SRAM芯片中寫(xiě)入或者讀取數據
WE是寫(xiě)入啟用引腳(如上表,在CS、WE上面的線(xiàn)我沒(méi)有寫(xiě)入,表示低電平有效或者是邏輯0時(shí)有效):
當SRAM得到一個(gè)地址之后,它需要知道進(jìn)行什么操作,究竟是寫(xiě)入還是讀取,WE就是告訴SRAM要寫(xiě)入數據
Vcc是供電引腳
Din是數據輸入引腳
Dout是數據輸出引腳
GND是接地引腳
Output Enable(OE):有的SRAM芯片中也有這個(gè)引腳,但是上面的圖中并沒(méi)有。這個(gè)引腳同WE引腳的功能是相對的,它是讓SRAM知道要進(jìn)行讀取操作而不是寫(xiě)入操作。
從Dout引腳讀取1bit數據需要以下的步驟:
SRAM讀取操作
1)通過(guò)地址總線(xiàn)把要讀取的bit的地址傳送到相應的讀取地址引腳(這個(gè)時(shí)候/WE引腳應該沒(méi)有激活,所以SRAM知道它不應該執行寫(xiě)入操作)
2)激活/CS選擇該SRAM芯片
3)激活/OE引腳讓SRAM知道是讀取操作
第三步之后,要讀取的數據就會(huì )從DOut引腳傳輸到數據總線(xiàn)。怎么過(guò)程非常的簡(jiǎn)單吧?同樣,寫(xiě)入1bit數據的過(guò)程也是非常的簡(jiǎn)單的。
SRAM寫(xiě)入操作
1)通過(guò)地址總線(xiàn)確定要寫(xiě)入信息的位置(確定/OE引腳沒(méi)有被激活)
2)通過(guò)數據總線(xiàn)將要寫(xiě)入的數據傳輸到Dout引腳
3)激活/CS引腳選擇SRAM芯片
4)激活/WE引腳通知SRAM知道要盡心寫(xiě)入操作
經(jīng)過(guò)上面的四個(gè)步驟之后,需要寫(xiě)入的數據就已經(jīng)放在了需要寫(xiě)入的地方。
DRAM芯片
現在我們知道了在一個(gè)簡(jiǎn)單的SRAM芯片中進(jìn)行讀寫(xiě)操作的步驟了了,然后我們來(lái)了解一下普通的DRAM芯片的工作情況。DRAM相對于SRAM來(lái)說(shuō)更加復雜,因為在DRAM存儲數據的過(guò)程中需要對于存儲的信息不停的刷新,這也是它們之間最大的不同。下面讓我們看看DRAM芯片的針腳的作用。
最早、最簡(jiǎn)單也是最重要的一款DRAM芯片是Intel在1979年發(fā)布的2188,這款芯片是16Kx1 DRAM 18線(xiàn)DIP封裝。“16K x 1”的部分意思告訴我們這款芯片可以存儲16384個(gè)bit數據,在同一個(gè)時(shí)期可以同時(shí)進(jìn)行1bit的讀取或者寫(xiě)入操作。(很抱歉找不到這款芯片的實(shí)物圖片,只好自己簡(jiǎn)單的畫(huà)了一個(gè)示意圖)
上面的示意圖可以看出,DRAM和SRAM之間有著(zhù)明顯的不同。首先你會(huì )看到地址引腳從14根變?yōu)?根,那么這顆16K DRAM是如何完成同16K SRAM一樣的工作的呢?答案很簡(jiǎn)單,DRAM通過(guò)DRAM接口把地址一分為二,然后利用兩個(gè)連續的時(shí)鐘周期傳輸地址數據。這樣就達到了使用一半的針腳實(shí)現同SGRAM同樣的功能的目的,這種技術(shù)被稱(chēng)為多路技術(shù)(multiplexing)。
那么為什么好減少地址引腳呢?這樣做有什么好處呢?前面我們曾經(jīng)介紹過(guò),存儲1bit的數據SRAM需要4-6個(gè)晶體管但是DRAM僅僅需要1個(gè)晶體管,那么這樣同樣容量的SRAM的體積比DRAM大至少4倍。這樣就意味著(zhù)你沒(méi)有足夠空間安放同樣數量的引腳(因為針腳并沒(méi)有因此減少4倍)。當然為了安裝同樣數量的針腳,也可以把芯片的體積加大,但是這樣就提高芯片的生產(chǎn)成本和功耗,所以減少針腳數目也是必要的,對于現在的大容量DRAM芯片,多路尋址技術(shù)已經(jīng)是必不可少的了。
當然多路尋址技術(shù)也使得讀寫(xiě)的過(guò)程更加復雜了,這樣在設計的時(shí)候不僅僅DRAM芯片更加復雜了,DRAM接口也要更加復雜,在我們介紹DRAM讀寫(xiě)過(guò)程之前,請大家看一張DRAM芯片內部結構示意圖:
在上面的示意圖中,你可以看到在DRAM結構中相對于SRAM多了兩個(gè)部分:由/RAS (Row Address Strobe:行地址脈沖選通器)引腳控制的行地址門(mén)閂線(xiàn)路(Row Address Latch)和由/CAS(Column Address Strobe:列地址脈沖選通器)引腳控制的列地址門(mén)閂線(xiàn)路(Column Address Latch)。
DRAM讀取過(guò)程
1)通過(guò)地址總線(xiàn)將行地址傳輸到地址引腳
2)/RAS引腳被激活,這樣行地址被傳送到行地址門(mén)閂線(xiàn)路中
3)行地址解碼器根據接收到的數據選擇相應的行


其實(shí)DRAM的寫(xiě)入的過(guò)程和讀取過(guò)程是基本一樣的,所以如果你真的理解了上面的過(guò)程就能知道寫(xiě)入過(guò)程了,所以這里我就不贅述了。(只要把第4步改為/WE引腳被激活就可以了)。
DRAM刷新
我們已經(jīng)提到過(guò),DRAM同SRAM最大的不同就是不能比較長(cháng)久的保持數據,這項特性使得這種存儲介質(zhì)對于我們幾乎沒(méi)有任何的作用。但是DRAM設計師利用刷新的技術(shù)使得DRAM稱(chēng)為了現在對于我們最有用處的存儲介質(zhì)。這里我僅僅簡(jiǎn)要的提及一下DRAM的刷新技術(shù),因為在后面介紹FP、EDO等類(lèi)型的內存的時(shí)候,你會(huì )發(fā)現它們具體的實(shí)現過(guò)程都是不同的。
DRAM內僅僅能保持其內存儲的電荷非常短暫的時(shí)間,所以它需要在其內的電荷消失之前就進(jìn)行刷新直到下次寫(xiě)入數據或者計算機斷電才停止。每次讀寫(xiě)操作都能刷新DRAM內的電荷,所以DRAM就被設計為有規律的讀取DRAM內的內容。這樣做有下面幾個(gè)好處。第一,僅僅使用/RAS激活每一行就可以達到全部刷新的目的;第二,DRAM控制器來(lái)控制刷新,這樣可以防止刷新操作干擾有規律的讀寫(xiě)操作。在文章的開(kāi)始,我曾經(jīng)說(shuō)過(guò)一般行的數目比列的數據少?,F在我可以告訴為什么會(huì )這樣了,因為行越少用戶(hù)刷新的時(shí)間就會(huì )越少。
聯(lián)系客服