天天看點

高手進階,終極記憶體技術指南——完整/進階版 II(轉)

高手進階,終極記憶體技術指南——完整/進階版 II (轉)  

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

預充電

由于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的機關也是時鐘周期數,具體值視時鐘頻率而定。

高手進階,終極記憶體技術指南——完整/進階版 II(轉)
讀取時預充電時序圖(上圖可點選放 大):圖中設定:CL=2、BL=4、tRP=2。自動預充電時的開始時間與此圖一樣,隻是沒有了單獨的預充電指令,并在發出讀取指令時,A10位址線要 設為高電平(允許自動預充電)。可見控制好預充電啟動時間很重要,它可以在讀取操作結束後立刻進入新行的尋址,保證運作效率。
誤區:讀寫情況下都要考慮寫回延遲
有些文章強調由于寫回操作而使讀/寫操作後都有一定的延遲,但從本文的介紹中寫可以看出,即使是讀後立即重寫的設計,由于是與資料輸出同步進行,并不存 在延遲。隻有在寫操作後進行其他的操作時,才會有這方面的影響。寫操作雖然是0延遲進行,但每筆資料的真正寫入則需要一個足夠的周期來保證,這段時間就是 寫回周期(tWR)。是以預充電不能與寫操作同時進行,必須要在tWR之後才能發出預充電指令,以確定資料的可靠寫入,否則重寫的資料可能是錯的,這就造 成了寫回延遲。
高手進階,終極記憶體技術指南——完整/進階版 II(轉)
資料寫入時預充電操作時序圖(可點選放大):注意其中的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與寫入指令一樣是立即成效。

高手進階,終極記憶體技術指南——完整/進階版 II(轉)
讀取時資料掩碼操作,DQM在兩個周期後生效,突發周期的第二筆資料被取消(上圖可點選放大)
高手進階,終極記憶體技術指南——完整/進階版 II(轉)

寫入時資料掩碼操作,DQM立即生效,突發周期的第二筆資料被取消(上圖可點選放大)

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

================================

圖解SDRAM工作流程:倉庫物語

貨物基地(主機闆)連接配接着物資(資料)的供求方。基地的貨物排程廠房(北橋晶片)掌管着若幹個用于臨時供貨/生産與存儲的倉庫基地(P-Bank),它們通 常隸屬于某一倉儲集團(DIMM),這種基地與排程廠房之間必須由64條傳送帶聯系着(P-Bank位寬),每條傳送帶一次隻能運送一個标準的貨物 (1bit資料),而且一次至少要傳送64個标準貨物,這是它們之間的約定,倉庫基地必須滿足。

高手進階,終極記憶體技術指南——完整/進階版 II(轉)

(點選放大)

上圖(點選放大)就是這樣的一個倉庫基地(P-Bank),它由4個大倉庫(記憶體晶片)組成,它們的規模都相當大,每個大倉庫為基地提供16條傳送帶(芯 片位寬為16bit),總共加起來剛好就是64條。每個大倉庫裡都有四個規模和結構相同的子倉庫(L-Bank),它們都被統一編了号。而子倉庫中有很多 層(行),每層裡又有很多的儲藏間(列),每個儲藏間可以放置16個标準貨物,雖然子倉庫的規模很大,但每一層和每一個房間也都編好了号,而且每一層都有 一個搬運工在值班。

為了與外界聯系友善,倉儲集團與排程室設定了專線電話,和一個國家一樣,每個倉庫基地有一個區号(片選),另外還有四個子倉庫号碼(L-Bank位址), 是所有大倉庫共享的,一個号碼對應所有大倉庫中編号相同的子倉庫。而專線電話的數量也是四個,這樣可保證與某個子倉庫通話時不會妨礙給其他子倉庫打電話。 在子倉庫的每層則設立分機給搬運工使用。子倉庫的樓下就是傳送帶,找到貨物把它扔到上面。但每個大倉庫隻有一個傳送帶,也就是說同一時間内隻能有一個子倉 庫在工作。每個子倉庫都有一個自己的生産工廠中的房間(讀出放大器)負責指定貨物的生産,并且每個大倉庫都有一個外運站(資料輸出寄存器)和寄存托運處(資料輸入 寄存器與寫入驅動器)與傳送帶相連,前者負責貨物的輸出中轉,後者負責所接受貨物并寄存然後幫助搬運工運送到指定儲藏間。那麼它是如何與排程廠房協同工作 的呢?  

