SDRAM晶元的預充電與重新整理操作

2021-05-05 20:11:38 字數 3169 閱讀 7235

預充電

由於sdram的定址具有獨占性,所以在進行完讀寫操作後,如果要對同一l-bank的另一行進行定址,就要將原來有效(工作)的行關閉,重新傳送行/列 位址。l-bank關閉現有工作行,準備開啟新行 的操作就是預充電(precharge)。預充電可以通過命令控制,也可以通過輔助設定讓晶元在每次讀寫操作之後自動進行預充電。實際上,預充電是一種對工作行 中所有儲存體進行資料重寫,並對行位址進行復位,同時釋放s-amp(重新加入比較電壓,一般是電容電壓的1/2,以幫助判斷讀取資料的邏輯電平,因為s-amp是通過乙個參考電壓與儲存體位線電壓的比較來判斷邏輯值的),以準備新行的工作。具體而言,就是將s-amp中的資料回寫,即使是沒有工作過的儲存體也會因行選通而使儲存電容受到干擾,所以也需要s-amp進行讀後重寫。此時,電容的電量 (或者說其產生的電壓)將是判斷邏輯狀態的依據(讀取時也需要),為此要設定乙個臨界值,一般為電容電量的1/2,超過它的為邏輯1,進行重寫,否則為邏 輯0,不進行重寫(等於放電)。為此,現在基本都將電容的另一端接入乙個指定的電壓(即1/2電容電壓),而不是接地,以幫助重寫時的比較與判斷。

現 在我們再回過頭看看讀寫操作時的命令時序圖,從中可以發現位址線a10控制著是否進行在讀寫之後當前l-bank自動進行預充電,這就是上文所說的「輔助 設定」。而在單獨的預充電命令中,a10則控制著是對指定的l-bank還是所有的l-bank(當有多個l-bank處於有效/活動狀態時)進行預充 電,前者需要提供l-bank的位址,後者只需將a10訊號置於高電平。在發出預充電命令之後,要經過一段時間才能允許傳送ras行有效命令開啟新的工作行,這個間隔被稱為trp(precharge command period,預充電有效週期)。和trcd、cl一樣,trp的單位也是時鐘週期數,具體值視時鐘頻率而定。

讀取時預充電時序圖

圖中設定:cl=2、bl=4、trp=2。自動預充電時的開始時間與此圖 一樣,只是沒有了單獨的預充電命令,並在發出讀取命令時,a10位址線要設為高電平(允許自動預充電)。可見控制好預充電啟動時間很重要,它可以在讀取操 作結束後立刻進入新行的定址,保證執行效率。

誤區: 讀寫情況下都要考慮寫回延遲 有些文章強調由於寫回操作而使讀/寫操作後都有一定的延遲,但從本文的介紹中寫可以看出,即使是讀後立即重寫的設計,由於是與資料輸出同步進行,並不存在 延遲。只有在寫操作後進行其他的操作時,才會有這方面的影響。寫操作雖然是0延遲進行,但每筆資料的真正寫入則需要乙個足夠的週期來保證,這段時間就是寫回週期 (twr)。所以預充電不能與寫操作同時進行 ,必須要在twr之後才能發出預充電命令,以確保資料的可靠寫入,否則重寫的資料可能是錯的,這就造成 了寫回延遲。

資料寫入時預充電操作時序圖

(注意其中的twr引數,由於它的存在,使預充電操作延後,從而造成寫回延遲)

之所以稱為dram,就是因為它要不斷進行重新整理(refresh)才能保留住資料,因此它是dram最重要的操作。重新整理操作與預充電中重寫的操作一樣,都是用s-amp先讀再寫。但為什麼有預充電操作還要進行重新整理呢?因為預充電是對乙個或所有l-bank中的工作行操作 ,並且是不定期的,而重新整理則是有固定的週期 ,依次對所有行 進行操作,以保留那些久久沒經歷重寫的儲存體中的資料。但與所有l-bank預充電不同的是, 這裡的行是指所有l-bank中位址相同的行,而預充電中各l-bank中的工作行位址並不是一定是相同的。

那麼要隔多長時間重複一次重新整理呢?目前公認的標準是,儲存體中電容的資料有效儲存期上限是64ms(毫秒,1/1000秒),也就是說每一行重新整理的迴圈週期是64ms。這樣重新整理速度 就是:行數量/64ms。我們在看記憶體規格時,經常會看到4096 refresh cycles/64ms或8192 refresh cycles/64ms的標識,這裡的4096與8192就代表這個晶元中每個l-bank的行數。重新整理命令一次對一行有效 ,傳送間隔也是隨總行數而變 化,4096行時為15.625μs(微秒,1/1000毫秒),8192行時就為7.8125μs。

