| 网站首页 | 新闻 | SOPC | FPGA | DSP | ARM | 嵌入式操作系统 | 下载 | 网上商城 | 芯片价格参考 | 留言 | 论坛 | 网络协议 | 驱动设计 | 购买指南-HowtoBuy | 
您现在的位置: FPGA开发板 FPGA 开发板 SOPC开发板 DSP开发板 视频开发板 -嵌入式控制研究室 >> SOPC >> SOPC应用 >> 文章正文 用户登录 新用户注册
[组图]在軟硬體區隔之間選擇可遠端重新配置之嵌入式處理器系統         ★★★ 【字体:
在軟硬體區隔之間選擇可遠端重新配置之嵌入式處理器系統
作者:Altera    文章来源:电子设计资源网    点击数:    更新时间:2005-12-18

在軟硬體區隔之間選擇可遠端重新配置之嵌入式處理器系統

Altera
 

目前可實行現場重新配置的嵌入式處理系統的能力已經有了巨幅的成長,這是因為有了可以同時支援硬式與軟式處理器的FPGA架構產品出現的緣故,這篇文章將審視這兩種架構的優點,以及介紹數種可以實行的現場重新配置,並具有安全保險機制的方案。透過所搭配的即時應用程式,這兩種架構在效能、彈性與功能等不同領域中,均各有它們自己的價值。這兩種架構也提供了使用者有能力在軟體與硬體特性之間進行系統效能的衡量,且它的品質也可為具變動性的可重新配置產品架構開放了許多新的用途,並可縮短產品上市的時間,更進一步地控管風險的發生。

來自Altera®的Nios® 軟式核心嵌入式處理器是一種RISC核心,是專門針對FPGA架構所設計的產品,它可以支援多個FPGA產品系列,透過同時支援16位元與32位元的架構,來延展其可提供的效能範圍,並可同時獲得支援數量龐大的不同介面與經過效能強化特性的效益。一旦想要將已經在現場安裝好的設備中更動一些功能,便可透過重新配置來達到增加新的發展空間的目標。以下將透過一些範例來說明如何使用乙太網路連接來進行遠端軟體升級,它可以延伸到涵蓋硬體的變更,而不僅是限制在嵌入式處理器系統,而是涵蓋到整個可編程單晶片系統(SOPC)。它還可以延伸到CPU核心本身,還可以提供客製化的指令集與專用的硬體加速器,提供了全新的發展空間來解決跨越多重核心時,該如何區隔軟體的問題。最新的Stratix FPGA架構中的硬體強化所帶來的效益,可允許軟式嵌入式處理器在統一的記憶體環境下管理數種系統配置,每個配置都可以透過提供額外提供的硬體看門狗功能,持續地監控FPGA的配置與控制一種智慧型的分頁策略,使其在具備安全保險機制下來進行遠端升級。

來自Altera的Excalibur ARM元件產品系列不同於採用Nios架構的SOPC設計,當系統啟動時,它在晶片上提供具有完整功能的嵌入式處理器子系統,這個架構的設計概念是在選擇如記憶體與FPGA介面時,必須使用硬體來做嵌入式處理器子系統,由於效能上的考量必須在跨越廣範圍的SOPC配置上犧牲一些彈性,關鍵是要能夠無縫地依序在處理器已經內建的功能到可重新配置的FPGA之間執行程式,透過使用Linux作業系統的範例,將展示可以透過使用檔案系統來區隔單一的快閃記憶體架構,這種做法可以允許不同的軟體與硬體映像檔可以同時存在,以維持多重映像檔與進行遠端更新,也可以在FPGA中放入客製化設計單元,來取代部分硬式嵌入式處理器子系統,以拓展新的能力,您可以選擇是否在FPGA架構中再一次放進附加的軟式Nios處理器,自行決定是要用軟體還是硬體來達到想要的系統層級。
現場重新配置的重要性
面對逐漸增加的競爭性與縮小中的市場規模,這都意味著該產品無論是在它剛發表時,還是在整個產品週期間都必須是最好的,成為最佳產品通常意味著可首先進入市場,便有機會可達到最高的價格,這也是在整個產品生命週期中利潤最好的時候。使用FPGA可以大量地減少產品上市的時間,與強化設計上的彈性,當系統具備遠端系統升級能力的附加特色之後,便可以透過延伸生命週期來得到更多的效益,最終的效益便是可以產生更多的收入。當牽涉到提供現場服務或產品回收的問題時,也可以透過減少維護的成本來使收入得到快速的提升。這些優勢如圖1所示。
 

圖1 遠端系統升級的效益

 

