當(dāng)前位置:首頁 > 工業(yè)控制 > 電子設(shè)計自動化

當(dāng)今的設(shè)計工程師受到面積、功率和成本的約束,不能采用GHz級的計算機實現(xiàn)嵌入式設(shè)計。在嵌入式系統(tǒng)中,通常是由相對數(shù)量較少的算法決定最大的運算需求。使用設(shè)計自動化工具可以將這些算法快速轉(zhuǎn)換到硬件協(xié)處理器中。然后,協(xié)處理器可以有效地連接到處理器,產(chǎn)生“GHz”級的性能。

本文主要研究了代碼加速和代碼轉(zhuǎn)換到硬件協(xié)處理器的方法。我們還分析了通過一個涉及到基于輔助處理器單元(APU)的實際圖像顯示案例的基準(zhǔn)數(shù)據(jù)均衡決策的過程。該設(shè)計使用了在一個平臺FPGA中實現(xiàn)的一個嵌入式PowerPC。

協(xié)處理器的意義

協(xié)處理器是一個處理單元,該處理單元與一個主處理單元一起使用來承擔(dān)通常由主處理單元執(zhí)行的運算。通常,協(xié)處理器功能在硬件中實現(xiàn)以替代幾種軟件指令。通過減少多種代碼指令為單一指令,以及在硬件中直接實現(xiàn)指令的方式,從而實現(xiàn)代碼加速。

最常用的協(xié)處理器是浮點單元(FPU),這是與CPU緊密結(jié)合的唯一普通協(xié)處理器。沒有通用的協(xié)處理器庫,即使是存在這樣的庫,將依然難以簡單地將協(xié)處理器與一個CPU(例如Pentium 4)連接。Xilinx Virtex-4 FX FPGA擁有一個或兩個PowerPC,每個都有一個APU接口。通過在FPGA中嵌入一個處理器,現(xiàn)在就有機會在單芯片上實現(xiàn)完整的處理系統(tǒng)。

帶APU接口的PowerPC使得在FPGA中得以實現(xiàn)一個緊密結(jié)合的協(xié)處理器。因為頻率的需求以及管腳數(shù)量的限制,采用外部協(xié)處理器不大可行。因此可以創(chuàng)建一個直接連接到PowerPC的專用應(yīng)用協(xié)處理器,大大地提高了軟件速度。因為FPGA是可編程的,你可以快速地開發(fā)和測試連接到CPU的協(xié)處理器解決方案。

協(xié)處理器連接模型

協(xié)處理器有三種基本的形式:與CPU總線連接的、與I/O連接的和指令流水線連接(Instruction Pipeline Connection)。此外,還存在一些這些形式的混合形式。

1. CPU總線連接

處理器總線連接加速器需要CPU在總線上移動數(shù)據(jù)以及發(fā)送命令。通常,單個數(shù)據(jù)處理就需要很多的處理器時鐘周期。因為總線仲裁以及總線驅(qū)動的時鐘是處理器時鐘的分頻,所以會降低數(shù)據(jù)處理速度。一個與總線連接的加速器可以包含一個存儲器存取(DMA)引擎。在增加額外的邏輯情況下,DMA引擎允許協(xié)處理器工作在位于連接到總線的存儲器上的數(shù)據(jù)塊,獨立于CPU。

2. I/O連接

與I/O連接的加速器直接連接到一個專用的I/O端口。通常通過GET或PUT函數(shù)提供數(shù)據(jù)和控制。因為缺少了仲裁、控制復(fù)雜度降低以及連接器件較少,因此這些接口的驅(qū)動時鐘通常比處理器總線更快。這種接口的一個較好的例子如Xilinx Fast Simplex Link(FSL)。FSL是一種簡單的FIFO接口,可以連接到Xilinx MicroBlaze軟核處理器或Virtex-4 FX PowerPC。與處理器總線接口中的數(shù)據(jù)移動相比,通過FSL移動的數(shù)據(jù)具有較低的延時和更高的數(shù)據(jù)速率。

3. 指令流水線連接

指令流水線連接加速器直接連接到CPU的計算內(nèi)核。通過與指令流水線連接,CPU不能識別的指令可以由協(xié)處理器執(zhí)行。操作數(shù)、結(jié)果以及狀態(tài)直接從數(shù)據(jù)執(zhí)行流水線向外傳遞,或接收。單個運算可以實現(xiàn)兩個操作數(shù)的處理,同時返回一個結(jié)果和狀態(tài)。

