基于MIMO技術的視頻緩存器設計
隨著高速處理器的不斷發(fā)展,嵌入式系統(tǒng)應用的領域越來越廣泛,高速大容量緩存器被廣泛應用于音視頻系統(tǒng)中,然而專用的高速大容量緩存芯片價格過于昂貴,傳統(tǒng)SDRAM在帶寬上已經逐漸無法滿足應用要求,特別是對于多路數據多進多出時,兩者都無法很好的滿足要求,這里提出一種利用雙沿隨機動態(tài)存儲器(DDR SDRAM)結合外加專用電路的設計方案。
本文引用地址:http://m.butianyuan.cn/article/164985.htm設計應用在基于DVB-C的EOAM調制器系統(tǒng)中,該系統(tǒng)的基本要求能夠緩存集合多路視頻TS流的千兆IP數據,并對IP數據進行多路高速分發(fā);輸入為2個千兆網口,輸出至RF射頻接口的數百個數據分發(fā)通道。
在以往系統(tǒng)設計中,有人提出使用普通SDRAM芯片作為物理緩存單元,但是由于該類芯片工作速度限制,在基本位寬條件下,達不到上述系統(tǒng)的高帶寬要求。若不提高芯片速度,單純提高位寬,由于各位數據的延時不同,且SDRAM采用的3.3 V電壓的上升下降沿過渡較寬,將導致芯片數據采樣的穩(wěn)定時間窗變窄,數據傳輸可靠性下降;同時由于位寬增大,引腳變多,造成設計復雜度的直線上升。本文使用DDR SDRAM作為存儲單元,在不改變系統(tǒng)時鐘的情況下,利用時鐘雙沿傳輸數據,將同頻率芯片的傳輸帶寬在SDRAM基礎上提高了一倍,很好地滿足了高帶寬緩存的需要。
1 DDR存儲器簡介
DDR存儲器即雙數據率同步動態(tài)隨機訪問存儲器,它和早期的單數據率同步動態(tài)隨機訪問存儲器一樣,內部存儲單元采用電容充電來保存數據,因此必須不斷地對電容充電以保持數據,這就是所謂的刷新.SDRAM的數據總線在每個時鐘的上升沿存取數據,而DDR SDRAM則在每個時鐘的上升沿和下降沿都存取數據,這樣在數據總線寬度和時鐘頻率不變的條件下數據總線帶寬得到了一倍的提升。
2 系統(tǒng)設計
設計采用Xilinx公司的Sptan3a-dsp 1800a作為主控制器,使用Micron公司的MT64V32X16芯片作為存儲介質,最大存儲容量為512M.本系統(tǒng)的邏輯部分由仲裁模塊、輸入緩存模塊、調度判決模塊、地址轉換模塊和DDR接口控制模塊等部分組成,結構框圖如圖1所示。
核心控制器中的仲裁模塊產生相應的控制命令。完成上電后的初始化復位,并在系統(tǒng)運行過程中,針對工作優(yōu)先級,發(fā)出刷新指令、寫操作指令和讀操作指令;DDR接口控制模塊根據DDR芯片操作的基本時序,實現核心控制器指令的針對物理芯片的信息傳輸;南于DDR芯片具有不可實時操作特性,必須使用內部輸入緩存RAM進行基本的實時數據緩沖;而地址轉換模塊、調度判決模塊則和內部輸入緩存RAM配合,完成對DDR芯片內部存儲空間的映射工作。
3 DDR核心控制器設計
DDR存儲器是一種指令相對復雜的高速存儲芯片,它在上電后必須完成初始化才能進行其它操作;而且不支持單周期讀寫操作,只支持周期為2、4、8突發(fā)讀寫操作。另外,DDR芯片由于其電容特性,數據保存在其中是不穩(wěn)定的,需要在一定時間周期內對其進行刷新操作,以保證數據不會丟失,因此,在DDR操作過程中有數十條指令。但在本設計中DDR接口控制器采用的是Xilinx提供的DDR IP,這樣核心控制器中的仲裁模塊只需要使用空閑、初始化、讀操作和寫操作等4個指令就可以完成對DDR-SDRAM的操作,大大降低了設計難度。由于設計目的在于消除來自網絡對IP數據的抖動,并且最終要將IP數據分發(fā)至512個通道,大大超出了以往設計對DDR的使用需求,因此本文在這里提出圖1所示設計,即可完成DDR存儲器對高速大容量多通道的設計應用:
(1)輸入緩存模塊
輸入緩存器由一個RAM加外部邏輯電路構成,緩沖已輸入但還沒來得及寫到DDR中的TS分組凈荷。待仲裁模塊發(fā)出允許寫入的信號后,再將輸入緩存中的數據包傳遞給仲裁模塊,并且釋放相應的存儲空間。根據DDR的工作模式和DVB-C特性,輸入緩存的數據傳輸以TS包為單位,實現192個字節(jié)連續(xù)突發(fā)傳輸。
(2)調度判決模塊
調度判決模塊接收讀請求隊列信息,實現讀數據時將同一個bank內數據量最大的FIFO進行調度出隊列的判決。該模塊保存各個通道FIFO當前的數據包數量。
(3)地址轉換模塊
地址轉換模塊負責實現通道號和DDR SDRAM芯片內部存儲空間的映射。該模塊中保存的變量包括各個通道在DDR SDRAM中的塊起始地址、塊終止地址、FIFO頭偏移量、FIFO尾偏移量。
(4)仲裁模塊
仲裁模塊產生相應控制命令,針對工作優(yōu)先級,發(fā)出空閑指令、初始化指令、寫操作指令和讀操作指令。
4 資源消耗結構的改進
4.1 標準的MIMO結構的緩存器
針對多路數據的緩存,設計了多進多出的緩存結構,對物理通道輸入的數據流首先進行識別與分發(fā),給每一路節(jié)目流配置一個輸入緩存FIFO和一個輸出緩存FIFO,結構如圖2所示。
這種結構的優(yōu)點在于,對每一路節(jié)目,都有單獨的緩存空間對其進行緩存,各路節(jié)目相對獨立,互不干擾;在節(jié)目路數較少的情況下,該結構效率較高,便于擴展。
但上述結構存在的問題在于,如果節(jié)目路數過多,輸入數據流量過大,會導致FPGA內部緩存數量成幾何上升,極大的消耗FPGA資源,降低運行時鐘頻率,造成系統(tǒng)綜合后速度下降。
4.2 端口固定的MIMO結構緩存器
由于標準的MIMO結構存在的問題,難以達到本文所需的應用要求,因此存這里提出的一種改進型設計。這種設計不像標準的MIMO那樣對DDR進行邏輯結構上的緩存,而是通過固定DDR高位地址,采用物理結構緩存的方式進行快速存儲,如圖1所示。
在這種結構中,外部流處理模塊先將數據流與該數據流存儲的通道號分發(fā)至緩存RAM和地址轉換模塊,再由調度模塊調度轉換后的對應地址指針,將其發(fā)送到DDR上對應的物理存儲空間而在輸出端口也以同樣的方式只針對物理輸出端口,這就要求有一個讀請求隊列,以便將要讀的目的通道提前發(fā)送。在這里調度模塊能夠實時檢測各個通道使用情況,并將數據流快速分發(fā)。這種結構對于EQAM這種一個物理IP端口輸入幾百路流的設備,可以極大地降低FPGA內部RAM的消耗,且對DDR影響也較小,不會過多降低系統(tǒng)性能。而且在前端數據緩存中直接使用RAM而不使用FIFO更有利于同步數據流和對應地址。
評論