DDR出身自SDRAM,嚴(yán)格的說應(yīng)該叫DDR SDRAM,DDR SDRAM是Double Data Rate SDRAM的縮寫,是雙倍速率同步動態(tài)隨機存儲器的意思,所以,有很大一部分,兩者是一樣的,理解SDRAM,然后再來理解DDR在SDRAM上的改進,效果應(yīng)該更好一些,這里要感謝Chinaunix.net的大神--Tekkaman Ninja,我的內(nèi)存的學(xué)習(xí)資料都是Tekkaman Ninja的博客中介紹的。以下是我對大神推薦文檔的一些個人整理,OK,先上一張SDRAM的結(jié)構(gòu)圖。
6.突發(fā)長度--(Burst Lengths)
突發(fā)(Burst)是指在同一行中相鄰的存儲單元連續(xù)進行數(shù)據(jù)傳輸?shù)姆绞?/strong>,連續(xù)傳輸所涉及到存儲單元(列)的數(shù)量就是突發(fā)長度(Burst Lengths,簡稱 BL)。
只要指定起始列地址與突發(fā)長度,內(nèi)存就會依次地自動對后面相應(yīng)數(shù)量的存儲單元進行讀/寫操作而不再需要控制器連續(xù)地提供列地址。這樣,除了第一筆數(shù)據(jù)的傳輸需要若干個周期(主要是之前的延遲,一般的是
tRCD+CL)外,其后每個數(shù)據(jù)只需一個周期的即可獲得。
7.預(yù)充電 由于 SDRAM 的尋址具體獨占性,所以在進行完讀寫操作后,如果要對同一個Bank的另一行進行尋址,就要將原來有效(工作)的行關(guān)閉,重新發(fā)送行/列地址。Bank 關(guān)閉現(xiàn)有工作行,準(zhǔn)備打開新行的操作就是預(yù)充電(Precharge)。 在發(fā)出預(yù)充電命令之后,要經(jīng)過一段時間才能允許發(fā)送 RAS 行有效命令打開新的工作行,這個間隔被稱為tRP(Precharge command Period,預(yù)充電有效周期)。和 tRCD、CL 一樣,tRP 的單位也是時鐘周期數(shù),具體值視時鐘頻率而定。 8.刷新 之所以稱為 DRAM,就是因為它要不斷進行刷新(Refresh)才能保留住數(shù)據(jù),因此它是 DRAM 最重要的操作。刷新操作與預(yù)充電中重寫的操作一樣,都是用 S-AMP 先讀再寫。 但為什么有預(yù)充電操作還要進行刷新呢?因為預(yù)充電是對一個或所有L-Bank 中的工作行操作,并且是不定期的,而刷新則是有固定的周期,依次對所有行進行操作,以保留那些久久沒經(jīng)歷重寫的存儲體中的數(shù)據(jù)。但與所有 L-Bank 預(yù)充電不同的是,這里的行是指所有 L-Bank 中地址相同的行,而預(yù)充電中各 L-Bank 中的工作行地址并不是一定是相同的。比如我有四片,刷新是我依次刷新四片內(nèi)存中的某個地址,然后再刷下一個;而預(yù)充電的工作行地址可以不同。 那么要隔多長時間重復(fù)一次刷新呢?目前公認(rèn)的標(biāo)準(zhǔn)是,存儲體中電容的數(shù)據(jù)有效保存期上限是64ms(毫秒,1/1000 秒),也就是說每一行刷新的循環(huán)周期是 64ms。這樣刷新速度就是:行數(shù)量/64ms。我們在看內(nèi)存規(guī)格時,經(jīng)常會看到 4096 Refresh Cycles/64ms 或 8192 RefreshCycles/64ms 的標(biāo)識,這里的 4096 與 8192 就代表這個芯片中每個 L-Bank 的行數(shù)。刷新命令一次對一行有效,發(fā)送間隔也是隨總行數(shù)而變化,4096 行時為 15.625μs(微秒,1/1000 毫秒),8192 行時就為 7.8125μs。 刷新操作分為兩種:自動刷新(Auto Refresh,簡稱 AR)與自刷新(Self Refresh,簡稱 SR)。 SR 則主要用于休眠模式低功耗狀態(tài)下的數(shù)據(jù)保存,這方面最著名的應(yīng)用就是 STR(Suspend to RAM,休眠掛起于內(nèi)存)。在發(fā)出 AR 命令時,將 CKE 置于無效狀態(tài),就進入了 SR 模式,此時不再依靠系統(tǒng)時鐘工作,而是根據(jù)內(nèi)部的時鐘進行刷新操作。在 SR 期間除了 CKE 之外的所有外部信號都是無效的(無需外部提供刷新指令),只有重新使 CKE 有效才能退出自刷新模式并進入正常操作狀態(tài)。
以上就是SDRAM是主要工作步驟,對比一下最上面的簡易工作流程圖,時間是不是就很清楚了呢? |
|