隨著嵌入式系統(tǒng)應(yīng)用領(lǐng)域的不斷擴展及嵌入式系統(tǒng)本身的復(fù)雜性的不斷增加,嵌入式系統(tǒng)設(shè)計所涉及的問題也越來越多,難度也越來越大。如何在設(shè)計中根據(jù)實際需要選擇合適的設(shè)計模型是設(shè)計者需要考慮的問題。
本文介紹了兩種常見的嵌入式系統(tǒng)設(shè)計模型,并對這兩種嵌入式系統(tǒng)設(shè)計模型進(jìn)行了分析比較。
1 引 言
當(dāng)今,在嵌入式領(lǐng)域,嵌入式技術(shù)已經(jīng)成為新的技術(shù)熱點。嵌入式系統(tǒng)的最典型的特點是它同人們的日常生活緊密相關(guān),小到MP3、PDA等微型數(shù)字化設(shè)備,大到信息家電、智能電器、車載GPS等形形色色運用了嵌入式技術(shù)的電子產(chǎn)品和各種新型嵌入式設(shè)備在數(shù)量上現(xiàn)已遠(yuǎn)遠(yuǎn)超過了通用計算機。在嵌入式設(shè)備發(fā)展的30多年的歷史中,嵌入式技術(shù)從來沒有像現(xiàn)在這樣風(fēng)靡過,人類也從來沒有像現(xiàn)在這樣享受嵌入式技術(shù)帶來的便利。
嵌入式系統(tǒng)是以應(yīng)用為中心,以計算機技術(shù)為基礎(chǔ),軟硬件可裁剪,適用于應(yīng)用系統(tǒng)對功能、可靠性、成本、體積、功耗有嚴(yán)格要求的專用計算機系統(tǒng)。
從整體來看,我們將嵌入式系統(tǒng)分為兩個部分;第一個部分是與應(yīng)用相關(guān)的硬件平臺,它負(fù)責(zé)和外部環(huán)境進(jìn)行交互;第二部分是在這個硬件平臺上運行的功能軟件。在過去的幾年里,微電子技術(shù)的迅速發(fā)展使得硬件部件的花費降低了很多,這使得有很多人將一些原來必須使用軟件的部分用硬件實現(xiàn)了出來,軟件和硬件的區(qū)分也逐漸變得模糊。然而,嵌入式系統(tǒng)的開發(fā)者必須在最短的時限內(nèi)和最低的花費設(shè)計出高性能的系統(tǒng)。最重要的步驟是根據(jù)具體需求將整個系統(tǒng)分為硬件部分和軟件部分。在通用PC平臺上作開發(fā),這種軟硬件的劃分是很輕松的;但是,基于嵌入式平臺,需要考慮很多的因素。例如:為了提高運行速度和減少任務(wù)切換的花費,必須將某些功能用硬件來實現(xiàn)。本文重點介紹了兩種嵌入式系統(tǒng)設(shè)計模型,以及對這兩種嵌入式系統(tǒng)設(shè)計模型進(jìn)行了分析比較。
2 硬件優(yōu)先的設(shè)計方法
硬件優(yōu)先的設(shè)計方法,即傳統(tǒng)的系統(tǒng)設(shè)計方法,它是一種依靠順序控制流的做法。
這種方法首先是對整個系統(tǒng)的需求分析,由于嵌入式系統(tǒng)的特殊性,需要仔細(xì)考慮功能性、能耗、成本花費等各個方面。在完成了需求分析以后,下一步要進(jìn)行的就是軟硬件部分的劃分,這一步十分重要,從這個時候起,系統(tǒng)將要被分為軟件和硬件兩個部分:
?。?) 硬件部分包括系統(tǒng)的硬件平臺以及某些用專用硬件(例如:ASIC和Ip-cores)實現(xiàn)的功能模塊;
?。?) 軟件部分是指經(jīng)過特殊處理過的操作系統(tǒng)和建立在操作系統(tǒng)之上的一些功能模塊。
第二步是相當(dāng)重要的一個步驟,它通常是由嵌入式系統(tǒng)設(shè)計者根據(jù)自己的經(jīng)驗和直覺來做的。在這個部分完成以后,就要進(jìn)行硬件的設(shè)計和實現(xiàn)。在硬件部分可用以后,就可以開始軟件部分的實現(xiàn)了。在這個序列化的設(shè)計方法的最后一步就是整合與測試,即將軟件和硬件部分融合到一起來評估整個系統(tǒng)的性能。
圖1硬件優(yōu)先的嵌入式設(shè)計模型
盡管硬件優(yōu)先的設(shè)計模型存在有一些問題(在文中第四部分詳細(xì)說明),但它依然是一種很流行的方案。在一些小型和中型復(fù)雜度的系統(tǒng)中,由于硬件的復(fù)雜度不高,而且技術(shù)也比較成熟,通常都會選擇這種方法;但是在一些大型的系統(tǒng)中,這種方法就不是很適宜了,需要更先進(jìn)的設(shè)計模型。
3 軟硬件協(xié)同設(shè)計方法
軟硬件協(xié)同設(shè)計是在系統(tǒng)目標(biāo)要求的指導(dǎo)下,通過綜合分析系統(tǒng)軟硬件功能及現(xiàn)有資源,最大限度地挖掘系統(tǒng)軟硬件之間的并發(fā)性,協(xié)同設(shè)計軟硬件體系結(jié)構(gòu),以使系統(tǒng)能夠工作在最佳工作狀態(tài)。它的實質(zhì)就是讓軟件和硬件體系作為一個整體并行設(shè)計、找到軟硬件的最佳結(jié)合點,使它們能夠以最有效的方式相互作用,互相結(jié)合,從而使系統(tǒng)工作在最佳狀態(tài)。
這種方法的第一步需要用形式化的方法對系統(tǒng)的需求進(jìn)行描述。有幾種方法可以采用:Petri網(wǎng)、數(shù)據(jù)流圖以及狀態(tài)機。這種設(shè)計方式試圖利用這些數(shù)學(xué)上的推理方法來對系統(tǒng)行為做一個全面的描述,在對系統(tǒng)進(jìn)行形式化的描述以后,就可以將系統(tǒng)分解為一些功能模塊,每個模塊都實現(xiàn)整體功能的一部分。
在第一步中得到的功能模塊既可以用硬件也可以用軟件來實現(xiàn)。利用形式化的方法,我們可以采用最佳的選擇。在軟硬件劃分的過程中,通過各方面的評估,例如:時間復(fù)雜度、花費估計等得到一組最佳的選擇。在得到了最優(yōu)解以后,就是實現(xiàn)各模塊了;但是,這里的實現(xiàn)僅僅只是理論上的,例如:硬件模塊用VHDL描述,軟件模塊用C或C++語言表示。
圖2 軟硬件協(xié)同設(shè)計模型
最后一步就是系統(tǒng)整合了。在這個過程中,將所有的模塊組合到一起,然后驗證這些模塊的組合是否符合系統(tǒng)的形式化說明;如果不符合,就要重新進(jìn)行軟硬件的劃分。當(dāng)前的研究熱點之一是對驗證算法的理論研究,利用這些理論算法,完全可以將軟硬件的劃分和模塊的驗證發(fā)展為自動化的過程。
由于軟硬件的劃分是基于理論算法的,這在設(shè)計中可以盡早的暴露問題,以減少損失。但是這種設(shè)計模型也有其局限性(在文中第四部分詳細(xì)說明)。
4 兩種模型的分析與比較
4.1 硬件優(yōu)先設(shè)計模型分析
利用硬件優(yōu)先這種方法設(shè)計的嵌入式系統(tǒng)一直到最后一步才能驗證系統(tǒng)設(shè)計的正確性。因此,在系統(tǒng)開發(fā)過程中通過反復(fù)修改、反復(fù)試驗的方法使產(chǎn)品達(dá)到設(shè)計要求,這在很大程度上依賴于設(shè)計者的經(jīng)驗;而且設(shè)計周期長、費用開支大,產(chǎn)品質(zhì)量難以保證;這是因為在反復(fù)修改過程中,常會在某些方面背離原始設(shè)計的要求。因此,為了降低設(shè)計的風(fēng)險,設(shè)計人員會選擇采用己經(jīng)成熟的模塊,而不是自己重新設(shè)計;與此同時,這種設(shè)計方法還有一個很大的缺點:在硬件部分可用之前是不能實施軟件模塊。由于以上問題,硬件優(yōu)先設(shè)計方法適用于在一些小型和中型復(fù)雜度的系統(tǒng)中;在這些系統(tǒng)中,硬件的復(fù)雜度不高,而且技術(shù)也相對比較成熟;因此通常都會選擇這種方法。
4.2 軟硬件協(xié)同設(shè)計模型分析
在軟硬件協(xié)同設(shè)計模型中,由于軟硬件的劃分是基于理論算法的,這在設(shè)計中可以盡早的暴露問題,以減少損失;但是,這種設(shè)計模型也有其局限性,具體表現(xiàn)在:
(1) 可有的信息是否足夠。若要采用形式化的方法描述整個系統(tǒng),并且正確的將系統(tǒng)分解為多個功能模塊的組合體;設(shè)計者需要知道整個系統(tǒng)中的功能描述;但是,有些第三方開發(fā)的模塊,設(shè)計者是無法知道其內(nèi)部功能實現(xiàn)的;這種情況可能會導(dǎo)致系統(tǒng)劃分過程的不準(zhǔn)確。
?。?) 軟硬件模塊互相替換的自由度。在這種設(shè)計模型中,將系統(tǒng)分為軟硬件模塊后,可認(rèn)為各個模塊都是能夠互相轉(zhuǎn)換的:即原先被劃分為用硬件實現(xiàn)的模塊也可以用軟件來實現(xiàn),反之亦然。從理論上來看這是沒有問題的,但在實際的應(yīng)用中是不能達(dá)到這么靈活的理論高度的。
4.3 兩種模型的綜合比較
一般來說,嵌入式系統(tǒng)設(shè)計可以分為系統(tǒng)描述、系統(tǒng)設(shè)計、系統(tǒng)評價與綜合實現(xiàn)四個階段。上述的兩種設(shè)計模型在這四個階段中各有異同:
?。?) 在系統(tǒng)描述階段,雖然兩種設(shè)計方法都是將系統(tǒng)功能全面表述出來,但軟硬件協(xié)同設(shè)計的方法除了全面描述系統(tǒng)功能外、還深入挖掘軟硬件之間的協(xié)同性,從而使系統(tǒng)能夠穩(wěn)定、高效地工作。
?。?) 在系統(tǒng)設(shè)計階段,兩種設(shè)計方法都將完成軟硬件功能的分配,即確定哪些功能由硬件模塊來實現(xiàn),哪些系統(tǒng)功能由軟件模塊來實現(xiàn),以及系統(tǒng)映射,即根據(jù)系統(tǒng)描述和功能分配選擇確定系統(tǒng)的體系結(jié)構(gòu)。在軟硬件功能分配階段,由于硬件模塊的可編程性和嵌入式系統(tǒng)的變異性,軟硬件的界限已經(jīng)不十分清楚;因此,軟硬件的功能劃分是一個復(fù)雜而艱苦的過程;這一方面是由于軟硬件劃分的研究工作還處在初級階段;另一方面則是由于這一問題內(nèi)在的復(fù)雜性。在進(jìn)行軟硬件功能分配時,既要考慮市場可以提供的資源狀況,又要考慮系統(tǒng)造價、開發(fā)周期等因素。
硬件優(yōu)先的設(shè)計方法一般根據(jù)設(shè)計者的經(jīng)驗來確定軟硬件的劃分,而軟硬件協(xié)同的設(shè)計方法則利用形式化的方法,通過各方面的評估,例如:時間復(fù)雜度、花費估計等得到一組最佳的選擇。在系統(tǒng)映射階段,就是要確定系統(tǒng)將采用哪些硬件模塊(如微處理器、微控制器、存儲器、FPGA、DSP等部件)、軟件模塊(操作系統(tǒng)、驅(qū)動程序等)以及軟硬件模塊之間的聯(lián)系媒體(如共享存儲器、總線等),在這一階段,采用硬件優(yōu)先設(shè)計方法的設(shè)計者為了降低設(shè)計的風(fēng)險,通常會選擇采用己經(jīng)成熟的硬件模塊,而不是自己重新設(shè)計;而采用軟硬件協(xié)同設(shè)計方法的設(shè)計者則需要將軟件和硬件體系作為一個整體并行設(shè)計、找到軟硬件的最佳結(jié)合點;這一過程顯然是一個復(fù)雜而艱苦的過程,但用這種方法可以使軟硬件能夠以最有效的方式相互作用,互相結(jié)合,從而使系統(tǒng)工作在最佳狀態(tài)。
?。?) 在系統(tǒng)評價階段,即檢查確認(rèn)系統(tǒng)設(shè)計的正確性的過程。采用硬件優(yōu)先方法的設(shè)計者在系統(tǒng)開發(fā)過程中通過反復(fù)修改、反復(fù)試驗的方法來對設(shè)計結(jié)果進(jìn)行驗證評估,這在很大程度上依賴于設(shè)計者的經(jīng)驗;而采用軟硬件協(xié)同的設(shè)計者則通過形式化評價技術(shù),通過建立精確的數(shù)學(xué)模型、利用數(shù)學(xué)手段檢測系統(tǒng)的正確性。因此,對系統(tǒng)中的不確定因素及隱性指標(biāo)的檢查有特殊效果。
(4) 在綜合實現(xiàn)階段,即軟件系統(tǒng)、硬件系統(tǒng)的具體制作的過程。硬件優(yōu)先的設(shè)計方法是先進(jìn)行硬件部分的實現(xiàn),在硬件部分完成后再進(jìn)行軟件部分的實現(xiàn);而軟硬件協(xié)同的設(shè)計方法則是將軟件和硬件體系作為一個整體并行設(shè)計、通過協(xié)同設(shè)計,深入挖掘軟硬件之間的協(xié)同性,從而使設(shè)計出來的系統(tǒng)能夠穩(wěn)定、高效地工作。
通過上述的分析與比較可以看出硬件優(yōu)先的設(shè)計方法適用于一些小型和中型復(fù)雜度的系統(tǒng)中,在這些系統(tǒng)中由于硬件的復(fù)雜度不高,而且技術(shù)也比較成熟,選擇這種方法比較簡單易行;但是在一些大型的系統(tǒng)中,這種方法就不是很適宜了,需要更先進(jìn)的設(shè)計模型。軟硬件協(xié)同的設(shè)計模型比較適合在一些大型的系統(tǒng)中運用,在一些大型的系統(tǒng)設(shè)計中,設(shè)計者的主要任務(wù)就是要在系統(tǒng)描述的基礎(chǔ)上確定功能模塊、分配系統(tǒng)功能、建立模塊間的聯(lián)系、規(guī)定模塊之間的作用方式。軟硬件協(xié)同設(shè)計模型與硬件優(yōu)先設(shè)計模型相比,更能有效地解決好這些問題。
5 結(jié) 論
本文介紹了兩種用于嵌入式系統(tǒng)開發(fā)的設(shè)計模型:硬件優(yōu)先和軟硬件協(xié)同設(shè)計模型。在硬件優(yōu)先設(shè)計模型中,要求先根據(jù)具體的需求設(shè)計出硬件平臺,然后在這個平臺的基礎(chǔ)上進(jìn)行軟件開發(fā);通常,硬件平臺的開發(fā)者還要提供相應(yīng)的操作系統(tǒng)。在另外一種設(shè)計模型中,可以利用一些理論算法對劃分的軟硬件模塊進(jìn)行驗證。當(dāng)然,這兩種模型并非完美,它們都有各自的優(yōu)缺點,這需要在實際的應(yīng)用中根據(jù)實際需要進(jìn)行適當(dāng)?shù)倪x擇以設(shè)計出合適的滿足需要的嵌入式系統(tǒng)。