![深入了解內(nèi)存.doc_第1頁](http://file.renrendoc.com/FileRoot1/2020-1/29/d37cb41d-7912-4ed9-abdc-3092ff63cae4/d37cb41d-7912-4ed9-abdc-3092ff63cae41.gif)
![深入了解內(nèi)存.doc_第2頁](http://file.renrendoc.com/FileRoot1/2020-1/29/d37cb41d-7912-4ed9-abdc-3092ff63cae4/d37cb41d-7912-4ed9-abdc-3092ff63cae42.gif)
![深入了解內(nèi)存.doc_第3頁](http://file.renrendoc.com/FileRoot1/2020-1/29/d37cb41d-7912-4ed9-abdc-3092ff63cae4/d37cb41d-7912-4ed9-abdc-3092ff63cae43.gif)
![深入了解內(nèi)存.doc_第4頁](http://file.renrendoc.com/FileRoot1/2020-1/29/d37cb41d-7912-4ed9-abdc-3092ff63cae4/d37cb41d-7912-4ed9-abdc-3092ff63cae44.gif)
![深入了解內(nèi)存.doc_第5頁](http://file.renrendoc.com/FileRoot1/2020-1/29/d37cb41d-7912-4ed9-abdc-3092ff63cae4/d37cb41d-7912-4ed9-abdc-3092ff63cae45.gif)
已閱讀5頁,還剩27頁未讀, 繼續(xù)免費(fèi)閱讀
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
深入了解內(nèi)存(一)DRAM和SRAM基礎(chǔ)知識(shí) RAM(Random Access Memory)隨機(jī)存取存儲(chǔ)器對(duì)于系統(tǒng)性能的影響是每個(gè)PC用戶都非常清楚的,所以很多朋友趁著現(xiàn)在的內(nèi)存價(jià)格很低紛紛擴(kuò)容了內(nèi)存,希望借此來得到更高的性能。不過現(xiàn)在市場是多種內(nèi)存類型并存的,SDRAM、DDR SDRAM、RDRAM等等,如果你使用的還是非常古老的系統(tǒng),可能還需要EDO DRAM、FP DRAM(塊頁)等現(xiàn)在不是很常見的內(nèi)存。對(duì)于很多用戶或者有一定經(jīng)驗(yàn)的高級(jí)用戶來說,他可能能說出Athlon XP和Pentium 4的主要不同點(diǎn),能知道GeForce3和Radeon之間的區(qū)別,但是如果真的讓他說出各種內(nèi)存之間的實(shí)現(xiàn)機(jī)理的主要差別或者解釋CAS 2和CAS 3之間的主要差別的話,就可能不是非常的清楚了。畢竟CPU和顯卡之類的東西更容易引起我們的興趣。我個(gè)人在這方面的知識(shí)也是比較片面甚至是一知半解的,所以一直在收集這個(gè)方面的資料。在網(wǎng)上有很多很好的資源,其中Ars technica、Aceshardware、simpletech等網(wǎng)站的資料對(duì)于我系統(tǒng)的了解這個(gè)方面的知識(shí)有很大的幫助。本文主要以Ars technica的文章為基礎(chǔ)編寫而成,為大家比較詳細(xì)的介紹RAM方面的知識(shí)。雖然RAM的類型非常的多,但是這些內(nèi)存在實(shí)現(xiàn)的機(jī)理方面還是具有很多相同的地方,所以本文的將會(huì)分為幾個(gè)部分進(jìn)行介紹,第一部分主要介紹SRAM和異步DRAM(asynchronous DRAM),在以后的章節(jié)中會(huì)對(duì)于實(shí)現(xiàn)機(jī)理更加復(fù)雜的FP、EDO和SDRAM進(jìn)行介紹,當(dāng)然還會(huì)包括RDRAM和SGRAM等等。對(duì)于其中同你的觀點(diǎn)相悖的地方,歡迎大家一起進(jìn)行技術(shù)方面的探討。 存儲(chǔ)原理 為了便于不同層次的讀者都能基本的理解本文,所以我先來介紹一下很多用戶都知道的東西。RAM主要的作用就是存儲(chǔ)代碼和數(shù)據(jù)供CPU在需要的時(shí)候調(diào)用。但是這些數(shù)據(jù)并不是像用袋子盛米那么簡單,更像是圖書館中用有格子的書架存放書籍一樣,不但要放進(jìn)去還要能夠在需要的時(shí)候準(zhǔn)確的調(diào)用出來,雖然都是書但是每本書是不同的。對(duì)于RAM等存儲(chǔ)器來說也是一樣的,雖然存儲(chǔ)的都是代表0和1的代碼,但是不同的組合就是不同的數(shù)據(jù)。讓我們重新回到書和書架上來,如果有一個(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ù)總線是用來傳入數(shù)據(jù)或者傳出數(shù)據(jù)的。因?yàn)榇鎯?chǔ)器中的存儲(chǔ)空間是如果前面提到的存放圖書的書架一樣通過一定的規(guī)則定義的,所以我們可以通過這個(gè)規(guī)則來把數(shù)據(jù)存放到存儲(chǔ)器上相應(yīng)的位置,而進(jìn)行這種定位的工作就要依靠地址總線來實(shí)現(xiàn)了。對(duì)于CPU來說,RAM就象是一條長長的有很多空格的細(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è)過程。上圖中的小園點(diǎn)代表RAM中的存儲(chǔ)空間,每一個(gè)都有一個(gè)唯一的地址線同它相連。當(dāng)?shù)刂方獯a器接收到地址總線送來的地址數(shù)據(jù)之后,它會(huì)根據(jù)這個(gè)數(shù)據(jù)定位CPU想要調(diào)用的數(shù)據(jù)所在的位置,然后數(shù)據(jù)總線就會(huì)把其中的數(shù)據(jù)傳送到CPU。上面所列舉的例子中CPU在一行數(shù)據(jù)中每次知識(shí)存取一個(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ì)顯示出來任何的優(yōu)勢,women工作的效率將會(huì)降低很多。 從“線”到“矩陣” 如果RAM對(duì)于CPU來說僅僅是一條“線”的話,還不能體現(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)起來也更加容易。請(qǐng)看下圖:知道了RAM的基本結(jié)構(gòu)是什么樣子的,我們就下面談?wù)劗?dāng)存儲(chǔ)字節(jié)的過程是怎樣的:上面的示意圖顯示的也僅僅是最簡單狀態(tài)下的情況,也就是當(dāng)內(nèi)存條上僅僅只有一個(gè)RAM芯片的情況。對(duì)于X86處理器,它通過地址總線發(fā)出一個(gè)具有22位二進(jìn)制數(shù)字的地址編碼其中11位是行地址,另外11位是列地址,這是通過RAM地址接口進(jìn)行分離的。行地址解碼器(row decoder)將會(huì)首先確定行地址,然后列地址解碼器(column decoder)將會(huì)確定列地址,這樣就能確定唯一的存儲(chǔ)數(shù)據(jù)的位置,然后該數(shù)據(jù)就會(huì)通過RAM數(shù)據(jù)接口將數(shù)據(jù)傳到數(shù)據(jù)總線。另外,需要注意的是,RAM內(nèi)部存儲(chǔ)信息的矩陣并不是一個(gè)正方形的,也就是行和列的數(shù)目不是相同的行的數(shù)目比列的數(shù)目少。(后面我們?cè)谟懻揇RAM的過程中會(huì)講到為什么會(huì)這樣) 上面的示意圖粗略的概括了一個(gè)基本的SRAM芯片是如何工作的。SRAM是“static RAM(靜態(tài)隨機(jī)存儲(chǔ)器)”的簡稱,之所以這樣命名是因?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))。 RAM芯片 前面的介紹都相對(duì)比較簡單、抽象。下面我們會(huì)結(jié)合實(shí)際的RAM芯片進(jìn)行介紹。在談到這個(gè)問題的時(shí)候,我們會(huì)涉及到一個(gè)比較重要的技術(shù):封裝。你應(yīng)該聽說過諸如30線SIMMS、72線SIMMS和168線DIMMS或者RIMMs其中的一個(gè)或者幾個(gè)術(shù)語吧。如果要解釋這些術(shù)語之間的不同,就應(yīng)該了解RAM的封裝技術(shù)。 SRAM芯片早期的SRAM芯片采用了20線雙列直插(DIP:Dual Inline Package)封裝技術(shù),它們之所以具有這么多的針腳,是因?yàn)樗鼈儽仨殻荷蠄D顯示的是SRAM芯片,但是并不是下面示意圖中的SRAM芯片 下面的是一個(gè)16K x 1-bit SRAM芯片的針腳功能示意圖: . A0-A13是地址輸入信號(hào)引腳CS是芯片選擇引腳在一個(gè)實(shí)際的系統(tǒng)中,一定具有很多片SRAM芯片,所以需要選擇究竟從那一片SRAM芯片中寫入或者讀取數(shù)據(jù)WE是寫入啟用引腳(如上表,在CS、WE上面的線我沒有寫入,表示低電平有效或者是邏輯0時(shí)有效):當(dāng)SRAM得到一個(gè)地址之后,它需要知道進(jìn)行什么操作,究竟是寫入還是讀取,WE就是告訴SRAM要寫入數(shù)據(jù)Vcc是供電引腳Din是數(shù)據(jù)輸入引腳Dout是數(shù)據(jù)輸出引腳GND是接地引腳Output Enable(OE):有的SRAM芯片中也有這個(gè)引腳,但是上面的圖中并沒有。這個(gè)引腳同WE引腳的功能是相對(duì)的,它是讓SRAM知道要進(jìn)行讀取操作而不是寫入操作。從Dout引腳讀取1bit數(shù)據(jù)需要以下的步驟: 1)通過地址總線把要讀取的bit的地址傳送到相應(yīng)的讀取地址引腳(這個(gè)時(shí)候/WE引腳應(yīng)該沒有激活,所以SRAM知道它不應(yīng)該執(zhí)行寫入操作)2)激活/CS選擇該SRAM芯片3)激活/OE引腳讓SRAM知道是讀取操作第三步之后,要讀取的數(shù)據(jù)就會(huì)從DOut引腳傳輸?shù)綌?shù)據(jù)總線。怎么過程非常的簡單吧?同樣,寫入1bit數(shù)據(jù)的過程也是非常的簡單的。 1)通過地址總線確定要寫入信息的位置(確定/OE引腳沒有被激活)2)通過數(shù)據(jù)總線將要寫入的數(shù)據(jù)傳輸?shù)紻out引腳3)激活/CS引腳選擇SRAM芯片4)激活/WE引腳通知SRAM知道要盡心寫入操作經(jīng)過上面的四個(gè)步驟之后,需要寫入的數(shù)據(jù)就已經(jīng)放在了需要寫入的地方。 DRAM芯片現(xiàn)在我們知道了在一個(gè)簡單的SRAM芯片中進(jìn)行讀寫操作的步驟了了,然后我們來了解一下普通的DRAM芯片的工作情況。DRAM相對(duì)于SRAM來說更加復(fù)雜,因?yàn)樵贒RAM存儲(chǔ)數(shù)據(jù)的過程中需要對(duì)于存儲(chǔ)的信息不停的刷新,這也是它們之間最大的不同。下面讓我們看看DRAM芯片的針腳的作用。最早、最簡單也是最重要的一款DRAM芯片是Intel在1979年發(fā)布的2188,這款芯片是16Kx1 DRAM 18線DIP封裝?!?6K x 1”的部分意思告訴我們這款芯片可以存儲(chǔ)16384個(gè)bit數(shù)據(jù),在同一個(gè)時(shí)期可以同時(shí)進(jìn)行1bit的讀取或者寫入操作。(很抱歉找不到這款芯片的實(shí)物圖片,只好自己簡單的畫了一個(gè)示意圖) 上面的示意圖可以看出,DRAM和SRAM之間有著明顯的不同。首先你會(huì)看到地址引腳從14根變?yōu)?根,那么這顆16K DRAM是如何完成同16K SRAM一樣的工作的呢?答案很簡單,DRAM通過DRAM接口把地址一分為二,然后利用兩個(gè)連續(xù)的時(shí)鐘周期傳輸?shù)刂窋?shù)據(jù)。這樣就達(dá)到了使用一半的針腳實(shí)現(xiàn)同SGRAM同樣的功能的目的,這種技術(shù)被稱為多路技術(shù)(multiplexing)。那么為什么好減少地址引腳呢?這樣做有什么好處呢?前面我們?cè)?jīng)介紹過,存儲(chǔ)1bit的數(shù)據(jù)SRAM需要4-6個(gè)晶體管但是DRAM僅僅需要1個(gè)晶體管,那么這樣同樣容量的SRAM的體積比DRAM大至少4倍。這樣就意味著你沒有足夠空間安放同樣數(shù)量的引腳(因?yàn)獒樐_并沒有因此減少4倍)。當(dāng)然為了安裝同樣數(shù)量的針腳,也可以把芯片的體積加大,但是這樣就提高芯片的生產(chǎn)成本和功耗,所以減少針腳數(shù)目也是必要的,對(duì)于現(xiàn)在的大容量DRAM芯片,多路尋址技術(shù)已經(jīng)是必不可少的了。當(dāng)然多路尋址技術(shù)也使得讀寫的過程更加復(fù)雜了,這樣在設(shè)計(jì)的時(shí)候不僅僅DRAM芯片更加復(fù)雜了,DRAM接口也要更加復(fù)雜,在我們介紹DRAM讀寫過程之前,請(qǐng)大家看一張DRAM芯片內(nèi)部結(jié)構(gòu)示意圖:在上面的示意圖中,你可以看到在DRAM結(jié)構(gòu)中相對(duì)于SRAM多了兩個(gè)部分:由/RAS (Row Address Strobe:行地址脈沖選通器)引腳控制的行地址門閂線路(Row Address Latch)和由/CAS(Column Address Strobe:列地址脈沖選通器)引腳控制的列地址門閂線路(Column Address Latch)。 1)通過地址總線將行地址傳輸?shù)降刂芬_2)/RAS引腳被激活,這樣行地址被傳送到行地址門閂線路中3)行地址解碼器根據(jù)接收到的數(shù)據(jù)選擇相應(yīng)的行 4)/WE引腳被確定不被激活,所以DRAM知道它不會(huì)進(jìn)行寫入操作5)列地址通過地址總線傳輸?shù)降刂芬_6)/CAS引腳被激活,這樣列地址被傳送到行地址門閂線路中7)/CAS引腳同樣還具有/OE引腳的功能,所以這個(gè)時(shí)候Dout引腳知道需要向外輸出數(shù)據(jù)。 8) /RAS和/CAS都不被激活,這樣就可以進(jìn)行下一個(gè)周期的數(shù)據(jù)操作了。其實(shí)DRAM的寫入的過程和讀取過程是基本一樣的,所以如果你真的理解了上面的過程就能知道寫入過程了,所以這里我就不贅述了。(只要把第4步改為/WE引腳被激活就可以了)。我們已經(jīng)提到過,DRAM同SRAM最大的不同就是不能比較長久的保持?jǐn)?shù)據(jù),這項(xiàng)特性使得這種存儲(chǔ)介質(zhì)對(duì)于我們幾乎沒有任何的作用。但是DRAM設(shè)計(jì)師利用刷新的技術(shù)使得DRAM稱為了現(xiàn)在對(duì)于我們最有用處的存儲(chǔ)介質(zhì)。這里我僅僅簡要的提及一下DRAM的刷新技術(shù),因?yàn)樵诤竺娼榻BFP、EDO等類型的內(nèi)存的時(shí)候,你會(huì)發(fā)現(xiàn)它們具體的實(shí)現(xiàn)過程都是不同的。 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è)好處。第一,僅僅使用/RAS激活每一行就可以達(dá)到全部刷新的目的;第二,DRAM控制器來控制刷新,這樣可以防止刷新操作干擾有規(guī)律的讀寫操作。在文章的開始,我曾經(jīng)說過一般行的數(shù)目比列的數(shù)據(jù)少?,F(xiàn)在我可以告訴為什么會(huì)這樣了,因?yàn)樾性缴儆脩羲⑿碌臅r(shí)間就會(huì)越少。 OK!時(shí)間不早了,今天就先介紹到這里,希望這里介紹的DRAM和SRAM的芯片的基本工作原理對(duì)你有些幫助。深入了解內(nèi)存(二)在前面的一節(jié)文章中我們對(duì)于DRAM和SRAM的基本工作原理做了一些簡單的介紹,在我們所列舉的例子中都是介紹了最基本的存儲(chǔ)單元的工作模式,所以應(yīng)該不難理解,看到很多朋友對(duì)于這個(gè)方面的東西很感興趣,今天我就繼續(xù)介紹關(guān)于RAM(Random Access Memory)的部分知識(shí)。理解這個(gè)部分知識(shí),是更好的了解以后我們介紹各種RAM的實(shí)際工作情況的基礎(chǔ)。在SRAM或者DRAM的每一個(gè)基本存儲(chǔ)單位(也就是上一節(jié)中介紹用來存儲(chǔ)1bit信息的存儲(chǔ)單位)都只能存儲(chǔ)0或者1這樣的數(shù)據(jù),而且在上一節(jié)中IDT6167和Intel 2188芯片都僅僅只有Din(數(shù)據(jù)輸入)和Dout(數(shù)據(jù)輸出接口),而CPU存取數(shù)據(jù)的時(shí)候是按照字節(jié)(也就是8bit)來存儲(chǔ)的,那么RAM究竟如何滿足CPU的這樣的要求呢? 首先為了能存儲(chǔ)1字節(jié)(8 bit)的信息,就需要8個(gè)1bit RAM基本存儲(chǔ)單元堆疊在一起,這也意味著這8顆芯片被賦予了同樣的地址。下面的示意圖可以幫助你比較形象的了解這一點(diǎn)(下圖所示的圖例中僅僅畫了4個(gè)存儲(chǔ)單元,大家當(dāng)成8個(gè)來看就可以了)。通常這8顆1bit芯片是通過地址總線和數(shù)據(jù)總線在PCB(印刷電路板)上連接而成的,對(duì)于CPU來說它就是一顆8bit的RAM芯片,而不再是獨(dú)立的8個(gè)1 bit芯片。在上圖所示的地址總線位寬是22bit,這樣這個(gè)地址總線所能控制的存儲(chǔ)模塊的容量應(yīng)該是222=4194304bit,也就是4MB的容量;數(shù)據(jù)總線的位寬是8bit,就是通過剛才提到的8個(gè)1bit的基本存儲(chǔ)單元的Dout并聯(lián)在一起實(shí)現(xiàn)的這樣也能夠滿足CPU的要求了。(對(duì)于這種存儲(chǔ)顆粒我們稱之為4194304 x 8模塊或者4Mx8,注意這里的“M”不是“MByte”而是“Mbit”)。為了舉例說明,我們用一條TI(德儀公司)出品的TM4100GAD8 SIMM內(nèi)存為例來說明,因?yàn)檫@種內(nèi)存的構(gòu)造相對(duì)比較簡單,便于大家理解。TM4100GAD8基于4M x 8模塊制造,容量4MB,采用30線SIMM封裝。如果前面我說的東西你看明白了,就應(yīng)該知道這條內(nèi)存采用了4Mx1 DRAM顆粒。下面的數(shù)據(jù)是我在TI官方網(wǎng)站上找到的(目前很少有公司的網(wǎng)站還提供自己以前產(chǎn)品的數(shù)據(jù)): 在上面的示意圖中,A0A10是地址輸入引腳 /CAS:行地址脈沖選通器引腳 DQ1DQ8:數(shù)據(jù)輸入/數(shù)據(jù)輸出引腳 NC:空信號(hào)引腳 /RAS:列地址脈沖選通器引腳 VSS:接地引腳 /W:寫入啟用引腳 VCC 5V供電引腳 上面的電路示意圖應(yīng)該能夠讓我們更加清楚的理解這個(gè)問題,TM4100GAD8由8片4096x1bit芯片組成,VCC和VSS為所有的芯片提供5v的電壓。每個(gè)芯片都具有/RAS、/CAS、/W引腳同內(nèi)存相應(yīng)的引腳連通。每個(gè)芯片都具有不同的數(shù)據(jù)輸出/輸出接口。這樣我們應(yīng)該就能夠知道RAM是如何滿足CPU存取數(shù)據(jù)的需要的了。 關(guān)于Bank的問題 前面我們講述的都是8bit的內(nèi)存,現(xiàn)在這種東西我們基本上都接觸不到了,更常用的是32bit、64bit或者128bit。由于前面我們已經(jīng)講到了4Mx1bit模塊實(shí)現(xiàn)bit輸入輸出的方法,所以我們很容易想到我們把足夠多的芯片放在一個(gè)模塊中就可以了。不過在實(shí)際應(yīng)用中,僅僅這樣做還是不行的,這里就需要引入bank的概念,bank是由多個(gè)模塊組成的。請(qǐng)看下面的示意圖:上面的示意圖顯示的是由4組8bit模塊組成的一個(gè)bank,如果構(gòu)成模塊的是4194304 x 1芯片,那么每個(gè)模塊的架構(gòu)應(yīng)該是4194304x8(4MB),這樣4個(gè)模塊就能組成一個(gè)位寬為32bit的bank,容量為16MB。當(dāng)存儲(chǔ)數(shù)據(jù)的時(shí)候,第一模塊存儲(chǔ)字節(jié)1,第二個(gè)模塊存儲(chǔ)字節(jié)2,第三個(gè)模塊存儲(chǔ)字節(jié)3,第四個(gè)模塊存儲(chǔ)字節(jié)4,第五個(gè)模塊存儲(chǔ)字節(jié)5如此循環(huán)知道達(dá)到內(nèi)存所能達(dá)到的最高容量。文章讀到這里,我們應(yīng)該能知道,當(dāng)我們的系統(tǒng)使用這種類型的內(nèi)存時(shí),可以通過兩種方式來增加這種類型內(nèi)存的容量。第一種就是通過增加每一個(gè)獨(dú)立模塊的容量來增加bank的容量,另外一個(gè)方法就是增加bank的數(shù)目。這樣如果讓這種類型的內(nèi)存的容量提升到32MB,可以把每個(gè)模塊的容量從4MB提升到8MB或者增加bank的數(shù)目。前面我們用來舉例的這種30線的SIMM一般是用在486級(jí)別的電腦上的,而現(xiàn)在的Pentium級(jí)別的電腦所使用的內(nèi)存同這個(gè)是不同的。而截止到現(xiàn)在,我的這篇文章還沒有涉及到我們目前所使用的內(nèi)存,不過不要著急,相信充分的理解我現(xiàn)在所談?wù)摰臇|西將有助于你理解以后的內(nèi)容。不過這里可以先告訴大家的是Pentium級(jí)別的內(nèi)存和486系統(tǒng)的內(nèi)存之間的主要差異在于它們的RAM芯片。 SIMM和DIMM 前面我們既然提到了30線的DIMM,那么我們就來介紹一下SIMM以及與之相對(duì)應(yīng)的DIMM。其實(shí)SIMM和DIMM都是內(nèi)存條的封裝形式的一種(這里說的不是芯片的封裝形式),因?yàn)槊科瑑?nèi)存顆粒無法直接同計(jì)算機(jī)進(jìn)行連接并且通訊的,并且它們單顆顆粒的容量有限而且涉及到前面提及的數(shù)據(jù)傳輸位寬等方面的原因,所以內(nèi)存廠商需要通過一定的形式把它們組織到一起,這樣就產(chǎn)生了不同的內(nèi)存封裝形式。 首先我們來介紹一下SIMM,如下圖(上面一條是30線DIMM內(nèi)存,下面一條是72線DIMM內(nèi)存): 在DIMM內(nèi)存中的顆粒采用了DIP(Dual Inline Package:雙列直插封裝)封裝,如上圖中黑色的芯片。早期的內(nèi)存顆粒是直接焊接在主板上面的,這樣如果一片內(nèi)存出現(xiàn)故障,那么整個(gè)主板都要報(bào)廢了。后來在主板上出現(xiàn)了內(nèi)存顆粒插槽,這樣就可以更換內(nèi)存顆粒了,但是熱膨脹的緣故,每使用一段時(shí)間你就需要打開機(jī)箱把內(nèi)存顆粒按回插槽。除了這些原因,更重要的是我們前面提到的數(shù)據(jù)總線位寬等方面的原因使得工程師著手設(shè)計(jì)了SIMM(Single Inline Memory Module)封裝和DIMM(Double Inline Memory Module)的內(nèi)存,它們通過主板上的內(nèi)存插槽同主板進(jìn)行通訊。這樣的設(shè)計(jì)解決了原來所有的問題。SIMM內(nèi)存根據(jù)引腳分為30線和72線,目前我們都很少用到了。 SIMM根據(jù)內(nèi)存顆粒分布可以分為單面內(nèi)存和雙面內(nèi)存,一般的容量為1、4、16MB的SIMM內(nèi)存都是單面的,更大的容量的SIMM內(nèi)存是雙面的。在我們本文中所列舉的TM4100GAD8就是一款30線的內(nèi)存,它每次僅能傳輸8bit的數(shù)據(jù)從前面的示意圖中我們也知道這30線引腳中有11線是地址引線,8線是數(shù)據(jù)引線,還有其它的控制引線,對(duì)于當(dāng)時(shí)的封裝工藝這已經(jīng)是比較不錯(cuò)了。比較細(xì)心的讀者會(huì)問為什么還有三條空信號(hào)引腳?因?yàn)檫@種內(nèi)存的數(shù)據(jù)輸出總線位寬只有8bit,所以即使將空信號(hào)引腳轉(zhuǎn)換為地址總線提高尋址范圍,但是并沒有足夠多的引腳用于數(shù)據(jù)的輸出。72線的SIMM內(nèi)存的容量不但可以更大,而且數(shù)據(jù)總線的位寬也得到了極大的提高。一條72線SIMM內(nèi)存的數(shù)據(jù)總線位寬是32bit,它的數(shù)據(jù)輸出能力大大提高了。 DIMM是目前我們使用的內(nèi)存的主要封裝形式,比如SDRAM、DDR SDRAM、RDRAM,其中SDRAM具有168線引腳并且提供了64bit數(shù)據(jù)尋址能力。DIMM的工作電壓一般是3.3v或者5v,并且分為unbuffered和buffered兩種。上圖上面的內(nèi)存就是168線的SDRAM,而下面的內(nèi)存是72線的SIMM。需要指出的是在SIMM和DIMM內(nèi)存之間不僅僅是引腳數(shù)目的不同,另外在電氣特性、封裝特點(diǎn)上都有明顯的差別,特別是它們的芯片之間的差別相當(dāng)?shù)拇?。因?yàn)榘凑赵瓉韮?nèi)存制造方法,制造這種內(nèi)存的時(shí)候是不需要把64個(gè)芯片組裝在一起構(gòu)成一個(gè)64bit的模塊的,得益于今年來生產(chǎn)工藝的提高和改進(jìn),現(xiàn)在的高密度DRAM芯片可以具有不止一個(gè)Din和Dout信號(hào)引腳,并且可以根據(jù)不同的需要在DRAM芯片上制造4、8、16、32或者64條數(shù)據(jù)引腳。如果一個(gè)DRAM芯片具有8個(gè)數(shù)據(jù)引腳,那么這個(gè)基本儲(chǔ)存單元一次就可以輸出8bit的數(shù)據(jù),而不像是在原來的TM4100GAD8 SIMM芯片中每次僅僅能輸出1bit數(shù)據(jù)了。這樣的話,如果我們需要制造一個(gè)同TM4100GAD8一樣容量的內(nèi)存,那么我們可以不使用前面所使用的4M x 1bit芯片,而是采用1M x 8bit芯片,這樣僅僅需要4片芯片就可以得到一個(gè)容量為4MB,位寬為32bit的模組。芯片數(shù)目減少最直接的好處當(dāng)然是可以減少功耗了,當(dāng)然也簡化了生產(chǎn)過程。下面的圖只是為了說明這個(gè)問題而制作的,它展示的是一種72線的4MB SIMM內(nèi)存,采用了4片1Mx8bit DRAM芯片。但是至于是不是真的有這樣的一款產(chǎn)品我也不能確定,因?yàn)槟壳盀橹艺也坏綄?shí)際的產(chǎn)品相關(guān)資料,所以這個(gè)只是為了幫助大家理解這個(gè)問題,不要對(duì)于是否有這樣的產(chǎn)品而斤斤計(jì)較。這樣一來,只要4片采用具有8bit位寬的內(nèi)存顆粒就可以達(dá)到同樣的容量,當(dāng)然這樣的內(nèi)存條工作原理在理解的過程中比原來略微復(fù)雜一點(diǎn)。我們看到在上面的4Mbit8bit芯片中,依然還是有10條地址總線引腳,但是/CAS和/RAS引腳卻從原來的1條增加到4條。當(dāng)然數(shù)據(jù)輸入輸出引腳線數(shù)目是32條。其實(shí)TI公司的TM124BBJ32F和TM248CBJ32F前面的我所列舉的例子是比較相似的: 這兩款內(nèi)存的容量均為4MB,位寬為32bit,當(dāng)然也屬于DRAM了。TM124BBJ32F內(nèi)存為單面而TM248CBJ32F雙面的兩種模式,不過其中單面TM124BBJ32F有些奇怪,在它的內(nèi)存條上只有兩顆內(nèi)存芯片,這樣每顆內(nèi)存芯片應(yīng)該是2MBx16bit。另外,雙面的TM248CBJ32F由4片1Mx8bit DRAM芯片組成。 上面的示意圖和表格是TM124BBJ32F和TM248CBJ32F的示意圖和表格,我們可以很容易的理解它們的工作模式。對(duì)于TM124BBJ32F來說:因?yàn)槭?MBx16bit的顆粒,所以當(dāng)RAS0引腳為低電平時(shí),DQ0-DQ15輸出/輸入引腳有效,所以它可以同時(shí)傳送一個(gè)16bit數(shù)據(jù);讓RAS1引腳為低電平時(shí),DQ16-DQ31輸出/輸入引腳有效,也可以一次傳送一個(gè)16bit數(shù)據(jù)。對(duì)于TM248CBJ32F來說:因?yàn)槭?MBx8bit的顆粒,所以情況同前面是不同的,當(dāng)RAS0引腳為低電平時(shí),DQ0-DQ7輸出/輸入引腳有效,所以它可以同時(shí)傳送一個(gè)8bit數(shù)據(jù);讓RAS1引腳為低電平時(shí),DQ6-DQ15輸出/輸入引腳有效,也可以一次傳送一個(gè)8bit數(shù)據(jù);讓RAS2引腳為低電平時(shí),DQ16-DQ23輸出/輸入引腳有效,也可以一次傳送一個(gè)8bit數(shù)據(jù);讓RAS3引腳為低電平時(shí),DQ24-DQ31輸出/輸入引腳有效,也可以一次傳送一個(gè)8bit數(shù)據(jù)(注意這里雖然都是控制輸出8bit或者16bit地址,但是它們之間分別代表的含義是不同的)。當(dāng)然在確定地址的時(shí)候,還是需要CAS控制電路配合的。今天我們對(duì)于32bit的內(nèi)存做了進(jìn)一步的了解。這些東西雖然對(duì)于現(xiàn)在的用戶似乎有些不太實(shí)際,但是對(duì)于進(jìn)一步了解現(xiàn)在的內(nèi)存還是有相當(dāng)?shù)膸椭摹I钊肓私鈨?nèi)存(三)DRAM讀取過程這個(gè)系列的文章已經(jīng)寫了兩篇了,但是我們幾乎還沒有談到我們都關(guān)心的一些問題,比如 CAS-2和CAS-3之間的區(qū)別什么的?,F(xiàn)在我們對(duì)于DRAM的基礎(chǔ)知識(shí)已經(jīng)有了一個(gè)基本的了解,下面的文章就是給大家介紹一些現(xiàn)代的內(nèi)存技術(shù)。 DRAM讀取過程 其實(shí)我們?cè)谝郧暗奈恼轮幸呀?jīng)討論過DRAM的讀寫過程了,不過對(duì)于內(nèi)存比較了解的朋友都會(huì)發(fā)現(xiàn)在前面的介紹中僅僅是對(duì)于內(nèi)存的大致讀取過程進(jìn)行了簡述,很多重要的細(xì)節(jié)都沒有詳細(xì)的討論。所以我們?cè)谖恼碌倪@一節(jié)的內(nèi)容中對(duì)于這個(gè)過程進(jìn)行詳細(xì)的討論。下面就是異步內(nèi)存的讀取過程的步驟,因?yàn)楫惒紻RAM的運(yùn)行并不需要同處理器同頻,它的時(shí)序信號(hào)控制、尋址等操作基本上說是獨(dú)立控制的,也就是由內(nèi)存芯片本身所控制,所以在討論起來比較簡單,我們僅僅需要考慮DRAM本身的情況就可以了(這個(gè)系列的文章也是本著循序漸進(jìn)的原則讓大家更好的理解內(nèi)存的工作原理的): 1) 行地址通過地址總線傳輸?shù)降刂芬_2) /RAS引腳被激活,列地址就會(huì)被放入行地址選通電路( Row Address Latch:在文章的前面部分我們把它翻譯為列地址門閂電路)3) 行地址解碼器( Row Address Decoder)選擇正確的行然后送到傳感放大器( sense amps)4) /WE引腳此時(shí)不被激活,所以 DRAM知道它們不是進(jìn)行寫操作5) 列地址通過地址總線傳輸?shù)降刂芬_6) /CAS引腳被激活,列地址就可以被送到列地址選通器( Column Address Latch)7) /CAS引腳也被當(dāng)作輸出啟動(dòng)信號(hào)( Output Enable),因?yàn)橐坏?/CAS信號(hào)被放到傳感放大器,就因?yàn)檫@時(shí)需要的數(shù)據(jù)已經(jīng)找到,所以Dout針腳開始有效,數(shù)據(jù)可以從內(nèi)存中傳輸?shù)较到y(tǒng)了8) /RAS和 /CAS引腳停止激活,等待下一個(gè)讀取命令在內(nèi)存的讀取過程中,需要我們考慮的有兩個(gè)主要類型的延遲。第一類的是連續(xù)的DRAM讀操作之間的延遲。內(nèi)存不可能在進(jìn)行完一個(gè)讀取操作之后就立刻進(jìn)行第兩個(gè)讀取操作,因?yàn)镈RAM的讀取操作包括電容器的充電和放電另外還包括把信號(hào)傳送出去的時(shí)間,所以在兩個(gè)讀取操作中間至少留出足夠的時(shí)間讓讓內(nèi)存進(jìn)行這些方面的操作。在連續(xù)的兩次讀取操作之間,第一種類型的延遲包括 /RAS和 /CAS預(yù)充電延遲時(shí)間。在 /RAS被激活并且失活之后,你必須給它足夠的時(shí)間為下次激活做好準(zhǔn)備。下圖可以幫助你更好了解這個(gè)過程。 /CAS預(yù)充電的過程失一樣的,你只要把上圖種的“RAS”換成“CAS”就可以了。從前面我們介紹的DRAM讀取過程的8個(gè)步驟中,我們可以了解到 /RAS和 /CAS預(yù)充電過程是依次進(jìn)行的,所以我們?cè)谝欢ǖ臅r(shí)間里只能進(jìn)行有限次數(shù)的讀取操作。特別是在第8個(gè)步驟中,當(dāng)一次讀取操作周期結(jié)束之后,我們必須讓 /RAS和/CAS引腳都失活。實(shí)際上,在你讓它們失活之后,必須等待預(yù)充電過程結(jié)束之后才能開始下一個(gè)操作(或者還是讀取操作、或者是寫入操作、或者是刷新操作)。當(dāng)然在兩次讀取操作之間的預(yù)充電時(shí)間不是限制DRAM速度的唯一因素。第二種延遲類型是叫做內(nèi)部讀取延遲( inside-the-read)。這種延遲同同兩次讀取操作之間的延遲非常的相似,但是不是由停止 /RAS和/CAS激活而產(chǎn)生的,而是由于要激活 /RAS和/CAS而產(chǎn)生的。比如,行存取時(shí)間(tRAC)它就是在你激活RAS和數(shù)據(jù)最終出現(xiàn)在數(shù)據(jù)總線之間的時(shí)間。同樣的列存取時(shí)間 (tCAC)就是激活 /CAS引腳和數(shù)據(jù)最終出現(xiàn)在數(shù)據(jù)總線上之間的時(shí)間。下面的示意圖可以幫助你更好的理解這兩種類型的延遲:上面的圖僅僅是一個(gè)示意圖,下面的時(shí)序圖可以幫助你了解不同的延遲時(shí)間發(fā)生的順序: 現(xiàn)在讓我們花一點(diǎn)時(shí)間結(jié)合前面介紹的讀取過程來研究一下上面的這張示意圖: 1) 首先看上圖第一行,在預(yù)充電期間行地址通過地址總線傳輸?shù)降刂芬_,這個(gè)期間RAS未被激活,在第三行Address BUS中我們看到數(shù)據(jù)在這個(gè)期間正在行地址總線上,這個(gè)期間CAS也處于預(yù)充電狀態(tài);2) 依然看上圖第一行, /RAS引腳被激活(RAS Active,灰色的部分),列地址就會(huì)被放入行地址選通電路(第三行Address Bus中所示),這個(gè)期間CAS依然處于預(yù)充電狀態(tài);在/RAS被激活的同時(shí),tRAC(行存取時(shí)間)開始如上圖最后一行Data Bus所示。3) 在/RAS被激活以后,行地址解碼器( Row Address Decoder)選擇正確的行然后送到傳感放大器( sense amps)4) 在這個(gè)期間/WE引腳一直處于不激活的狀態(tài),所以 DRAM知道它們不是進(jìn)行寫操作這個(gè)狀態(tài)將一直持續(xù)到開始執(zhí)行寫操作才結(jié)束5) 列地址通過地址總線傳輸?shù)降刂芬_6) /CAS引腳被激活(如上圖第三行),列地址就可以被送到列地址選通器( Column Address Latch),這個(gè)時(shí)候tCAC(列地址訪問時(shí)間)開始計(jì)時(shí)7) 在/CAS處于激活狀態(tài)期間的末尾,/RAS停止激活也就大約在這個(gè)時(shí)間附近找到的數(shù)據(jù)被傳送到數(shù)據(jù)總線進(jìn)行數(shù)據(jù)傳送(如圖data Bus),在數(shù)據(jù)總線進(jìn)行數(shù)據(jù)傳輸?shù)倪^程中,地址總線是處于空閑狀態(tài)的,它并不接受新的數(shù)據(jù)在數(shù)據(jù)開始創(chuàng)送的同時(shí)tRAC和tCAC都結(jié)束了。8)就在數(shù)據(jù)在數(shù)據(jù)總線上傳輸期間,/CAS引腳也被停止激活就是得到一個(gè)高電平,從而開始進(jìn)入到預(yù)充電期。RAS和CAS會(huì)同時(shí)處于預(yù)充電期,直到下次/RAS被激活進(jìn)入到下一個(gè)讀取操作的周期。相信經(jīng)過這樣的說明大家應(yīng)該了解DRAM的讀取過程了。在這個(gè)基礎(chǔ)上我們就可以開始認(rèn)識(shí)SIMM或者DIMM的潛伏期( latency)問題了。首先我們來繼續(xù)澄清一下幾個(gè)概念。 DRAM潛伏期類型分為兩種:訪問時(shí)間( access time)和周期時(shí)間( cycle time)。其中訪問時(shí)間( access time)同前面我們談?wù)摰牡诙N類型的延遲有關(guān),也就是同讀取周期中的延遲時(shí)間;而周期時(shí)間(cycle time)同我們前面談?wù)摰牡谝环N類型的延遲有關(guān),也就是受到兩個(gè)讀取周期之間的延遲時(shí)間影響。當(dāng)然潛伏期的時(shí)間很短,都是用納秒來衡量的。對(duì)于異步 DRAM芯片,訪問時(shí)間就是從行地址到達(dá)行地址引腳的時(shí)間起截至到數(shù)據(jù)被傳輸?shù)綌?shù)據(jù)引腳的時(shí)間段。這樣,訪問時(shí)間為60納秒的 DIMM意味著當(dāng)我們下達(dá)讀取數(shù)據(jù)的命令后,地址數(shù)據(jù)被送到地址引腳之后要等待60納米才能達(dá)到數(shù)據(jù)輸出引腳。周期時(shí)間,從字面上理解就是從兩個(gè)連續(xù)讀取操作之間的時(shí)間間隔。如何盡可能的減小DRAM的周期時(shí)間和訪問時(shí)間是我們這篇文章后半部分將要詳細(xì)的討論的問題。我們平時(shí)說到DRAM內(nèi)存是多少多少納秒,這里指的一般是訪問時(shí)間(我們也會(huì)對(duì)于為什么采取這樣的標(biāo)稱方法進(jìn)行解釋)。我們都知道訪問時(shí)間越短,意味著內(nèi)存工作頻率會(huì)越高。當(dāng)然內(nèi)存工作頻率越高,意味著可以適應(yīng)外頻更高的處理器。如果處理器的時(shí)鐘周期較短,而DRAM的潛伏期較長,處理器在很多時(shí)間里都是等到DRAM傳送數(shù)據(jù)。因此當(dāng)DRAM一定時(shí),比如時(shí)潛伏期為70納秒,那么一顆 1GHz PIII等待數(shù)據(jù)的時(shí)間將會(huì)比一顆 400MHz PII處理器長。當(dāng)然出現(xiàn)這樣的現(xiàn)象是每個(gè)用戶都不愿意看到的,當(dāng)?shù)氖褂玫膬?nèi)存速度越慢或者說你的處理器相對(duì)越快,你的處理器就會(huì)由更多的性能都被這樣的等待浪費(fèi)了。深入了解內(nèi)存(四)快頁模式內(nèi)存在深入了解內(nèi)存(三)DRAM讀取過程一文中我們介紹了DRAM的詳細(xì)的讀取過程,在本文的這一節(jié)中我們將要開始了解FPM DRAM( Fast Page Mode DRAM),也就是我們常說的快頁內(nèi)存。之所以稱之為快頁內(nèi)存,因?yàn)樗?字節(jié)突發(fā)模式傳送數(shù)據(jù),這4個(gè)字節(jié)來自同一列或者說同一頁。 如何理解這種讀取方式呢?FPM DRAM如果要突發(fā)4個(gè)字節(jié)的數(shù)據(jù),它依然需要依次的讀取每一個(gè)字節(jié)的數(shù)據(jù),比如它要讀取第一個(gè)字節(jié)的數(shù)據(jù),這個(gè)時(shí)候的情況同前面介紹的DRAM讀取方式是一樣的(我們依然通過讀取下面的FPM讀取時(shí)序圖來了解它的工作方式):首先行地址被傳送到行地址引腳,在/RAS引腳被激活之前,RAS處于預(yù)充電狀態(tài),CAS也處于預(yù)充電狀態(tài),當(dāng)然/WE此時(shí)依然是高電平,F(xiàn)PM至少知道自己不會(huì)進(jìn)行寫操作。/RAS引腳被賦予低電平而被激活,行地址被送到行地址選通器,然后選擇正確的行送到傳感放大器,就在/RAS引腳被激活的同時(shí),tRAC開始計(jì)時(shí)CAS一直處于預(yù)充電狀態(tài),直到列地址被傳送到列地址引腳并且 /CAS引腳得到一個(gè)低電平而被激活(tCRC時(shí)間開始計(jì)時(shí)),然后下面的事情我們也應(yīng)該很清楚了,列地址被送到列地址選通器,然后需要讀取的數(shù)據(jù)位置被鎖定,這個(gè)時(shí)候Dout引腳被激活,第一組數(shù)據(jù)就被傳送到數(shù)據(jù)總線上對(duì)于原來介紹的DRAM,這個(gè)時(shí)候一個(gè)讀取周期就結(jié)束了,不過對(duì)于FPM則不同,在傳送第一組數(shù)據(jù)期間,CAS失活(RAS依然保持著激活狀態(tài))并且進(jìn)入預(yù)充電狀態(tài),等待第二組列地址被傳送到列地址引腳,然后進(jìn)行第二組數(shù)據(jù)的傳輸,如此周而復(fù)始直至4組數(shù)據(jù)全部找到并且傳輸完畢當(dāng)?shù)谒慕M數(shù)據(jù)開始傳送的時(shí)候,RAS和CAS相繼失活進(jìn)入到預(yù)充電狀態(tài),這樣FPM的一個(gè)完整的讀取周期方告結(jié)束。FPM之所以能夠?qū)崿F(xiàn)這樣的傳輸模式,就是因?yàn)樗枰x取的4個(gè)字節(jié)的行地址是相同的但是列地址不同,所以它們不必為了得到一個(gè)相同的列地址而去做重復(fù)的工作。這樣的工作模式顯然相對(duì)于普通的DRAM模式節(jié)省了很多的時(shí)間,特別是節(jié)省了3次RAS預(yù)充電的時(shí)間和3個(gè)tRAC時(shí)間,從而進(jìn)一步提高的效率。我想你一定看到過諸如6333這樣的內(nèi)存標(biāo)注方法,其中的6表示從最初狀態(tài)讀取第一組數(shù)據(jù)需要6個(gè)時(shí)鐘周期,而讀取另外三個(gè)數(shù)據(jù)僅僅需要3個(gè)時(shí)鐘周期就能達(dá)到目的了。需要特別指出的是,在上面的時(shí)序圖中,我們并沒有標(biāo)注出 FPM DRAM進(jìn)行第二個(gè)、第三個(gè)、第四個(gè)數(shù)據(jù)輸出的前進(jìn)行新的列地址選通的時(shí)間,但是從上面的示意圖中我們可以看到Col.2同Data1和D2之間都沒有重疊,所以這三個(gè)數(shù)據(jù)的輸出是進(jìn)行完畢一個(gè)再進(jìn)行的另一個(gè),因此再上一次數(shù)據(jù)傳輸完畢到下一次列地址傳輸之間還有一點(diǎn)小小的延遲。請(qǐng)看下圖:EDO DRAM( Extended Data Out DRAM:擴(kuò)展數(shù)據(jù)輸出DRAM)在介紹FPM的讀取過程的最后我著重提到了 FPM DRAM是在上一次的數(shù)據(jù)讀取完畢才會(huì)進(jìn)行下一個(gè)數(shù)據(jù)的讀取,但是對(duì)于EDO DRAM卻是完全不一樣的。 EDO DRAM可以在輸出數(shù)據(jù)的同時(shí)進(jìn)行下一個(gè)列地址選通,我們依然結(jié)合下面的EDO讀取時(shí)序圖來了解EDO DRAM讀取數(shù)據(jù)的過程:RAS在結(jié)束上一次的讀取操作之后,進(jìn)入預(yù)充電狀態(tài),當(dāng)接到讀取數(shù)據(jù)的請(qǐng)求之后,行地址首先通過地址總線傳輸?shù)降刂芬_,在這個(gè)期間CAS依然處于預(yù)充電狀態(tài)/RAS引腳被激活,列地址開始經(jīng)過行地址選通電路和行地址解碼器進(jìn)行行地址的選擇,就在這個(gè)同時(shí)tRAC周期開始,因?yàn)槭亲x取操作/WE引腳一直沒有被激活,所以內(nèi)存知道自己進(jìn)行的是讀取操作而不是寫操作在CAS依然進(jìn)行預(yù)充電的過程中,列地址被送到列地址選通電路選擇出來合適的地址,當(dāng)/CAS被激活的同時(shí)tCAC周期開始,當(dāng)tCAC結(jié)束的時(shí)候,需要讀取的數(shù)據(jù)將會(huì)通過數(shù)據(jù)引腳傳輸?shù)綌?shù)據(jù)總線。從開始輸出第一組數(shù)據(jù)的時(shí)候,我們就可以體會(huì)到EDO同F(xiàn)PM之間的區(qū)別了:在tCAC周期結(jié)束之前,CAS失活并且開始了預(yù)充電,第二組列地址傳輸和選通也隨即開始,第一數(shù)據(jù)還沒有輸出完畢之前,下一組數(shù)據(jù)的tCAC周期就開始了顯然這樣進(jìn)一步的節(jié)省了時(shí)間。就在第二組數(shù)據(jù)輸出前,CAS再次失活為第三組數(shù)據(jù)傳輸列地址做起了準(zhǔn)備如此的設(shè)計(jì)使得EDO內(nèi)存的性能比起FPM的性能提高了大約20-40%.正是因?yàn)镋DO的速度比FPM快,所以它可以運(yùn)行在更高的總線頻率上。所以很多的EDO RAM可以運(yùn)行在66MHz的頻率上,并且一般標(biāo)注為5222。SDRAM主要談?wù)撐覀兇蠹叶寄芙佑|到的SDRAM內(nèi)存了,首先得承認(rèn)SDRAM同我們之前介紹的異步DRAM是差別非常大的。它的基本原理同前面提到的DRAM還是基本一樣的(比如基本存儲(chǔ)單元都是按照陣列排列,都有RAS和CAS的概念),不過這些存儲(chǔ)單元的組織和控制同DRAM就具有相當(dāng)大的差別了。在前面我們討論其它類型的內(nèi)存都是采用了以具體的產(chǎn)品為例來講述的,所以這里我們依然采用這種形式,這次我們以 MICRON MT48LC4M4A1 16MB SDRAM為例。(如果你感興趣可以去網(wǎng)站查找相應(yīng)的資料)。如果你還記得我們?cè)谇懊娼榻B的DRAM相關(guān)內(nèi)容,那么應(yīng)該還記得 DRAM是以bank來組織存儲(chǔ)單元的。因?yàn)槊總€(gè)內(nèi)存bank的位寬是同數(shù)據(jù)總線阿位寬一樣的。所以對(duì)于SIMM,你必須把多個(gè)SIMM放在一個(gè)bank之中來滿足32bit或者64bit數(shù)據(jù)總線的要求。DIMM具有更多阿引腳,所以單個(gè)DIMM可以提供足夠的同數(shù)據(jù)總線相適應(yīng)的位寬這樣每個(gè)bank只要一個(gè)DIMM就可以了。而且 SDRAM更進(jìn)一步的是可以在單個(gè)的DIMM中存在多個(gè)bank,這樣不但能夠滿足數(shù)據(jù)總線的需要還能進(jìn)一步的提高總線的性能。下面就讓我來解釋一下:在我們前面討論的DRAM讀取方式中,當(dāng)一個(gè)讀取周期結(jié)束后,/RAS和/CAS都必須停止激活然后有一個(gè)短暫的預(yù)充電期才能進(jìn)入到下一次的讀取周期中。但是一個(gè)具有兩個(gè)bank的SDRAM的模組中,其中一個(gè)bank在進(jìn)行預(yù)充電的期間另一個(gè)bank卻可以被調(diào)用這樣當(dāng)你需要讀取已經(jīng)預(yù)充電的bank的數(shù)據(jù)時(shí),就無需等待而是可以直接調(diào)用了。為了實(shí)現(xiàn)這個(gè)功能,SDRAM就需要增加對(duì)于多個(gè)bank的管理,這樣就可以實(shí)現(xiàn)控制其中的bank進(jìn)行預(yù)充電,并且在需要使用的時(shí)候隨時(shí)調(diào)用了。這樣一個(gè)具有兩個(gè)bank的SDRAM一般會(huì)多一根叫做BA0的引腳,實(shí)現(xiàn)在兩個(gè)bank之間的選擇一般的BA0是低電平表示Bank0被選擇,而BA0是高電平Bank1就會(huì)被選中??梢?,雖然SDRAM在基本的原理上比如基本存儲(chǔ)的結(jié)構(gòu)都是基本一樣的,但是在整個(gè)內(nèi)存架構(gòu)的組織上是不同的,而且在存儲(chǔ)單元的控制上也是有著相當(dāng)大的區(qū)別的。因?yàn)楫惒紻RAM同處理器和芯片的時(shí)鐘并沒有什么關(guān)系,所以芯片組只能按照DRAM內(nèi)存的時(shí)序要求“被動(dòng)”的操作DRAM控制引腳。SDRAM因?yàn)橐珻PU和芯片組共享時(shí)鐘,所以芯片組可以主動(dòng)的在每個(gè)時(shí)鐘的上升沿發(fā)給引腳控制命令。上圖顯示的就是MT48LC4M4A1 16MB SDRAM內(nèi)存顆粒的引腳示意圖,它采用了50引腳的TSOP封裝,符合PC100規(guī)范。這種內(nèi)存顆粒將同系統(tǒng)時(shí)鐘同步運(yùn)行。這種內(nèi)存顆粒的架構(gòu)1Mx16-512Kx16x2,每bank行地址數(shù)目是11,列地址數(shù)目是8。我們首先來介紹一下這種內(nèi)存顆粒的引腳定義:A0A10:地址輸入引腳,當(dāng)ACTIVE命令和READ/WRITE命令時(shí),來決定使用某個(gè)bank內(nèi)的某個(gè)基本存儲(chǔ)單元。CLK:時(shí)鐘信號(hào)輸入引腳CKE:Clock Enable,高電平時(shí)有效。當(dāng)這個(gè)引腳處于低電平期間,提供給所有bank預(yù)充電和刷新的操作/CS:芯片選擇(Chip Select),SDRAM DIMM一般都是多存儲(chǔ)芯片架構(gòu),這個(gè)引腳就是用于選擇進(jìn)行存取操作的芯片/RAS:行地址選擇(Row Address Select)/CAS:列地址選擇(Column Address Select)/WE:寫入信號(hào)(Write Enable)DQ0DQ15:數(shù)據(jù)輸入輸出接口BA:Bank地址輸入信號(hào)引腳,BA信號(hào)決定了由激活哪一個(gè)bank、進(jìn)行讀寫或者預(yù)充電操作;BA也用于定義Mode寄存器中的相關(guān)數(shù)據(jù)。NC:空引腳DQM: 這個(gè)引腳的主要用于屏蔽輸入/輸出,功能相當(dāng)于/OE引腳( Output Enable)。 VDDQ:DQ供電引腳,可以提高抗干擾強(qiáng)度VSSQ:DQ供電接地引腳VSS:內(nèi)存芯片供電接地引腳VDD:內(nèi)存芯片供電引腳,提供+3.3V 0.3V(上面的列表項(xiàng)目和示意圖中,前面標(biāo)有“/”或者“#”標(biāo)記的表示在低電平下有效)下面的表格在不同的狀態(tài)下(或者說不同命令下)的各個(gè)引腳的信號(hào)?!癏”代表高電平,“L”代表低電平,“X”代表可以是任何狀態(tài),也就是該引腳同該命令并沒有直接的關(guān)系。功能 /CS /RAS /CAS /WE DQM ADDR. COMMAND INHIBIT (NOP) H X X X X X NO OPERATION (NOP) L H H H X X ACTIVE (選擇bank并且激活相應(yīng)的行) L L H H X Bank/Row READ (選擇bank和列地址,并且開始突發(fā)讀取) L H L H X Bank/Col WRITE (選擇 bank和列地址,并且開始突發(fā)寫入) L H L L X Bank/Col BURST TERMINATE(停止當(dāng)前的突發(fā)狀態(tài)) L H H L X X PRECHARGE (讓相應(yīng)的bank中的行失活或者讓該bank失活) L L H L X Code AUTO REFRESH(進(jìn)入自動(dòng)刷新模式) L L L H X X LOAD MODE REGISTER L L L L X Op-code 寫入啟用/輸出啟用L寫入禁止/輸出禁止H如果你對(duì)于我們前面介紹的內(nèi)容有了真的有所了解了,看到上面的芯片引腳示意圖和各個(gè)針腳的功能示意圖就基本對(duì)于SDRAM的工作工程有了一個(gè)基本的了解了,在下面的章節(jié)里我們就對(duì)于這個(gè)過程進(jìn)行詳細(xì)的介紹,首先我們對(duì)于一些基本的概念做一些了解。這條SDRAM顆粒采用了雙bank(每bank 512K x 16 DRAM)的工作電壓是3.3V,并且采用同步接口方式(所有的信號(hào)都是時(shí)鐘信號(hào)的上升沿觸發(fā))。每一個(gè)512K x 16-bitbank由2,048行乘以256列個(gè)基本存儲(chǔ)單元構(gòu)成,輸出數(shù)據(jù)位寬是16 bit。Read和write操作都是通過突發(fā)導(dǎo)向模式訪問SDRAM的;這種訪問模式以訪問指定的區(qū)域開始的,然后按照預(yù)先設(shè)定的方式定位其它的數(shù)據(jù)的所在。每次訪問都是以ACTIVE命令啟動(dòng)的,然后僅僅跟著一個(gè)READ或者WRITE命令。不過在進(jìn)行所有這些操作之前,SDRAM必須首先進(jìn)行初始化。初始化SDRAM在上電之后,必須首先按照預(yù)定的方式進(jìn)行初始化才能正常的運(yùn)行。一旦VDD和VDDQ被同時(shí)供電并且時(shí)鐘穩(wěn)定下來,SDRAM就需要一個(gè)100微秒的延遲,在這個(gè)時(shí)間段中COMMAND INHIBIT和NOP指令有效,這個(gè)過程實(shí)際上就是內(nèi)存的自檢過程,一旦這個(gè)過程通過之后一個(gè)PRECHARGE命令就會(huì)緊緊隨著最后一個(gè)COMMAND INHIBIT或者NOP指令而生效,這個(gè)期間所有的內(nèi)存都處于空閑(idle)狀態(tài),隨后會(huì)執(zhí)行兩個(gè)AUTOREFRESH周期、當(dāng)AUTOREFRESH周期完畢之后,SDRAM為進(jìn)行Mode Register編程做好了準(zhǔn)備。因?yàn)镸ode Register上電會(huì)引起一個(gè)為止的狀態(tài),它會(huì)在進(jìn)行所有正常指令
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 現(xiàn)代小區(qū)火災(zāi)應(yīng)急救援隊(duì)伍的實(shí)戰(zhàn)化訓(xùn)練探討
- 現(xiàn)代企業(yè)員工激勵(lì)機(jī)制設(shè)計(jì)與實(shí)踐
- 班級(jí)環(huán)境衛(wèi)生與校園文化建設(shè)的結(jié)合
- 4《機(jī)械擺鐘》說課稿-2023-2024學(xué)年科學(xué)五年級(jí)上冊(cè)教科版
- 2023七年級(jí)數(shù)學(xué)上冊(cè) 第3章 一次方程與方程組3.2 一元一次方程的應(yīng)用第1課時(shí) 等積變形和行程問題說課稿 (新版)滬科版
- Unit 4 Plants around us Part A Let's learn(說課稿)-2024-2025學(xué)年人教PEP版(2024)英語三年級(jí)上冊(cè)
- 2024-2025學(xué)年新教材高中英語 Unit 3 The world meets China預(yù)習(xí) 新知早知道1(教用文檔)說課稿 外研版選擇性必修第四冊(cè)
- 2025日本食品業(yè)A公司特許合同樣本
- 2025年銀行擔(dān)保借款合同范本
- 1小蝌蚪找媽媽 說課稿-2024-2025學(xué)年語文二年級(jí)上冊(cè)統(tǒng)編版
- 第十一章《功和機(jī)械能》達(dá)標(biāo)測試卷(含答案)2024-2025學(xué)年度人教版物理八年級(jí)下冊(cè)
- 2025年銷售部年度工作計(jì)劃
- 2024年蘇州工業(yè)園區(qū)服務(wù)外包職業(yè)學(xué)院高職單招職業(yè)適應(yīng)性測試歷年參考題庫含答案解析
- ESG表現(xiàn)對(duì)企業(yè)財(cái)務(wù)績效的影響研究
- DB3713T 340-2024 實(shí)景三維數(shù)據(jù)接口及服務(wù)發(fā)布技術(shù)規(guī)范
- 八年級(jí)生物開學(xué)摸底考(長沙專用)(考試版)
- (工作規(guī)范)公路預(yù)防性養(yǎng)護(hù)工作手冊(cè)
- 車間空調(diào)崗位送風(fēng)方案
- 使用錯(cuò)誤評(píng)估報(bào)告(可用性工程)模版
- 初一年級(jí)班主任上學(xué)期工作總結(jié)
評(píng)論
0/150
提交評(píng)論