作為一個直接連接的接口,連接道指令流水線的加速器可以用比處理器總線更快的時鐘驅(qū)動。Xilinx通過APU接口實現(xiàn)這種協(xié)處理器連接模型,對于典型的雙操作數(shù)指令,在數(shù)據(jù)控制和數(shù)據(jù)傳輸上可以縮減10倍的時鐘周期。APU控制器還連接到數(shù)據(jù)緩存控制器,通過它可以執(zhí)行數(shù)據(jù)加載/存儲操作。因此,APU接口能在每秒內(nèi)移動數(shù)百兆字節(jié),接近DMA速度。

I/O連接加速器或指令流水線連接加速器可以與總線連接加速器結(jié)合起來。在增加額外的邏輯條件下,可以創(chuàng)建一個加速器,這個加速器運行在一個位于總線連接存儲器上的數(shù)據(jù)塊上,通過一個快速、低延時的接口接收命令并返回狀態(tài)。

在本文中介紹的C-HDL工具組可以實現(xiàn)總線連接和I/O連接加速器,它還能實現(xiàn)連接到PowerPC的APU接口的加速器。盡管APU連接是基于指令流水線的,C-HDL工具組實現(xiàn)了一種I/O流水線接口,該接口具有I/O連接加速器的典型性能。

FPGA/PowerPC/APU接口

FPGA允許硬件設(shè)計工程師利用單芯片上的處理器、解碼邏輯、外設(shè)和協(xié)處理器實現(xiàn)一個完整的計算系統(tǒng)。FPGA可以包含數(shù)千到數(shù)十萬的邏輯單元,可以從這些邏輯單元實現(xiàn)一個處理器,如Xilinx PicoBlaze或MicroBlaze處理器,或者可以是一個或者更多的硬邏輯單元(如Virtex-4 FX PowerPC)。大量的邏輯單元使你可以實現(xiàn)數(shù)據(jù)處理單元,這些單元與處理器系統(tǒng)一起工作,由處理器對其進(jìn)行控制或監(jiān)控。

FPGA作為一種可重復(fù)編程的單元,允許你在設(shè)計過程中進(jìn)行編程并對其進(jìn)行測試。如果你發(fā)現(xiàn)了一個設(shè)計缺陷,你可以立即對其進(jìn)行重新編程設(shè)計。FPGA還允許你實現(xiàn)硬件運算功能,而這在以前的實現(xiàn)成本是很高的。CPU流水線與FPGA邏輯之間緊密結(jié)合,這樣就可以創(chuàng)建高性能軟件加速器。

圖1的模塊框圖顯示了PowerPC、集成的APU控制器以及一個與之相連的協(xié)處理器。來自高速緩存或存儲器中的指令可以立即出現(xiàn)在CPU解碼器和APU控制器上,如果CPU能識別指令,則運行這些指令。否則,APU控制器或用戶創(chuàng)建的協(xié)處理器可以對指令做出應(yīng)答并執(zhí)行指令。一個或者兩個操作數(shù)被傳遞到協(xié)處理器,并返回一個結(jié)果或狀態(tài)。APU接口還支持用一個指令發(fā)送一個數(shù)據(jù)單元。數(shù)據(jù)單元的大小范圍從一個字節(jié)到4個32位的字。

圖1:PowerPC、集成的APU控制器和協(xié)處理器

通過一個結(jié)構(gòu)協(xié)處理器總線(FCB),可以將一個或多個協(xié)處理器連接到APU接口。連接到總線的協(xié)處理器范圍包括現(xiàn)存的內(nèi)核(例如FPU)到用戶創(chuàng)建的協(xié)處理器。一個協(xié)處理器可以連接到FCB用于控制和狀態(tài)運算,并連接到一個處理器總線,實現(xiàn)直接存儲器數(shù)據(jù)塊訪問以及DMA數(shù)據(jù)傳遞。一種簡化的連接方案,例如FSL,也可以在FCB和協(xié)處理器之間使用,在犧牲一定性能的條件下實現(xiàn)FIFO數(shù)據(jù)和控制通信。

為展示指令流水線連接加速器的性能優(yōu)勢,我們采用一個處理器總線連接FPU首先實現(xiàn)了一個設(shè)計,然后采用APU/FCB連接的FPU實現(xiàn)設(shè)計。表1總結(jié)了兩種實現(xiàn)方式下有限脈沖響應(yīng)(FIR)濾波器的性能。如表1中所反映的一樣,連接到一個指令流水線的FPU使軟件浮點運算速度增加30倍,而APU接口相比于總線連接FPU來說改善了近4倍。

