《電子技術應用》
您所在的位置:首頁 > 可編程邏輯 > 解決方案 > DDR3存儲器接口控制器IP核在視頻數(shù)據(jù)處理中的應用

DDR3存儲器接口控制器IP核在視頻數(shù)據(jù)處理中的應用

2010-12-19
作者:萊迪思半導體公司
來源:EDN

       DDR3存儲器系統(tǒng)可以大大提升各種數(shù)據(jù)處理應用的性能,。然而,,和過去幾代(DDR和DDR2)器件相比,DDR3存儲器器件有了一些新的要求,。為了充分利用和發(fā)揮DDR3存儲器的優(yōu)點,,使用一個高效且易于使用的DDR3存儲器接口控制器是非常重要的。視屏處理應用就是一個很好的示例,,說明了DDR3存儲器系統(tǒng)的主要需求以及在類似數(shù)據(jù)流處理系統(tǒng)中DDR3接口所需的特性,。

  視頻處理系統(tǒng)將對于數(shù)據(jù)帶寬的要求推高到了極致:系統(tǒng)可以處理越多的數(shù)據(jù),,就具有越高的性價比。視頻聚合器和路由器可并行處理多個視頻流,,因此對于匹配數(shù)據(jù)處理能力和視頻帶寬的需求就成為了設計的一大挑戰(zhàn),。FPGA可通過在單個FPGA中實現(xiàn)多個視頻處理器來提供強大的處理能力。那么現(xiàn)在的挑戰(zhàn)就變成了要使數(shù)據(jù)盡快且高效地從FPGA進出,。DDR3存儲器系統(tǒng)在大多數(shù)情況下可以為這些基于FPGA的系統(tǒng)提供足夠的帶寬,。

  視頻處理設計說明

  我們的目標視頻處理設計將同時處理四個視頻源,將視頻數(shù)據(jù)轉換和壓縮為一種可以通過PCI Express接口傳輸?shù)酱鎯ζ鱤ub的格式,。系統(tǒng)的主要功能塊如圖1所示。

圖1:視頻處理器框圖

  FPGA獲取并緩存四個視頻源的數(shù)據(jù)流,。這些FIFO緩沖器由DDR3存儲器控制器清空并保存在DDR3存儲器中,。一旦一個完整的視頻數(shù)據(jù)包存儲完畢,視頻處理器會向DDR3存儲器控制器申請數(shù)據(jù),,存儲器控制器讀取數(shù)據(jù)并將其傳到視頻處理器,。視頻處理器對視頻數(shù)據(jù)進行格式化和壓縮,并通過DDR3存儲器控制器寫回存儲器,。當一個視頻數(shù)據(jù)包全部處理完畢,,并準備通過PCI Express接口進行傳輸,DDR3存儲器控制器從視頻處理器獲取數(shù)據(jù)并將其傳到PCI Express接口,。

  DDR3存儲器接口控制器概述

  從零開始設計一個DDR3存儲器控制器是非常困難的,。需要考慮許多特性之間的權衡和互相影響。使用一個經驗證的IP核可以省去了大量的開發(fā),、測試和調試時間,,否則就需要花費許多時間來進行in-house設計開發(fā)。一個經驗證的IP核還可以減少后續(xù)支持的負擔,,因為這將由專門的開發(fā)人員來支持,。最重要的是,使用一個經驗證的IP核可以使設計師將精力集中在其設計的獨特特性上,,從而向最終客戶交付高價值的產品設計,。例如,LatTIceECP3 DDR3存儲器控制器IP核已經通過了一個第三方驗證套件的驗證,。該IP核使用LatticeECP3 I/O協(xié)議板來實現(xiàn)并通過全部測試,。

  圖2展示了一個存儲器控制器的框圖。圖最上面的配置接口用于設置設計的各個選項,。DDR3 I/O模塊使用I/O 基元來實現(xiàn),。指令譯碼模塊根據(jù)每個bank和每一行,對用戶指令進行譯碼,,產生內部存儲器指令序列,。指令應用模塊將每條指令序列轉換為滿足目標存儲器件功能和時序要求的存儲器指令,。數(shù)據(jù)通路模塊與DDR3 I/O模塊連接,并且在讀操作時產生讀數(shù)據(jù)和讀取數(shù)據(jù)有效信號,。讀數(shù)據(jù)偏移校正模塊對齊每一條8位數(shù)據(jù)線上的數(shù)據(jù),,調整任何可能的時鐘偏移。這使得用戶端的讀數(shù)據(jù)總線與系統(tǒng)時鐘準確校準,。寫調整模塊為了正確的捕獲數(shù)據(jù),,調整了DQS對CK的關系。ODT塊通過為任意或所有DDR3 SDRAM器件提供單獨的終端阻抗控制,,提高了存儲器通道的信號完整性,。