1、需求方有貨物請求了,這個請求發送到排程廠房,排程人員開根據貨主的要求給指定的子倉庫打電話,電話号碼是:區号+子倉庫号碼+樓層分機(片選+L-Bank尋址+行有效/選通)。那一層的搬運工接到電話後就開始準備工作。  

2、當搬運工點亮所有儲藏間的門牌(tRCD)之後,排程人員會告訴搬運工,貨物放在哪個儲藏間裡(列尋址),如果貨物很多,并且是連續存放的,排程員會 通知搬運工:“一會兒要搬的時候,從起始房間開始連續将後面的n個房間的貨物都搬出來,我就不再重複了”(突發傳輸)。但是,他告訴搬運工要等一下,要求 所有大倉庫的人員統一行動,先别出貨。  

3、根據事先的規定,搬運工在經過指定的時間後開始将貨物扔到傳送帶上,傳送帶開始運轉并将貨物送到生産工廠中的房間,由它來複制出全新的貨物,然後再送到傳送帶 上通過外運站向排程廠房運去。人們通常把從搬運工找到具體儲藏間開始,到貨物真正出現在送往排程廠房的傳送帶上的這段時間稱之為“輸出潛伏期”(CL), 而從值班人把貨物扔到傳送帶到貨物開始傳向排程廠房的這段時間,被稱為“貨物輸出延遲”(tAC),它展現了值班人員的反應時間和生産工廠中的房間的效率,也影響 着倉庫基地所在集團(DIMM)的名聲。  

4、在這個搬運工工作的同時,由于電話對于編号相同的子倉庫是并聯的,是以其他子倉庫相同樓層的搬運工也收到相同的指令,從相同編号的房間搬出貨物,運向各自的生産工廠中的房間。此時,同一批貨物同時出現在各自的16條傳送帶上,并整齊地向排程廠房運去。  

5、當貨物傳送完後,原始貨物還要送回儲藏間保管,這是必須的,但如果沒有要求,貨物可以一直保留在生産工廠中的房間,如果再有需要就再生産,而不用再麻煩搬運工 了(讀出放大器相當于一個Cache)。排程人員接着會進行下一批貨物的排程,當他發現下一批貨物在上次操作的子倉庫中,但不在剛才通話的那一層,隻能再 重新撥電話。這時,他通知各子倉庫貨物翻新運回,清理生産工廠中的房間,之後挂斷電話(預充電指令),這一切必須要在指定時間裡(tRP)完成,然後才能給新的樓 層打電話。搬運員接到通知後,就将這一

層中所有房間的貨物都拿到生産工廠中的房間進行翻新(沒有貨物的就不用翻新),然後再搬回儲藏間。幹完這一切之後,搬運工挂了電話(關閉行)就可以休息了,他們稱 這種工作為“貨物清理返運”(預充電)。這個工作的速度也要快,否則同樣會影響集團名聲。當然,這個工作可以讓搬運工自動完成(自動預充電),隻需排程員 在當初下搬運指令時提醒一他:“貨物運送完了,就進行貨物清理返運吧,我不管了”(用A10位址線)。  

6、當有貨物要運來存儲時,排程員在向子倉庫發送貨物的同時就給指定的樓層打電話,讓他們準備好房間,此時貨物已經到了寄存托運處,沒有任何的運送延遲 (寫入延遲=0),搬運工在托運間的幫助下,向指定的儲藏間運送貨物,這可需要一定的時間了,他們稱之為貨物堆放時間(tWR),必須給足搬運工們這一時 間,而不能在這期間裡讓他們幹其他的工作,否則他們會令貨物丢失并罷工……

(注:本插欄是對DRAM操作的形象性描述,謹 供輔助性了解本專題,嚴謹的操作說明見上文。另外,在此請各位讀者注意,将記憶體比喻為倉庫隻是為了形象化描述,而不要把記憶體等同了解為存儲,它們是有本質 的不同的,在本文的比喻中,它隻是一個臨時性倉庫,這一點請大家厘清,不要是以産生新的錯誤概念。)

=============================

SDRAM的結構、時序與性能的關系(上)