遠端配置的技術可以讓設計師立即設計與運送他們系統的功能子集到遠端,且可從任一個遠端地點隨後地增加功能與進行特性強化的能力,在這些方案中,通常需要後端通道通訊能力來加倍遠端效能監控功能,這可讓更新變的更有智慧,這可讓設計師更早展開產品的設計週期,並讓產品更快進入市場,並確保它們可以在未來輕易地進行升級。

產品生命週期的延長是根據遠端配置的涵蓋範圍來決定的,在最簡單的例子中,也許產品完全是用ASSP或ASIC所組成,在這樣的應用中,由於這些元件的設計限制了系統是否可以進行現場升級,想要提供這樣的支援必須為這些形式的元件增加開發的時間與成本,且降低了在價錢或可用性上的任何優勢,這通常只能對現場升級提供最小程度的支援,對這些嵌入式處理器元件的一部分進行遠端的軟體升級,若想要延伸產品的生命週期,但卻因為減少了所能提供的軟體升級,便只能有限度地延伸產品的功能特性或是修正硬體設計上出現的錯誤,為了替產品提供新的軟體,使其永久地放置到矽晶片的結構上,也會對元件本身增加成本。

當使用FPGA時,這些增加的成本可以進行最小化,只要為產品選擇最基本的功能,便能夠透過將配置資料載入硬體中的作用,達到更動硬體的能力,這僅需利用最簡單的模型為現場可重新配置平台進行配置資料的初始化,在此時嵌入式處理器是以外部形式與FPGA連接,並受限於它的能力與效能,這可以解釋電路板層級的效能是受限於晶片與晶片之間的介面,僅是簡單地整合在FPGA上的核心,並無法提供完整的解決方案,仍需要額外的邏輯圍繞在處理器旁邊,來同時對軟體與FPGA配置資料進行重新配置,而不需仰賴外部系統的支援,通用型的FPGA結構可以滿足部份的這些需求,但可以預期會有一些資源流失掉,仍然會對設計與除錯系統層級功能增加一些負擔。

 
嵌入式處理器的SOPC解決方案
SOPC技術已經受到系統架構者的支持,需要在整個產品生命週期中去平衡效能與成本上的彈性,SOPC提供了兩個方向來完全地整合產品設計,以達到現場可重新配置的目標,雖然都需要仰賴嵌入式處理器,但在採用的構造上仍有所區別,Altera是最早以硬式嵌入的方式,發表了在FPGA產品系列中整合RISC處理器的產品,這個元件系列稱之為Excalibur,可簡單地用來進行現場重新配置,以增強標準FPGA產品的彈性,並提供動態地更動系統區隔的能力。

透過在子系統周圍搭配嵌入式處理器,使其在產品的設計期間,讓以上所有的這些特性成為可能,決定要放哪些東西在子系統中,是根據架構的設定目標:

• 整合採用ARM®架構的系統到FPGA中
• 使用AMBA匯流排來運用可用的IP
• 用硬式IP與FPGA資源來平衡系統
• 達到既有的技術效能

與單純的嵌入式處理器FPGA模型中的最後一點解決方案的差異,在於它並沒有支援子系統,它保留了讓個別設計師選擇該如何以最佳的方式來實行這些附加的功能,這個設計法則採用了Excalibur元件系列,首先必須決定哪些是對系統效能產生最關鍵影響的模塊子集,這些地方適合採用硬式IP來實行,它包括:

• 處理器 + 快取記憶體 + MMU
• 晶片上的SRAM
• DRAM控制器
• 匯流排系統
• 時鐘產生
• 配置介面

這些模塊採用硬式IP來實行的效益有兩個,首先它透過提供可在系統架構中直接使用已經預先驗證過的模塊,減少花費在矽晶片上的心力,使其能夠更專注在讓終端產品更具差異化的特性上,縮短了產品上市所需的時間,其次,這些模塊均已經針對設定的製程技術進行最佳化,以發揮其全部的效能。

以下的模塊需要與FPGA有更有效率的介面,仍需要一些輔助的開發工作:

• 32位元、100MHz AHB匯流排介面
• 雙32位元、130MHz記憶體介面
• 除錯介面
• 軟體追蹤介面

最後,開放標準的AMBA AHB階層式匯流排結構與時鐘管理系統可支援多重的時鐘域,可用於將這些元素結合在一起,這些元件系列的架構如圖2的說明:

 

圖2 Excalibur架構

 


與單純的嵌入式處理器FPGA模式相較,Excalibur產品系列無論在矽晶片面積,以及在使用ARM922T RISC處理器來執行應用程式碼上,在實行上都更有效率。