DDR3存儲器控制器IP核框圖

圖2:DDR3存儲器控制器IP核框圖

  DDR3存儲器控制器應支持廣泛的存儲器速率和配置,以滿足各種應用需求,。例如,,Lattice ECP3 DDR3存儲器控制器支持高達800Mb/s的DDR3器件速率,8至64位的存儲器數(shù)據(jù)通道(帶有x8或x16 DDR3器件),,并且同時支持雙列直插式存儲器塊(Dual Inline Memory Modules,,DIMM)和單個存儲器的器件。

  DDR3存儲器控制器必須為各種存儲器訪問實現(xiàn)不同的時序要求,。一些要求對于我們的目標應用來說非常重要,,包括以下幾個方面:

  •   DDR3存儲器使用“類似cache”的bank進行組織,每個器件帶有8個bank,。訪問最近工作(打開)的bank比訪問未工作的(關閉)的bank速度快,。
  •   可使用4位、8位或交叉存取方式進行突發(fā)(burst)模式讀訪問,。
  •   根據(jù)存儲器速率和用戶設置,,CAS和寫延遲都是可變的。從讀請求轉換為寫請求需要額外的延遲時間,,因為雙向的數(shù)據(jù)總線必須改變傳輸方向,。

  針對視頻處理的IP核實現(xiàn)

  為了使存儲器數(shù)據(jù)帶寬和效率最大化,針對視頻處理設計的IP核實現(xiàn)需根據(jù)DDR3存儲器特性使用相匹配的算法,。下面列出了一些重要的實現(xiàn)考慮,。

  •   使用突發(fā)(Burst)模式的數(shù)據(jù)訪問

  DDR3存儲器可通過突發(fā)模式訪問,突發(fā)模式在數(shù)據(jù)以數(shù)據(jù)塊形式存放(如視頻處理應用)的應用中是非常有效的,。同樣,,通過將視頻數(shù)據(jù)以優(yōu)化的方式放入8個bank中,數(shù)據(jù)傳輸帶寬和之后的數(shù)據(jù)處理率可維持在一個高速的水平,。在我們的示例中有4個視頻源,,因此如果我們?yōu)槊總€視頻源使用2個bank(一個用作存儲緩沖器,另一個用作處理緩沖器),,這將使DDR3保持高傳輸效率,。高效的DDR3存儲器控制器應當基于每個bank的狀態(tài),,使用最快的訪問時間處理突發(fā)讀和寫。此外,,視頻處理器將事務分組,,使總線換向時間最小化并進一步提高存儲器帶寬。 更高帶寬的數(shù)據(jù)緩沖分配

  來自視頻源1的數(shù)據(jù)可通過FIFO讀取并存儲到DDR3存儲器中的Bank 1,。這將是一個只寫操作,,可以使用突發(fā)模式來保持傳輸?shù)母咝АR坏┮粋€數(shù)據(jù)包保存到Bank 1,,視頻處理器可從Bank 1讀出數(shù)據(jù),,對其進行操作并存入Bank 2。這些操作都可使用突發(fā)模式,,因此總線換向的花銷僅占用存儲器帶寬的很小的百分比,。一旦Bank 2中的數(shù)據(jù)經過處理后可被讀出,還是使用突發(fā)模式,,然后發(fā)送到PCI Express接口,再傳輸?shù)絟ub,。盡可能地保持存儲器bank為打開狀態(tài)可使得控制器使用最短的存儲器訪問時間,,從而提高了效率。

  •   使用交叉存取的并行數(shù)據(jù)處理

  數(shù)據(jù)讀可在bank之間切換或交叉存取,,而無需大量延遲或總線換向時間,。因此,只要處理硬件能夠支持,,多個視頻流可通過視頻處理器同時處理,。當處理好的數(shù)據(jù)寫回DDR3存儲器時,多個寫操作也可以通過交叉存取來提高帶寬,。一個易于使用和可預測的存儲器控制器,,如:ECP3 DDR3存儲器控制器,在用戶基于其對數(shù)據(jù)處理的基本算法的了解的情況下來分配存儲器緩沖區(qū)時,,可以最小的硬件和軟件開銷來實現(xiàn)最大的帶寬,。

  •   刷新和初始化

  因為DDR3存儲器中的數(shù)據(jù)必須定期進行刷新,一些存儲器訪問必須分配給刷新操作,。DDR3控制器應支持自動刷新指令隊列,,它可能是深度為8的指令集,可以作為一個指令組來執(zhí)行,,以使效率最大化,。DDR3器件的初始化過程是非常繁復的并且很容易出錯,特別是在手動執(zhí)行時,。DDR3控制器的初始化模塊應該通過與用戶邏輯的一次簡單的握手,,自動初始化存儲器,,從而極大地簡化了接口設計。

  •   流水線的指令處理

  存儲器控制器應當使用指令流水線來提高吞吐率,,在當前指令出現(xiàn)在存儲器接口時,,譯碼隊列中的下一條指令。這種方法提供了高于雙周期存儲器控制器100%的吞吐量,。

  •   功耗管理

  在一些DDR3應用中,,功耗管理可能是一個需要考慮問題。在一些設計中,,使用Power Down指令是非常有用的,。該指令在沒有數(shù)據(jù)訪問需求的時候,降低功耗,。在power down狀態(tài)下,,器件功耗的降低可達90%。萊迪思DDR3存儲器控制器支持該指令,。此外,,萊迪思ECP3為帶有SERDES和高速接口,如DDR3存儲器控制器的應用提供最低功耗的可編程解決方案,。

  •   設計和驗證流程

  DDR3存儲器控制器IP核必須易于配置,、生成并應用到一個目標設計中。使用圖形化用戶界面(GUI)來配置各種DDR3控制器參數(shù)是一種簡便的方法,,為目標系統(tǒng)快速創(chuàng)建正確的控制器,。所有的參數(shù)都需要確定,如:存儲器寬度,、深度,、速度和延遲。每一類配置參數(shù)都有其獨立的選項卡,,有助于將設計任務分為一個個可管理的“任務塊”,。一旦參數(shù)選定,生成代碼(用VHDL或Verilog)和生成相應的測試基準應當是比較容易的,。

  例如,,萊迪思IPexpress工具只需三個步驟,如圖3所示,,在ispLEVER設計軟件中創(chuàng)建ECP3 DDR3存儲器控制器IP核:

  1)從萊迪思網站下載IPexpress工具并將IP核導入,。

  2)IP核參數(shù)可通過每個配置組對應的選項卡進行選擇,配置組有:類型,、設置,、時序、引腳和設計工具,。

  3)基于Verilog或VHDL的IP核和測試基準一起生成,,包括頂層,、監(jiān)視器、指令生成器,、用于Aldec或ModelSim的配置和腳本文件,。

下載

圖3:下載、配置和生成IP核設計流程

  小結

  在數(shù)據(jù)處理應用的設計中,,如本文中視頻處理的例子,,當存儲器具有足夠的帶寬時,可以充分利用FPGA的并行處理能力的優(yōu)勢,。DDR3存儲器具有靈活,、易于使用的存儲器控制器,如:萊迪思ECP3 DDR3存儲器控制器IP核,,加上正確使用突發(fā)模式訪問,、數(shù)據(jù)緩沖器分配和存儲器交叉存取可以大大加快數(shù)據(jù)處理速度。此外,,一個經驗證的IP核與可靠的設計和驗證環(huán)境也加速了這些應用的上市,。

本站內容除特別聲明的原創(chuàng)文章之外,轉載內容只為傳遞更多信息,,并不代表本網站贊同其觀點,。轉載的所有的文章、圖片,、音/視頻文件等資料的版權歸版權所有權人所有。本站采用的非本站原創(chuàng)文章及圖片等內容無法一一聯(lián)系確認版權者,。如涉及作品內容,、版權和其它問題,請及時通過電子郵件或電話通知我們,,以便迅速采取適當措施,,避免給雙方造成不必要的經濟損失。聯(lián)系電話:010-82306118,;郵箱:[email protected],。