在講完SDRAM的基本工作原理和主要操作之後,我們現在要重要分析一下SDRAM的時序與性能之間的關系,它不在局限于晶片本身,而是從整體的記憶體系統 去分析。這也是廣大DIYer所關心的話題。比如CL值對性能的影響有多大幾乎是每個記憶體論壇都會有讨論,今天我們就詳細探讨一下,其中的很多内容同樣适 用于DDR與RDRAM。這裡需要強調一點,對于記憶體系統整體而言,一次記憶體通路就是對一個頁的通路,這個頁的定義已經在解釋Full Page含義時講明了。由于在P-Bank中,每個晶片的尋址都是一樣的,是以可以将頁通路“濃縮”等效為對每晶片中指定行的通路,這樣可能比較好了解。 但為了與官方标準統一,在下文中會經常用頁來描述相關的内容,請讀者注意了解。

一、影響性能的主要時序參數

所謂的影響性能是并不是指SDRAM的帶寬,頻率與位寬固定後,帶寬也就不可更改了。但這是理想的情況,在記憶體的工作周期内,不可能總處于資料傳輸的狀态,因為要有指令、尋址等必要的過程。但這些操作占用的時間越短,記憶體工作的效率越高,性能也就越好。

非資料傳輸時間的主要組成部分就是各種延遲與潛伏期。通過上文的講述,大家應該很明顯看出有三個參數對記憶體的性能影響至關重要,它們是tRCD、CL和tRP。每條正規的記憶體模組都會在辨別上注明這三個參數值,可見它們對性能的敏感性。

以記憶體最主要的操作——讀取為例。tRCD決定了行尋址(有效)至列尋址(讀/寫指令)之間的間隔,CL決定了列尋址到資料進行真正被讀取所花費的時間, tRP則決定了相同L-Bank中不同工作行轉換的速度。現在可以想象一下讀取時可能遇到的幾種情況(分析寫入操作時不用考慮CL即可):

1、要尋址的行與L-Bank是空閑的。也就是說該L-Bank的所有行是關閉的,此時可直接發送行有效指令,資料讀取前的總耗時為tRCD+CL,這種情況我們稱之為頁命中(PH,Page Hit)。

2、要尋址的行正好是前一個操作的工作行,也就是說要尋址的行已經處于選通有效狀态,此時可直接發送列尋址指令,資料讀取前的總耗時僅為CL,這就是所謂 的背靠背(Back to Back)尋址,我們稱之為頁快速命中(PFH,Page Fast Hit)或頁直接命中(PDH,Page Direct Hit)。

3、要尋址的行所在的L-Bank中已經有一個行處于活動狀态(未關閉),這種現象就被稱作尋址沖突,此時就必須要進行預充電來關閉工作行,再對新行發送 行有效指令。結果,總耗時就是tRP+tRCD+CL,這種情況我們稱之為頁錯失(PM,Page Miss)。

顯然,PFH是最理想的尋址情況,PM則是最糟糕的尋址情況。上述三種情況發生的機率各自簡稱為PHR——PH Rate、PFDR——PFH Rate、PMR——PM Rate。是以,系統設計人員(包括記憶體與北橋晶片)都盡量想提高PHR與PFHR,同時減少PMR,以達到提高記憶體工作效率的目的。

二、增加PHR的方法

顯然,這與預充電管理政策有着直接的關系,目前有兩種方法來盡量提高PHR。自動預充電技術就是其中之一,它自動的在每次行操作之後進行預充電,進而減少 了日後對同一L-Bank不同行尋址時發生沖突的可能性。但是,如果要在目前行工作完成後馬上打開同一L-Bank的另一行工作時,仍然存在tRP的延 遲。怎麼辦? 此時就需要L-Bank交錯預充電了。

VIA的4路交錯式記憶體控制就是在一個L-Bank工作時,對下一個要工作的L-Bank進行預充電。這樣,預充電與資料的傳輸交錯執行,當通路下一個L -Bank時,tRP已過,就可以直接進入行有效狀态了。目前VIA聲稱可以跨P-Bank進行16路記憶體交錯,并以LRU算法進行預充電管理。

有關L-Bank交錯預充電(存取)的具體執行在本刊2001年第2期已有詳細介紹,這裡就不再重複了。

高手進階,終極記憶體技術指南——完整/進階版 II(轉)

L-Bank交錯自動預充電/讀取時序圖(可點選放大):L-Bank 0與L-Bank 3實作了無間隔交錯讀取,避免了tRP對性能的影響 三、增加PFHR的方法

