| 网站首页 | 新闻 | SOPC | FPGA | DSP | ARM | 嵌入式操作系统 | 下载 | 所有产品 | 留言 | 论坛 | 网络协议 | 驱动设计 | 购买指南 | 
您现在的位置: 嵌入式控制研究室 >> FPGA >> FPGA应用 >> 文章正文 用户登录 新用户注册
[组图]以FPGA實行軟體無線電數據機之硬體加速單元       ★★★ 【字体:
以FPGA實行軟體無線電數據機之硬體加速單元
作者:Joel A. …    文章来源:电子设计资源网    点击数:    更新时间:2005-12-18

以FPGA實行軟體無線電數據機之硬體加速單元

Joel A. Seely
 

現場可編程閘陣列(FPGA)已經不再是純粹的僅適用於當做晶片與系統之間的互聯層,在軟體無線電(SDR)中,FPGA已經逐漸被用於做為通用運算結構來實行硬體加速單元,可在較低成本與電源需求的要求下來增進效能的表現。

典型的SDR數據機的實行需包括通用型處理器(GPP)、數位訊號處理器(DSP)與FPGA,然而,FPGA的結構可以結合特定應用的硬體加速單元以用來卸載GPP或DSP的負荷,軟式核心微處理器可搭配客製化邏輯做為其它們的核心延伸,或是可以將分離式的硬體加速輔助處理器增加到系統之中。此外,也可將通用型路由資源放在FPGA中,這些硬體加速單元可以平行地執行,以進一步強化系統的整體運算效能輸出,在這篇文章中我們將討論三種性質不同的硬體加速單元,以及它們透過用軟體來實行的效能表現。
軟體無線電
隨著無線標準的快速發展,未來的無線設備將需要支援多重的無線介面與調製格式,將可透過使用可重新配置的硬體平台來讓SDR技術可跨越多重的標準,以便在無線設備中執行這些功能。

SDR是在聯合戰術無線電系統(Joint Tactical Radio System, JTRS)之下所開發的技術,初期是為了開發軟體可編程的無線電系統,以便可以跨越美國軍事服務,與其他軍事聯盟與盟國來進行無縫式、即時的通訊。JTRS的功能性與擴展性是建立在被稱為軟體通訊架構的開放式架構基礎之上,JTRS終端必須能夠對超過25種特定的無線介面或任何一種的波形進行動態載入的支援,這比任何用於民間領域的應用都還要更為複雜,想要在合理的體積要求之下達到所有的這些功能需求,需要以不同的方式來延伸處理的能力,也正是因為這個原因,所以大多數的架構都會採用GPP、DSP與FPGA。
SDR系統架構
GPP、DSP與FPGA都是通用型的處理資源,可以在整體SDR系統中被用於不同的部份,圖1顯示一個可在SDR中找到的典型功能的範例架構,並以跨越這些元件的方式來進行區隔,然而,在這些元素之間仍然有相當大量的重疊性,例如,在DSP上執行的運算法則也可以用GPP來實行,雖然會變的更慢一些,或是重新撰寫HDL並在FPGA上執行,以做為一個輔助處理器或硬體加速單元。
 

圖一:以SDR功能做區隔並跨越GPP、DSP與FPGA的範例架構
 

硬體加速
有多種方式可以使用FPGA資源來完成硬體加速,然而,仍可歸納為三種基本架構:客製化指令、客製化周邊做為輔助處理器,以及動態地重新配置特定用途的處理器。這些硬體加速方式都有其不同的特性與獨特的效益,了解這些方式該如何使用與用在哪裡,將有助於在系統架構中較佳地使用FPGA資源,以在SDR應用中卸載DSP與GPP的負荷。
軟式核心處理器與客製化指令
隨著大型FPGA的出現,可以被嵌入到FPGA中的小巧但功能強大的處理器也出現了,這些「軟式核心」處理器是可以配置的矽智財(IP),可以下載到FPGA之中,並如同任何其他的嵌入式微處理器般地使用,它們甚至搭配了業界標準的工具組,包括編譯器、指令組模擬器,以及全套的軟體除錯工具,與整合式的開發環境。這些工具組對任何一位嵌入式軟體工程師來說都相當熟悉,對於下載到FPGA中的處理器就僅像是處理位元流,而不需要太費心思,然而,這些軟式核心處理器卻擁有無窮大的彈性。在下載處理器之前,設計師可以依據速度與尺寸大小的要求來選擇不同的配置選項,設計師也可以增加為數眾多的周邊來進行記憶體控制、通訊、I/O等等。

客製化指令可以提供軟式核心處理器更進一步的彈性,它可以當做是輔助硬體的特定運算法則,或是軟式核心微處理器的數學邏輯單元(ALU),這些新的硬體指令可放在運算法則中對於時間需求最重視的部份,可重新分派軟體運算法則到硬體模塊之中。搭配客製化指令的RISC微處理器模糊了RISC與CISC之間的界線,因為客製化指令單元可以是多重週期的硬體模塊,並可配合嵌入在RISC處理器中採用單一週期的「標準指令」,共同來執行相當複雜的運算法則,並且可以增加多個客製化指令到ALU中,其中的限制僅在於FPGA的資源以及在軟式核心處理器的運算碼表中可開放使用的運算碼數量。圖2描述了使用客製化指令來延伸Altera的Nios® II軟式核心微處理器的ALU。


圖 1 用客製化指令延伸軟式核心處理器 ALU的方塊圖


