基于DSP片外高速海置SDRAM存儲系統設計
在數字圖像處理、航空航天等高速信號處理應用場(chǎng)合,需要有高速大容量存儲空間的強力支持,來(lái)滿(mǎn)足系統對海量數據吞吐的要求。通過(guò)使用大容量同步動(dòng)態(tài)RAM(SDRAM)來(lái)擴展嵌入式DSP系統存儲空間的方法,選用ISSI公司的IS42S16400高速SDRAM芯片,詳細論述在基于TMS320C6201(簡(jiǎn)稱(chēng)C6201)的數字信號處理系統中此設計方法的具體實(shí)現。
1 IS42S16400芯片簡(jiǎn)介
IS42S16400是ISSl公司推出的一種單片存儲容量高達64 Mb(即8 MB)的16位字寬高速SDRAM芯片。SDRAM的主要特點(diǎn)是:①同步訪(fǎng)問(wèn),讀寫(xiě)操作需要時(shí)鐘;②動(dòng)態(tài)存儲,芯片需要定時(shí)刷新。IS42S16400采用CMOS工藝,它的同步接口和完全流水線(xiàn)的內部結構使其擁有極大的數據傳輸速率,可以工作在高達133 MHz的時(shí)鐘頻率下,刷新頻率每64 ms為4096次。該SDRAM芯片內部有4個(gè)存儲體(bank),通過(guò)行、列地址分時(shí)復用系統地址總線(xiàn),對不同存儲體內不同頁(yè)面的具體存儲單元進(jìn)行讀寫(xiě)訪(fǎng)問(wèn)尋址。在進(jìn)行讀操作之前,必須預先激活SDRAM內對應的存儲體,并選擇存儲器的某一行,然后送人列地址讀取需要的數據。從輸出列地址到SDRAM返回相應數據之間存在一個(gè)存取延遲。如果訪(fǎng)問(wèn)新的頁(yè)面,則先需要關(guān)閉所有的存儲體,否則已打開(kāi)的頁(yè)面將一直有效。在寫(xiě)操作之前,由于已經(jīng)預先激活了有關(guān)的行地址,因此可以在輸出列地址的同時(shí)輸出數據,沒(méi)有延遲。IS42S16400提供自刷新模式的設置,可以使芯片運行在低功耗的狀態(tài)下,從而大大減少嵌入式系統的功率消耗。
2 C6201與SDRAM的外部存儲器接口
DSP芯片訪(fǎng)問(wèn)片外存儲器時(shí)必須通過(guò)外部存儲器接口EMlF(External Memory Interface)。C6000系列DSPs的EMIF具有很強的接口能力,不僅具有很高的數據吞吐率(最高達1200 MB/s),而且可以與目前幾乎所有類(lèi)型的存儲器直接接口。在C6201系統中,提供了4個(gè)彼此獨立的外存接口(CEX)。除CEl空間只支持異步接口外,所有的外部CEx空間都支持對SDRAM的直接接口。表1總結了C620XDSPs的EMIF所兼容的SDRAM配置。表2給出了C6000系列DSPs的EMIF所支持的SDRAM控制命令。
2.1 SDRAM的刷新
為了提高存儲容量,SDRAM采用硅片電容來(lái)存儲信息。隨著(zhù)時(shí)間的推移,必須給電容重新充電才能保持電容里的數據信息,這就是所謂的“刷新”。它的存在也使得SDRAM的應用變得略顯復雜,帶來(lái)了一定的應用難度。
C6000系列DSPs有專(zhuān)門(mén)的SDRAM控制寄存器(SDTCL)和SDRAM時(shí)序控制寄存器(SDTIM),用來(lái)進(jìn)行SDRAM的各種時(shí)序控制,大大減輕了設計人員的開(kāi)發(fā)難度。SDCTL寄存器中的RFEN位控制是否由EMIF完成對SDRAM的刷新。如果RFEN=1,EMIF會(huì )控制向所有的SDRAM空間發(fā)出刷新命令(REFR);而SDTIM寄存器中的PERIOD位段則控制具體的刷新周期。
在REFR命令之前,會(huì )自動(dòng)插入一個(gè)DCAB命令,以保證刷新過(guò)程中所有的SDRAM都處于未激活狀態(tài)。DCAB命令之后,EMIF開(kāi)始按照SDTIM寄存器中PERD字段設置的值進(jìn)行定時(shí)刷新。刷新前后,頁(yè)面信息會(huì )變?yōu)闊o(wú)效。
對于C620X,EMIF SDRAM控制模塊內部有一個(gè)2位的計數器,用來(lái)監測提交的刷新申請的次數。每提交一個(gè)申請,計數器加1;每次刷新周期之后,計數器減1。復位時(shí),計數器自動(dòng)置為11b,以保證在存取訪(fǎng)問(wèn)之前先進(jìn)行若干次刷新。計數器的值為llb,代表緊急刷新?tīng)顟B(tài),此時(shí)頁(yè)面信息寄存器變無(wú)效,迫使控制器關(guān)閉當前的SDRAM頁(yè)面。然后,EMIF SDRAM控制器在DCAB命令后執行3次REFR命令,使計數器的值減為0,再繼續完成余下的存取操作。
2.2 SDRAM的初始化
當某個(gè)CE空間配置為SDRAM空間后,必須首先進(jìn)行初始化。用戶(hù)不需要控制初始化的每一個(gè)步驟,只需要向EMIF SDCTL寄存器的INIT位寫(xiě)1,申請對SDRAM作初始化。然后,EMIF就會(huì )自動(dòng)完成所需要的各步操作。初始化操作不能在進(jìn)行SDRAM存取過(guò)程中進(jìn)行。整個(gè)初始化過(guò)程包括下面幾個(gè)步驟:
①對所有的SDRAM空間發(fā)出DCAB命令;
②執行3個(gè)REFR命令;
③對所有的SDRAM空間發(fā)出MRS命令。
2.3頁(yè)面邊界控制
SDRAM屬于分頁(yè)存儲器,EMIF的SDRAM控制器會(huì )監測訪(fǎng)問(wèn)SDRAM時(shí)行地址的情況,避免訪(fǎng)問(wèn)時(shí)發(fā)生行越界。為了完成這一任務(wù),EMIF在內部有四個(gè)頁(yè)面寄存器,自動(dòng)保存當前打開(kāi)的行地址,然后與后續存取訪(fǎng)問(wèn)的地址進(jìn)行比較。需要說(shuō)明的是,當前存取操作結束并不會(huì )引起SDRAM中已經(jīng)激活的行被立即關(guān)閉,EMIF的控制原則是維持當前的打開(kāi)狀態(tài),除非必須關(guān)閉。這樣做的好處是可以減少關(guān)閉/重新打開(kāi)之間的命令切換時(shí)間,使接口在存儲器訪(fǎng)問(wèn)的控制過(guò)程中充分利用地址信息。
對于C620X,每個(gè)CE空間包含1個(gè)頁(yè)面寄存器(只對配置為SDRAM空間有效),因此C620X每個(gè)CE空間1次只能激活1頁(yè)。進(jìn)行比較的地址位數取決于SDCTL寄存器中SDWID位的值。如果SDWID=O,該CE空間構成頁(yè)面的大小為512,比較的邏輯地址是位23~11;如果SDWID=1,該CE空間SDRAM構成頁(yè)面的大小為256,比較的邏輯地址是位23~10。一旦發(fā)現存取訪(fǎng)問(wèn)發(fā)生了頁(yè)面越界,EMIF會(huì )自動(dòng)執行DCAB操作,然后再開(kāi)始新的行訪(fǎng)問(wèn)。
2.4 訪(fǎng)問(wèn)地址的移位
由于SDRAM行邏輯地址與列邏輯地址復用相同的EMIF 引腳,所以EMIF接口需要對行地址與列地址進(jìn)行相應的移位處理。地址的移位處理由SDCRL寄存器中的SDWlD位控制。
另外,對于SDRAM,因為輸入地址也是控制信號,因此需要說(shuō)明以下幾點(diǎn):
①RAS有效期間的高位地址信號會(huì )被EMIF內部SDRAM控制器鎖存,以保證執行READ和WRT命令時(shí)選通正確的bank;
②READ/WRT操作期間,EMIF會(huì )保持pre-charge信號為低(C620X是SDAl0),以防止READ/WRT命令執行后發(fā)生auto pre—charge操作。
2.5 接口時(shí)序的設計
對于C620X,EMIF與SDRAM的接口時(shí)序由SDCTL寄存器控制。EMIF提供了5個(gè)時(shí)序參數,其中3個(gè)在SDCTL寄存器中設置,另外2個(gè)為固定值,如表3所列。在分析接口時(shí)序的配合情況時(shí),需要計算“富裕時(shí)間”tmargin的大小,這是在考慮了SDRAM芯片的器件手冊提供的最壞情況之后,得到的時(shí)序上的一個(gè)裕量。至于tmargin值的大小,是系統設計層需要考慮的問(wèn)題,具體要求隨不同的系統而異,而且與印制板的實(shí)際布線(xiàn)情況以及負載的情況密切相關(guān)。
3 系統設計中IS42S16400芯片的應用
3.1 C6201與IS42S16400的接口實(shí)現
由于IS42S16400屬于16位字寬的64 Mb SDRAM芯片,而C6201的EMIF只提供32位字寬的同步外存儲接口,為了使整個(gè)系統的存儲空間保持連續,使用2片SDRAM與DSP芯片組成實(shí)際大小為16 MB的外部存儲系統,如圖1所示。圖1中IS42S16400芯片各引腳含義如下:CS,片選;CLK,系統同步時(shí)鐘;RAS,行地址選擇;CAS,列地址選擇;WE,讀/寫(xiě)使能;CKE,時(shí)鐘使能;DQMU、DQML,高低字節使能;A[13:123],Bank地址選擇線(xiàn);A[11:0],行、列地址線(xiàn);DQ[15:0],雙向數據端口。
由圖1可以看出,雖然C620l提供32位地址尋址能力,但是經(jīng)EMIF直接輸出的地址信號只有EA[21:2]。一般情況下,EA2信號對應邏輯地址A2,但這并不意味著(zhù)DSP芯片訪(fǎng)問(wèn)外存時(shí)只能進(jìn)行word(32位)的存取。實(shí)際內部32位地址的最低2~3位經(jīng)譯碼后由BEx輸出,是能夠控制字節訪(fǎng)問(wèn)的。更高位邏輯地址經(jīng)譯碼后輸出CE[3:0]。
在實(shí)際的系統實(shí)現中,C6201的CLKOUT1時(shí)鐘頻率為200 MHz,故而SDRAM的實(shí)際工作頻率為100 MHz(SDCLK=CLKOUT2=CLKOUT1 frequency/2),即tcyc=10 ns。SDRAM被配置在CE2空問(wèn)(起始邏輯地址為0x02000000)。
評論