新聞中心

EEPW首頁(yè) > EDA/PCB > 設(shè)計(jì)應(yīng)用 > 多核SoC的嵌入式軟件開(kāi)發(fā)

多核SoC的嵌入式軟件開(kāi)發(fā)

——
作者:Paul Kimelman ARM公司 時(shí)間:2007-01-26 來(lái)源:《電子系統(tǒng)設(shè)計(jì)》 收藏


與幾年前相比,生產(chǎn)嵌入式應(yīng)用產(chǎn)品的oem感受到了越來(lái)越大的市場(chǎng)壓力,產(chǎn)品的新功能和新特性、業(yè)界新標(biāo)準(zhǔn)、市場(chǎng)供求、用戶對(duì)低功耗甚至零功耗的不斷追求,以及產(chǎn)品成本等越來(lái)越多的因素都會(huì)對(duì)典型嵌入式設(shè)計(jì)產(chǎn)生影響,這使得目前市場(chǎng)上的各種應(yīng)用產(chǎn)品,從純粹的消費(fèi)電子(如蜂窩電話、mp3播放器、數(shù)碼相機(jī))到基礎(chǔ)設(shè)備(基站、電話系統(tǒng)、wan交換機(jī)等),都產(chǎn)生了變化,這些變化促使研發(fā)人員開(kāi)發(fā)更加完善和復(fù)雜的軟件,并在高端產(chǎn)品上使用大量的fpga。這些變化同時(shí)也將設(shè)計(jì)者推向了asic/soc與非傳統(tǒng)硬件模型——多核設(shè)計(jì)。

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

多核系統(tǒng)的特點(diǎn)和優(yōu)缺點(diǎn)

asic/soc具有較高的集成度,適合低功耗的特殊應(yīng)用,但多數(shù)注重成本的設(shè)計(jì)都會(huì)包含更多的功能特性與可編程的元素,這與行業(yè)標(biāo)準(zhǔn)和協(xié)議的不斷改變密不可分,無(wú)論是gsm電話、mp3、divx/mpeg4、dsl/cable調(diào)制解調(diào)器,還是無(wú)線局域網(wǎng)或者其他任何產(chǎn)品標(biāo)準(zhǔn),其協(xié)議都以非??斓乃俣茸兓?,但顧客并不希望頻繁升級(jí)硬件,從生產(chǎn)成本(工具、流水線的建立等)角度來(lái)考慮,對(duì)單一產(chǎn)品平臺(tái)重復(fù)使用是非常必要的,這意味著系統(tǒng)對(duì)軟件的要求更高了,因此也需要更多的軟硬件協(xié)作。

軟硬件交互過(guò)程勢(shì)必使系統(tǒng)集成時(shí)間延長(zhǎng),并產(chǎn)生大量的、只能針對(duì)特定硬件使用的軟件、因此大量的可編程微處理器被加入到系統(tǒng)中,雖然只要處理器的速度足夠快,軟硬件交互引起的性能下降問(wèn)題都可以迎刃而解,但是無(wú)論從成本還是功能來(lái)看,提高處理器的主頻換取性能都是一種及其“不經(jīng)濟(jì)”的解決方案。

一個(gè)典型的例子就是利用dsp處理連續(xù)數(shù)據(jù)的應(yīng)用。開(kāi)發(fā)者完全可以利用一個(gè)低端dsp芯片來(lái)處理標(biāo)準(zhǔn)的媒體流協(xié)議。相對(duì)于由高端處理器組成的系統(tǒng),這種方法的功耗損失非常小,而且可降低系統(tǒng)成本,dsp的特定指令集與專用存儲(chǔ)器,總線結(jié)構(gòu)使其能夠完成較復(fù)雜的數(shù)字處理算法,但是這些特性往往不支持高級(jí)語(yǔ)言,因此基于dsp的很多應(yīng)用必須采用匯編語(yǔ)言來(lái)編碼。

由于不同dsp的匯編指令與編程模型不同,所以dsp之間的代碼移植非常困難,這已成為應(yīng)用開(kāi)發(fā)的瓶頸,為解決這個(gè)瓶頸,一種方案是根據(jù)功能將應(yīng)用代碼分為兩部分:必須由dsp執(zhí)行的代碼和可以被其他處理器執(zhí)行的代碼,dsp只需要處理前者即可,這樣就出現(xiàn)了多核(多處理器)設(shè)計(jì)。

典型的多核系統(tǒng)將應(yīng)用代碼分成兩個(gè)主要部分:控制與用戶接口代碼,不間斷處理代碼??刂朴脩艚涌诓糠诌\(yùn)行在arm微處理器上,不間斷處理代碼運(yùn)行在dsp上或者第二個(gè)arm內(nèi)核上(見(jiàn)上圖)。由于以下一些原因,這種模型非常有意義。