何時需要使用客製化指令?當運算法則需要被加速時,使用客製化指令將會是最有效率的方式,此時需要經常地呼叫關聯式原子化(不可分割)的運算,也會運算儲存在區域暫存器中的資料,浮點運算指令便是一個很好的例子,浮點數學運算指令可以被以函式庫副程式的方式來實行,當處理器中沒有特定的浮點指令硬體時,編譯器便會自動地啟動,這些浮點運算法則需要多個時鐘週期來執行,在應用程式中與其全面使用軟體碼,不如去定義一些功能呼叫。無論如何,這些運算法則也可以用客製化指令來實行,來延伸軟式核心微處理器的ALU。表1提供多種軟體函式庫程式與使用客製化指令來執行相同功能之間的比較。備註:即使在這種狀況之下,結果還是會有巨大的變化,這將會取決於如所選擇用來實行的硬體有多少流水線數量等在客製化指令設計上的各種考慮項目。

在本段中也將對客製化指令中的循環式冗餘檢查(CRC)運算法則加到比較表中,雖然當在大型的記憶體模塊下執行CRC跟客製化指令時,僅採用軟體來實行這個運算法則,一樣可以提供一些優勢,但它仍然可以有其他用硬體加速單元來實行的方式,將可提供更好的效率與更佳的整體處理能力。
 

表 1 使用軟體與使用硬體客製化指令來實行運算法則之間的處理能力比較
 

硬體加速輔助處理器
有鑒於客製化指令是ALU的延伸,並歸屬於軟式核心微處理器,因此不管是在FPGA之內或之外實行,硬體加速輔助處理器都可以被用於加速處理器,圖3描述了使用輔助處理器的架構,在這個設計之中,處理器可以是一個FPGA之外的GPP或DSP,也可以是在FPGA之內的處理器(不論是硬式核心或軟式核心處理器),輔助處理器的一個關鍵優勢是它可隱藏在直接記憶體存取(DMA)之中。
 

圖二:在系統內的硬體加速輔助處理器

 

硬體加速輔助處理器的工作可以透過客製化指令的方式來執行,並具有以下一個或更多的常見特性:
• 運算法則不使用單一的暫存器變數(非原子化,可分割)
• 運算將更為複雜(通常是軟體中的一個副程式)
• 資料的轉換是在大型的資料模塊中完成


表2提供數個在SDR應用之中採用硬體加速輔助處理器與僅使用軟體來實行某些運算法則的效能表現,SDR可以從各種的DSP功能中的得到益處,而且可以有更高階應用等級的硬體加速。

表 2 僅使用軟體與硬體加速輔助處理器的處理能力比較
 

特定應用的指令集處理器
特定應用的指令集處理器(ASIP)是一種特殊形式的硬體加速輔助處理器,ASIP結合了軟體的彈性並可達到特定硬體的效率與效能表現。ASIP是一種針對執行特定工作或一組相關工作的處理器,其中一種ASIP的實行方式是透過改變較大建構模塊的功能互聯,來允許更動處理器內部的拓撲結構。

軟體無線電的實行運算法則是應用軟體來增進其可攜性、終身的成本與重新定標能力,然而想要達到成本與效能上的需求,則必須使用特定應用的硬體,在FPGA採用ASIP的價值在於它們是由較小的建構模塊所組成,可以快速地被重新配置以執行超過一種以上的高階功能,關於SDR的一個例子如快速傅利葉轉換(FFT)與有限脈衝響應(FIR)濾波器,這兩種高階的運算法則可以共享許多共同的子模塊,透過更動ASIP子模塊之間的互聯,便可以在硬體中以實行FFT來代替實行FIR。圖4展示在一個ASIP架構中實行FFT/FIR的ASIP,可以透過一個簡單的微碼指令來用於配置硬體模塊,以執行想要的FIR或是FFT功能。
 

圖三:結合FFT/FIR的ASIP架構



我們對在TI C62x DSP上執行1024個浮點的radix-2 FFT進行了軟體/硬體之間的比較,並用FIR/FFT的ASIP來執行相同的濾波器功能,TI在實行時花了20840個時脈週期,而ASIP花了21850個時脈週期,兩者在實行上的整體處理能力可說相當接近,然而在比較尺寸大小、功耗與成本節省上,ASIP都優於利用整個DSP來執行相同的運算法則,此時便可將執行特定SDR運算法則的負荷從DSP卸載到FPGA,以降低對DSP處理能力的需求,我們還是強烈建議用ASIP來完成這個功能需求。

結論
軟體無線電需要大量的處理能力來實現波形的可攜性,以及其所承諾的重新配置能力,使用FPGA來進行硬體加速提供了有前途的架構選項,可幫助將SDR真實地呈現。(作者於Altera公司汽車、工業與軍事及航太事業單位擔任技術行銷經理)
文章录入:fengfeiyi    责任编辑:fengfeiyi 
  • 上一篇文章:

  • 下一篇文章:
  • 发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
    最新热点 最新推荐 相关文章
  • FPGA在平板显示器中的应用
  • 走向图形化的FPGA设计软件
  • 用FPGA实现数字电视条件接收…
  • 基于FPGA的DDR SDRAM控制器的…
  • 用低成本FPGA替代ASIC实现大…
  • FPGA图像处理算法的编译与优…
  • 基于FPGA的快速并行平方器
  • 基于FPGA的FFT/IFFT处理器的…
  • 基于FPGA的算术逻辑单元设计
  • RS译码的BM迭代算法及其FPGA…
  •   网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)