新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 市場分析 > 針對(duì)實(shí)時(shí)應(yīng)用的并行與多核性能

針對(duì)實(shí)時(shí)應(yīng)用的并行與多核性能

作者:Andy Gothard, XMOS市場營銷總監(jiān) 時(shí)間:2014-11-27 來源:EEPW 收藏

  實(shí)時(shí)系統(tǒng)需要快速和可預(yù)見的響應(yīng),這歷來是出了名的實(shí)施難題。隨著多核處理器的使用,這個(gè)困難已經(jīng)變得越來越大。在本文中,的市場營銷總監(jiān)Andy Gothard先生概述了多核微控制器系列如何提供了一種方法,為實(shí)時(shí)系統(tǒng)帶來了并發(fā)處理的優(yōu)勢(shì)……

本文引用地址:http://www.butianyuan.cn/article/266062.htm

  在處理器中采用多核體系架構(gòu)的主要原因有兩個(gè):要盡量避免持續(xù)性的工藝線寬縮小所帶來的局限性——實(shí)際上是避免摩爾定律的限制——或以一種更有效方法來解決某些類型的問題。在這兩種情況下,系統(tǒng)開發(fā)人員都不得不應(yīng)對(duì)同樣的問題;創(chuàng)建在多個(gè)內(nèi)核上同時(shí)運(yùn)行的軟件。

  在現(xiàn)實(shí)世界中,各種活動(dòng)不是以線性方式進(jìn)行的。即使是在諸如工廠生產(chǎn)線這樣的經(jīng)典線性活動(dòng)中,其他任務(wù)也是相伴主要生產(chǎn)流程而發(fā)生的;如子系統(tǒng)的組裝、輪胎成型并安裝在車輪上等等。

  計(jì)算機(jī)已經(jīng)普遍采取了不同的策略:從早期的實(shí)現(xiàn)方法開始,計(jì)算機(jī)體系架構(gòu)已迫使開發(fā)人員利用單個(gè)處理器的線性瓶頸。但是,從20世紀(jì)70年代開始,經(jīng)常有人試圖打破這一櫛楛。

  有些應(yīng)用自然適合于并行運(yùn)行;通常是那些個(gè)中的大問題可以很容易地分成多個(gè)較小任務(wù)的情況,這些小任務(wù)可以同時(shí)得到解決。經(jīng)典的應(yīng)用是天氣預(yù)報(bào)或大型物理科學(xué)問題。這些類別的問題是由部署了成千上萬個(gè)相同處理器的大型超級(jí)計(jì)算機(jī)來解決的。

  包括現(xiàn)今的智能手機(jī)在內(nèi)的其他應(yīng)用,都使用了幾種不同的處理器,包括傳統(tǒng)中央處理單元、圖形處理單元、數(shù)字信號(hào)處理器和專用邏輯。

  而最近多核芯片備受人們關(guān)注。這些集成了兩個(gè)或兩個(gè)以上處理器的單個(gè)器件最初被看作是一種可持續(xù)獲得更多處理能力、同時(shí)使用更少功率的方法,并且已被部署在臺(tái)式電腦以及類似應(yīng)用中。

  雖然制造這些類型的多核芯片在物理上相對(duì)簡單,但它們也提出了部署方面問題:在臺(tái)式環(huán)境中,現(xiàn)有應(yīng)用并不是為多個(gè)處理器設(shè)計(jì)的,一般都是一個(gè)應(yīng)用運(yùn)行在一個(gè)獨(dú)立的內(nèi)核上,而操作系統(tǒng)也管理為其他核分配其他任務(wù)。

  用于開發(fā)和調(diào)試運(yùn)行在多核器件上的應(yīng)用的新工具正在不斷涌現(xiàn),但這些仍然不是簡單的任務(wù)。特別是調(diào)試還是很困難,因?yàn)樵趦蓚€(gè)或兩個(gè)以上處理器運(yùn)行軟件的時(shí)候,當(dāng)一個(gè)錯(cuò)誤發(fā)生時(shí),依賴于重新創(chuàng)建一個(gè)系統(tǒng)準(zhǔn)確狀態(tài)的許多標(biāo)準(zhǔn)調(diào)試技術(shù)已不再適用。

  在觀察嵌入式應(yīng)用、特別是實(shí)時(shí)應(yīng)用的時(shí)候,問題就變得更大了。即使是用一個(gè)傳統(tǒng)單核處理器,也很難開發(fā)實(shí)時(shí)系統(tǒng)。一個(gè)特別問題是對(duì)一個(gè)緊急需求的反應(yīng),處理器通常不得不接收一個(gè)中斷,暫停當(dāng)前正在處理的、包括存儲(chǔ)設(shè)置的操作,然后對(duì)中斷做出反應(yīng)。這需要時(shí)間,但更糟糕的是,它需要的時(shí)間并不總是可以預(yù)測(cè)的。如果有多個(gè)處理器,這種不確定性會(huì)變得更大。處理器之間的消息傳遞通常是通過共享的內(nèi)存,這又是不確定的。

  一種不同的體系架構(gòu)

  體系架構(gòu)是專為解決諸多這類問題而創(chuàng)立:特別是,它設(shè)計(jì)的目的就是要通過一個(gè)并發(fā)多核體系架構(gòu)來解決實(shí)時(shí)應(yīng)用的問題。

  該體系架構(gòu)的基礎(chǔ)是邏輯內(nèi)核,這種內(nèi)核是一個(gè)能夠以可確保的最低指令速度順序執(zhí)行程序的32位處理單元。邏輯內(nèi)核組合在一起構(gòu)成了邏輯塊(tiles),每個(gè)邏輯塊可容納最多達(dá)八個(gè)內(nèi)核。而實(shí)體器件可包含一個(gè)、兩個(gè)或四個(gè)邏輯塊。入門級(jí)器件 XS1-L4 -64有一個(gè)帶有四個(gè)內(nèi)核和400 MHz時(shí)鐘速度的邏輯塊?;谟布恼{(diào)度器為每個(gè)內(nèi)核分配執(zhí)行的時(shí)間條,所以在這種情況下,每個(gè)內(nèi)核都有100 MIPS的執(zhí)行速度,或每個(gè)周期花10ns來執(zhí)行任務(wù)。這種可預(yù)測(cè)的執(zhí)行速率是確定性的核心,所以使xCORE非常適合實(shí)時(shí)應(yīng)用。

  在一個(gè)內(nèi)核上運(yùn)行的任務(wù)可以是一個(gè)更大問題的子集,就像一個(gè)大規(guī)模并行超級(jí)計(jì)算機(jī)的非常小型版本;或者它們也可以是不同的應(yīng)用,就像是多應(yīng)用器件的一個(gè)版本。

  一個(gè)邏輯塊上的內(nèi)核共享內(nèi)存。當(dāng)一個(gè)內(nèi)核正在執(zhí)行一項(xiàng)任務(wù)時(shí),它可不使用任何緩存而訪問全部內(nèi)存。這消除了不確定性的另一個(gè)可能的來源:任務(wù)間的通信和同步不需要軟件實(shí)時(shí)操作系統(tǒng)(RTOS)。取而代之的是包括IN和OUT指令的指令集。IN輸入來自一個(gè)源的一個(gè)數(shù)據(jù)字,而OUT發(fā)送一個(gè)數(shù)據(jù)字。如果兩項(xiàng)任務(wù)在一個(gè)通道上通信,則IN指令被阻止,直到OUT已被執(zhí)行。通信速度快,而任務(wù)可以同步。

  I/O引腳是完全可配置的。一組邏輯函數(shù),即xCORE-Port,位于I/O引腳后面,并連接到一個(gè)邏輯處理器內(nèi)核,以便在需要的時(shí)候創(chuàng)建外設(shè)。在xSOFTip庫中提供了多樣化的標(biāo)準(zhǔn)外設(shè),包括各種UART、I2C、SPI、USB、以太網(wǎng)、CANbus、LIN和豐富的專業(yè)音頻接口。由于這些接口是以軟件定義的,它們可以自由地被定制:用戶也可以創(chuàng)建他們所需要的任意專用接口。

  在使用不止一個(gè)邏輯塊時(shí),無論在同一器件上或另一器件上,通信是通過一種名為xCONNECT的專用高速體系架構(gòu)實(shí)現(xiàn)的。此時(shí),運(yùn)行在一個(gè)邏輯塊上的各個(gè)內(nèi)核上的任務(wù)可以使用內(nèi)存來交換數(shù)據(jù),它們還可以通過通道來交換數(shù)據(jù)并同步數(shù)據(jù)。xCONNECT將通道擴(kuò)展到其他邏輯塊上的內(nèi)核,無論這些邏輯塊是在同一個(gè)芯片上或是在其他芯片上,是否在同一個(gè)電路板上或者甚至是其他電路板上。

  xCONNECT的邏輯機(jī)制是一個(gè)通過XMOS鏈路來連接一個(gè)交換機(jī)網(wǎng)絡(luò)。從任務(wù)的角度來看,它通過一個(gè)通道發(fā)送一條消息,因?yàn)樗鼘⑴c同一邏輯塊中的另一個(gè)任務(wù)通信。在這種情況下,這條消息打開了交換機(jī)來來創(chuàng)建一個(gè)路由,該路由可在一段通信會(huì)話結(jié)束時(shí)被關(guān)閉,或保持打開來運(yùn)載數(shù)據(jù)流。一則空的消息可以被用來建立任務(wù)之間的同步。典型延時(shí)是每跳100 ns,每個(gè)鏈路的帶寬可高達(dá)400 MBit/s。

  這便為擴(kuò)展一個(gè)應(yīng)用的可用資源提供了一種簡單的途徑:它很容易增加更大的處理能力、更大的內(nèi)存和更多的I/O,而不會(huì)損失確定性。

  當(dāng)然,xCORE器件采用了XMOS專有的可配置多核微控制器體系架構(gòu)。但在很寬廣的應(yīng)用范圍內(nèi),ARM Cortex處理器是被一個(gè)巨大的生態(tài)系統(tǒng)所使用和支持的領(lǐng)先內(nèi)核,該生態(tài)系統(tǒng)由工具、合作伙伴和軟件等成員組成。與此相適應(yīng)的是,XMOS已經(jīng)創(chuàng)造了一類全新的低能耗可編程SoC產(chǎn)品,它將xCORE技術(shù)與超低功耗ARM Cortex M3處理器結(jié)合在一起。xCORE技術(shù)支持所需外設(shè)精確組合的軟件配置,并能以時(shí)序精確的執(zhí)行來支持最嚴(yán)格的硬實(shí)時(shí)要求。xCORE-XA系列擴(kuò)展了這些功能,讓開發(fā)人員可以利用豐富的ARM生態(tài)系統(tǒng),包括可以大大加快產(chǎn)品設(shè)計(jì)時(shí)間的標(biāo)準(zhǔn)代碼庫。

  開發(fā)

  電子產(chǎn)品中許多新進(jìn)展的致命弱點(diǎn)是缺乏足夠的開發(fā)工具。從一開始,XMOS就已經(jīng)把重點(diǎn)放在了提供一流的工具。極為豐富的xCORE系列開發(fā)板(sliceKIT)得到了xSOFTip軟件外設(shè)和xTIMEcomposer Studio開發(fā)工具的支持,其中包括一個(gè)編譯器、調(diào)試器、仿真器、靜態(tài)代碼分析儀,以及xSCOPE軟件邏輯分析儀。

  XMOS時(shí)序分析儀(XTA)是一個(gè)基于形式化方法的工具,用以確保開發(fā)的代碼滿足應(yīng)用的時(shí)序要求,這對(duì)于實(shí)時(shí)系統(tǒng)至關(guān)重要。它可以用來進(jìn)行二進(jìn)制代碼的分析,以生成在最好和最壞時(shí)序情況下的時(shí)序路徑圖形化顯示。另外,衍生于系統(tǒng)規(guī)范的時(shí)序判斷可以內(nèi)置于代碼中,XTA將報(bào)告這些條件是否已經(jīng)被滿足。

  xSIM為xTIMEComposer Studio增加了一個(gè)全功能仿真器,而xSCOPE可提供電路中在線調(diào)試。xSCOPE的界面類似于一個(gè)傳統(tǒng)示波器,但它以非常高的性能提供了高級(jí)別的信息。與目標(biāo)系統(tǒng)的USB 2.0連接是通過一個(gè)由xCORE提供支持的XTAG調(diào)試適配器實(shí)現(xiàn)的,它提供了高達(dá)1MSPS的數(shù)據(jù)傳輸速率。數(shù)據(jù)也可以存儲(chǔ)起來作為一份日后分析用的文件。

  對(duì)xCORE的編程是在匯編程序中進(jìn)行的,可以使用C或C++。對(duì)于C和C++,一組簡單的語言擴(kuò)展提供了用于描述并行性和并發(fā)性的機(jī)制。這些還定義了數(shù)據(jù)流和事件,并可以用于高級(jí)腳本。該編譯器是基于LLVM項(xiàng)目的開源編譯器。

  xSOFTip功能單元塊被用于I/O和信號(hào)處理及協(xié)議。它們采用C語言編寫而成,并在xCORE上執(zhí)行,提供了部署靈活性。xSOFTip Explorer是一個(gè)圖形化接口,它提供了對(duì)庫的訪問,并允許功能單元塊被配置為滿足某項(xiàng)特定規(guī)范。該工具了解一個(gè)特定功能單元塊的資源需求(如處理器內(nèi)核數(shù)量、I/O引腳、存儲(chǔ)器和時(shí)鐘的資源等),并能為一種實(shí)現(xiàn)提供最合適器件預(yù)估。

  對(duì)于調(diào)試任務(wù),開源的GNU調(diào)試器已經(jīng)進(jìn)行了擴(kuò)展,可與多內(nèi)核和通道資源一起使用。

  xTIMEcomposer Studio是基于的開源集成化開發(fā)環(huán)境(IDE),它可從XMOS網(wǎng)站免費(fèi)下載。

  憑借一種結(jié)合了應(yīng)用靈活性與時(shí)序確定性的創(chuàng)新體系架構(gòu)、一個(gè)豐富的開發(fā)環(huán)境,以及在實(shí)際應(yīng)用中批量部署的良好記錄,XMOS正在為實(shí)時(shí)應(yīng)用帶來并行處理能力。

  應(yīng)用

  客戶應(yīng)用1:索尼

  索尼公司在其PHA-2便攜式耳機(jī)放大器中采用了xCORE技術(shù)。

  PHA-2將多個(gè)高保真發(fā)燒友級(jí)USB接口與一個(gè)高解析度DAC以及一個(gè)高品質(zhì)耳機(jī)放大器結(jié)合在一起,所有東西都集成在一個(gè)很小的便攜式產(chǎn)品中。它與USB Audio Class 2和DSD(直接數(shù)字流編碼)技術(shù)兼容,為使用索尼Walkman系列便攜式音樂播放器、Windows和Mac電腦,以及iPad、iPod和iPhone的收聽者提供了更高質(zhì)量的音頻體驗(yàn)。

  索尼PHA-2基于XMOS的業(yè)界領(lǐng)先的USB音頻解決方案,使用了xCORE產(chǎn)品代碼為XS1-U8-64的8核多核微控制器。它能夠支持采樣率高達(dá)192kHz和解析度為全24位的音樂文件,可提供錄音室品質(zhì)的數(shù)字音頻。

  客戶應(yīng)用2:Synapticon

  Synapticon為機(jī)器人提供嵌入式計(jì)算和控制系統(tǒng)。一臺(tái)機(jī)器人的手臂有多個(gè)電機(jī),其中每一個(gè)通常都有其自己的控制器。這為開發(fā)人員在控制這些電機(jī)和管理它們之間通信兩個(gè)方面都帶來了挑戰(zhàn)。為了解決這個(gè)問題,位于斯圖加特的Synapticon開發(fā)出了一款核心處理器板C22,它基于兩個(gè)xCORE L16芯片,在一個(gè)低功耗30 mm×30 mm電路板上提供了等效于于一個(gè)32核處理器的能力。此板減少了元件數(shù)量,提供方便而高確定性的控制和通信,并且還可為系統(tǒng)開發(fā)提供一種可實(shí)現(xiàn)更高級(jí)別抽象的方法。

  附錄:術(shù)語

  邏輯處理器:每個(gè)xCORE邏輯塊包含4至8個(gè)邏輯處理器,該處理器是一個(gè)虛擬32位計(jì)算引擎。

  端口:xCORE Port是一套輕量級(jí)邏輯函數(shù),它們位于I/O引腳后面,并通過連接到一個(gè)邏輯處理器內(nèi)核來創(chuàng)建外設(shè)。在xSOFTip庫中提供了多樣化的外設(shè),包括UART、I2C、SPI、USB、以太網(wǎng)、CANbus和豐富的專業(yè)音頻接口。

  邏輯塊:xCORE體系架構(gòu)的物理子單元,單個(gè)芯片帶有一個(gè)或多個(gè)邏輯塊。

  sliceKIT:sliceKIT將開發(fā)板和參考設(shè)計(jì)組合在一起,并可以結(jié)合起來構(gòu)建各種更復(fù)雜的系統(tǒng)。


c語言相關(guān)文章:c語言教程


c++相關(guān)文章:c++教程


交換機(jī)相關(guān)文章:交換機(jī)工作原理




關(guān)鍵詞: XMOS xCORE Eclipse

評(píng)論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