多核SoC的嵌入式軟件開(kāi)發(fā)
——
|
---|
多核系統的特點(diǎn)和優(yōu)缺點(diǎn)
軟硬件交互過(guò)程勢必使系統集成時(shí)間延長(cháng),并產(chǎn)生大量的、只能針對特定硬件使用的軟件、因此大量的可編程微處理器被加入到系統中,雖然只要處理器的速度足夠快,軟硬件交互引起的性能下降問(wèn)題都可以迎刃而解,但是無(wú)論從成本還是功能來(lái)看,提高處理器的主頻換取性能都是一種及其“不經(jīng)濟”的解決方案。
一個(gè)典型的例子就是利用DSP處理連續數據的應用。開(kāi)發(fā)者完全可以利用一個(gè)低端DSP芯片來(lái)處理標準的媒體流協(xié)議。相對于由高端處理器組成的系統,這種方法的功耗損失非常小,而且可降低系統成本,DSP的特定指令集與專(zhuān)用存儲器,總線(xiàn)結構使其能夠完成較復雜的數字處理算法,但是這些特性往往不支持高級語(yǔ)言,因此基于DSP的很多應用必須采用匯編語(yǔ)言來(lái)編碼。
由于不同DSP的匯編指令與編程模型不同,所以DSP之間的代碼移植非常困難,這已成為應用開(kāi)發(fā)的瓶頸,為解決這個(gè)瓶頸,一種方案是根據功能將應用代碼分為兩部分:必須由DSP執行的代碼和可以被其他處理器執行的代碼,DSP只需要處理前者即可,這樣就出現了多核(多處理器)設計。
典型的多核系統將應用代碼分成兩個(gè)主要部分:控制與用戶(hù)接口代碼,不間斷處理代碼??刂朴脩?hù)接口部分運行在A(yíng)RM微處理器上,不間斷處理代碼運行在DSP上或者第二個(gè)ARM內核上(見(jiàn)上圖)。由于以下一些原因,這種模型非常有意義。
1、開(kāi)發(fā)者可以使用高級語(yǔ)言,如C/C++或者Java對微處理器進(jìn)行編程,基于DSP的很多應用都必須使用匯編語(yǔ)言來(lái)編碼,而很多其他處理器,如ARM則沒(méi)有這些限制。
2、在微處理器上運行RTOS或者OS,可以更加充分利用微處理器的優(yōu)勢(合理地中斷響應時(shí)間、大量的存儲資源、虛擬的或者被保護的存儲器、簡(jiǎn)單的上下文切換操作等)。
3、DSP對不間斷處理得代碼有很好的支持,如果控制用戶(hù)接口代碼與不間斷工作的代碼都由同一個(gè)處理器來(lái)執行的話(huà),頻繁的中斷(連續的切換)會(huì )導致系統功耗非常大,而且,DSP往往有很多特殊功能,可以加速數據移動(dòng)與處理操作(DMA、雙端口存儲器、針對濾波處理的MAC、針對FFT與編碼的位操作,索引查找表、針對內部/外部器件訪(fǎng)問(wèn)的分離總線(xiàn)結構等)。
4、兩個(gè)不同的內核可分別獨立運行。這意味著(zhù)當不需要執行任何操作時(shí),微處理器可進(jìn)入休眠狀態(tài)(喚醒微處理器的方式可以是:定時(shí)器、刷新LCD的按鍵、電池電量檢查等)。
5、兩種處理器可以使用不同的總線(xiàn)模型。
6、兩種處理器芯片可以通過(guò)共享的片外存儲器、中斷、油箱、串口、FIFO、或者其他連接方式進(jìn)行通信,并且所有通信機制不但支持松耦合,而且支持緊耦合同步。
但是,多核解決方案的主要弊端是增加了交互軟件設計與調試應用程序的復雜性。
多核系統的設計方案
系統設計之初,設計人員必須對如何滿(mǎn)足系統所有需要有一個(gè)總體的規劃,如果可能,設計人員還應該預留一部分系統資源以備將來(lái)功能的擴展。
1、硬件總體設計
硬件總體設計是指對系統基本器件的選擇與配置,出主要處理器的類(lèi)型、主要通信配置、如何使用、用戶(hù)接口的選擇等。
2、軟件總體設計
在大多數嵌入式應用中,軟
目前通常的做法是講盡可能多的與硬件相關(guān)的軟件模塊隔離成為HAL(硬件提取層)的形式進(jìn)行處理,既然處理器的速度足夠快,存儲器相對便宜。那么HAL的使用是安全可行的,在設計中,使用RTOS或者其他標準軟件非常重要。
3、開(kāi)發(fā)工具與資源
這方面的具體內容包括JTAG訪(fǎng)問(wèn),交叉觸發(fā)、邏輯分析儀或者實(shí)時(shí)跟蹤,以及明顯反應芯片內部狀態(tài)的輸出管腳等,使用支持多核調試的調試器與仿真器,如RealView Debugger與RealView ICE,系統的調試過(guò)程會(huì )變得非常簡(jiǎn)單,利用RealView Debugger,開(kāi)發(fā)人員可以同時(shí)對兩個(gè)處理器進(jìn)行調試,此外,RealView Debugger帶有同步功能,可以使兩個(gè)處理器內核同時(shí)啟動(dòng)或者停止。
處理器的造型
處理器的選型受多種因素的影響,對多核系統,尤其是ARM+DSP系統(雖然DSP可以由支持或者不支持DSP功能的微處理器,微控制器來(lái)代替),進(jìn)行處理器選型時(shí)主要考慮以下幾點(diǎn):
1、處理外部事件需要的響應時(shí)間;
2、致力于實(shí)時(shí)算法的應用代碼數量。例如,將MP3播放器與無(wú)線(xiàn)電話(huà)中的音頻處理功能模塊相比較,前者的功耗遠遠小于后者,其原因是MP3播放器僅僅需要解碼音頻流,產(chǎn)生相應的正確信號,并發(fā)送到模擬輸出單元即可,而無(wú)線(xiàn)電話(huà)必須處理與MP3播放器相比低的多的外部比特率,這迫使處理器必須完成更多工作來(lái)實(shí)現壓縮/解壓縮、解碼/解碼,并應用濾波/聲音合成,以最終達到合乎要求的音質(zhì)。
3、相比軟件處理,采用硬件可以達到更好效果的應用模塊的數量,當標準變化比較快時(shí),修改軟件是一種比較安全的做法,這樣可以避免改動(dòng)新產(chǎn)品的物理設計,但當標準相對比較穩定時(shí),采用最合適的硬件可使成本降到最低,并且能在相同功耗或價(jià)格的基礎上使系統達到最高性能。
4、對算法要求較高的應用的數量,DSP的獨特設計使其有以下三點(diǎn)特殊功能,能夠高效地處理迭代算法,特別是乘加運算(MAC);能夠迅速地傳輸數據(接收外設輸入,并在處理循環(huán)之后將數據返還到外設輸出);能夠與外設緊密交互。
5、市場(chǎng)對價(jià)格與功耗的靈敏度。
針對這些需求,ARM處理器的功能越來(lái)越強大,其應用也越來(lái)越廣。例如新一代ARM內核提供了對DSP擴展指令的支持(如ARM9E)。部分ARM芯片可以被用作微控制器,擁有微控制器的一系列特性,例如緊密耦合的片上外設,增強的位訪(fǎng)問(wèn)與控制,大容量片內存儲器,片內f(wàn)lash、多種片內外設,等待狀態(tài)控制和向量中斷等,ARM處理器還開(kāi)始支持真正的可變時(shí)鐘頻率。
在具體芯片設計完成之前,用于原型平臺的開(kāi)發(fā)板可以幫助開(kāi)發(fā)人員對多核系統進(jìn)行驗證。通常,這些板大多使用特定的總線(xiàn)結構進(jìn)行連接,使用FPGA仿真部分外設、存儲器以及部分總線(xiàn)模型。Integrator是ACM提供的原型驗證平臺,它提供對多核系統的支持。
系統設計之初,設計人員必須對任何滿(mǎn)足系統所有需要有一個(gè)總體的規劃。
更進(jìn)一步,當硬件平臺還沒(méi)就緒時(shí),很多設計只能通過(guò)仿真來(lái)開(kāi)發(fā)軟硬件模型和應用算法,對于多核系統來(lái)說(shuō),仿真的方法并
同時(shí),某些仿真甚至可以直接仿真中加入純粹的行為元素,很多仿真的速度非???,幾乎與真正芯片的速度相同(因為PC機的主頻非常高),通過(guò)仿真,開(kāi)發(fā)人員可以得到系統硬件的許多內部狀態(tài)信息,以實(shí)現更好的設計。
評論