無論是自動預充電還是交錯工作的方法都無法消除tRCD所帶來的延遲。要解決這個問題,就要盡量讓一個工作行在進行預充電前盡可能多的接收多個工作指令,以達到背靠背的效果,此時就隻剩下CL所造成的讀取延遲了(寫入時沒有延遲)。

如何做到這一點呢?這就是北橋晶片的責任了。在上文的時序圖中有一個參數tRAS(Active to Precharge Command,行有效至預充電指令間隔周期)。它有一個範圍,對于PC133标準,一般是預充電指令至少要在行有效指令5個時鐘周期之後發出,最長間隔 視晶片而異(基本在120000ns左右),否則工作行的資料将有丢失的危險。那麼這也就意味着一個工作行從有效(選通)開始,可以有120000ns的 持續工作時間而不用進行預充電。顯然,隻要北橋晶片不發出預充電(包括允許自動預充電)的指令,行打開的狀态就會一直保持。在此期間的對該行的任何讀寫操 作也就不會有tRCD的延遲。可見,如果北橋晶片在能同時打開的行(頁)越多,那麼PFHR也就越大。需要強調的是,這裡的同時打開不是指對多行同時尋址 (那是不可能的),而是指多行同時處于選通狀态。我們可以看到一些SDRAM晶片組的資料中會指出可以同時打開多少個頁的名額,這可以說是決定其記憶體性能 的一個重要因素。

高手進階,終極記憶體技術指南——完整/進階版 II(轉)

Intel 845晶片組MCH的資料:其中表明它可以支援24個頁面同時處于打開狀态

但是,可同時打開的頁數也是有限制的。從SDRAM的尋址原理講,同一L-Bank中不可能有兩個打開的行(S-AMP隻能為一行服務),這就限制了可同 時打開的頁面總數。以SDRAM有4個L-Bank,北橋最多支援8個P-Bank為例,理論上最多隻能有32個頁面能同時處于打開的狀态。而如果隻有一 個P-Bank,那麼就隻剩下4個頁面,因為有幾個L-Bank才能有同時打開幾個行而互不幹擾。Intel 845的MHC雖然可以支援24個打開的頁面,那也是指6個P-Bank的情況下(845MCH隻支援6個P-Bank)。可見845已經将同時打開頁數 發揮到了極緻。

不過,同時打開頁數多了,也對存取政策提出了一定的要求。理論上,要盡量多地使用已打開的頁來保證最短的延遲周期,隻有在資料不存在(讀取時)或頁存滿了 (寫入時)再考慮打開新的指定頁,這也就是變向的連續讀/寫。而打開新頁時就必須要關閉一個打開的頁,如果此時打開的頁面已是北橋所支援的最大值但還不到 理論極限的話,就需要一個替換政策,一般都是用LRU算法來進行,這與VIA的交錯控制大同小異。

高手進階,終極記憶體技術指南——完整/進階版 II(轉)

=============================

SDRAM的結構、時序與性能的關系(下)

四、記憶體結構對PHR的影響

這是結構設計上的問題,是以單獨來說。在我們介紹L-Bank時,曾經提到單一的L-Bank會造成嚴重的尋址沖突。現在,當我們了解了記憶體尋址的原理 後,就不難了解這句話了。如果隻有一個L-Bank,那麼除非是背靠背式的操作(PFH),否則tRP、tRCD、CL(讀取時)一個也少不了。

上文中,記憶體交錯之是以能實作就是因為有多個L-Bank,從這點就可以看出L-Bank數量與頁命中率之間的關系了。PHR基本上可以等于“(L-Bank數-1)/L-Bank數”。

SDRAM有4個L-Bank,那麼頁命中率就是75%,DDR-Ⅱ SDRAM最多将有8個L-Bank,PHR最高為87.5%。而RDRAM則最多有32個L-Bank,PHR到了驚人的96.875%,這也是當時RDRAM攻擊SDRAM的一主要方面。

不過,從記憶體的結構圖上可以看出,L-Bank多了,相應外圍輔助的元件也要增加,比如S-AMP,L-Bank位址線等等。在RDRAM的介紹中,我會講到L-Bank數量增多後所帶來的一些新問題。

五、讀/寫延遲不同對性能所造成的影響

