<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > 利用圖形化平臺開(kāi)發(fā)多核嵌入式系統

利用圖形化平臺開(kāi)發(fā)多核嵌入式系統

——
作者:NI公司技術(shù)市場(chǎng)工程師 湯敏 時(shí)間:2007-12-30 來(lái)源:電子產(chǎn)品世界 收藏

  、多線(xiàn)程是嵌入式設計的未來(lái)趨向

  近幾年來(lái),處理器的速度遭遇到了瓶頸。在過(guò)去40年里摩爾定律表明,每隔18到24個(gè)月半導體芯片中晶體管的數量就會(huì )增加一倍,而芯片性能也隨之線(xiàn)性增長(cháng)。過(guò)去,芯片生產(chǎn)廠(chǎng)商通過(guò)增加處理器的時(shí)鐘速度來(lái)提高芯片的性能,如從100MHz到200MHz,再到最近的幾GHz。但是在今天,由于功耗和散熱的限制,提高時(shí)鐘速度來(lái)增加性能的方法是行不通的了。芯片廠(chǎng)商開(kāi)始轉向另一種全新的芯片構架,就是使單個(gè)芯片具有多個(gè)處理器器核心。使用處理器,程序員們可以完成比使用單核心更多的任務(wù)。

  不可避免的也同樣會(huì )遇到在功耗和散熱方面的問(wèn)題,與PC設計領(lǐng)域的同行一樣,工程師也開(kāi)始考慮轉向處理器,以求獲得處理能力、功耗和產(chǎn)品體積等方面的潛在優(yōu)勢。Intel嵌入式和通信集團總經(jīng)理Doug Davis指出,在高端通信和醫療成像等計算密集型應用領(lǐng)域,客戶(hù)們已經(jīng)紛紛要求芯片廠(chǎng)商提供具有更長(cháng)生命周期的多核器件。Intel不久前宣稱(chēng),將面向嵌入式計算市場(chǎng)提供四核處理器。一些數碼產(chǎn)品廠(chǎng)商亦指出,他們公司轉向多核是因為“需要更強的處理能力和多線(xiàn)程”。

  對于嵌入式系統而言,多核技術(shù)可以提供更高的處理器性能、更有效的電源利用率,并且占用更小的物理空間,因而具有許多單核處理器無(wú)法具備的優(yōu)勢。MIPS科技公司亞太區副總裁Mark Pittman指出,在嵌入式產(chǎn)品的市場(chǎng)上,許多應用可以從多線(xiàn)程流水線(xiàn)執行當中獲益,整個(gè)系統的性能,由此提高的百分比從60%到300%不等。

  多核、多線(xiàn)程需要全新的編程方法

  要想充分發(fā)揮多核以及多處理器解決方案的潛能,僅僅依靠強有力的芯片是不夠的,還需要采用新的編程方法。微軟公司的軟件設計師Herb Sutter說(shuō)過(guò),對于那些期望最終用戶(hù)簡(jiǎn)單地將計算機升級到更快的處理器,或期望立即看到軟件程序性能提升的開(kāi)發(fā)者而言,“免費午餐結束了”。簡(jiǎn)而言之,在相當長(cháng)的一段時(shí)間里,軟件性能可以輕易地得益于處理器的性能提升,但是現在情況不同了。

  利用多核處理器的編程應用是一個(gè)巨大的編程挑戰,這是廣為接受的。比爾蓋茨有這樣一段話(huà):“要想充分利用并行工作的處理器的威力,…軟件必須能夠處理并發(fā)性問(wèn)題。但正如任何一位編寫(xiě)過(guò)多線(xiàn)程代碼的開(kāi)發(fā)者告訴你的那樣,這是編程領(lǐng)域最艱巨的任務(wù)之一?!?/P>

  多核處理器編程,尤其是多線(xiàn)程編程中存在好幾個(gè)難點(diǎn):首先是并行的思考方式,比如要分辨出哪些任務(wù)是可以同時(shí)執行的,這并不是一件容易的事情。

  其次是線(xiàn)程的創(chuàng )建和管理。開(kāi)發(fā)人員把任務(wù)劃分成多個(gè)并行步驟之后,就要通過(guò)線(xiàn)程的方式來(lái)實(shí)現。多線(xiàn)程編程是相當困難的,很多傳統的編程語(yǔ)言都需要一組新的函數或結構來(lái)創(chuàng )建、同步、加解鎖線(xiàn)程,這意味著(zhù)工作量的增加。

  與此同時(shí),開(kāi)發(fā)人員還需要考慮并行代碼段之間哪些資源是不能共享的,比如文件、內存、硬件等等,否則會(huì )導致資源的沖突和競爭,使得并行線(xiàn)程因等待資源而暫停。此外,如何對復雜的多線(xiàn)程編程進(jìn)行調試,以及如何在多核的實(shí)時(shí)系統中保持確定性,都是值得考慮的問(wèn)題。

  通過(guò)圖形化平臺開(kāi)發(fā)多核嵌入式系統

  由于多線(xiàn)程編程的復雜性,很多計算機方面的專(zhuān)家都在進(jìn)行探索,希望讓編譯器來(lái)幫助開(kāi)發(fā)人員處理并行性問(wèn)題。如果沒(méi)有這種編譯系統,開(kāi)發(fā)人員必須自己來(lái)處理并行編程。雙核處理器的多線(xiàn)程編程已經(jīng)是相當的復雜,如果以后發(fā)展到80個(gè)核,其復雜度將令開(kāi)發(fā)人員無(wú)法應付。對于學(xué)習計算機編程或軟件工程的開(kāi)發(fā)人員來(lái)說(shuō),或許文本編程的并行編程機制并不足以難倒他們,可是對于其他領(lǐng)域的專(zhuān)業(yè)人員,如果他們并不擅長(cháng)編程,又要使用多核處理器帶來(lái)的高性能,那么圖形化的開(kāi)發(fā)環(huán)境LabVIEW可能是他們的理想之選。

  LabVIEW是一種圖形化數據流式編程語(yǔ)言,在嵌入式系統中實(shí)現圖形化,已經(jīng)成為大勢所趨?,F在市場(chǎng)所需的是一種完全的圖形化編程語(yǔ)言,提供足夠的靈活性和功能,以滿(mǎn)足更廣泛應用的需求。因此,圖形化系統設計的關(guān)鍵因素是圖形化編程。

  LabVIEW是一個(gè)基于數據流的圖形化開(kāi)發(fā)平臺,它提供了直觀(guān)、符合工程師思維習慣的圖形化編程方式和用戶(hù)界面。在LabVIEW中,用戶(hù)解決工程問(wèn)題就像是在設計他們所熟悉的流程圖一樣?,F代多核處理器使得LabVIEW成為一種更合適的編程工具選擇,因為它有著(zhù)并行化表示和執行任務(wù)的能力。

  LabVIEW本質(zhì)上是一種并行結構的編程語(yǔ)言?;贚abVIEW的數據流特性,如果連線(xiàn)中存在著(zhù)分支,或者是框圖中有著(zhù)并行序列,那么后臺的LabVIEW執行器將自動(dòng)地實(shí)現并行化運行。當我們在程序框圖中通過(guò)連線(xiàn)的分岔創(chuàng )建另一個(gè)程序分支時(shí),就可能產(chǎn)生另一個(gè)線(xiàn)程。如果我們創(chuàng )建了多個(gè)循環(huán),那相對應的也就創(chuàng )建了數個(gè)新的執行線(xiàn)程。在LabVIEW中,多個(gè)并行循環(huán)會(huì )自動(dòng)分配成多個(gè)線(xiàn)程并分配到多個(gè)處理核上,因而LabVIEW用戶(hù)無(wú)需對代碼做任何改動(dòng),也不需要花時(shí)間學(xué)習新的編程方式,即可利用多核處理器的性能優(yōu)勢。

  LabVIEW提升多核應用程序的性能,從單核到雙核計算機,理論上講,獲得的性能應該是原來(lái)的兩倍。但是,與這個(gè)極限的接近程度取決于用戶(hù)應用程序并行化運行的程度。LabVIEW程序員們可以很方便的以并行方式來(lái)表示他們的解決方案。在多核處理器上,我們可以方便地實(shí)現應用程序的性能改進(jìn),因為L(cháng)abVIEW動(dòng)態(tài)地分配每一個(gè)線(xiàn)程。事實(shí)上,用戶(hù)不需要創(chuàng )建特殊的代碼以支持多線(xiàn)程,而是通過(guò)最少的編程調整,并行應用便可以獲益于多核處理器。對于普通的LabVIEW應用程序而言,如果不考慮多核編程技巧,在不改寫(xiě)代碼的情況下,與最初的基準程序相比,可以獲得25%到35%的性能提升。

