調(diào)節(jié)多核處理器硬件適應(yīng)軟件設(shè)計(jì)方法_第1頁
免費(fèi)預(yù)覽已結(jié)束,剩余1頁可下載查看

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、調(diào)節(jié)多核處理器硬件適應(yīng)軟件設(shè)計(jì)方法典型的系統(tǒng)設(shè)計(jì)人員在硬件平臺上舉行編程,他們最關(guān)注的一點(diǎn)就是硬件平臺的穩(wěn)定性。假如硬件沒有設(shè)置好,會帶來重新編寫代碼的棘手。但是一個(gè)徹低設(shè)置好的穩(wěn)定的硬件平臺還是會對其上運(yùn)行的程序有一系列的限制。這些限制 - 無論是設(shè)計(jì)結(jié)果,還是一個(gè)徹低的缺陷 - 都會造成在編碼時(shí)需要徑直處理甚至重新返工的狀況,給設(shè)計(jì)實(shí)現(xiàn)帶來棘手,并且耗費(fèi)了大量的時(shí)光。通過將平臺和一個(gè)細(xì)心設(shè)計(jì)的多核辦法結(jié)合在一起,開發(fā)人員就能以下列這種方式實(shí)現(xiàn)高性能分組處理應(yīng)用:軟件工程師能夠?qū)τ?jì)算平臺的結(jié)構(gòu)有所控制,從而大大縮短編程時(shí)光,同時(shí)降低延期交付風(fēng)險(xiǎn)。硬件設(shè)計(jì)流程的主要工作就是定義一塊板。像存儲器

2、類型、協(xié)議和i/o這樣的基本組件已被預(yù)先定義。假如只用法一個(gè)固定的處理器,那它也是預(yù)先定義好的。但是,單個(gè)處理器無法運(yùn)行需要吉比特性能的算法(例如分組處理算法),此時(shí)就需要多個(gè)處理器協(xié)同工作。構(gòu)建一個(gè)處理構(gòu)造塊的最佳辦法取決于所運(yùn)行的軟件。用法fpga來舉行處理,就能使你在對代碼需求有了進(jìn)一步了解后,再對精確的實(shí)現(xiàn)方式做出明確的決策。全新的tejia fp平臺在 virtextm - 4 fpga上提供了一種辦法和多核基礎(chǔ)設(shè)施,使開發(fā)人員在完成代碼編寫后,對多核架構(gòu)舉行精確的配置。當(dāng)軟件工程師設(shè)計(jì)硬件時(shí)硬件和軟件設(shè)計(jì)是兩種本質(zhì)上不同的工作。無論硬件設(shè)計(jì)語言多么像一個(gè)軟件,它舉行的仍然是硬件設(shè)計(jì)

3、。硬件語言對結(jié)構(gòu)舉行定義,并且設(shè)計(jì)流程終于要舉行結(jié)構(gòu)的實(shí)體化。但是,軟件工程師正越來越多地用法c編程技術(shù)來設(shè)計(jì)系統(tǒng)功能;現(xiàn)有的工具支持用法軟件或硬件辦法來設(shè)計(jì)系統(tǒng)功能。軟件實(shí)現(xiàn)的辦法更偏向于過程導(dǎo)向。它考慮的是“如何去做”而不是“構(gòu)建什么”的問題,由于從傳統(tǒng)觀點(diǎn)來看,已經(jīng)不需要再構(gòu)建什么了 - 硬件都已經(jīng)被構(gòu)建好了。在真正基于軟件的設(shè)計(jì)辦法中,關(guān)鍵的功能不是被構(gòu)建到一種結(jié)構(gòu)中去,而是在一個(gè)已經(jīng)構(gòu)建好的系統(tǒng)中被結(jié)構(gòu)執(zhí)行的。靈便性是基于軟件的實(shí)現(xiàn)辦法的優(yōu)勢:在系統(tǒng)出廠后仍能快捷地對其舉行轉(zhuǎn)變。雖然fpga也能現(xiàn)場編程,但轉(zhuǎn)變軟件設(shè)計(jì)要比構(gòu)建硬件快捷地多。因?yàn)橛布蛙浖O(shè)計(jì)存在著差異,因此硬件和軟件

4、的設(shè)計(jì)者所考慮的問題是不同的。不行能只通過轉(zhuǎn)變編程語言的語法,就能改變成軟件工程師。反之,軟件工程師也不行能由于硬件設(shè)計(jì)中需要軟件的參加,就能改變成硬件工程師。因此,不能輕率地就讓軟件工程師加入處處理架構(gòu)的設(shè)計(jì)中來。此外,硬件工程師、軟件工程師或項(xiàng)目經(jīng)理都不會同意將一個(gè)基于硬件辦法的設(shè)計(jì)交給一位軟件工程師去完成。軟件工程師做出關(guān)于硬件的打算時(shí)所用法的辦法,極有可能得到認(rèn)識類似編程語言的另一位軟件工程師的認(rèn)同。1所示,并行流水線是多核分組處理引擎中處理架構(gòu)的關(guān)鍵結(jié)構(gòu)。這一引擎由一個(gè)處理器陣列加上可能存在的硬件加速器構(gòu)成。回答了下面這些問題,就等于完成了一個(gè)設(shè)計(jì)流程:需要多少個(gè)處理器?應(yīng)當(dāng)如何支配

