樊泰倫+何謙+梁熙達(dá)
摘 要:ARM系統(tǒng)之中能夠作為高速緩存的有靜態(tài)RAM、動(dòng)態(tài)RAM、FLSAHROM三種。而動(dòng)態(tài)RAM又分為SDRAM和DDR兩種,SDRAM具有高速,大容量等優(yōu)點(diǎn),是一種具有同步接口技術(shù)的高速動(dòng)態(tài)隨機(jī)存儲(chǔ)器。根據(jù)設(shè)計(jì)的性價(jià)比,我們可以采用SDRAM實(shí)現(xiàn)數(shù)據(jù)的傳輸,但由于SDRAM的讀寫、刷新等命令操作的時(shí)序要求比較嚴(yán)格,因此SDRAM的控制設(shè)計(jì)也就成了我們探討的關(guān)鍵。
關(guān)鍵詞:ARM;DARAM;高速動(dòng)態(tài)隨機(jī)
在當(dāng)前世界背景下,嵌入式系統(tǒng)無疑是當(dāng)前最熱門、最有發(fā)展前途的IT應(yīng)用領(lǐng)域之一。嵌入式系統(tǒng)用在一些特定專用設(shè)備上,通常這些設(shè)備的硬件資源,非常有限,如處理器、存儲(chǔ)器等,并且對(duì)成本很敏感,有時(shí)對(duì)實(shí)時(shí)響應(yīng)要求很高等。特別是隨著消費(fèi)家電的智能化,嵌入式更顯重要。例如,我們平時(shí)看到的手機(jī)、機(jī)頂盒(Set Top Box)、高清電視(HDTV)、游戲機(jī)、智能玩具、交換機(jī)、路由器等,都是典型的嵌入式系統(tǒng)。而在嵌入式系統(tǒng)高速發(fā)展的同時(shí),為嵌入式系統(tǒng)作為存儲(chǔ)單元的存儲(chǔ)器的選擇也就變得可圈可點(diǎn)了。
對(duì)于嵌入式的存儲(chǔ)器,我們就談?wù)凷DRAM吧,現(xiàn)在市面上流通的SDRAM已經(jīng)是第五代了。在其之前,還有一代的SDR SDRAM、二代的DDR SDRAM、三代的DDR2 SDRAM、四代的DDR3 SDRAM和我們現(xiàn)在看到的第五代DDR4 SDRAM,也就是大家說的SDRAM。
一代SDRAM采用SE(Single-Ended)時(shí)鐘信號(hào),第二代、第三代與第四代由于工作頻率比較快,所以采用可降低干擾的差分時(shí)鐘信號(hào)作為同步時(shí)鐘。五代則在這方面更勝一籌,即結(jié)構(gòu)、時(shí)序與性能的關(guān)系。
對(duì)SDRAM模塊做一個(gè)分析,我們首先要分析一下影響性能的主要參數(shù)有哪些:
在理想的情況下,SDRAM的帶寬,頻率與位寬固定后,帶寬也就不可更改了,在內(nèi)存的工作周期內(nèi),帶寬不可能一直處于數(shù)據(jù)傳輸?shù)臓顟B(tài),因?yàn)橐忻睢ぶ返缺匾倪^程。因此,這些操作占用的時(shí)間越短,內(nèi)存工作的效率越高,性能也就越好。
非數(shù)據(jù)傳輸時(shí)間的主要組成部分就是各種延遲與潛伏期。TRCD(RAS-TO-CAS Delay)“行尋址至列尋址延遲時(shí)間”、CL(CAS Latency):“內(nèi)存讀寫操作前列地址控制器的潛伏時(shí)間”TRP(RAS Precharge Time):“內(nèi)存行地址控制器預(yù)充電時(shí)間”。
在內(nèi)存中讀取時(shí)可能遇到:
第一,要尋址的行與L-Bank的所有行是關(guān)閉的,此時(shí)可直接發(fā)送行有效命令,數(shù)據(jù)讀取前的總耗時(shí)為TRCD+CL。這種情況,我們稱之為PH(頁命中,Page Hit)。
第二,當(dāng)系統(tǒng)的尋址操作要尋址的行正好是前一個(gè)操作的工作行。也就是說,要尋址的行已經(jīng)處于選通有效狀態(tài),此時(shí)可直接發(fā)送列尋址命令,數(shù)據(jù)讀取前的總耗時(shí)僅為CL。這就是BTB尋址,我們稱之為PFH/PDH(頁快速/直接命中,Page Fast/Direct Hit)。
第三,“尋址沖突”要尋址的行所在的L-Bank中已經(jīng)有一個(gè)行處于活動(dòng)狀態(tài)(未關(guān)閉),此時(shí)就必須要進(jìn)行預(yù)充電來關(guān)閉工作行。在尋址沖突后再對(duì)新行發(fā)送行有效命令,總耗時(shí)就是TRP+TRCD+CL。這種情況,我們稱之為PM(頁錯(cuò)失,Page Miss)。
顯然,PFH是最理想的尋址情況,PM則是最糟糕的尋址情況。上述三種情況發(fā)生的機(jī)率各自簡(jiǎn)稱為PHR——PH Rate、PFHR——PFH Rate、PMR——PM Rate。因此,系統(tǒng)設(shè)計(jì)人員的理想都是盡量想提高PHR與PFHR,同時(shí)減少PMR,以達(dá)到提高內(nèi)存工作效率的目的。
目前,有兩種方法來盡量提高PHR,從而達(dá)到我們的目的。自動(dòng)預(yù)充電技術(shù)就是其中之一,它自動(dòng)地在每次行操作之后進(jìn)行預(yù)充電,從而減少了日后對(duì)同一L-Bank不同行尋址時(shí)發(fā)生沖突的可能性。基于這個(gè),有些人就想了,那自己要是在當(dāng)前行工作完成后馬上打開同一L-Bank的另一行時(shí),會(huì)不會(huì)存在延遲,要是有,又該怎么辦?于是,L-Bank交錯(cuò)預(yù)充電方法出現(xiàn)了。
第四,路交錯(cuò)式內(nèi)存控制在VIA控制下只要對(duì)下一個(gè)要工作的L-Bank進(jìn)行預(yù)充電。這時(shí),預(yù)充電與數(shù)據(jù)的傳輸可以交錯(cuò)執(zhí)行,通過跳過TRP可以直接進(jìn)入行的有效狀態(tài)。
但是事實(shí)上,無論是自動(dòng)預(yù)充電,還是交錯(cuò)工作的方法都無法消除TRCD所帶來的延遲。如果有可能解決這個(gè)問題,就要盡量讓一個(gè)工作行在進(jìn)行預(yù)充電前盡可能多地接收多個(gè)工作命令,以達(dá)到BTB的效果,當(dāng)行打開的狀態(tài)一直保持。在此期間對(duì)該行的任何讀寫操作也就不會(huì)產(chǎn)生內(nèi)存行地址控制器預(yù)充電時(shí)間的延遲,這是決定其內(nèi)存性能的重要因素之一。
參考文獻(xiàn):
[1] 張綺文,解書剛.嵌入式常用模塊與綜合系統(tǒng)設(shè)計(jì)精講實(shí)例(第2版)[M].北京:電子工業(yè)出版社,2009.
[2] 楊清水,張劍,施云飛 . ARM嵌入式Linux系統(tǒng)開發(fā)技術(shù)詳解[M].北京:電子工業(yè)出版社,2010.
[3] 陳卓,王田,梁新元.嵌入式系統(tǒng)開發(fā)[M].北京:電子工業(yè)出版社,2010.