1、開(kāi)發(fā)者可以使用高級(jí)語(yǔ)言,如c/c++或者java對(duì)微處理器進(jìn)行編程,基于dsp的很多應(yīng)用都必須使用匯編語(yǔ)言來(lái)編碼,而很多其他處理器,如arm則沒(méi)有這些限制。

2、在微處理器上運(yùn)行rtos或者os,可以更加充分利用微處理器的優(yōu)勢(shì)(合理地中斷響應(yīng)時(shí)間、大量的存儲(chǔ)資源、虛擬的或者被保護(hù)的存儲(chǔ)器、簡(jiǎn)單的上下文切換操作等)。

3、dsp對(duì)不間斷處理得代碼有很好的支持,如果控制用戶接口代碼與不間斷工作的代碼都由同一個(gè)處理器來(lái)執(zhí)行的話,頻繁的中斷(連續(xù)的切換)會(huì)導(dǎo)致系統(tǒng)功耗非常大,而且,dsp往往有很多特殊功能,可以加速數(shù)據(jù)移動(dòng)與處理操作(dma、雙端口存儲(chǔ)器、針對(duì)濾波處理的mac、針對(duì)fft與編碼的位操作,索引查找表、針對(duì)內(nèi)部/外部器件訪問(wèn)的分離總線結(jié)構(gòu)等)。

4、兩個(gè)不同的內(nèi)核可分別獨(dú)立運(yùn)行。這意味著當(dāng)不需要執(zhí)行任何操作時(shí),微處理器可進(jìn)入休眠狀態(tài)(喚醒微處理器的方式可以是:定時(shí)器、刷新lcd的按鍵、電池電量檢查等)。

5、兩種處理器可以使用不同的總線模型。

6、兩種處理器芯片可以通過(guò)共享的片外存儲(chǔ)器、中斷、油箱、串口、fifo、或者其他連接方式進(jìn)行通信,并且所有通信機(jī)制不但支持松耦合,而且支持緊耦合同步。

但是,多核解決方案的主要弊端是增加了交互軟件設(shè)計(jì)與調(diào)試應(yīng)用程序的復(fù)雜性。

多核系統(tǒng)的設(shè)計(jì)方案

系統(tǒng)設(shè)計(jì)之初,設(shè)計(jì)人員必須對(duì)如何滿足系統(tǒng)所有需要有一個(gè)總體的規(guī)劃,如果可能,設(shè)計(jì)人員還應(yīng)該預(yù)留一部分系統(tǒng)資源以備將來(lái)功能的擴(kuò)展。

1、硬件總體設(shè)計(jì)

硬件總體設(shè)計(jì)是指對(duì)系統(tǒng)基本器件的選擇與配置,出主要處理器的類型、主要通信配置、如何使用、用戶接口的選擇等。

2、軟件總體設(shè)計(jì)

在大多數(shù)嵌入式應(yīng)用中,軟件設(shè)計(jì)在很大程度上依賴于的硬件配置,部分軟件模塊與系統(tǒng)軟件聯(lián)系并不緊密,程序員可以將其模塊化,此外還有很多模塊與底層硬件直接聯(lián)系,很難模塊化。

目前通常的做法是講盡可能多的與硬件相關(guān)的軟件模塊隔離成為hal(硬件提取層)的形式進(jìn)行處理,既然處理器的速度足夠快,存儲(chǔ)器相對(duì)便宜。那么hal的使用是安全可行的,在設(shè)計(jì)中,使用rtos或者其他標(biāo)準(zhǔn)軟件非常重要。

3、開(kāi)發(fā)工具與資源

這方面的具體內(nèi)容包括jtag訪問(wèn),交叉觸發(fā)、邏輯分析儀或者實(shí)時(shí)跟蹤,以及明顯反應(yīng)芯片內(nèi)部狀態(tài)的輸出管腳等,使用支持多核調(diào)試的調(diào)試器與仿真器,如realview debugger與realview ice,系統(tǒng)的調(diào)試過(guò)程會(huì)變得非常簡(jiǎn)單,利用realview debugger,開(kāi)發(fā)人員可以同時(shí)對(duì)兩個(gè)處理器進(jìn)行調(diào)試,此外,realview debugger帶有同步功能,可以使兩個(gè)處理器內(nèi)核同時(shí)啟動(dòng)或者停止。

處理器的造型

處理器的選型受多種因素的影響,對(duì)多核系統(tǒng),尤其是arm+dsp系統(tǒng)(雖然dsp可以由支持或者不支持dsp功能的微處理器,微控制器來(lái)代替),進(jìn)行處理器選型時(shí)主要考慮以下幾點(diǎn):

1、處理外部事件需要的響應(yīng)時(shí)間;

