版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、<p><b> 中文3300字</b></p><p> 基于高性能嵌入式多核MPSoC的多線程系統(tǒng)設計</p><p> 摘要:本文重點介紹了移植多線程系統(tǒng)(OpenMP),將它作為高性能嵌入式系統(tǒng)中的一種編程模型。一個好的編程模型如OpenMP,將提高程序員的工作效率,縮短產品研發(fā)周期,降低成本。但為了滿足嵌入式開發(fā)人員對系統(tǒng)設計時所需具備實時性
2、和多線程管理等要求,OpenMP應進行系統(tǒng)擴展,它必須是能夠支持映射不同的軟件任務或組件,對每個設備都配置相應的體系結構。</p><p><b> 1、背景</b></p><p> 多核和同步多線程的硬件技術的快速發(fā)展,決定著市場上的各種應用程序開發(fā)領域的走向。多核技術的應用,提高了計算能力,降低能耗,擴大設計空間,并且提高了多處理器系統(tǒng)(MPSoCs)在嵌入
3、式應用的性能。嵌入式系統(tǒng)將變得更加復雜,多核硬件也將在同一臺設備上實現(xiàn)更多的功能。系統(tǒng)的復雜化使得嵌入式產品開發(fā)中的軟硬件設計更加困難,使得嵌入式系統(tǒng)的分區(qū),調度,正確性驗證,質量控制和質量保證等問題更加嚴峻。</p><p> 本文將介紹移植OpenMP,以適應現(xiàn)有的共享內存編程接口,符合高性能嵌入式應用的規(guī)范。文中將提出新的語言功能作為指定符號,可以被上一層應用程序調用,它允許非功能性特征的限制,如截止日期
4、,優(yōu)先級等。如何用改寫OpenMP使其能在不同的嵌入式設備上運行。由于我們也需要明確的接口規(guī)范和部件之間的數(shù)據傳輸,其結果將是一個混合型分布/共享的編程模型,該模型可用于各個任務的嵌入式應用程序,以及它們之間的相互作用。基于OpenUH中的Open64以及編譯器,這將是評現(xiàn)有系統(tǒng)的重要依據。</p><p> 2、嵌入式系統(tǒng)設計2.1 硬件</p><p> 嵌入式系統(tǒng)設計普遍是在并
5、行系統(tǒng)上實現(xiàn)。 MPSoCs由多個處理單元組成,如RISC處理器、數(shù)字信號處理器(DSP)、特定于應用程序的指令的處理器(ASIP)、現(xiàn)場可編程門陣列(FPGA)、SIMD處理器,加速器等。另外其內核是異步流處理器,MPSoC的存儲器系統(tǒng)也可以是異步,可以作為處理器訪問的存儲塊的一個部分。德州儀器(TI)達芬奇[1]和OMAP 3[2]是RISC+ DSP的配置。德州儀器(TI)TNETV3020[3]和TMS320TCI6488[4]
6、,隨著內核數(shù)增加和異質性增強,同時非對稱芯片多處理(AMP)和對稱芯片多處理(SMP)技術的發(fā)展 [5] ,擁有的多個子系統(tǒng)的MPSoCs將會在不久將來出現(xiàn)。</p><p><b> 2.2 嵌入式應用</b></p><p> 嵌入式系統(tǒng)的應用大致可分為事件驅動計算和數(shù)據擴展。在事件驅動的應用中,像汽車的嵌入式系統(tǒng),它的特征在于信號的輸入及其響應,一個給定的輸
7、入事件從在嚴格時間限定中,無法執(zhí)行完數(shù)據的采集計算。另一種是數(shù)據擴展應用,如無線基礎設施,在此系統(tǒng)中,流經設備的數(shù)據流量大,并在需要對大量的數(shù)據流進行計算,這種系統(tǒng)的計算復雜性的增加。這種系統(tǒng)需要有最佳的軟件/硬件配置來實現(xiàn)性能上的條件,同時滿足成本。在無線和多媒體等應用中,往往增加系統(tǒng)復雜性,增多在軟件中的功能,來幫助縮短設計周期。此外,使用簡化應用程序的專用指令集處理器(ASIP),摒棄通用微處理器,來降低成本、提高電源效率[6]。
8、</p><p> 2.3 編程嵌入式系統(tǒng)</p><p> 現(xiàn)有的編程模式對于來創(chuàng)建嵌入式系統(tǒng)是十分不利。嵌入式應用程序通常為了滿足嚴格的性能,要求接近硬件的編程語言,如C語言或匯編語言。由于資源限制的設備,高性能嵌入式系統(tǒng)使用Java或C是不切實際的。現(xiàn)今,MPSoCs開發(fā)逐步占主導地位,以適應現(xiàn)有的編程語言,而不是設計新的并行編程語言?,F(xiàn)今編程MPSoCs行業(yè)標準尚未統(tǒng)一,雖然已
9、經提出了一些。特別是,多核協(xié)會提出了他們提到的通信API(CAPI)[7],但這種模式尚未形成完整的傳遞模型。</p><p> 總體上,使用不同的編程語言和運行環(huán)境針對于各種不同的系統(tǒng),各個機制相互作用,設計和開發(fā)軟件采用松散結合的方法,為不同的設備單獨編寫不同的代碼。例如,基于GPU的編程模型[8,9]符合GPU的設備,但不適合于通用CPU。OpenCL的[10]是最近推出的GPU編程作為一個行業(yè)標準。一些
10、供應商已經定義了自己的語言或擴展了C語言,來量身定制其設備(例如ClearSpeed公司的CN和英特爾的CT)硬件擴展性。</p><p> 數(shù)據流及其運算往往在嵌入式使用流編程模型時被提及。其特點包括:高數(shù)據速率、大數(shù)據容量(數(shù)據源和數(shù)據處理單元之間的數(shù)據流)。如信號和圖像處理、語音和視頻數(shù)據、數(shù)據壓縮和加密、手機基站、財務建模和HDTV編輯控制臺。流媒體程序通常有兩個層面。每個內核中電平控制內核執(zhí)行的順序和
11、傳輸?shù)臄?shù)據流。內核級的實際計算每個流元素,從大量的相關研究表明這種模式優(yōu)勢是顯而易見的 [11,12]。</p><p> 3、OpenMP和OpenUH</p><p> OpenMP是一個被廣泛采用的共享內存并行編程接口,提供高層次的編程結構,使用戶能夠輕松地調用觀察應用程序的任務和并行循環(huán)方式。最近通過添加明確的任務功能[13] ,它的適用范圍更加擴大。 由英特爾,ClearSp
12、eed,PGI和CAPS SA公司將OpenMP作為出發(fā)點,提出了異構系統(tǒng)的編程模型。</p><p> 3.1 OpenMP的實現(xiàn)</p><p> 大多OpenMP的編譯器用一個簡單的方式(概述[14]或內聯(lián)[15]),將OpenMP編譯為多線程代碼。由于在編譯中許多執(zhí)行細節(jié)往往不知道,所以實際工作必須進行動態(tài)分配計算。確保OpenMP結構的存在但又要不妨礙順序優(yōu)化的編譯器,這對于
13、實施的復雜性很高。因此一個高效的運行時序管理是至關重要的。</p><p> IBM提供了一個OpenMP編譯器[16],呈現(xiàn)給用戶的共享存儲器,他們主要集中優(yōu)化DMA傳輸和內存之間數(shù)據傳輸。這種方式導致性能降低,但創(chuàng)造一個更加用戶友好的界面[17]。在多個RISC和DSP內核組成的MPSoC基礎上,實現(xiàn)了OpenMP。語言的擴展提出決定了一個并行區(qū)域將執(zhí)行在RISC或DSP平臺,是否支持DMA傳輸。該編譯器[
14、18]實現(xiàn)目標與共享變量,減少和同步機制有關。但是,他們不依賴于系統(tǒng)的實時性或特定于平臺。</p><p> 4、嵌入式OpenMP編程模型</p><p> 一個統(tǒng)一的編程標準,對于不同的設備在MPSoCs編程十分方便。在本文中首先要考慮的不是OpenMP。隨著其EXOCHI執(zhí)行支持,英特爾建議使用OpenMP。他們的目標是促進在OpenMP并行區(qū)域的代碼到不同的硬件組件的映射。CA
15、PS[22]在執(zhí)行層面提供了另一種更接近于我們所提出的模型。其設定的OpenMP擴展針對異構共享和分布式內存系統(tǒng),并規(guī)范程序執(zhí)行的加速器。然而,它們各自的特點在局限范圍內。PGI[23]提供了一個基礎對OpenMP的概念異構系統(tǒng)編程的代碼區(qū)域被標記為加速API。ClearSpeed公司也有原型的OpenMP擴展加速器[24]。</p><p> 研究人員已經提出了通過擴展OpenMP來促進流媒體應用,并完善任務
16、結構和支持點與點之間的同步任務[25]。Carpenter等人[26]提出了一系列OpenMP的指令編譯C程序,將不同代碼編譯成適合各種映射到不同的架構的指令。這種方法的缺點是,它并沒有用戶映射配置手動功能。此外,他們的工作在嵌入式架構上還未實現(xiàn)。支持流編程模型的ACOTES項目也正在探索 [27]。</p><p> 圖1 用OpenMP定義多個組件,嵌套的并行性和任務的優(yōu)先級</p><
17、p> 5、內核分析:多核DSP下實現(xiàn)的OpenMP</p><p> 在此內核分析中,我們提供了一個已經初步實現(xiàn)OpenMP,基于TI TMS320C64x+處理器高性能的嵌入式多核(參見圖2)。我們的目標是完成以下任務:</p><p> 利用OpenMP提供必要的控制程序執(zhí)行和高層次調用,開發(fā)共享為主的分布式內存編程模型。</p><p> 實現(xiàn)一
18、個適用于各本行業(yè)的處理器編程模型。</p><p> 針對不同的處理器和內存配置,開發(fā)相應的編譯器工具。</p><p> 結合OpenUH性能及其開發(fā)工具,實現(xiàn)編程模型。</p><p> 評估整個嵌入式系統(tǒng)應用程序的性能。</p><p> 圖2 多核C64+多處理器單晶片框圖</p><p> 5.1、
19、多核DSP系統(tǒng)5.1.1 、TMS320C64x+ VLIW DSP</p><p> TMS320C64x+是一個完全流水線化的VLIW處理器,它在每個周期執(zhí)行的8條指令。所有的指令可以保護為靜態(tài)變量。該C64x+為德州儀器的C6X系列(圖3),提供了一套整型指令。它有64個靜態(tài)的通用寄存器,劃分為兩個寄存器類別。一小部分的寄存器可用于存儲。TMS320C64x+另外說明填充數(shù)據SIMD(單指令多數(shù)據),為
20、可變長的指令,硬件循環(huán)緩沖區(qū)[28,29]。</p><p> 圖3 c64x+處理器內核</p><p> TI C6X嵌入式DSP(數(shù)字信號處理)的應用,如電信和圖像處理。這些應用程序運行需花費大量的時間,程序表現(xiàn)出指令高度并行、計算嚴格循環(huán)嵌套。程序設計流水線化是并行開發(fā)的許多功能單元的關鍵。</p><p><b> 6、結果</b&g
21、t;</p><p> 從現(xiàn)有的實驗結果中,來評估各個運算模塊的執(zhí)行時序的性能。我們在C64x + MPSoC環(huán)境上,執(zhí)行一個簡單的OpenMP矩陣乘法的運算程序和一個點積(即減少了一個臨時變量)。在執(zhí)行程序時的進程同步,并使用MSGQ等可擴展的方法,使相關的開銷減小,提高了并行應用程序的執(zhí)行效率。一個簡單的優(yōu)化,包括內核共享內存時實現(xiàn)同步,使得系統(tǒng)的開銷顯著減少。</p><p>
22、圖6 各個程序效率和負載</p><p><b> 7、結論</b></p><p> 綜上闡述,根據上述文中闡述的多種增強功能, 將OpenMP的嵌入式系統(tǒng)作適當?shù)臄U展,將會成為一個合適的和高效的編程模型。高性能嵌入式系統(tǒng)中摒棄了一些通用處理器上的功能,如內存管理單元,同步緩存系統(tǒng),以及統(tǒng)一的內存存取時間等。進一步擴展OpenUH,使其成為多核嵌入式DSP系統(tǒng)在
23、高速緩存中的OpenMP編譯器,從而使嵌入式操作系統(tǒng)變得高效。這項工作是在它的早期階段,下一步將全面落實當前的OpenMP和進一步為嵌入式系統(tǒng)探索語言擴展。</p><p><b> 參考文獻</b></p><p> [1] T. Instruments, TMS320DM6467 Digital Media System-on-Chip, December 2
24、007.</p><p> [2] ——, “Omap 3 family of multimedia applications processors,”http://focus.ti.com/pdfs/wtbu/ti omap3family.pdf,2007.</p><p> [3] ——, “TNETV3020 carrier infrastructure platform,” h
25、ttp://focus.ti.com/lit/ml/spat174/spat174.pdf.</p><p> [4] ——, “TMS320TCI6488 DSP platform,” http://focus.ti.com/lit/ml/sprt415/sprt415.pdf.</p><p> [5] G. Martin, “Overview of the MPSoC desig
26、n challenge,” inDAC ’06: Proceedings of the 43rd annual conference on Design automation. Santa Clara, CA, USA: ACM, 2006,pp. 274 – 279.</p><p> [6] P. G. Paulin, C. Liem, M. Cornero, F. Nacabal, andG. Gooss
27、ens, “Embedded Software in Real-Time Signal Processing Systems: Application and Architecture Trends,” in Proceedings of the IEEE. IEEE, 1997, pp. 419–433.</p><p> [7] T. M. Association, http://www.multicore
28、-association.com/workgroup/ComAPI.html.</p><p> [8] GPGPU, “Gpgpu: General purpose computation using graphics hardware,” http://www.gpgpu.org.</p><p> [9] NVIDIA, “Cuda: Compute unified device
29、 architecture,” http://www.nvidia.com/object/cuda home.html.</p><p> [10] “OpenCL 1.0 Specification,” http://www.khronos.org/opencl/.</p><p> [11] S. Amarasinghe, M. I. Gordon, M. Karczmarek,
30、J. Lin,D. Maze, R. M. Rabbah, and W. Thies, “Language and compiler design for streaming applications,” Int. J. Parallel Program., vol. 33, no. 2, pp. 261–278, 2005.</p><p> [12] I. Buck, T. Foley, D. Horn,
31、J. Sugerman, K. Fatahalian,M. Houston, and P. Hanrahan, “Brook for gpus: stream computing on graphics hardware,” in SIGGRAPH ’04: ACM SIGGRAPH 2004 Papers. New York, NY, USA: ACM, 2004,pp. 777–786.</p><p>
32、[13] E. Ayugade, N. Copty, A. Duran, J. Hoeflinger, Y. Lin,F. Massaioli, E. Su, P. Unnikrishnan, and G. Zhang, “A proposal for task parallelism in openmp,” in Proceedings of the 3rd International Workshop on OpenMP, June
33、 2007.</p><p> [14] C. Brunschen and M. Brorsson, “OdinMP/CCp - a portable implementation of Open MP for C,” Concurrency – Practice and Experience, vol. 12, no. 12, pp. 1193–1203, 2000.</p><p>
34、 [15] C. Liao, O. Hernandez, B. Chapman, W. Chen, and W. Zheng, “OpenUH: An optimizing, portable OpenMP compiler,” in 12th Workshop on Compilers for Parallel Computers, 2006.</p><p> [16] A. Eichenberger,
35、K. O’Brien, P. Wu, T. Chen, P. Oden,D. Prener, J. Shepherd, B. So, Z. Sura, A. Wang, T. Zhang,P. Zhao, and M. Gschwind, “Optimizing compiler for a cell processor,” in PACT ’05: Proceedings of the 14th International Confe
36、rence on Parallel Architectures and Compilation Techniques. Washington, DC, USA: IEEE Computer Society, 2005, pp. 161–172.</p><p> [17] F. Liu and V. Chaudhary, “A practical Open MP compiler for system on c
37、hips,” in Open MP Shared Memory Parallel Programming: International Workshop on Open MP Applications</p><p> [18] W.-C. Jeun and S. Ha, “Effective open mp implementation and translation for multiprocessor s
38、ystem-on-chip without using os,” in ASP-DAC ’07: Proceedings of the 2007 conference on Asia South Pacific design automation. Washington, DC,USA: IEEE Computer Society, 2007, pp. 44–49.[19] B. M. Chapman, L. Huang, H. Jin
39、, G. Jost, and B. R.de Supinski, “Toward enhancing open mp’s work-sharing directives,” in Europar 2006, 2006, pp. 645–654.</p><p> [20] V. Bui, O. Hernandez, B. Chapman, R. Kufrin, P. Gopalkrishnan, and D.
40、Tafti, “Towards an implementation of the open mp collector api,” in PARCO, 2007.</p><p> [21] O. Hernandez, F. Song, B. Chapman, J. Dongarra, B. Mohr, S. Moore, and F. Wolf, “Performance instrumentation and
41、 compiler optimizations for mpi/open mp applications,” in Second International Workshop on Open MP, 2006.</p><p> [22] C. Enterprise, “Hmpp: A hybrid multicore parallel programming platform,”http://www.caps
42、-entreprise.com/en/ documentation/caps hmpp product brief.pdf.</p><p> [23] “PGI Fortran & C Accelerator Compilers and Programming Model,” http://www.pgroup.com/lit/pgi whitepaper accpre.pdf.</p>
43、<p> [24] B. Gaster and C. Bradley, “Exploiting loop-level parallelism for simd arrays using openmp,” in Proceedings of IWOMP 2007, June, 2007.</p><p> [25] M. Gonzalez, E. Ayguade, X. Martorell, and
44、 J. Labarta, “Exploiting pipelined executions in openmp,” in International Conference on Parallel Processing, 2003, pp. 153 – 160.</p><p> [26] P. Carpenter, D. Rodenas, X. Martorell, A. Ramirez, and E. Ayg
45、uade, “A streaming machine description and programming model.” in SAMOS, ser. Lecture Notes in Computer Science. Springer, 2007, pp. 107–116.</p><p> [27] “Acotes:Advanced Compiler Technologies for Embedded
46、 Streaming,” http://www.hitech-projects.com/euprojects/ ACOTES.</p><p> [28] E. Stotzer and E. Leiss, “Modulo scheduling for the tms320c6x vliw dsp architecture,” in LCTES ’99: Proceedings of the ACM SIGPLA
47、N 1999 workshop on Languages, compilers, and tools for embedded systems. NewYork,NY,USA: ACM, 1999, pp. 28–34.</p><p> [29] T. Hahn, E. Stotzer, and M. Asal., “Compilation strategies for reducing code size
48、on a vliw with variable length instructions,” in High Performance Embedded Architectures and Compilers (HIPEAC’08), 2008,pp.147–160.</p><p> [30] T. Instruments, “Tms320 dsp/bios user’s guide, spru423f,” Te
49、ch. Rep., Nov. 2004.</p><p> [31] ——, “Tms320c6000 dsp/bios 5.32 application programming interface (api) reference guide, spru403o,” Tech. Rep., Sept. 2007.</p><p> [32] O. ARB, “Openmp applic
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 外文翻譯---基于高性能嵌入式多核mpsoc的多線程系統(tǒng)設計(英文)
- 外文翻譯---基于高性能嵌入式多核mpsoc的多線程系統(tǒng)設計
- 外文翻譯---基于高性能嵌入式多核MPSoC的多線程系統(tǒng)設計(英文).docx
- 外文翻譯---基于高性能嵌入式多核mpsoc的多線程系統(tǒng)設計
- 外文翻譯---基于高性能嵌入式多核mpsoc的多線程系統(tǒng)設計
- 外文翻譯---基于高性能嵌入式多核MPSoC的多線程系統(tǒng)設計(英文).pdf
- 外文翻譯---基于高性能嵌入式多核MPSoC的多線程系統(tǒng)設計(英文).docx
- 外文翻譯---基于高性能嵌入式多核MPSoC的多線程系統(tǒng)設計(英文).pdf
- 外文翻譯---基于高性能嵌入式多核MPSoC的多線程系統(tǒng)設計(英文).docx
- 外文翻譯---基于高性能嵌入式多核MPSoC的多線程系統(tǒng)設計(英文).pdf
- 2嵌入式系統(tǒng)設計實驗二多線程
- 2嵌入式系統(tǒng)設計實驗二多線程
- 基于多線程的嵌入式GUI的設計與實現(xiàn).pdf
- 基于fpga的嵌入式系統(tǒng)設計外文翻譯(英文)
- 嵌入式Linux在多核多線程平臺上的移植研究與實現(xiàn).pdf
- 嵌入式瀏覽器多線程機制研究與設計.pdf
- 基于fpga的嵌入式系統(tǒng)設計外文翻譯
- 基于fpga的嵌入式系統(tǒng)設計外文翻譯
- 嵌入式MPSoC的系統(tǒng)評估方法.pdf
- 基于多線程的嵌入式遠程監(jiān)控WEB服務器的設計與實現(xiàn).pdf
評論
0/150
提交評論