版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、<p><b> 中文3300字</b></p><p> 基于高性能嵌入式多核MPSoC的多線程系統(tǒng)設(shè)計</p><p> 摘要:本文重點介紹了移植多線程系統(tǒng)(OpenMP),將它作為高性能嵌入式系統(tǒng)中的一種編程模型。一個好的編程模型如OpenMP,將提高程序員的工作效率,縮短產(chǎn)品研發(fā)周期,降低成本。但為了滿足嵌入式開發(fā)人員對系統(tǒng)設(shè)計時所需具備實時性
2、和多線程管理等要求,OpenMP應(yīng)進(jìn)行系統(tǒng)擴(kuò)展,它必須是能夠支持映射不同的軟件任務(wù)或組件,對每個設(shè)備都配置相應(yīng)的體系結(jié)構(gòu)。</p><p><b> 1、背景</b></p><p> 多核和同步多線程的硬件技術(shù)的快速發(fā)展,決定著市場上的各種應(yīng)用程序開發(fā)領(lǐng)域的走向。多核技術(shù)的應(yīng)用,提高了計算能力,降低能耗,擴(kuò)大設(shè)計空間,并且提高了多處理器系統(tǒng)(MPSoCs)在嵌入
3、式應(yīng)用的性能。嵌入式系統(tǒng)將變得更加復(fù)雜,多核硬件也將在同一臺設(shè)備上實現(xiàn)更多的功能。系統(tǒng)的復(fù)雜化使得嵌入式產(chǎn)品開發(fā)中的軟硬件設(shè)計更加困難,使得嵌入式系統(tǒng)的分區(qū),調(diào)度,正確性驗證,質(zhì)量控制和質(zhì)量保證等問題更加嚴(yán)峻。</p><p> 本文將介紹移植OpenMP,以適應(yīng)現(xiàn)有的共享內(nèi)存編程接口,符合高性能嵌入式應(yīng)用的規(guī)范。文中將提出新的語言功能作為指定符號,可以被上一層應(yīng)用程序調(diào)用,它允許非功能性特征的限制,如截止日期
4、,優(yōu)先級等。如何用改寫OpenMP使其能在不同的嵌入式設(shè)備上運行。由于我們也需要明確的接口規(guī)范和部件之間的數(shù)據(jù)傳輸,其結(jié)果將是一個混合型分布/共享的編程模型,該模型可用于各個任務(wù)的嵌入式應(yīng)用程序,以及它們之間的相互作用?;贠penUH中的Open64以及編譯器,這將是評現(xiàn)有系統(tǒng)的重要依據(jù)。</p><p> 2、嵌入式系統(tǒng)設(shè)計2.1 硬件</p><p> 嵌入式系統(tǒng)設(shè)計普遍是在并
5、行系統(tǒng)上實現(xiàn)。 MPSoCs由多個處理單元組成,如RISC處理器、數(shù)字信號處理器(DSP)、特定于應(yīng)用程序的指令的處理器(ASIP)、現(xiàn)場可編程門陣列(FPGA)、SIMD處理器,加速器等。另外其內(nèi)核是異步流處理器,MPSoC的存儲器系統(tǒng)也可以是異步,可以作為處理器訪問的存儲塊的一個部分。德州儀器(TI)達(dá)芬奇[1]和OMAP 3[2]是RISC+ DSP的配置。德州儀器(TI)TNETV3020[3]和TMS320TCI6488[4]
6、,隨著內(nèi)核數(shù)增加和異質(zhì)性增強,同時非對稱芯片多處理(AMP)和對稱芯片多處理(SMP)技術(shù)的發(fā)展 [5] ,擁有的多個子系統(tǒng)的MPSoCs將會在不久將來出現(xiàn)。</p><p><b> 2.2 嵌入式應(yīng)用</b></p><p> 嵌入式系統(tǒng)的應(yīng)用大致可分為事件驅(qū)動計算和數(shù)據(jù)擴(kuò)展。在事件驅(qū)動的應(yīng)用中,像汽車的嵌入式系統(tǒng),它的特征在于信號的輸入及其響應(yīng),一個給定的輸
7、入事件從在嚴(yán)格時間限定中,無法執(zhí)行完數(shù)據(jù)的采集計算。另一種是數(shù)據(jù)擴(kuò)展應(yīng)用,如無線基礎(chǔ)設(shè)施,在此系統(tǒng)中,流經(jīng)設(shè)備的數(shù)據(jù)流量大,并在需要對大量的數(shù)據(jù)流進(jìn)行計算,這種系統(tǒng)的計算復(fù)雜性的增加。這種系統(tǒng)需要有最佳的軟件/硬件配置來實現(xiàn)性能上的條件,同時滿足成本。在無線和多媒體等應(yīng)用中,往往增加系統(tǒng)復(fù)雜性,增多在軟件中的功能,來幫助縮短設(shè)計周期。此外,使用簡化應(yīng)用程序的專用指令集處理器(ASIP),摒棄通用微處理器,來降低成本、提高電源效率[6]。
8、</p><p> 2.3 編程嵌入式系統(tǒng)</p><p> 現(xiàn)有的編程模式對于來創(chuàng)建嵌入式系統(tǒng)是十分不利。嵌入式應(yīng)用程序通常為了滿足嚴(yán)格的性能,要求接近硬件的編程語言,如C語言或匯編語言。由于資源限制的設(shè)備,高性能嵌入式系統(tǒng)使用Java或C是不切實際的?,F(xiàn)今,MPSoCs開發(fā)逐步占主導(dǎo)地位,以適應(yīng)現(xiàn)有的編程語言,而不是設(shè)計新的并行編程語言?,F(xiàn)今編程MPSoCs行業(yè)標(biāo)準(zhǔn)尚未統(tǒng)一,雖然已
9、經(jīng)提出了一些。特別是,多核協(xié)會提出了他們提到的通信API(CAPI)[7],但這種模式尚未形成完整的傳遞模型。</p><p> 總體上,使用不同的編程語言和運行環(huán)境針對于各種不同的系統(tǒng),各個機(jī)制相互作用,設(shè)計和開發(fā)軟件采用松散結(jié)合的方法,為不同的設(shè)備單獨編寫不同的代碼。例如,基于GPU的編程模型[8,9]符合GPU的設(shè)備,但不適合于通用CPU。OpenCL的[10]是最近推出的GPU編程作為一個行業(yè)標(biāo)準(zhǔn)。一些
10、供應(yīng)商已經(jīng)定義了自己的語言或擴(kuò)展了C語言,來量身定制其設(shè)備(例如ClearSpeed公司的CN和英特爾的CT)硬件擴(kuò)展性。</p><p> 數(shù)據(jù)流及其運算往往在嵌入式使用流編程模型時被提及。其特點包括:高數(shù)據(jù)速率、大數(shù)據(jù)容量(數(shù)據(jù)源和數(shù)據(jù)處理單元之間的數(shù)據(jù)流)。如信號和圖像處理、語音和視頻數(shù)據(jù)、數(shù)據(jù)壓縮和加密、手機(jī)基站、財務(wù)建模和HDTV編輯控制臺。流媒體程序通常有兩個層面。每個內(nèi)核中電平控制內(nèi)核執(zhí)行的順序和
11、傳輸?shù)臄?shù)據(jù)流。內(nèi)核級的實際計算每個流元素,從大量的相關(guān)研究表明這種模式優(yōu)勢是顯而易見的 [11,12]。</p><p> 3、OpenMP和OpenUH</p><p> OpenMP是一個被廣泛采用的共享內(nèi)存并行編程接口,提供高層次的編程結(jié)構(gòu),使用戶能夠輕松地調(diào)用觀察應(yīng)用程序的任務(wù)和并行循環(huán)方式。最近通過添加明確的任務(wù)功能[13] ,它的適用范圍更加擴(kuò)大。 由英特爾,ClearSp
12、eed,PGI和CAPS SA公司將OpenMP作為出發(fā)點,提出了異構(gòu)系統(tǒng)的編程模型。</p><p> 3.1 OpenMP的實現(xiàn)</p><p> 大多OpenMP的編譯器用一個簡單的方式(概述[14]或內(nèi)聯(lián)[15]),將OpenMP編譯為多線程代碼。由于在編譯中許多執(zhí)行細(xì)節(jié)往往不知道,所以實際工作必須進(jìn)行動態(tài)分配計算。確保OpenMP結(jié)構(gòu)的存在但又要不妨礙順序優(yōu)化的編譯器,這對于
13、實施的復(fù)雜性很高。因此一個高效的運行時序管理是至關(guān)重要的。</p><p> IBM提供了一個OpenMP編譯器[16],呈現(xiàn)給用戶的共享存儲器,他們主要集中優(yōu)化DMA傳輸和內(nèi)存之間數(shù)據(jù)傳輸。這種方式導(dǎo)致性能降低,但創(chuàng)造一個更加用戶友好的界面[17]。在多個RISC和DSP內(nèi)核組成的MPSoC基礎(chǔ)上,實現(xiàn)了OpenMP。語言的擴(kuò)展提出決定了一個并行區(qū)域?qū)?zhí)行在RISC或DSP平臺,是否支持DMA傳輸。該編譯器[
14、18]實現(xiàn)目標(biāo)與共享變量,減少和同步機(jī)制有關(guān)。但是,他們不依賴于系統(tǒng)的實時性或特定于平臺。</p><p> 4、嵌入式OpenMP編程模型</p><p> 一個統(tǒng)一的編程標(biāo)準(zhǔn),對于不同的設(shè)備在MPSoCs編程十分方便。在本文中首先要考慮的不是OpenMP。隨著其EXOCHI執(zhí)行支持,英特爾建議使用OpenMP。他們的目標(biāo)是促進(jìn)在OpenMP并行區(qū)域的代碼到不同的硬件組件的映射。CA
15、PS[22]在執(zhí)行層面提供了另一種更接近于我們所提出的模型。其設(shè)定的OpenMP擴(kuò)展針對異構(gòu)共享和分布式內(nèi)存系統(tǒng),并規(guī)范程序執(zhí)行的加速器。然而,它們各自的特點在局限范圍內(nèi)。PGI[23]提供了一個基礎(chǔ)對OpenMP的概念異構(gòu)系統(tǒng)編程的代碼區(qū)域被標(biāo)記為加速API。ClearSpeed公司也有原型的OpenMP擴(kuò)展加速器[24]。</p><p> 研究人員已經(jīng)提出了通過擴(kuò)展OpenMP來促進(jìn)流媒體應(yīng)用,并完善任務(wù)
16、結(jié)構(gòu)和支持點與點之間的同步任務(wù)[25]。Carpenter等人[26]提出了一系列OpenMP的指令編譯C程序,將不同代碼編譯成適合各種映射到不同的架構(gòu)的指令。這種方法的缺點是,它并沒有用戶映射配置手動功能。此外,他們的工作在嵌入式架構(gòu)上還未實現(xiàn)。支持流編程模型的ACOTES項目也正在探索 [27]。</p><p> 圖1 用OpenMP定義多個組件,嵌套的并行性和任務(wù)的優(yōu)先級</p><
17、p> 5、內(nèi)核分析:多核DSP下實現(xiàn)的OpenMP</p><p> 在此內(nèi)核分析中,我們提供了一個已經(jīng)初步實現(xiàn)OpenMP,基于TI TMS320C64x+處理器高性能的嵌入式多核(參見圖2)。我們的目標(biāo)是完成以下任務(wù):</p><p> 利用OpenMP提供必要的控制程序執(zhí)行和高層次調(diào)用,開發(fā)共享為主的分布式內(nèi)存編程模型。</p><p> 實現(xiàn)一
18、個適用于各本行業(yè)的處理器編程模型。</p><p> 針對不同的處理器和內(nèi)存配置,開發(fā)相應(yīng)的編譯器工具。</p><p> 結(jié)合OpenUH性能及其開發(fā)工具,實現(xiàn)編程模型。</p><p> 評估整個嵌入式系統(tǒng)應(yī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條指令。所有的指令可以保護(hù)為靜態(tài)變量。該C64x+為德州儀器的C6X系列(圖3),提供了一套整型指令。它有64個靜態(tài)的通用寄存器,劃分為兩個寄存器類別。一小部分的寄存器可用于存儲。TMS320C64x+另外說明填充數(shù)據(jù)SIMD(單指令多數(shù)據(jù)),為
20、可變長的指令,硬件循環(huán)緩沖區(qū)[28,29]。</p><p> 圖3 c64x+處理器內(nèi)核</p><p> TI C6X嵌入式DSP(數(shù)字信號處理)的應(yīng)用,如電信和圖像處理。這些應(yīng)用程序運行需花費大量的時間,程序表現(xiàn)出指令高度并行、計算嚴(yán)格循環(huán)嵌套。程序設(shè)計流水線化是并行開發(fā)的許多功能單元的關(guān)鍵。</p><p><b> 6、結(jié)果</b&g
21、t;</p><p> 從現(xiàn)有的實驗結(jié)果中,來評估各個運算模塊的執(zhí)行時序的性能。我們在C64x + MPSoC環(huán)境上,執(zhí)行一個簡單的OpenMP矩陣乘法的運算程序和一個點積(即減少了一個臨時變量)。在執(zhí)行程序時的進(jìn)程同步,并使用MSGQ等可擴(kuò)展的方法,使相關(guān)的開銷減小,提高了并行應(yīng)用程序的執(zhí)行效率。一個簡單的優(yōu)化,包括內(nèi)核共享內(nèi)存時實現(xiàn)同步,使得系統(tǒng)的開銷顯著減少。</p><p>
22、圖6 各個程序效率和負(fù)載</p><p><b> 7、結(jié)論</b></p><p> 綜上闡述,根據(jù)上述文中闡述的多種增強功能, 將OpenMP的嵌入式系統(tǒng)作適當(dāng)?shù)臄U(kuò)展,將會成為一個合適的和高效的編程模型。高性能嵌入式系統(tǒng)中摒棄了一些通用處理器上的功能,如內(nèi)存管理單元,同步緩存系統(tǒng),以及統(tǒng)一的內(nèi)存存取時間等。進(jìn)一步擴(kuò)展OpenUH,使其成為多核嵌入式DSP系統(tǒng)在
23、高速緩存中的OpenMP編譯器,從而使嵌入式操作系統(tǒng)變得高效。這項工作是在它的早期階段,下一步將全面落實當(dāng)前的OpenMP和進(jìn)一步為嵌入式系統(tǒng)探索語言擴(kuò)展。</p><p><b> 參考文獻(xiàn)</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)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 外文翻譯---基于高性能嵌入式多核mpsoc的多線程系統(tǒng)設(shè)計(英文)
- 外文翻譯---基于高性能嵌入式多核mpsoc的多線程系統(tǒng)設(shè)計
- 外文翻譯---基于高性能嵌入式多核MPSoC的多線程系統(tǒng)設(shè)計(英文).docx
- 外文翻譯---基于高性能嵌入式多核mpsoc的多線程系統(tǒng)設(shè)計
- 外文翻譯---基于高性能嵌入式多核mpsoc的多線程系統(tǒng)設(shè)計
- 外文翻譯---基于高性能嵌入式多核MPSoC的多線程系統(tǒng)設(shè)計(英文).pdf
- 外文翻譯---基于高性能嵌入式多核MPSoC的多線程系統(tǒng)設(shè)計(英文).docx
- 外文翻譯---基于高性能嵌入式多核MPSoC的多線程系統(tǒng)設(shè)計(英文).pdf
- 外文翻譯---基于高性能嵌入式多核MPSoC的多線程系統(tǒng)設(shè)計(英文).docx
- 外文翻譯---基于高性能嵌入式多核MPSoC的多線程系統(tǒng)設(shè)計(英文).pdf
- 2嵌入式系統(tǒng)設(shè)計實驗二多線程
- 2嵌入式系統(tǒng)設(shè)計實驗二多線程
- 基于多線程的嵌入式GUI的設(shè)計與實現(xiàn).pdf
- 基于fpga的嵌入式系統(tǒng)設(shè)計外文翻譯(英文)
- 嵌入式Linux在多核多線程平臺上的移植研究與實現(xiàn).pdf
- 嵌入式瀏覽器多線程機(jī)制研究與設(shè)計.pdf
- 基于fpga的嵌入式系統(tǒng)設(shè)計外文翻譯
- 基于fpga的嵌入式系統(tǒng)設(shè)計外文翻譯
- 嵌入式MPSoC的系統(tǒng)評估方法.pdf
- 基于多線程的嵌入式遠(yuǎn)程監(jiān)控WEB服務(wù)器的設(shè)計與實現(xiàn).pdf
評論
0/150
提交評論