2、致力于實(shí)時(shí)算法的應(yīng)用代碼數(shù)量。例如,將mp3播放器與無(wú)線電話中的音頻處理功能模塊相比較,前者的功耗遠(yuǎn)遠(yuǎn)小于后者,其原因是mp3播放器僅僅需要解碼音頻流,產(chǎn)生相應(yīng)的正確信號(hào),并發(fā)送到模擬輸出單元即可,而無(wú)線電話必須處理與mp3播放器相比低的多的外部比特率,這迫使處理器必須完成更多工作來(lái)實(shí)現(xiàn)壓縮/解壓縮、解碼/解碼,并應(yīng)用濾波/聲音合成,以最終達(dá)到合乎要求的音質(zhì)。

此外,無(wú)線電話中的音頻處理很可能需要進(jìn)行協(xié)議的轉(zhuǎn)換,當(dāng)然,硬件方面的支持可以代替處理器的一部分工作,mp3播放器不是一個(gè)實(shí)時(shí)系統(tǒng),它可以使用簡(jiǎn)單預(yù)取緩存來(lái)減少響應(yīng)時(shí)間,而無(wú)線電話必須在相對(duì)較短的時(shí)間窗口內(nèi)(或者音質(zhì)下降不甚明顯時(shí))對(duì)信號(hào)進(jìn)行處理。

3、相比軟件處理,采用硬件可以達(dá)到更好效果的應(yīng)用模塊的數(shù)量,當(dāng)標(biāo)準(zhǔn)變化比較快時(shí),修改軟件是一種比較安全的做法,這樣可以避免改動(dòng)新產(chǎn)品的物理設(shè)計(jì),但當(dāng)標(biāo)準(zhǔn)相對(duì)比較穩(wěn)定時(shí),采用最合適的硬件可使成本降到最低,并且能在相同功耗或價(jià)格的基礎(chǔ)上使系統(tǒng)達(dá)到最高性能。

4、對(duì)算法要求較高的應(yīng)用的數(shù)量,dsp的獨(dú)特設(shè)計(jì)使其有以下三點(diǎn)特殊功能,能夠高效地處理迭代算法,特別是乘加運(yùn)算(mac);能夠迅速地傳輸數(shù)據(jù)(接收外設(shè)輸入,并在處理循環(huán)之后將數(shù)據(jù)返還到外設(shè)輸出);能夠與外設(shè)緊密交互。

5、市場(chǎng)對(duì)價(jià)格與功耗的靈敏度。

針對(duì)這些需求,arm處理器的功能越來(lái)越強(qiáng)大,其應(yīng)用也越來(lái)越廣。例如新一代arm內(nèi)核提供了對(duì)dsp擴(kuò)展指令的支持(如arm9e)。部分arm芯片可以被用作微控制器,擁有微控制器的一系列特性,例如緊密耦合的片上外設(shè),增強(qiáng)的位訪問(wèn)與控制,大容量片內(nèi)存儲(chǔ)器,片內(nèi)flash、多種片內(nèi)外設(shè),等待狀態(tài)控制和向量中斷等,arm處理器還開(kāi)始支持真正的可變時(shí)鐘頻率。

在具體芯片設(shè)計(jì)完成之前,用于原型平臺(tái)的開(kāi)發(fā)板可以幫助開(kāi)發(fā)人員對(duì)多核系統(tǒng)進(jìn)行驗(yàn)證。通常,這些板大多使用特定的總線結(jié)構(gòu)進(jìn)行連接,使用fpga仿真部分外設(shè)、存儲(chǔ)器以及部分總線模型。integrator是acm提供的原型驗(yàn)證平臺(tái),它提供對(duì)多核系統(tǒng)的支持。

系統(tǒng)設(shè)計(jì)之初,設(shè)計(jì)人員必須對(duì)任何滿足系統(tǒng)所有需要有一個(gè)總體的規(guī)劃。

更進(jìn)一步,當(dāng)硬件平臺(tái)還沒(méi)就緒時(shí),很多設(shè)計(jì)只能通過(guò)仿真來(lái)開(kāi)發(fā)軟硬件模型和應(yīng)用算法,對(duì)于多核系統(tǒng)來(lái)說(shuō),仿真的方法并不是很多,arm公司的soc designer工具可以將armulator仿真與特定的dsp仿真進(jìn)行綁定,類似于soc designer的產(chǎn)品同樣也支持使用c語(yǔ)言編寫(xiě)的硬件模型進(jìn)行聯(lián)合仿真。

同時(shí),某些仿真甚至可以直接仿真中加入純粹的行為元素,很多仿真的速度非??欤瑤缀跖c真正芯片的速度相同(因?yàn)閜c機(jī)的主頻非常高),通過(guò)仿真,開(kāi)發(fā)人員可以得到系統(tǒng)硬件的許多內(nèi)部狀態(tài)信息,以實(shí)現(xiàn)更好的設(shè)計(jì)。



關(guān)鍵詞: SoC ASIC

評(píng)論


相關(guān)推薦

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

關(guān)閉