5、這些處理器?每個(gè)處理器需要處理多少代碼和存儲多少本地?cái)?shù)據(jù)?代碼的哪些部分需要硬件加速讓我們來逐一回答這些問題,從而為軟件工程師“組裝”出一套設(shè)計(jì)辦法。處理器的數(shù)量和配置所需處理器的數(shù)量可以通過對周期預(yù)算和執(zhí)行代碼所需的周期數(shù)舉行容易的數(shù)學(xué)計(jì)算得出。當(dāng)你要在規(guī)定的時(shí)光內(nèi)完成工作時(shí),周期預(yù)算就成為一個(gè)關(guān)鍵的參數(shù)。例如舉行分組處理時(shí),數(shù)據(jù)位置舉行劃分。這樣,就能夠圍繞劃分的狀況來舉行硬件設(shè)計(jì),而不用按照硬件來舉行劃分。軟件工程師如何舉行設(shè)計(jì)是一個(gè)關(guān)鍵問題。teja中集成了一組api和一個(gè)處理工具,可以用ansi c來定義硬件平臺。此工具可執(zhí)行程序,創(chuàng)建處理平臺的定義,這些定義能夠被xilinx嵌入式

6、工具舉行處理。api組的內(nèi)容非常豐盛,并且能夠在很靠底的硬件層次上舉行控制,但大多數(shù)軟件工程師不希翼用法它們。因此,teja中還用法參數(shù)化的方式加入了一個(gè)“典型的”流水線定義的辦法。要實(shí)現(xiàn)上述示例中的流水線,只需要在配置頭文件中修改兩個(gè)容易的define陳述式。下面的陳述式定義了一個(gè)兩級的流水線,在第一級用法了4個(gè)引擎,在其次級用法了2個(gè)引擎:圖1 - 并行的流水線,每個(gè)引擎由一個(gè)microblaze處理器、專用存儲器和可選的減負(fù)器構(gòu)成。包不停地到來,而你在下一個(gè)數(shù)據(jù)包到來之前,惟獨(dú)那么多周期來完成你的工作。假如你的代碼需要更長的時(shí)光來執(zhí)行,那么就需要添加更多的處理器。例如,假如周期預(yù)算是10

7、0個(gè)周期,而代碼執(zhí)行需要520個(gè)周期,那么你就需要6個(gè)處理器(520除以100,然后進(jìn)位到整數(shù))。你可以對處理器數(shù)量舉行調(diào)節(jié),但必需滿足預(yù)算的要求。用法teja工具時(shí),可以通過分析來確定周期數(shù)。下一個(gè)問題是如何支配這些處理器。處理這一問題最容易的方法就是確定你是否需要劃分代碼,來創(chuàng)建一個(gè)流水線。流水線用法較少的硬件資源,但會增強(qiáng)等待時(shí)光。假如你需要對代碼舉行劃分,最好挑選在一個(gè)顯然的位置(自然和直觀的位置)舉行。而沒有須要計(jì)算出周期中點(diǎn)精確的位置。圖1 - 并行的流水線,每個(gè)引擎由一個(gè)microblaze處理器、專用存儲器和可選的減負(fù)器構(gòu)成。假設(shè)你要用6個(gè)處理器構(gòu)成一個(gè)兩級流水線。那么你現(xiàn)在就

8、需要計(jì)算出每一級所需的處理器的數(shù)量;先通過分析來確定每個(gè)劃分的周期數(shù),如后再用它去除以周期預(yù)算,就可以得到每一級所需的處理器的數(shù)量。因此,假如第一個(gè)劃分需要380個(gè)周期,則它需要4個(gè)處理器;這樣其次級就需要140個(gè)周期,從而需要兩個(gè)處理器。(兩個(gè)劃分所需的周期數(shù)之和事實(shí)上不一定正巧等于未劃分的程序所需的周期數(shù),但會十分臨近,因此在這里可以近似看作相等。)因此,這個(gè)兩級的流水線的第一級需要4個(gè)處理器,其次級需要2個(gè)處理器。假如有足夠的規(guī)律資源,用法xilinx microblazetm軟核,就能夠?qū)嶓w化任何這樣的流水線。相比較而言,在一個(gè)固定的流水線結(jié)構(gòu)中,每一級的處理器數(shù)量都已經(jīng)預(yù)先確定。因此

9、就只能強(qiáng)制用法一種特地的劃分辦法,實(shí)現(xiàn)這一劃分就會需要相當(dāng)長的時(shí)光。相反地,假如每一級用法的處理器數(shù)量不同,流水線就可以定制,并且可以是不規(guī)章的。因此能夠從任何位置舉行劃分。這樣,就能夠圍繞劃分的狀況來舉行硬件設(shè)計(jì),而不用按照硬件來舉行劃分。軟件工程師如何舉行設(shè)計(jì)是一個(gè)關(guān)鍵問題。teja中集成了一組api和一個(gè)處理工具,可以用ansi c來定義硬件平臺。此工具可執(zhí)行程序,創(chuàng)建處理平臺的定義,這些定義能夠被xilinx嵌入式工具舉行處理。api組的內(nèi)容非常豐盛,并且能夠在很靠底的硬件層次上舉行控制,但大多數(shù)軟件工程師不希翼用法它們。因此,teja中還用法參數(shù)化的方式加入了一個(gè)“典型的”流水線定義