然而像是單純的嵌入式處理器FPGA模式,在彈性上的限制仍然存在,該架構並無法更進一步地強化,這是受限於處理器子系統的彈性以及FPGA在彈性上的補強:

• 中斷控制器──可以用FPGA實行來取代
• 彈性的記憶體映射──FPGA可以放在映射中的任何地方
• 彈性的時鐘選項──處理器可以完全用PLL來控制
• 彈性的IO使用──例如當SDRAM控制器不需要的IO,可以被FPGA應用所使用

彈性的更進一步強化可以包括兩種不同的啟動模式:

• FPGA為中心──常用的配置
• 處理器為中心──處理器可以從非揮發性記憶體中使用快速平行介面來配置FPGA的硬體

最後這個產品系列可以為理想的SOPC架構提供現場重新配置的最終資源需求,它可為重新配置提供三種可行的方案:

• 僅使用軟體
• 僅使用硬體
• 軟體與硬體都使用

FPGA的硬體設計完全僅受限於目前現有三種產品密度的資源可用性,全部都可得到SOPC Builder設計工具技術的支援,可透過系統架構的建立、下載與廣泛地進行在架構上的除錯,來用於協助加速產品上市的速度,藉助使用預先驗證的矽智財功能設計模塊(包括Nios嵌入式處理器),讓這個期望成為可能達成的目標。
 

圖3 SOPC Builder設計輸入工具
 


Nios嵌入式處理器是針對Altera可編程邏輯最佳化的軟式處理器,Nios CPU是一種五階層式管線的通用型RISC微處理器,可同時支援32位元與16位元的架構轉換,無論是32位元與16位元的 Nios CPU都可使用16位元的指令格式,來減少程式碼的數量與指令記憶體所需的頻寬,Nios指令集是針對用高階程式語言編譯的嵌入式應用所設計。

Nios CPU使用了Harvard架構,且支援了Avalon多重主控匯流排,Nios指令匯流排是一種16位元寬、可查知等待時間狀態的Avalon匯流排主控端,可用於從記憶體中存取指令,Nios資料匯流排可各自對應Nios CPU是32位元還是16位元的配置,來決定採用32或16位元的寬度,Nios CPU架構是採用大型的通用視窗暫存器檔案、數種機器控制暫存器、程式計數器,以及K型暫存器可用於指令的前綴。

在32位元Nios CPU中的通用暫存器是32位元寬,在16位元Nios CPU中則是16位元寬,暫存器的檔案大小是可配置的,可以選擇包含總共128、256或512個暫存器,軟體可以存取出現在32位元暫存器長度的滑動視窗中的暫存器,並以16位元暫存器的形式移動,這個滑動視窗允許快速的內容切換,以加速副程式的呼叫與回歸。從Excalibur產品系列與Nios這類SOPC設計架構的功能性差異在於子系統的更動,以及使用者的FPGA設計雖然可啟用,但CPU核心本身仍受限於固定的效能。這些差異在硬體加速模式領域是很重要的,可以用來控制軟體演算法則的執行。

 
系統區隔選項
Nios包含許多內建的硬體加速器功能,可以使用SOPC Builder來根據應用的需要進行交換,這可以延伸解決方案的彈性,並讓使用者可以透過在系統硬體與軟體之間進行方向的轉移,來獲得精確合身的解決方案,透過一些執行整數乘法運算的一些小範例,便可以說明這個應用範圍,在此有三種不同的支援層級,可以廣泛地提供從使用特定的邏輯到完全用軟體函式庫的方式來實行。

 



圖4 針對Nios的硬體輔助乘法選項

 

乘法器的形式需要在設計階段便使用軟體評量器來建立,在進行FPGA硬體設計時有一些乘法選項的大小是必須先被設定,可以使用軟體函式庫的功能來進行最佳化,僅會小幅增加邏輯設計大小,相較於包括一個CPU的典型系統設計增加大約10%,在每個時鐘週期使用一個位元的乘法器,便可達到增強400%效能的目標,最終還可使用採用特定乘法器的完全硬體加速器,來提供最大的效能表現。在使用Stratix FPGA結構時,還可以使用嵌入式的DSP模塊,來達到最高效能的配置。使用硬式嵌入功能代表著可以從系統軟體完全延伸轉移到硬體,以達成精確合身解決方案的目標。

在Nios實行軟式IP來執行乘法能力在先天上便較為容易,且某些在Excalibur產品系列中內建在ARM處理器中的特定乘法器可能是不需要的,然而這是個額外的模式,可以讓您增加額外的加速周邊,使用的技巧與Excalibur ARM解決方案相同。在與CPU相較之下,這是一種典型地在衡量是否要減少彈性,或是在DSP或通訊應用中需要有更高的效能,在這兩種狀況之下,也可以提供透過使用較低速度等級的零件來進一步降低成本。