SDRAM在讀取操作時會有CL造成的延遲,而在寫入時則是0延遲。這樣,在讀操作之後馬上進行寫操作的話,由于沒有寫延遲,資料線不會出現空閑的時候, 保證了資料總線的使用率。但是,若在寫操作之後馬上進行讀操作的話,即使是背靠背式進行,仍然會由于tWR與CL的存在而造成間隔,這期間資料總線将是空 閑的,使用率受到了影響。

高手進階,終極記憶體技術指南——完整/進階版 II(轉)

在先寫後讀的操作中,由于保證寫入的可靠性,讀取指令在tWR之後發出,并再經過CL才能輸出資料,本例中CL=3,造成了兩個時鐘周期的總線空閑(上圖可點選放大)

這裡需要着重說明一下,在突發讀取過程中,想立刻中斷并進行新的讀操作,和讀後讀模式(見“突發連續讀取模式圖”)一樣,隻是新的讀指令根據需要提前若幹 個周期發出,經過CL後就會自動傳輸新的資料。但是,若想中斷讀後立即進行寫操作,就需要資料掩碼(DQM)來屏蔽寫入指令發出時的資料輸出,避免總線沖 突。根據晶片設計的不同,有時可能會浪費一個周期進行總線I/O的調轉,此時一個周期的總線空閑也是不可避免的。

高手進階,終極記憶體技術指南——完整/進階版 II(轉)
突發讀後寫時的操作,以本圖為例,在 最後一個所需資料(本例為第一筆資料)輸出前一個周期使DQM有效,屏蔽第二筆資料的輸出;2、發出寫入指令,此時所讀取的第二筆資料被屏蔽。3、繼續 DQM以屏蔽第三筆資料的輸出。其中tHZ表示輸出資料與外部電路的連接配接周期,tDS表示資料輸入準備時間,如果tHZ+tDS>tCK,那麼寫入 操作就要延後一個周期,這要視晶片的具體設計而定(上圖可點選放大)
高手進階,終極記憶體技術指南——完整/進階版 II(轉)

六、BL對性能的影響

從讀/寫之間的中斷操作我們又引出了BL(突發長度)對性能影響的話題。首先,BL的長短與其應用的領域有着很大關系,下表就是目前三個主要的記憶體應用領域所使用的BL,這是廠商們經過多年的實踐總結出來的。

高手進階,終極記憶體技術指南——完整/進階版 II(轉)

BL與相應的工作領域

BL越長,對于連續的大資料量傳輸很有好處,但是對零散的資料,BL太長反而會造成總線周期的浪費。以P-Bank位寬64bit為例,BL=4時,一個 突發操作能傳輸32位元組的資料,但如果隻需要前16個位元組,後兩個周期是無效的。如果需要40位元組,需要再多進行一次突發傳輸,但實際隻需要一個傳輸周期 就夠了,進而浪費了三個傳輸周期。而對于2KB的資料,BL=4的設定意味着要每隔4個周期發送新的列位址,并重複63次。而對于BL=256,一次突發 就可完成,并且不需要中途再進行控制。不少人都是以表示了BL設定對性能影響的擔心。

但設計人員也不是傻瓜,通過上文的介紹,可以看出他們在這方面的考慮。通過寫指令、DQM、讀指令的配合/操作,完全可以任意地中斷突發周期開始新的操 作,而且DQM還可以幫我們在BL中選擇有用的資料,進而最大限度降低突發傳輸對性能帶來的影響。另外,預充電指令與專用的突發傳輸終止指令都可以用來中 斷BL,前者在中斷後進行預充電,後者在中斷後不進行其他讀/寫操作。

高手進階,終極記憶體技術指南——完整/進階版 II(轉)
專用的突發停止指令可用來中斷突發讀取,其生效潛伏期與CL相同。對于寫入則立即有效(上圖可點選放大)
高手進階,終極記憶體技術指南——完整/進階版 II(轉)

用預充電指令來中斷突發讀取,生效潛伏期與CL相同,要小于或等于tRP。寫入時預充電在最後一個有效寫入周期完成,并經過tWR之後發出,同時立即中斷突發傳輸

是以,突發周期的中斷并不難,但用短BL應付大資料量存取需要不斷的指令與列尋址配合,而為了取消不需要的傳輸周期,由于需要運用額外的控制,也将占用不 少的控制資源。是以BL針對不同應用領域有不同設計的主要目的,就是在保證性能的同時,系統控制資源也能得到合理的運用。

高手進階,終極記憶體技術指南——完整/進階版 II(轉)

繼續閱讀