表1:未加速與加速的浮點性能

C代碼轉(zhuǎn)換到HDL

采用C到HDL的轉(zhuǎn)換工具將C代碼轉(zhuǎn)換到HDL加速器是一種創(chuàng)建硬件協(xié)處理器的高效方法。圖2所示以及下面詳述的步驟總結(jié)了C到HDL轉(zhuǎn)換的過程:

圖2:C-HDL設(shè)計流程

1. 使用標(biāo)準(zhǔn)C工具實現(xiàn)應(yīng)用程序或算法。開發(fā)一種軟件測試向量(test bench)用于基線性能和正確性(主機或臺式電腦仿真)測試。使用一種編譯器(例如gprof)來開始確定關(guān)鍵的函數(shù)。

2. 確定是否浮點到定點轉(zhuǎn)換適當(dāng)。使用庫或宏來輔助這種轉(zhuǎn)換,使用一個基線測試向量來分析性能和準(zhǔn)確性。使用編譯器來重新評估關(guān)鍵函數(shù)。

3. 使用C到HDL轉(zhuǎn)換工具(如Impulse C),在每個關(guān)鍵功能上重復(fù),以實現(xiàn):將算法分割成并行的進(jìn)程;創(chuàng)建硬件/軟件進(jìn)程接口(流、共享存儲器、信號);對關(guān)鍵的代碼段(例如內(nèi)部代碼循環(huán))進(jìn)行自動優(yōu)化和并行化;使用桌面電腦仿真、周期準(zhǔn)確的C仿真以及實際的在系統(tǒng)測試對得到的并行算法進(jìn)行測試和驗證。

4. 使用C到HDL轉(zhuǎn)換工具將關(guān)鍵的代碼段轉(zhuǎn)換到HDL協(xié)處理器。

5. 將協(xié)處理器連接到APU接口用于最終的測試。

Impulse:C到HDL轉(zhuǎn)換工具

如圖3所示的Impulse C通過結(jié)合使用C兼容庫函數(shù)與Impulse CoDeveloper C代碼到硬件的編譯器,使嵌入式系統(tǒng)設(shè)計工程師能創(chuàng)建高度并行的、FPGA加速的應(yīng)用。Impulse C通過使用定義完好的數(shù)據(jù)通信、消息傳遞和同步處理機制,簡化了硬件/軟件混合應(yīng)用設(shè)計。Impulse C提供了C代碼(例如循環(huán)流水線處理、展開和運算符調(diào)度)的自動優(yōu)化以及交互式工具,允許你對每個周期的硬件行為進(jìn)行分析。

圖3. Impulse C

Impulse C設(shè)計用于面向數(shù)據(jù)流的應(yīng)用,但是它也具有足夠的靈活性來支持其他的編程模型,包括使用共享存儲器。這一點很重要,因為基于FPGA不同的應(yīng)用具有不同的性能和數(shù)據(jù)要求。在一些應(yīng)用中,通過塊存儲器讀和寫在嵌入式處理器和FPGA之間轉(zhuǎn)移數(shù)據(jù)是有意義的;在其它的情況下,流傳數(shù)通信信道可能提供更高的性能??梢钥焖俳!⒕幾g和評估可選的算法的能力對于實現(xiàn)某個應(yīng)用最佳的結(jié)果來說,非常重要。

到目前為止,Impulse C庫包含以新數(shù)據(jù)類型和預(yù)定義的函數(shù)調(diào)用形式的最少C語言擴展。使用Impulse C函數(shù)調(diào)用,你可以定義多個并行程序段(調(diào)用進(jìn)程),并使用流、信號和其他機制描述它們的互連。Impulse C編譯器將這些C語言進(jìn)程轉(zhuǎn)換并優(yōu)化成:可以綜合到FPGA的較低級HDL,或可以通過廣泛存在的C交叉編譯器編譯到支持的微處理器上標(biāo)準(zhǔn)C(帶相關(guān)的庫調(diào)用)。

完整的CoDeveloper開發(fā)環(huán)境包括與標(biāo)準(zhǔn)C編譯器和調(diào)試器(包括微軟公司的Visual Studio和GCC/GDB)兼容的臺式電腦仿真庫。使用這些庫,Impulse C程序設(shè)計工程師能編譯和執(zhí)行他們用于算法驗證和調(diào)試目的的應(yīng)用程序。C程序設(shè)計工程師還能檢驗并行進(jìn)程,分析數(shù)據(jù)移動,并利用CoDeveloper Application Monitor解決進(jìn)程到進(jìn)程的通信問題。