在增加DMA引擎的狀況下,周邊可以其常用的用途被使用,就算是在SOPC嵌入式解決方案下也是有效的,周邊的影響在於可在系統中的不同位址空間位置之間搬移資料,進一步從CPU上移除負擔,這個做法可以用平行或是管線的方式來實行,以釋放CPU的效能去做其他系統層級的工作。Nios Avalon匯流排具有同步主控式傳輸能力的優勢,這與使用於Excalibur元件產品系列中的多層次AHB匯流排具有相同的效果。這可以透過在網站伺服器中使用Nios處理器這個測試例子中來進行說明,系統的基本效能傳輸量是3.14Mbps,增加了DMA引擎後可以加速到6.76Mbps,整體系統效能有了250%的增進,但對設計只增加了36%的額外邏輯,這些效益是由單一用途的DMA引擎特性所帶來,移除了指令存取與解碼操作上的需求。另外一個範例是同一個應用中在TCP堆疊中執行16位元補償式檢驗和計算的加速周邊功能,結合了DMA的效能之後,比基本配置的效能增加了300%,達到了9.42Mbps,此時邏輯資源的使用量增加了65%。
 

網站伺服器配置 Nios 32 RISC DMA 檢驗和 等待時間(ms) 傳輸量 大小(LE)
1.基本配置 Y N N 153 3.14 2700
2.結合DMA Y Y N 71 6.76 3600
3.結合DMA+檢驗和 Y Y Y 51 9.42 4400

 

執行一個512點的快速傅立葉轉換(Fast Fourier Transform, FFT),可以為不同的乘法解決方案執行能力提供更有用的測試基準。

 

FFT配置 Nios 32 RISC MSTEP 乘法器 FFT 時間(ms) 大小(LE)
1.基本配置 Y N N N 1334 2649
2.結合MSTEP Y Y N N 907 2670
3.結合乘法器 Y N Y N 579 3099
4.結合FFT Y N Y Y 0.019 3979

 


在Nios處理器中的客製化指令功能,讓在硬體與軟體區隔中衡量增加的優勢時,有了更寬廣的視野,可以建立數種不同形式的客製化指令,且均仰賴在程式碼開發與除錯環境中用於保留運算碼的完整支援:

• 組合式──例如:二進位資料次序(Endian)變換、位元遮蔽
• 多重週期──例如:乘法與累加
• 參數式──例如:浮點

每一種形式都可以直接存取到ALU暫存器的值,並可調整CPU來讓其精確地配合應用軟體來滿足系統的需求。
 

圖5 客製化指令的強化

 

 
系統區隔工具
在硬體與軟體的分隔之間決定最佳的選擇,需要兩種截然不同的態度,從硬體的角度來在設計中確認時序的關連性,其中模擬是關鍵要素,可以透過數種模型來支援,並被用來加快模擬的速度,SOPC Builder允許建構不同的系統配置,並支援模擬測試平台的建立。從軟體的角度是在執行應用程式碼時,決定哪個關鍵的方式最耗費時間,軟體可以透過使用C編譯器工具鏈來進行重建,以及增加額外的手段來建立特徵,此外,附加的範圍是為軟式IP硬體本身而存在,可以被修改來包括入效能監控能力,在此可透過數量與存取CPU的形式,可以捕捉並隨後進行離線監控。

這些工具的結合,可讓硬體與軟體進行混合式修改,以製造出接近持續達到頂點的系統效能,每一種都可以有相同的功能、相同的接腳輸出,以及甚至在軟體上採用相同的嵌入式運算法則,然而在系統效能、成本與產品上市時間上,每個做法都會有所不同。

 

圖6 硬體與軟體之間的衡量
 

 
可重新配置的架構
現場可重新配置可以透過調整的能力與交換系統的區隔方式,來滿足專案在時間、成本與效能上的需求,提供了具有最大效益的方法,在產品的開發過程中可以最短的產品上市時間為目標,如圖7所示,基本概念可以很輕易地使用SOPC Builder來進行建構。

 

圖7 漸進式的設計流程

 

在初期便可以進行基本的軟體開發投入,來自概念驗證的成果可以建立出基本的輪廓,並且可以決定最初的系統區隔,在FPGA中的硬體整合可以讓系統的功能更多,直到可以進行現場測試的階段為止,在這個階段中,系統可現場重新配置是相當重要的功能,允許可在最短的時間內實行最新的設計理念,得到經過完全最佳化的版本以準備進行量產。在產品系列中有些是針對低階、對成本相當敏感的應用,有些則是針對高階市場,依據精確的終端市場需求,可以採用硬體與軟體來進行重新配置的功能,以強化兩者之間的特性,例如包括機上盒、行動電話基地台控制系統、PABX系統等。