重新整理操作分為兩種:自動重新整理 (auto refresh,簡稱ar)與自重新整理 (self refresh,簡稱sr)。不論是何種重新整理方式,都不需要外部提供行位址 資訊,因為這是乙個內部的自動操作 。對於ar,sdram內部有乙個行位址生成器 (也稱重新整理計數器)用來自動的依次生成 行位址。由於重新整理是針對一行中的所有儲存體進行,所以無需列定址 ,或者說cas在 ras之前有效。所以,ar又稱cbr(cas before ras,列提前於行定位)式重新整理。由於重新整理涉及到所有l-bank,因此在重新整理過程中,所有l-bank都停止工作 ,而每次重新整理所占用的時間為9個時鐘週期(pc133標準),之後就可進入正常的工作狀態,也就是說在這9 個時鐘期間內,所有工作指令只能等待而無法執行。64ms之後則再次對同一行進行重新整理,如此周而復始進行迴圈重新整理。顯然,重新整理操作肯定會對sdram的效能造成影響 ,但這是沒辦法的事情,也是dram相對於sram(靜態記憶體,無需重新整理仍能保留資料)取得成本優勢的同時所付出的代價 。

sr則主要用於休眠模式低功耗狀態下的資料儲存 ,這方面最著名的應用就是str(suspend to ram,休眠掛起於記憶體)。在發出ar命令時,將cke置於無效狀態,就進入了sr模式,此時不再依靠系統時鐘工作,而是根據內部的時鐘進行重新整理操作 。在 sr期間除了cke之外的所有外部訊號都是無效的(無需外部提供重新整理指令),只有重新使cke有效才能退出自重新整理模式並進入正常操作狀態。

資料掩碼

在講述讀/寫操作時,我們談到了突發長度 。如果bl=4,那麼也就是說一次就傳送4×64bit的資料。但是,如果其中的第二筆資料是不需要的,怎麼辦?還都傳輸嗎?為了遮蔽不需要的資料,人們採用了資料掩碼 (data i/o mask,簡稱dqm)技術。通過dqm,記憶體可以控制i/o埠取消哪些輸出或輸入的資料。這裡需要強調的是,在讀取時,被遮蔽的資料仍然會從儲存體傳出,只是在「掩碼邏輯單元」處被遮蔽。dqm由北橋控制,為了精確遮蔽乙個p-bank位寬中的每個位元組,每個dimm有8個dqm訊號線,每個訊號針對乙個位元組 。這樣,對於4bit位寬晶元,兩個晶元共用乙個dqm訊號線,對於8bit位寬晶元,乙個晶元占用乙個dqm訊號,而對於16bit位寬晶元, 則需要兩個dqm引腳。sdram官方規定,在讀取時dqm發出兩個時鐘週期後生效,而在寫入時,dqm與寫入命令一樣是立即成效。

讀取時資料掩碼操作,dqm在兩個週期後生效,突發週期的第二筆資料被取消

寫入時資料掩碼操作,dqm立即生效,突發週期的第二筆資料被取消

有關記憶體內部的基本操作就到此結束,其實還有很多記憶體的操作沒有描述,但都不是很重要了,限於篇幅與必要性,我們不在此介紹,有興趣的讀者可以自行檢視相關資料。       

SDRAM的邏輯Bank與晶元容量表示方法

sdram的邏輯bank與晶元容量表示方法 2008 12 08 16 46 1 邏輯bank與晶元位寬 講完sdram的外在形式,就該深入了解sdram的內部結構了。這裡主要的概念就是邏輯bank。簡單地說,sdram的內部是乙個儲存陣列。因為如果是管道式儲存 就如排隊買票 就很難做到隨機訪問了。...

SDRAM的邏輯Bank與晶元容量表示方法

1 邏輯bank與晶元位寬 簡單地說,sdram的內部是乙個儲存陣列。因為如果是管道式儲存 就如排隊買票 就很難做到隨機訪問了。陣列就如同 一樣,將資料 填 進去,你可以把它想象成一張 和 的檢索原理一樣,先指定乙個行 row 再指定乙個列 column 我們就可以準確地找到所需要的單元格,這就是記...

SDRAM的邏輯Bank與晶元容量表示方法

sdram的內部是乙個儲存陣列。因為如果是管道式儲存 就如排隊買票 就很難做到隨機訪問了。陣列就如同 一樣,將資料 填 進去,你可以把它想象成一張 和 的檢索原理一樣,先指定乙個行 row 再指定乙個列 column 我們就可以準確地找到所需要的單元格,這就是記憶體晶元定址的基本原理。對於記憶體,這...