多核嵌入式處理器開發(fā)工具及技術(shù)方案
多核處理器的應(yīng)用將為設(shè)備制造廠商解決復(fù)雜和成本問題并快速開發(fā)豐富多樣的功能找到新的有效途徑,對(duì)多核編程和調(diào)試的支持力度也正在日益增加。實(shí)時(shí)操作系統(tǒng)(RTOS)和工具供應(yīng)商正在不斷改進(jìn)以模型為主導(dǎo)的設(shè)計(jì)、虛擬原型以及C語(yǔ)言編譯?,F(xiàn)在我們來一一介紹目前各大公司對(duì)多核開發(fā)推出或升級(jí)的產(chǎn)品和支持服務(wù)。
QNX的多核分割技術(shù)
QNX軟件系統(tǒng)公司創(chuàng)建于1980年,總部在加拿大。QNX繼續(xù)著正確的選擇-在正確的時(shí)間選擇正確的創(chuàng)新之路。隨著市場(chǎng)重心轉(zhuǎn)變到對(duì)于雙核和多核處理器的應(yīng)用,QNX果斷地預(yù)測(cè)多核架構(gòu)正在成為迎合性能、功率和系統(tǒng)整合性等方面挑戰(zhàn)的先進(jìn)的解決之道。多核硬件的出現(xiàn)改寫了過去通常使用單處理器設(shè)計(jì)的嵌入式軟件開發(fā)商的規(guī)則。由此,獲得針對(duì)多核平臺(tái)的最優(yōu)解決方案變得空前重要。
基于大范圍可升級(jí)的QNX Neutrino? RTOS,客戶可以在一個(gè)豐富的多處理器解決方案組合中選擇并應(yīng)用最適合其產(chǎn)品需求的模型。除了提供不對(duì)稱(AMP)和對(duì)稱多處理(SMP)能力,QNX還倡導(dǎo)一個(gè)創(chuàng)新的結(jié)合了SMP的高級(jí)資源管理和AMP的應(yīng)用控制的混合功能-Bound Multiprocessing(BMP),BMP是一個(gè)打破常規(guī)的、簡(jiǎn)化了核遷移并對(duì)多核以及更高級(jí)設(shè)計(jì)具有前瞻性證明的先進(jìn)技術(shù)。
QNX 針對(duì)多核處理器的首個(gè)安全的存儲(chǔ)器和CPU分割功能。分割功能經(jīng)常出現(xiàn)在安全性非常重要的應(yīng)用中,因?yàn)樗艽_保CPU時(shí)間和存儲(chǔ)器所用的資源,并保證當(dāng)某一部分發(fā)生問題或受到入侵時(shí),不會(huì)影響應(yīng)用中的其余部分。
分割目前僅限于單處理器,將分割信息傳達(dá)給多核系統(tǒng)是一件很困難的事情,因?yàn)樾枰诙鄠€(gè)處理器間復(fù)制分割信息。將所有信息轉(zhuǎn)移到多核是項(xiàng)全新的嘗試,這需要設(shè)計(jì)人員靈活地將分割信息映射到多核架構(gòu)上。
借助QNX公司的多核分割技術(shù),Neutrino RTOS的用戶可以將一個(gè)處理器分割成兩個(gè)部分,當(dāng)然,用戶也可以選擇一個(gè)分割部分包含多個(gè)處理器。該技術(shù)可用于具有相似架構(gòu)的對(duì)稱多核系統(tǒng)。
上述分割技術(shù)可以處理多達(dá)8個(gè)相同內(nèi)核,而且針對(duì)某些架構(gòu),這個(gè)數(shù)字甚至可以高達(dá)32個(gè)。目前該技術(shù)支持ARM、MIPS、PowerPC和X86處理器。此外,用戶還可選用QNX公司現(xiàn)有的“混合多處理(BMP)”功能,該功能將特定的線程或應(yīng)用鎖定在一個(gè)特定的CPU內(nèi)核組內(nèi)。QNX公司的Momentics套件提供的可視化工具,則有助于優(yōu)化和調(diào)試多核設(shè)計(jì)。
風(fēng)河系統(tǒng)Workbench
風(fēng)河系統(tǒng)公司目前也在其Workbench On-Chip Debugging Edition產(chǎn)品中加入了對(duì)多核的支持。該產(chǎn)品包含一個(gè)可聯(lián)網(wǎng)、基于JTAG接口的在線仿真器,能支持多核和多處理應(yīng)用。
該產(chǎn)品包含一個(gè)可聯(lián)網(wǎng)、基于JTAG接口的在線仿真器,可以在單個(gè)掃描鏈上連接多達(dá)128個(gè)處理器,而且能同時(shí)調(diào)試多達(dá)8個(gè)這樣的內(nèi)核,能進(jìn)行對(duì)稱或非對(duì)稱多處理。用戶可以在單一調(diào)試環(huán)境中調(diào)試多個(gè)內(nèi)核。
最新的Workbench 2.6.1 On-Chip Debugging Edition版本能支持更多數(shù)量的新型處理器,包括Broadcom SiByte系列中的幾款、英特爾Xscale IOP342、飛思卡爾MPC8641D 2.0T以及PA Semi的PA6T-1682M。另外,該版本允許用戶在不需要內(nèi)核指令的情況下調(diào)試Linux內(nèi)核、用戶程序和共享庫(kù),而且它還提供新的Eclipse插件“瀏覽”工具。
ARM Realview開發(fā)環(huán)境
IP供應(yīng)商倒是早早就為多核做好了準(zhǔn)備。行業(yè)領(lǐng)頭羊ARM在2005年就推出多核處理器ARM11 MPCore,它可以配置成包含1個(gè)到4個(gè)處理器,具有高達(dá)2600Dhrystone MIPS的性能。瑞薩計(jì)劃在2008年大量生產(chǎn)采用ARM11 MPCore處理器的第一種產(chǎn)品,其主要目標(biāo)是數(shù)字家庭電子產(chǎn)品和辦公室自動(dòng)化系統(tǒng)。
ARM Realview開發(fā)環(huán)境同時(shí)支持單核和多核應(yīng)用。不久前,ARM公司宣布了RealView開發(fā)工具套件3.1版的許多新增功能,其中包括首次支持最新的Cortex-M1處理器。Cortex-M1是針對(duì)FPGA而設(shè)計(jì)的一款A(yù)RM產(chǎn)品。
Realview 3.1還增強(qiáng)了對(duì)ARM CoreSight調(diào)試與跟蹤技術(shù)的支持力度:為調(diào)試與跟蹤增加多個(gè)跟蹤數(shù)據(jù)流,并減少引腳數(shù)目;增加了用于ARM Neon SIMD架構(gòu)的向量化編譯器;提供用于微控制器應(yīng)用的新型microlibC庫(kù)。新版Realview還支持ARM DSP指令集擴(kuò)展;性能有了更大的改進(jìn),并針對(duì)ARM處理器進(jìn)行了調(diào)整;進(jìn)一步增強(qiáng)了Eclipse項(xiàng)目管理。
Tensilica公司
可配置處理器的IP提供商Tensilica公司IP核的尺寸更小,可靈活配置總線、緩存、指令集、執(zhí)行數(shù)據(jù)路徑、I/O端口和寄存器,因此也更容易實(shí)現(xiàn)多核架構(gòu),其已有的成功應(yīng)用更為驚人,在Cisco的CRS-1 Terabit路由器中,Cisco的工程師用188顆Tensilica Xtensa處理器內(nèi)核搭建出了SPP(Silicon Packet Processor)引擎,處理能力高達(dá)40Gbps,在16插槽的線路卡機(jī)架中,可以實(shí)現(xiàn)1.2Tbps的總交換容量。Tensilica的處理器還能夠與ARM、MIPS處理器集成在一起,構(gòu)成非對(duì)稱多處理器架構(gòu)。
NI LabVIEW 8.5
美國(guó)國(guó)家儀器公司(NI)最新發(fā)布的LabVIEW 8.5為用于測(cè)試、控制與嵌入式系統(tǒng)開發(fā)的最新版圖形化設(shè)計(jì)平臺(tái)。構(gòu)建在已投資10年的多線程技術(shù)之上,LabVIEW 8.5通過直覺并行數(shù)據(jù)流語(yǔ)言,簡(jiǎn)化了多核心與FPGA架構(gòu)的應(yīng)用開發(fā)。
通過采用新一代的處理器,工程師與科學(xué)家必須開始考慮,如何讓軟件獲得多核心與FGPA架構(gòu)系統(tǒng)的潛在性能。通過LabVIEW的并行數(shù)據(jù)流語(yǔ)言,用戶可輕松將用于數(shù)據(jù)流、控制、分析與信號(hào)處理的應(yīng)用映射至多核心與FPGA架構(gòu)。以早期版本的自動(dòng)化多線程功能為基礎(chǔ),LabVIEW 8.5 根據(jù)可用的核心數(shù)量,調(diào)整用戶的應(yīng)用,并提供增強(qiáng)的線程安全驅(qū)動(dòng)程序與鏈接庫(kù),從而提升RF、高速數(shù)字I/O與混合信號(hào)測(cè)試應(yīng)用的吞吐量。
LabVIEW 8.5也可通LabVIEW Real-Time環(huán)境,提供對(duì)稱多任務(wù)處理功能,讓嵌入式與工業(yè)級(jí)系統(tǒng)的工程師不需犧牲特定系統(tǒng)性能,即可跨多重核心自動(dòng)下載平衡任務(wù)。利用最新版本的LabVIEW,用戶可手動(dòng)指派部份程序代碼至特定處理器核心,以微調(diào)實(shí)時(shí)系統(tǒng)或?qū)r(shí)間重要的程序代碼隔離到專用核心。為了滿足多核心開發(fā)時(shí)日漸增多的除錯(cuò)與最優(yōu)化程序代碼的挑戰(zhàn),工程師與科學(xué)家現(xiàn)在可以使用新的 NI Real-Time Execution Trace工具組 2.0,以真實(shí)地顯示程序代碼區(qū)段之間的時(shí)序關(guān)系以及正在執(zhí)行程序代碼的個(gè)別線程與處理核心。
Portland Group PGI 7.0編譯器
意法半導(dǎo)體全資子公司Portland Group 3月份上市的針對(duì)多核64位處理器優(yōu)化的PGI 7.0編譯器。PGI編譯器和開發(fā)工具被廣泛用于高性能計(jì)算技術(shù)(HPC),即以復(fù)雜過程的建模和仿真為主的技術(shù)計(jì)算領(lǐng)域,如海洋建模、天氣預(yù)報(bào)、地震分析、生物信息分析技術(shù)等。把軟件程序轉(zhuǎn)換成計(jì)算機(jī)能夠理解的二進(jìn)制指令的PGI編譯器是高性能計(jì)算領(lǐng)域公認(rèn)的最好的軟件,在各種應(yīng)用領(lǐng)域和產(chǎn)品性能評(píng)測(cè)中表現(xiàn)出世界領(lǐng)先的性能,經(jīng)常被引用為工業(yè)的性能及可靠性標(biāo)準(zhǔn)。
帶有直接連通的AMD多核處理器架構(gòu)配合PGI的編譯器可以為許多廣泛使用64位的工程和科學(xué)應(yīng)用(如地理物理建模、機(jī)械工程、非線性動(dòng)力學(xué)、計(jì)算化學(xué)和高能物理)帶來性能上的提升。
PGI新編譯器的評(píng)估版可以從Portland Group網(wǎng)站www.pgroup.com下載,用戶需要注冊(cè)。
The MathWorks MATLAB 7.5
The MathWorks不久前也宣布在MATLAB和分布式計(jì)算工具中推出四項(xiàng)增強(qiáng)功能,提供更高的性能和大型數(shù)據(jù)集處理能力。MATLAB現(xiàn)在包括了針對(duì)多核系統(tǒng)和64位Solaris平臺(tái)的多線程計(jì)算支持。
借助多線程功能,使用元素智能(element-wise)和線性代數(shù)函數(shù)的MATLAB應(yīng)用程序可通過同時(shí)運(yùn)行多線程來提升性能從而充分利用多核機(jī)器。最后,借助64位Solaris支持,使用MATLAB的工程師還可以利用64位計(jì)算的優(yōu)勢(shì)來開發(fā)涉及大型數(shù)據(jù)集和計(jì)算密集型任務(wù)的應(yīng)用程序。MATLAB 7.5適用于Microsoft Windows, Solaris, Linux, and Macintosh平臺(tái)。
Hi-Tech Software的OCG
澳大利亞Hi-Tech Software公司推出了一種新型編譯器技術(shù),該技術(shù)可能在今后會(huì)對(duì)多核設(shè)計(jì)有所幫助,但是目前,其主要瞄準(zhǔn)的還是單處理器,特別是MCU。這種名為Omniscient Code Generation(OCG)的新技術(shù),據(jù)稱可以同時(shí)針對(duì)所有程序模塊生成目標(biāo)代碼,從而提供真正的全局優(yōu)化。
在編譯時(shí),用戶不需要逐一模塊或逐一功能地檢查程序,因?yàn)镺CG可以查找整個(gè)程序。對(duì)于擁有多個(gè)尋址空間的小型芯片來說,OCG可以幫助實(shí)現(xiàn)數(shù)據(jù)自動(dòng)化分布;對(duì)擁有多個(gè)寄存器集的大型芯片來說,OCG可以執(zhí)行完整的程序分析,并對(duì)寄存器分配進(jìn)行優(yōu)化。
OCG可以檢查所有代碼模塊,收集寄存器、堆棧、指針、對(duì)象和變量聲明上的數(shù)據(jù),并利用這些信息來確保模塊間的一致變量和對(duì)象聲明、優(yōu)化堆棧和寄存器分配,以及刪除無用的變量和函數(shù)。
Stubbs表示,OCG技術(shù)所產(chǎn)生的代碼比Hi-Tech公司現(xiàn)有編譯器的代碼緊湊20%,比競(jìng)爭(zhēng)對(duì)手的編譯器代碼緊湊50%。“編程器可以編寫看起來像標(biāo)準(zhǔn)ANSI C的代碼,而不需要任何特別的擴(kuò)展來處理內(nèi)在架構(gòu)。”他表示。
OCG適用于Microchip的PIC18 MCU系列以及Cypress的混合信號(hào)控制器。Hi-Tech公司還計(jì)劃增加對(duì)所有Microchip其它MCU和DSP的支持,以及對(duì)基于ARM7的MCU和8051 MCU的支持。
Virtutech Simics VMP
Virtutech是一家為軟件開發(fā)提供虛擬原型系統(tǒng)的公司,近日推出了新產(chǎn)品Simics VMP。Simics VMP是Simics開發(fā)套件中的一個(gè)模塊,它能夠借助英特爾和AMD處理器中的硬件虛擬化功能使代碼自行運(yùn)行。傳統(tǒng)上被用于同一服務(wù)器以運(yùn)行多個(gè)OS的片上虛擬化功能,被首次應(yīng)用到軟件開發(fā)中來。
Virtutech公司還將推出Simics 3.2,該版本增加了一些新功能,可以幫助用戶在現(xiàn)有流程中集成虛擬化軟件開發(fā)。新版本改進(jìn)了與第三方調(diào)試工具的集成,并增加了對(duì)符號(hào)表的支持。想在多核系統(tǒng)上簡(jiǎn)單、低成本開發(fā)高質(zhì)量軟件,唯一的方法就是采用虛擬化軟件開發(fā)。
Telelogic AB公司Rhapsody 7.1
想要簡(jiǎn)便地創(chuàng)建復(fù)雜軟件,方法之一就是利用統(tǒng)一建模語(yǔ)言(UML)或系統(tǒng)建模語(yǔ)言(SysML)進(jìn)行以模型為主導(dǎo)的開發(fā)。Telelogic AB公司展示了其Rhapsody系列的增強(qiáng)性能,而改進(jìn)的目的正是為了更好地為以模型為主導(dǎo)的開發(fā)服務(wù)。改進(jìn)后的Rhapsody 7.1更加緊密地符合SysML1.0的要求,能更好地支持靈活的開發(fā)流程。新的Rhapsody電信包(Telecom package)中囊括了最適合電信使用的工具集。Telelogic SDL Suite 6.0為基于規(guī)范與描述語(yǔ)言(SDL)的系統(tǒng)提供了改進(jìn)的內(nèi)核架構(gòu)。
Mentor Graphics公司
Mentor Graphics公司為Nucleus RTOS的Inflexion Platform UI提供了新型應(yīng)用編程接口(API),以簡(jiǎn)化用戶接口的開發(fā)。該API能在無需修改嵌入式設(shè)備固件的情況下改變接口。
S2 Technologies
S2 Technologies則升級(jí)了自己的Stride工具集。該工具集主要用于在開發(fā)過程的早期階段進(jìn)行嵌入式軟件測(cè)試和驗(yàn)證。Stride 2.1增加了在目標(biāo)應(yīng)用上控制和自動(dòng)運(yùn)行C/C++測(cè)試代碼的能力、增加了自動(dòng)生成測(cè)試腳本的功能、并增強(qiáng)了用戶接口。
Aonix公司
Aonix公司采用Perc Ultra和Perc Pico工具集的全Java代碼解決方案。對(duì)于計(jì)算密集型算法來說,其速度比采用C代碼的同等Java程序要快得多。