採用Excalibur ARM產品系列時,嵌入式處理器具有與FPGA配置架構的直接介面,這可讓FPGA的內容快速地更新,無論是採用固定式或動態式的資訊流均可。壓縮可讓數個FPGA映像檔可以被連接到EBI介面的常用的快閃記憶體中,並儲存在系統軟體旁邊,此時已經成為處理器子系統的一部分,便可以從快閃記憶體來啟動,讓Linux或VxWorks這類的完整作業系統可以在載入FPGA配置資料之前先被初始化。
 

圖8 Excalibur的配置



特殊用途的映像檔可以提供更多的彈性,想要建立其他的介面僅需要下載新的系統配置映像檔資料,然後將其編程到快閃記憶體中即可,例如也許可以提供在標準產品運作模式中所沒有使用的乙太網路介面,此外也可以將高峰期的邏輯需求減少,以便使用較小也較便宜的FPGA。在快閃記憶體中的區隔也可以進行產品模式的變換,來建立數種精確合身的系統配置,以依據系統的需求來進行動態性的交換。

特定硬體的出現可以支援動態的配置升級,使其可以延伸應用到如Stratix這類的通用型FPGA產品系列,這可讓SOPC設計可以包含Nios,來分享可以在現場實行重新配置能力所帶來的相同效益。

 

圖9 在Stratix FPGA使用Nios的重新配置
 


在強化配置元件中可以進行探索所提供的作業方式,用以保存多重的FPGA配置映像檔,並透過使用壓縮技術來與軟體進行一致化,透過強化配置元件所提供的額外的快閃記憶體介面,Nios處理器可以被個別地升級,在這種狀況下,精確合身的映像檔可以被設計來進行這些映像檔的遠端升級,Nios處理器可以連接到這個介面,透過連接的乙太網路或SONET/SDH通訊介面來在配置元件中使用資料,來進行個別獨立區域的重新編程,可以交換各自有硬體與軟體區隔的不同FPGA映像檔,Nios處理器可以在下次配置時選擇不同的映像檔。內建的看門狗功能可在重新配置程序時被自動啟動,在Stratix元件架構中的安全機制重新編程狀態機的正常運作下,可以確保配置在載入時或載入後不會被中斷,這個自動啟動的暫停方式有點像電源的供電程序,在有意外狀況時會載入內定的工廠FPGA配置頁面,這個頁面先前也已經被選擇使用過,相同的功能也可以延伸到其他的FPGA產品系列,例如Cyclone可以在常用的快閃記憶體元件旁邊添加額外的外部輔助CPLD Max產品系列元件。

 
即時應用
想要讓產品第一個進入市場,通常需要在運作或介面標準尚未完全被認可之前先推出產品,具有遠端升級硬體與軟體功能的能力,將可讓產品的推出更成功,可以避免耗費成本的產品回收工作,這可以應用於許多產業與應用,包括數據機、高階DVD錄影機與網路儲存陣列等。

圖10 使用SOPC重新配置的發展藍圖

 

這個需求類型可以將特定的產品特性遠端地進行開啟或關閉,例如像PABX系統這樣的設備具備當在保留電話時播放錄音帶的系統功能,或是設定可以支援的線路數量,以及電腦資料介面的整合等,都可以透過這種技術來提供,應用的最終等級可提供在運作期間增加新的功能,此時重新配置功能便可以最大幅度地被使用。結合了當今的科技,重新配置介面的頻寬限制與所需使用時間的影響已經被最小化,並且設備可以在運作模式下進行硬體與軟體的熱切換,仍舊可以保持功能的運作正常,未來還可以做到真正的在執行狀態下的自適應架構,系統配置的更動會自動依據現有的模式或是資料傳輸量來進行調整。節省功耗的新方向將結合處理尖峰效能的能力,將可透過此類技術應用到電腦運算、消費性電子娛樂與工業控制等領域。執行自適應架構將可讓它自已可以推測精確合身解決方案的未來概念,完整地延伸到讓終端消費者與產品進行互動。具有自我重新配置功能的FPGA SOPC,可讓擁有成本降到極低,並反映在產品所使用的第三方供應的硬體與軟體零件上。

 
文章录入:fengfeiyi    责任编辑:fengfeiyi 
  • 上一篇文章:

  • 下一篇文章:
  • 发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
    最新热点 最新推荐 相关文章
    没有相关文章
      网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)