兩種嵌入式系統(tǒng)設(shè)計模型研究
關(guān)鍵詞:嵌入式系統(tǒng);設(shè)計模型;硬件優(yōu)先;協(xié)同設(shè)計
Abstract: With the extension of embedded system application domain and the enhancement of the complexity on embedded system nature; More and more issues occurs in embedded system design which brings more complications. How to choose a proper design model in our practical embedded system design is an important problem which designer needs to consider. In this paper, we describe two type of popular embedded system design model and analyze, compare the distinction of the two type of model.
Keywords: embedded system; design model; hardware precedence; Co-design
1 引 言
當今,在嵌入式領(lǐng)域,嵌入式技術(shù)已經(jīng)成為新的技術(shù)熱點。嵌入式系統(tǒng)的最典型的特點是它同人們的日常生活緊密相關(guān),小到MP3、PDA等微型數(shù)字化設(shè)備,大到信息家電、智能電器、車載GPS等形形色色運用了嵌入式技術(shù)的電子產(chǎn)品和各種新型嵌入式設(shè)備在數(shù)量上現(xiàn)已遠遠超過了通用計算機。在嵌入式設(shè)備發(fā)展的30多年的歷史中,嵌入式技術(shù)從來沒有像現(xiàn)在這樣風靡過,人類也從來沒有像現(xiàn)在這樣享受嵌入式技術(shù)帶來的便利。
嵌入式系統(tǒng)是以應(yīng)用為中心,以計算機技術(shù)為基礎(chǔ),軟硬件可裁剪,適用于應(yīng)用系統(tǒng)對功能、可靠性、成本、體積、功耗有嚴格要求的專用計算機系統(tǒng)。
從整體來看,我們將嵌入式系統(tǒng)分為兩個部分;第一個部分是與應(yīng)用相關(guān)的硬件平臺,它負責和外部環(huá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è)計模型進行了分析比較。
2 硬件優(yōu)先的設(shè)計方法
硬件優(yōu)先的設(shè)計方法,即傳統(tǒng)的系統(tǒng)設(shè)計方法,它是一種依靠順序控制流的做法。
這種方法首先是對整個系統(tǒng)的需求分析,由于嵌入式系統(tǒng)的特殊性,需要仔細考慮功能性、能耗、成本花費等各個方面。在完成了需求分析以后,下一步要進行的就是軟硬件部分的劃分,這一步十分重要,從這個時候起,系統(tǒng)將要被分為軟件和硬件兩個部分:
(1) 硬件部分包括系統(tǒng)的硬件平臺以及某些用專用硬件(例如:ASIC和Ip-cores)實現(xiàn)的功能模塊;
(2) 軟件部分是指經(jīng)過特殊處理過的操作系統(tǒng)和建立在操作系統(tǒng)之上的一些功能模塊。
第二步是相當重要的一個步驟,它通常是由嵌入式系統(tǒng)設(shè)計者根據(jù)自己的經(jīng)驗和直覺來做的。在這個部分完成以后,就要進行硬件的設(shè)計和實現(xiàn)。在硬件部分可用以后,就可以開始軟件部分的實現(xiàn)了。在這個序列化的設(shè)計方法的最后一步就是整合與測試,即將軟件和硬件部分融合到一起來評估整個系統(tǒng)的性能。
圖1硬件優(yōu)先的嵌入式設(shè)計模型
盡管硬件優(yōu)先的設(shè)計模型存在有一些問題(在文中第四部分詳細說明),但它依然是一種很流行的方案。在一些小型和中型復(fù)雜度的系統(tǒng)中,由于硬件的復(fù)雜度不高,而且技術(shù)也比較成熟,通常都會選擇這種方法;但是在一些大型的系統(tǒng)中,這種方法就不是很適宜了,需要更先進的設(shè)計模型。
3 軟硬件協(xié)同設(shè)計方法
軟硬件協(xié)同設(shè)計是在系統(tǒng)目標要求的指導(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)的需求進行描述。有幾種方法可以采用:Petri網(wǎng)、數(shù)據(jù)流圖以及狀態(tài)機。這種設(shè)計方式試圖利用這些數(shù)學(xué)上的推理方法來對系統(tǒng)行為做一個全面的描述,在對系統(tǒng)進行形式化的描述以后,就可以將系統(tǒng)分解為一些功能模塊,每個模塊都實現(xiàn)整體功能的一部分。
在第一步中得到的功能模塊既可以用硬件也可以用軟件來實現(xiàn)。利用形式化的方法,我們可以采用最佳的選擇。在軟硬件劃分的過程中,通過各方面的評估,例如:時間復(fù)雜度、花費估計等得到一組最佳的選擇。在得到了最優(yōu)解以后,就是實現(xiàn)各模塊了;但是,這里的實現(xiàn)僅僅只是理論上的,例如:硬件模塊用VHDL描述,軟件模塊用C或C++語言表示。
圖2 軟硬件協(xié)同設(shè)計模型
最后一步就是系統(tǒng)整合了。在這個過程中,將所有的模塊組合到一起,然后驗證這些模塊的組合是否符合系統(tǒng)的形式化說明;如果不符合,就要重新進行軟硬件的劃分。當前的研究熱點之一是對驗證算法的理論研究,利用這些理論算法,完全可以將軟硬件的劃分和模塊的驗證發(fā)展為自動化的過程。
由于軟硬件的劃分是基于理論算法的,這在設(shè)計中可以盡早的暴露問題,以減少損失。但是這種設(shè)計模型也有其局限性(在文中第四部分詳細說明)。
4 兩種模型的分析與比較
4.1 硬件優(yōu)先設(shè)計模型分析
利用硬件優(yōu)先這種方法設(shè)計的嵌入式系統(tǒng)一直到最后一步才能驗證系統(tǒng)設(shè)計的正確性。因此,在系統(tǒng)開發(fā)過程中通過反復(fù)修改、反復(fù)試驗的方法使產(chǎn)品達到設(shè)計要求,這在很大程度上依賴于設(shè)計者的經(jīng)驗;而且設(shè)計周期長、費用開支大,產(chǎn)品質(zhì)量難以保證;這是因為在反復(fù)修改過程中,常會在某些方面背離原始設(shè)計的要求。因此,為了降低設(shè)計的風險,設(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)劃分過程的不準確。
(2) 軟硬件模塊互相替換的自由度。在這種設(shè)計模型中,將系統(tǒng)分為軟硬件模塊后,可認為各個模塊都是能夠互相轉(zhuǎn)換的:即原先被劃分為用硬件實現(xiàn)的模塊也可以用軟件來實現(xiàn),反之亦然。從理論上來看這是沒有問題的,但在實際的應(yīng)用中是不能達到這么靈活的理論高度的。
4.3 兩種模型的綜合比較
一般來說,嵌入式系統(tǒng)設(shè)計可以分為系統(tǒng)描述、系統(tǒng)設(shè)計、系統(tǒng)評價與綜合實現(xiàn)四個階段。上述的兩種設(shè)計模型在這四個階段中各有異同:
(1) 在系統(tǒng)描述階段,雖然兩種設(shè)計方法都是將系統(tǒng)功能全面表述出來,但軟硬件協(xié)同設(shè)計的方法除了全面描述系統(tǒng)功能外、還深入挖掘軟硬件之間的協(xié)同性,從而使系統(tǒng)能夠穩(wěn)定、高效地工作。
(2) 在系統(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ù)雜性。在進行軟硬件功能分配時,既要考慮市場可以提供的資源狀況,又要考慮系統(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è)計的風險,通常會選擇采用己經(jīng)成熟的硬件模塊,而不是自己重新設(shè)計;而采用軟硬件協(xié)同設(shè)計方法的設(shè)計者則需要將軟件和硬件體系作為一個整體并行設(shè)計、找到軟硬件的最佳結(jié)合點;這一過程顯然是一個復(fù)雜而艱苦的過程,但用這種方法可以使軟硬件能夠以最有效的方式相互作用,互相結(jié)合,從而使系統(tǒng)工作在最佳狀態(tài)。
(3) 在系統(tǒng)評價階段,即檢查確認系統(tǒng)設(shè)計的正確性的過程。采用硬件優(yōu)先方法的設(shè)計者在系統(tǒng)開發(fā)過程中通過反復(fù)修改、反復(fù)試驗的方法來對設(shè)計結(jié)果進行驗證評估,這在很大程度上依賴于設(shè)計者的經(jīng)驗;而采用軟硬件協(xié)同的設(shè)計者則通過形式化評價技術(shù),通過建立精確的數(shù)學(xué)模型、利用數(shù)學(xué)手段檢測系統(tǒng)的正確性。因此,對系統(tǒng)中的不確定因素及隱性指標的檢查有特殊效果。
(4) 在綜合實現(xiàn)階段,即軟件系統(tǒng)、硬件系統(tǒng)的具體制作的過程。硬件優(yōu)先的設(shè)計方法是先進行硬件部分的實現(xià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)中,這種方法就不是很適宜了,需要更先進的設(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ǔ)上進行軟件開發(fā);通常,硬件平臺的開發(fā)者還要提供相應(yīng)的操作系統(tǒng)。在另外一種設(shè)計模型中,可以利用一些理論算法對劃分的軟硬件模塊進行驗證。當然,這兩種模型并非完美,它們都有各自的優(yōu)缺點,這需要在實際的應(yīng)用中根據(jù)實際需要進行適當?shù)倪x擇以設(shè)計出合適的滿足需要的嵌入式系統(tǒng)。