10、的辦法。要實(shí)現(xiàn)上述示例中的流水線,只需要在配置頭文件中修改兩個(gè)容易的define陳述式。下面的陳述式定義了一個(gè)兩級的流水線,在第一級用法了4個(gè)引擎,在其次級用法了2個(gè)引擎:define pipeline_length 2define pipeline_config 4,2;由上述陳述式和預(yù)設(shè)的配置程序,tejacc程序就能構(gòu)建出流水線。固然,無論因?yàn)槭裁淳売墒沟昧魉€的配置需要發(fā)生轉(zhuǎn)變時(shí),只要用法與上面相像的辦法舉行編輯即可。存儲器第三個(gè)問題跟所需的存儲器數(shù)量有關(guān)。在一個(gè)典型的系統(tǒng)中,所能存儲的代碼和數(shù)據(jù)的數(shù)量是固定的。假如你的設(shè)計(jì)沒有滿足這一要求,就需要做大量的工作來將多出的內(nèi)容壓縮到存儲空

11、間中。但是在用法fpga時(shí),只要所需存儲器的數(shù)量在芯片所能提供的范圍之內(nèi),就能夠根據(jù)實(shí)際需要為每個(gè)處理器分配存儲空間。在更典型的狀況下,全部的存儲空間的大小都相同(因?yàn)槊總€(gè)塊的最小容量為2k,這就限制了舉行微調(diào)的程度)。圖2 - 配置并行流水線的流程代碼編譯時(shí)提供所需存儲器的大小,并且可以用法下面的陳述式來編輯配置頭文件,在這個(gè)示例中為代碼和數(shù)據(jù)存儲分配的存儲空間均為8kb:define cpe_code_mem_size_kb 8define cpe_data_mem_size_kb 8用法減負(fù)器來加快處理速度第四個(gè)問題和創(chuàng)建硬件加速器有關(guān)??赡苡幸徊糠殖绦驎加锰嗟闹芷?。要削減周期就需要

12、更多的處理器,而用法硬件加速器就能削減處理器的數(shù)量。只要硬件加速器比其所替代的處理器占用更少的門,就能夠削減囫圇硬件實(shí)現(xiàn)的面積。teja有一項(xiàng)功能就是用來從代碼中挺直創(chuàng)建這樣的加速器或減負(fù)器。通過對程序舉行注釋,此功能就可創(chuàng)建:實(shí)現(xiàn)代碼的硬件規(guī)律通過系統(tǒng)接口在處理器基礎(chǔ)設(shè)施中添加加速器調(diào)用原型替換程序中最初的代碼在將減負(fù)器集成于系統(tǒng)之前,先用法測試臺對其舉行驗(yàn)證。一旦創(chuàng)建了減負(fù)器,周期數(shù)就會削減,因此你需要重新支配處理器。但因?yàn)橹匦露x流水線結(jié)構(gòu)的操作非常便利,因此這是一項(xiàng)很容易的任務(wù)。一個(gè)容易挺直的辦法將前面所述的步驟組合在一起,就產(chǎn)生了圖2中所示的設(shè)計(jì)流程。你可以先定義減負(fù)器(對于顯然需要

13、減負(fù)器的任務(wù)),或在配置好流水線之后再定義減負(fù)器(假如現(xiàn)有的代碼用法了太多的處理器)。軟件工程師所能控制的是一些在他們看來自然和容易的參數(shù),這里用法自然的軟件語言(ansi c)來表達(dá)這些參數(shù)。對硬件舉行實(shí)體化的全部詳情都由tejacc程序來處理,它會為xilinx嵌入式開發(fā)系統(tǒng)(edk)創(chuàng)建一個(gè)項(xiàng)目。剩下的編譯/綜合/布局/布線和產(chǎn)生比特流以及鏡像代碼的工作一致由edk來完成。在這種方式下,電路板可以由硬件工程師設(shè)計(jì),但通過用法fpga,硬件工程師能夠?qū)⒔K于的實(shí)現(xiàn)中硬件配置的關(guān)鍵部分,留給軟件設(shè)計(jì)者去完成。這一辦法還支持在設(shè)計(jì)即將完成時(shí)對電路板舉行改動(例如,因?yàn)樾阅芫売梢獙Υ鎯ζ鞯念愋秃腿萘颗e行改動)。因?yàn)閠eja工具能創(chuàng)建fpga的硬件定義,其中包括存儲器控制器和其他外設(shè),因此設(shè)計(jì)人員可以輕松地調(diào)整電路板。終于的結(jié)果是,因?yàn)橛布?shí)現(xiàn)可以適應(yīng)軟件的變幻,因此軟件設(shè)計(jì)者不再需要花費(fèi)大量的時(shí)光來圍繞一個(gè)固

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論