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