{{分頁(yè)}}

  圖1是一個(gè)簡(jiǎn)單應用程序的例子。其中,LabVIEW代碼分支簡(jiǎn)化了兩個(gè)分析任務(wù),一個(gè)濾波器操作和一個(gè)快速傅立葉變換(FFT),使它們可以在雙核機器上并行化執行。它首先在單核的模式下(關(guān)掉其中的一個(gè)核)運行,然后在雙核的模式下運行。因為這兩項任務(wù)都是計算量很高的,利用任務(wù)并行化獲得的性能改進(jìn)為原來(lái)的1.8倍。

圖1 典型的LabVIEW應用程序,展示了數據流編程的并行特性

  LabVIEW支持嵌入式實(shí)時(shí)系統,前面大部分討論都是針對如何平衡多核、多線(xiàn)程編程的復雜性,從而提高程序的性能和吞吐量。對于要求更加嚴格的嵌入式實(shí)時(shí)系統,這些考慮同樣適用。在典型的實(shí)時(shí)系統中,通常有一段代碼對執行時(shí)間有嚴格要求,必須以指定速率持續而可靠地運行。同時(shí)也有一些對執行時(shí)間沒(méi)有嚴格要求的代碼段,比如用戶(hù)界面的數據傳輸、數據存儲等等。顯然,對于執行時(shí)間有嚴格要求的代碼或循環(huán),應用程序必須對它們特別關(guān)照,保證沒(méi)有沖突等問(wèn)題。

  表面上看來(lái),這個(gè)要求對于多核系統是一件非常簡(jiǎn)單的事情。只要將對于執行時(shí)間有嚴格要求的代碼與其他代碼隔離,分配到獨占的處理器核上,就可以保證它不受影響地運行。但是,許多實(shí)時(shí)或嵌入式操作系統并不支持在多個(gè)處理核之間的線(xiàn)程負載均衡,這是因為在實(shí)時(shí)和嵌入式領(lǐng)域的工具往往更關(guān)注性能和確定性,而減緩了對于多核的支持。

  Intel定義了用戶(hù)需要評估的軟件四層次來(lái)確定多核系統的可用程度。如果所用的應用程序庫和設備驅動(dòng)不是為多核而設計的,或者操作系統不能夠在多個(gè)處理核上進(jìn)行負載均衡,那么并行化程序在多核系統上是不能夠運行得更快的。

  操作系統,作為軟件層次的底層,許多實(shí)時(shí)的操作系統(RTOS)廠(chǎng)商現在還不支持在多個(gè)處理器核間進(jìn)行自動(dòng)的線(xiàn)程負載均衡。但是,從表1的表述可以看到,為了讓多核處理器在嵌入式實(shí)時(shí)系統中發(fā)揮出性能優(yōu)勢,在實(shí)時(shí)或嵌入式操作系統中必須支持多核處理器的任務(wù)分配。

  LabVIEW的最新版本將針對多核處理器的自動(dòng)線(xiàn)程負載平衡功能引入到實(shí)時(shí)系統之中。

  如果需要更進(jìn)一步的控制或微調實(shí)時(shí)程序的性能,在 LabVIEW 中, 可以使用定時(shí)循環(huán)結構將各部分代碼分配到指定的處理器核上。這意味著(zhù)開(kāi)發(fā)人員可以把執行時(shí)間有嚴格要求的代碼直接映射到專(zhuān)用的處理器核,從而保證這部分代碼不會(huì )被中斷,保持其實(shí)時(shí)性。

  結語(yǔ)

  LabVIEW為多核處理器提供了一個(gè)理想的編程環(huán)境,其數據流編程概念能夠更直接地將并行應用可視化。LabVIEW自動(dòng)將并行的程序多線(xiàn)程化,而且它可以指派線(xiàn)程到指定的處理器核,也可以自動(dòng)平衡線(xiàn)程負載,從而利用多核架構的優(yōu)勢以獲得更好的系統性能。LabVIEW 實(shí)時(shí)模塊可以在實(shí)時(shí)或嵌入式系統中支持多核處理器的任務(wù)分配,幫助開(kāi)發(fā)人員從真正意義上進(jìn)入嵌入式系統的多核時(shí)代。



評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>