一種高速緩存方案的實(shí)現(xiàn)方法
掃描二維碼
隨時(shí)隨地手機(jī)看文章
摘要:基于Altera公司的EP2SGX90FF1508C3N和NEC公司的UPD44165364AF5,提出了一種高速緩存方案。本設(shè)計(jì)采用可編程邏輯器件,靈活性高,可靠性強(qiáng),可以根據(jù)用戶的需要進(jìn)行方便的擴(kuò)展和升級(jí)。深入研究了QDRII SRAM的工作原理和時(shí)序原理,提出了比較可靠的讀寫狀態(tài)機(jī)實(shí)現(xiàn)方案。硬件設(shè)計(jì)經(jīng)過實(shí)際測試,達(dá)到了預(yù)期的指標(biāo),實(shí)現(xiàn)了43.2 Gb/s的數(shù)據(jù)吞吐速率,并且成功用于某產(chǎn)品中。
關(guān)鍵詞:QDRII SRAM;高速緩存;時(shí)序圖;狀態(tài)機(jī);FPGA
引言
在移動(dòng)通信領(lǐng)域隨著3G時(shí)代的到來和4G的發(fā)展,無線基站離不開高速率、高帶寬和大動(dòng)態(tài)的數(shù)據(jù)采集,采集下來的高速數(shù)據(jù)需要進(jìn)行高速緩存、高速數(shù)據(jù)處理和傳輸。本文實(shí)現(xiàn)了一種基于FPGA和QDRII SDRAM高速緩存解決方案,并且經(jīng)過實(shí)際驗(yàn)證,已成功應(yīng)用于某產(chǎn)品中。
1 QDRII工作原理
QDR協(xié)議由存儲(chǔ)器供應(yīng)商Cypress、IDT、NEC、Renesas和Samsung公司組成的聯(lián)盟共同發(fā)布,主要針對(duì)網(wǎng)絡(luò)交換機(jī)、路由器和其他通信設(shè)備的應(yīng)用。QDRII由兩個(gè)獨(dú)立的“讀”和“寫”端口組成,“讀”和“寫”端口有分別獨(dú)立的數(shù)據(jù)輸出和數(shù)據(jù)輸入端口來支持相應(yīng)的讀寫操作,并且讀寫端口分別為雙倍數(shù)據(jù)速率端口。
QDRII SRAM提供了2字突發(fā)和4字突發(fā)結(jié)構(gòu)。2字突發(fā)結(jié)構(gòu)的DDR地址總線在前半個(gè)時(shí)鐘周期允許讀請(qǐng)求,后半個(gè)周期允許寫請(qǐng)求。4字突發(fā)結(jié)構(gòu)針對(duì)每一個(gè)讀或?qū)懻?qǐng)求傳輸4個(gè)字,這樣只需一個(gè)SDR的地址總線就能最大程度地利用數(shù)據(jù)帶寬。以Cypress公司生產(chǎn)的CY7C1310V18為例,說明QDRII器件內(nèi)部邏輯結(jié)構(gòu),如圖1所示。
從結(jié)構(gòu)圖可以得出,QDRII SRAM的讀(Q)、寫(D)端口獨(dú)立,共用地址總線(A)。為兩對(duì)偽差分控制時(shí)鐘。為讀選通使能,為寫選通使能。為字節(jié)使能信號(hào),低電平有效。為低電平關(guān)閉QDRII內(nèi)部DLL,CQ、為源同步時(shí)鐘輸出。
QDRII SDRAM的控制方式可以分為單時(shí)鐘控制方式和雙時(shí)鐘控制方式。單時(shí)鐘控制方式是讀和寫操作都由K、K時(shí)鐘控制;而雙時(shí)鐘控制方式的寫操作由K、K控制,但是讀操作由C、決定。
4字節(jié)突發(fā)結(jié)構(gòu)的寫操作如圖2所示。地址信號(hào)(SA),寫選通信號(hào)()和寫入數(shù)據(jù)信號(hào)(D)的中心都與時(shí)鐘K、的邊沿對(duì)齊。在時(shí)鐘K的上升沿若檢測到寫控制信號(hào)為低電平,則地址總線(SA)上的數(shù)據(jù)被鎖存。在其之后的第二個(gè)時(shí)鐘K的上升沿,設(shè)備鎖存D上的第一個(gè)數(shù)據(jù)字,在接下來的的上升沿第二個(gè)數(shù)據(jù)字被鎖存。第三個(gè)和第四個(gè)數(shù)據(jù)字在K、的上升沿?cái)?shù)據(jù)被鎖存,進(jìn)而完成第一個(gè)周期的寫操作。
4字節(jié)突發(fā)結(jié)構(gòu)讀操作如圖3所示。在單時(shí)鐘模式下,即讀操作完全由時(shí)鐘K、控制時(shí),在時(shí)鐘K的上升沿,當(dāng)讀選通信號(hào)為低電平時(shí),讀地址SA被鎖存。在其之后的第二個(gè)時(shí)鐘K的上升沿,設(shè)備鎖存Q上的第一個(gè)數(shù)據(jù)字,在接下來的的上升沿鎖存Q上第二個(gè)數(shù)據(jù)字。在之后的K、的上升沿鎖存Q上的第三個(gè)和第4個(gè)數(shù)據(jù)字。讀總線數(shù)據(jù)輸出Q值在DDR模式下從存儲(chǔ)器中輸出時(shí),與CQ、源同步時(shí)鐘邊沿對(duì)齊,此時(shí)完成一個(gè)完整的讀操作。
2 QDRII SRAM讀寫狀態(tài)機(jī)
在實(shí)際的應(yīng)用系統(tǒng)中,為了讓器件連續(xù)有效地工作,必須設(shè)計(jì)相應(yīng)的控制程序來完成各種控制狀態(tài)之間的轉(zhuǎn)換,對(duì)于4字節(jié)突發(fā)QDRII器件,設(shè)計(jì)的讀寫狀態(tài)機(jī)如圖4所示。使QDRII在讀寫狀態(tài)中自由跳轉(zhuǎn)。
讀/寫狀態(tài)機(jī)負(fù)責(zé)調(diào)節(jié)用戶接口和物理接口之間的數(shù)據(jù)流。它根據(jù)保存在用戶接口FIFO中的狀態(tài)信號(hào)來判斷是否向外部存儲(chǔ)器器件發(fā)送讀/寫命令。用戶重置控制信號(hào)每次都會(huì)將狀態(tài)機(jī)恢復(fù)到INIT狀態(tài),此時(shí)存儲(chǔ)器暫停運(yùn)行,直到延遲校準(zhǔn)狀態(tài)機(jī)完成相應(yīng)的延遲調(diào)整,使讀通路數(shù)據(jù)與FPGA系統(tǒng)時(shí)鐘中心對(duì)齊。校準(zhǔn)操作完成的信號(hào)高電平有效,該輸入將讀/寫狀態(tài)機(jī)轉(zhuǎn)換到空閑狀態(tài),以等候來自用戶接口的讀/寫請(qǐng)求。在空閑狀態(tài),如果未向狀態(tài)機(jī)發(fā)出任何控制命令,狀態(tài)機(jī)將一直在此狀態(tài)下循環(huán)。當(dāng)有讀或?qū)懻?qǐng)求并且讀寫的條件滿足時(shí),狀態(tài)機(jī)將自動(dòng)跳轉(zhuǎn)到讀或?qū)憼顟B(tài)。在寫狀態(tài)下,用戶通過Avl_walt_request_wr發(fā)送寫請(qǐng)求,控制器將從FIFO中取出寫地址和數(shù)據(jù)值,并使外部寫控制選通脈沖進(jìn)入存儲(chǔ)器器件。
在讀狀態(tài)下,用戶通過Avl_wait_request_rd發(fā)送讀請(qǐng)求,控制器從FIFO中取出讀地址,并向存儲(chǔ)器器件發(fā)送一個(gè)外部選通脈沖。讀/寫狀態(tài)機(jī)持續(xù)監(jiān)控用戶接口FIFO狀態(tài)信號(hào),以確定是否存在待處理讀/寫請(qǐng)求。連續(xù)不斷地并發(fā)讀/寫請(qǐng)求流將導(dǎo)致狀態(tài)機(jī)只在讀狀態(tài)和寫狀態(tài)之間轉(zhuǎn)換,以確保正確無誤地將請(qǐng)求交替發(fā)送到外部存儲(chǔ)器。一串只寫請(qǐng)求將導(dǎo)致空閑狀態(tài)和寫狀態(tài)輪流出現(xiàn),同樣,一串讀請(qǐng)求也會(huì)在空閑狀態(tài)和讀狀態(tài)問轉(zhuǎn)換。
3 系統(tǒng)的硬件實(shí)現(xiàn)
本文實(shí)現(xiàn)的高速緩存系統(tǒng)是以FPGA和QDRII器件為核心的,F(xiàn)PGA采用Altera公司的Stratix II GX系列,具體型號(hào)為EP2SGX90FF1508C3N Stratix II系列芯片采用90 nm工藝,1.2 V內(nèi)核電壓供電,具有片上可編程電阻特性,簡化了設(shè)計(jì),容易實(shí)現(xiàn)阻抗匹配,提高了信號(hào)完整
性。QDRII采用NEC公司的UPD44165364AF5-E33EQ2-A,具有4字節(jié)突發(fā)結(jié)構(gòu),最高工作頻率為300 MHz。FPGA與QDRII的接口如圖5所示。
QDRII的控制時(shí)序十分復(fù)雜,為簡化設(shè)計(jì)過程,增強(qiáng)系統(tǒng)的可靠性,可以采用IP核進(jìn)行控制。IP核是一種預(yù)定義的并經(jīng)過驗(yàn)證的復(fù)雜功能模塊,可以方便地集成到系統(tǒng)中。
Altera公司的QDRII SDRAM Controller MegaCore可提供一些底層的時(shí)序控制,使得對(duì)QDRII的控制變得相對(duì)簡單,IP核留給用戶一些上層的Avalon通信接口,用戶可以根據(jù)自己的需要對(duì)相應(yīng)的狀態(tài)引腳進(jìn)行監(jiān)控和編寫驅(qū)動(dòng),實(shí)現(xiàn)對(duì)QDRII器件的操作。
4 實(shí)驗(yàn)設(shè)計(jì)及測試結(jié)果
用VHDL編寫testbench,測試系統(tǒng)性能,設(shè)計(jì)原理如圖6所示。設(shè)計(jì)數(shù)據(jù)源對(duì)QDRII進(jìn)行寫操作,再把讀出來的數(shù)據(jù)與原始數(shù)據(jù)對(duì)比,最后給出測試結(jié)果。
進(jìn)行速度測試,以300 MHz的速率進(jìn)行讀寫,通過測試證明本系統(tǒng)能夠穩(wěn)定工作,測試結(jié)果如圖7所示。
為了便于觀察,選取幾個(gè)固定地址,循環(huán)讀取該地址的數(shù)據(jù),用SignalTap對(duì)其進(jìn)行實(shí)時(shí)采樣,結(jié)果如圖8所示??梢郧逦乜闯鼋o定固定地址00004H后,發(fā)出讀請(qǐng)求,在avl_data_read_valid有效時(shí)讀取數(shù)據(jù)為AAAAFFFFAAAAFFFFAAH,與寫入數(shù)據(jù)一致。
結(jié)語
本文通過深入分析QDRII的結(jié)構(gòu)和工作原理,設(shè)計(jì)一種狀態(tài)機(jī),給出了一種基于FPGA的高速緩存方案。經(jīng)過實(shí)驗(yàn)驗(yàn)證,QDRII可以穩(wěn)定工作在300 MHz,使36位存儲(chǔ)器接口的總流量達(dá)到43.2 Gb/s,具有實(shí)際應(yīng)用價(jià)值,使各種數(shù)據(jù)密集型應(yīng)用中的讀/寫能力得以提升。