在編譯時,Impulse C應(yīng)用的輸出是一組硬件和軟件源文件,用于輸入到FPGA綜合工具。這些文件包括:
1. 用于描述編譯硬件進(jìn)程的自動產(chǎn)生的HDL文件;
2. 用于描述連接硬件進(jìn)程到系統(tǒng)總線所需的流、信號和存儲器組件的自動產(chǎn)生的HDL文件;
3. 自動產(chǎn)生的軟件組件(包括運行時間庫)用于建立任何硬件/軟件流連接的軟件端;
4. 附加文件,包括腳本文件,用于輸入產(chǎn)生的應(yīng)用程序到目標(biāo)FPGA布局布線環(huán)境。這種編譯進(jìn)程的結(jié)果是一個完整的應(yīng)用,包括需要的硬件/軟件接口,用于在基于FPGA的編程平臺上實現(xiàn)。

設(shè)計實例

圖4所示的Mandelbrot圖是一種經(jīng)典的不規(guī)則幾何圖形,該圖形廣泛用在科學(xué)和工程學(xué)界用于仿真無序事件,例如天氣。不規(guī)則圖形也用于產(chǎn)生紋理和在視頻顯示應(yīng)用上成像。Mandelbrot圖像描述為自相似性。放大圖形的局部,可以獲得類似于整個圖形的另外一個圖形。

圖4:Mandelbrot圖

Mandelbrot圖形是硬件/軟件協(xié)同設(shè)計的理想選擇,因為它具有單個運算密集的函數(shù)。通過將關(guān)鍵的函數(shù)轉(zhuǎn)移到硬件實現(xiàn)將大大地增加整個系統(tǒng)的速度,使這個關(guān)鍵函數(shù)更快。Mandelbrot應(yīng)用還能清楚地區(qū)分硬件和軟件進(jìn)程,使用C-HDL工具很容易實現(xiàn)。

本文使用CoDeveloper工具組作為C-HDL工具組用于該設(shè)計實例,而且只修改了軟件Mandelbrot C程序以使其與C-HDL工具兼容。其中的改變包括:將軟件項目分割成不同的進(jìn)程(順序執(zhí)行的獨立單元);函數(shù)接口轉(zhuǎn)換(硬件到軟件)到流;增加編譯器指令來對產(chǎn)生的硬件進(jìn)行優(yōu)化。我們隨后使用CoDeveloper工具組來創(chuàng)建Pcore協(xié)處理器,將該協(xié)處理器輸入到Xilinx Platform Studio(XPS)。利用XPS,我們將PC連接到PowerPC APU控制器接口,并測試系統(tǒng)。

Xilinx公司的應(yīng)用說明資料XAPP901中提供了該設(shè)計的全面描述和設(shè)計文件,并提供下載。同時,用戶指南UG096提供一種實現(xiàn)設(shè)計實例的逐步設(shè)計指導(dǎo)。

我們對Mandelbrot圖像紋理問題、圖像濾波應(yīng)用和三倍DES加密的性能改善進(jìn)行了測量。性能改善顯示了從11倍到34倍的加速。

本站聲明: 本文章由作者或相關(guān)機構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內(nèi)容真實性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫毥谦F公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

加利福尼亞州圣克拉拉縣2024年8月30日 /美通社/ -- 數(shù)字化轉(zhuǎn)型技術(shù)解決方案公司Trianz今天宣布,該公司與Amazon Web Services (AWS)簽訂了...

關(guān)鍵字: AWS AN BSP 數(shù)字化

倫敦2024年8月29日 /美通社/ -- 英國汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動 BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運行,同時企業(yè)卻面臨越來越多業(yè)務(wù)中斷的風(fēng)險,如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報道,騰訊和網(wǎng)易近期正在縮減他們對日本游戲市場的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會開幕式在貴陽舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機 衛(wèi)星通信

要點: 有效應(yīng)對環(huán)境變化,經(jīng)營業(yè)績穩(wěn)中有升 落實提質(zhì)增效舉措,毛利潤率延續(xù)升勢 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競爭力 堅持高質(zhì)量發(fā)展策略,塑強核心競爭優(yōu)勢...

關(guān)鍵字: 通信 BSP 電信運營商 數(shù)字經(jīng)濟

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺與中國電影電視技術(shù)學(xué)會聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會上宣布正式成立。 活動現(xiàn)場 NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會上,軟通動力信息技術(shù)(集團(tuán))股份有限公司(以下簡稱"軟通動力")與長三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