SDRAM結(jié)構(gòu)、時(shí)序與性能的關(guān)系
一、影響性能的主要時(shí)序參數(shù)
所謂的影響性能是并不是指SDRAM的帶寬,頻率與位寬固定后,帶寬也就不可更改了。但這是理想的情況,在內(nèi)存的工作周期內(nèi),不可能總處于數(shù)據(jù)傳輸?shù)臓顟B(tài),因?yàn)橐忻睢ぶ返缺匾倪^(guò)程。但這些操作占用的時(shí)間越短,內(nèi)存工作的效率越高,性能也就越好。
非數(shù)據(jù)傳輸時(shí)間的主要組成部分就是各種延遲與潛伏期。通過(guò)上文的講述,大家應(yīng)該很明顯看出有三個(gè)參數(shù)對(duì)內(nèi)存的性能影響至關(guān)重要,它們是tRCD、CL和tRP。每條正規(guī)的內(nèi)存模組都會(huì)在標(biāo)識(shí)上注明這三個(gè)參數(shù)值,可見它們對(duì)性能的敏感性。
以內(nèi)存最主要的操作--讀取為例。tRCD決定了行尋址(有效)至列尋址(讀/寫命令)之間的間隔,CL決定了列尋址到數(shù)據(jù)進(jìn)行真正被讀取所花費(fèi)的時(shí)間,tRP則決定了相同L-Bank中不同工作行轉(zhuǎn)換的速度,F(xiàn)在可以想象一下讀取時(shí)可能遇到的幾種情況(分析寫入操作時(shí)不用考慮CL即可):
1.要尋址的行與L-Bank是空閑的。也就是說(shuō)該L-Bank的所有行是關(guān)閉的,此時(shí)可直接發(fā)送行有效命令,數(shù)據(jù)讀取前的總耗時(shí)為tRCD+CL,這種情況我們稱之為頁(yè)命中(PH,Page Hit)。
2.要尋址的行正好是前一個(gè)操作的工作行,也就是說(shuō)要尋址的行已經(jīng)處于選通有效狀態(tài),此時(shí)可直接發(fā)送列尋址命令,數(shù)據(jù)讀取前的總耗時(shí)僅為CL,這就是所謂的背靠背(Back to Back)尋址,我們稱之為頁(yè)快速命中(PFH,Page Fast Hit)或頁(yè)直接命中(PDH,Page Direct Hit)。
3.要尋址的行所在的L-Bank中已經(jīng)有一個(gè)行處于活動(dòng)狀態(tài)(未關(guān)閉),這種現(xiàn)象就被稱作尋址沖突,此時(shí)就必須要進(jìn)行預(yù)充電來(lái)關(guān)閉工作行,再對(duì)新行發(fā)送行有效命令。結(jié)果,總耗時(shí)就是tRP+tRCD+CL,這種情況我們稱之為頁(yè)錯(cuò)失(PM,Page Miss)。
顯然,PFH是最理想的尋址情況,PM則是最糟糕的尋址情況。上述三種情況發(fā)生的機(jī)率各自簡(jiǎn)稱為PHR--PH Rate、PFHR--PFH Rate、PMR--PM Rate。因此,系統(tǒng)設(shè)計(jì)人員(包括內(nèi)存與北橋芯片)都盡量想提高PHR與PFHR,同時(shí)減少PMR,以達(dá)到提高內(nèi)存工作效率的目的。
二、增加PHR的方法
顯然,這與預(yù)充電管理策略有著直接的關(guān)系,目前有兩種方法來(lái)盡量提高PHR。自動(dòng)預(yù)充電技術(shù)就是其中之一,它自動(dòng)的在每次行操作之后進(jìn)行預(yù)充電,從而減少了日后對(duì)同一L-Bank不同行尋址時(shí)發(fā)生沖突的可能性。但是,如果要在當(dāng)前行工作完成后馬上打開同一L-Bank的另一行工作時(shí),仍然存在tRP的延遲。怎么辦? 此時(shí)就需要L-Bank交錯(cuò)預(yù)充電了。
VIA的4路交錯(cuò)式內(nèi)存控制就是在一個(gè)L-Bank工作時(shí),對(duì)下一個(gè)要工作的L-Bank進(jìn)行預(yù)充電。這樣,預(yù)充電與數(shù)據(jù)的傳輸交錯(cuò)執(zhí)行,當(dāng)訪問(wèn)下一個(gè)L-Bank時(shí),tRP已過(guò),就可以直接進(jìn)入行有效狀態(tài)了。目前VIA聲稱可以跨P-Bank進(jìn)行16路內(nèi)存交錯(cuò),并以LRU算法進(jìn)行預(yù)充電管理。
有關(guān)L-Bank交錯(cuò)預(yù)充電(存取)的具體執(zhí)行在本刊2001年第2期已有詳細(xì)介紹,這里就不再重復(fù)了。
L-Bank交錯(cuò)自動(dòng)預(yù)充電/讀取時(shí)序圖(可點(diǎn)擊放大):L-Bank 0與L-Bank 3實(shí)現(xiàn)了無(wú)間隔交錯(cuò)讀取,避免了tRP對(duì)性能的影響。
三、增加PFHR的方法
無(wú)論是自動(dòng)預(yù)充電還是交錯(cuò)工作的方法都無(wú)法消除tRCD所帶來(lái)的延遲。要解決這個(gè)問(wèn)題,就要盡量讓一個(gè)工作行在進(jìn)行預(yù)充電前盡可能多的接收多個(gè)工作命令,以達(dá)到背靠背的效果,此時(shí)就只剩下CL所造成的讀取延遲了(寫入時(shí)沒有延遲)。
如何做到這一點(diǎn)呢?這就是北橋芯片的責(zé)任了。在上文的時(shí)序圖中有一個(gè)參數(shù)tRAS(Active to Precharge Command,行有效至預(yù)充電命令間隔周期)。它有一個(gè)范圍,對(duì)于PC133標(biāo)準(zhǔn),一般是預(yù)充電命令至少要在行有效命令5個(gè)時(shí)鐘周期之后發(fā)出,最長(zhǎng)間隔視芯片而異(基本在120000ns左右),否則工作行的數(shù)據(jù)將有丟失的危險(xiǎn)。那么這也就意味著一個(gè)工作行從有效(選通)開始,可以有120000ns的持續(xù)工作時(shí)間而不用進(jìn)行預(yù)充電。顯然,只要北橋芯片不發(fā)出預(yù)充電(包括允許自動(dòng)預(yù)充電)的命令,行打開的狀態(tài)就會(huì)一直保持。在此期間的對(duì)該行的任何讀寫操作也就不會(huì)有tRCD的延遲?梢,如果北橋芯片在能同時(shí)打開的行(頁(yè))越多,那么PFHR也就越大。需要強(qiáng)調(diào)的是,這里的同時(shí)打開不是指對(duì)多行同時(shí)尋址(那是不可能的),而是指多行同時(shí)處于選通狀態(tài)。我們可以看到一些SDRAM芯片組的資料中會(huì)指出可以同時(shí)打開多少個(gè)頁(yè)的指標(biāo),這可以說(shuō)是決定其內(nèi)存性能的一個(gè)重要因素。
Intel 845芯片組MCH的資料:其中表明它可以支持24個(gè)頁(yè)面同時(shí)處于打開狀態(tài)
但是,可同時(shí)打開的頁(yè)數(shù)也是有限制的。從SDRAM的尋址原理講,同一L-Bank中不可能有兩個(gè)打開的行(S-AMP只能為一行服務(wù)),這就限制了可同時(shí)打開的頁(yè)面總數(shù)。以SDRAM有4個(gè)L-Bank,北橋最多支持8個(gè)P-Bank為例,理論上最多只能有32個(gè)頁(yè)面能同時(shí)處于打開的狀態(tài)。而如果只有一個(gè)P-Bank,那么就只剩下4個(gè)頁(yè)面,因?yàn)橛袔讉(gè)L-Bank才能有同時(shí)打開幾個(gè)行而互不干擾。Intel 845的MHC雖然可以支持24個(gè)打開的頁(yè)面,那也是指6個(gè)P-Bank的情況下(845MCH只支持6個(gè)P-Bank)?梢845已經(jīng)將同時(shí)打開頁(yè)數(shù)發(fā)揮到了極致。
不過(guò),同時(shí)打開頁(yè)數(shù)多了,也對(duì)存取策略提出了一定的要求。理論上,要盡量多地使用已打開的頁(yè)來(lái)保證最短的延遲周期,只有在數(shù)據(jù)不存在(讀取時(shí))或頁(yè)存滿了(寫入時(shí))再考慮打開新的指定頁(yè),這也就是變向的連續(xù)讀/寫。而打開新頁(yè)時(shí)就必須要關(guān)閉一個(gè)打開的頁(yè),如果此時(shí)打開的頁(yè)面已是北橋所支持的最大值但還不到理論極限的話,就需要一個(gè)替換策略,一般都是用LRU算法來(lái)進(jìn)行,這與VIA的交錯(cuò)控制大同小異。
編輯:simon 最后修改時(shí)間:2019-07-16