康鴻雁
(菏澤學院計算機與信息工程系,山東菏澤274015)
嵌入式系統(tǒng)中軟硬件協(xié)同設計技術應用研究*
康鴻雁
(菏澤學院計算機與信息工程系,山東菏澤274015)
協(xié)同設計作為嵌入式系統(tǒng)開發(fā)的重要方法,克服了傳統(tǒng)設計方法的缺陷.通過綜合分析系統(tǒng)軟硬件功能,最大限度地挖掘系統(tǒng)軟硬件之間的并發(fā)性,使軟硬件開發(fā)緊密結合.從方法學的角度,結合嵌入式系統(tǒng)的設計,介紹了軟硬件協(xié)同設計方法的流程和一些關鍵技術.利用這種方法,大大提高了設計的可行性,降低了工作難度,減少了系統(tǒng)設計周期,提高了設計質量.最后結合具體的例子介紹了協(xié)同設計的特點.
嵌入式系統(tǒng);軟硬件;協(xié)同設計
嵌入式系統(tǒng)廣泛應用于國民經濟和國防各個領域,發(fā)展非常迅速.調查數(shù)據(jù)表明,嵌入式系統(tǒng)的增長為每年18%,大約是整個信息技術產業(yè)平均增長的兩倍.嵌入式系統(tǒng)是由硬件和軟件兩部分組成的綜合體,它是以應用為中心、對系統(tǒng)功能和性能指標都有嚴格要求的專用計算機系統(tǒng).隨著嵌入式系統(tǒng)用戶需求和相關技術的迅速發(fā)展,嵌入式系統(tǒng)設計對象由單機走向分布式系統(tǒng),要求由單目標走向多目標.產品更新速度快,要求設計周期不斷縮短.新產品的問世時間不斷減少,就要求嵌入式設計不斷引入新的設計方法.傳統(tǒng)的設計方法一般采用自上而下或模塊化的設計方法,總體上都是硬件模塊優(yōu)先的設計方法.其基本的設計思路如圖1所示[1].
圖1 傳統(tǒng)設計方法流程圖
這種設計方法將硬件和軟件分成兩個獨立的部分,由硬件工程師和軟件工程師按照流程分別完成,在設計時采用反復試驗法,即通過反復修改、反復試驗的方法使產品達到設計要求.系統(tǒng)軟件和硬件劃分完成以后,首先進行硬件子系統(tǒng)的設計與實現(xiàn),再進行軟件子系統(tǒng)的設計與實現(xiàn),整個系統(tǒng)設計與實現(xiàn)過程基本上是一個串行過程.依賴于設計者的經驗,且設計周期長、費用開支大,產品質量難以保證.這種設計方法只能改善硬件和軟件各自的性能,難以充分利用有限的軟硬件資源,無法滿足規(guī)模日益增加、系統(tǒng)功能日益復雜的現(xiàn)代嵌入式系統(tǒng)的設計要求.理論和實踐都要求以一種新的設計方法代替?zhèn)鹘y(tǒng)的設計方式,于是以軟硬件協(xié)同設計為主要特征的系統(tǒng)級設計方法應運而生.這種設計方法是在系統(tǒng)功能指標的統(tǒng)管下,通過綜合分析系統(tǒng)軟硬件功能及現(xiàn)有資源,最大限度地挖掘系統(tǒng)軟硬件之間的并發(fā)性,協(xié)同軟硬件體系結構,找到軟硬件的最佳結合點,從而使系統(tǒng)高效工作的一種現(xiàn)代嵌入式系統(tǒng)設計.
從理論上來說,每一個應用系統(tǒng),都存在一個適合該系統(tǒng)的軟件、硬件功能的最佳組合[2],如何從應用系統(tǒng)需求出發(fā),依據(jù)一定的指導原則和分配算法對硬件/軟件功能進行分析及合理的劃分,從而使系統(tǒng)的整體性能、運行時間、電耗等達到最佳狀態(tài),已經成為硬件/軟件協(xié)同設計(Hardware/Sof tware Co -design)重要研究內容之一.
與傳統(tǒng)的嵌入式系統(tǒng)設計方法不同,軟/硬件協(xié)同設計強調軟件和硬件設計開發(fā)的并行性和相互反饋,克服了傳統(tǒng)方法中把軟件和硬件分開設計所帶來的種種弊端,協(xié)調軟件和硬件之間的制約關系,達到系統(tǒng)高效工作的目的,軟/硬件協(xié)同設計提高了設計抽象的層次,拓展了設計覆蓋的范圍.嵌入式協(xié)同設計的思路如圖2所示[3].
圖2 軟硬件協(xié)同設計流程圖
系統(tǒng)描述是采用一種或多種系統(tǒng)級描述語言對所需設計的嵌入式系統(tǒng)的行為功能和性能進行全面的描述,是建立系統(tǒng)軟硬件模型的過程.在這個階段,常需要對整個系統(tǒng)的行為進行反復驗證,以期在設計的開始階段就能發(fā)現(xiàn)系統(tǒng)行為設計中的錯誤.軟硬件協(xié)同設計要全面描述系統(tǒng)功能、精確建立系統(tǒng)模型、深入挖掘軟硬件之間的協(xié)同性,以使系統(tǒng)能夠穩(wěn)定、高效的工作.系統(tǒng)模型應體現(xiàn)以下的因素.
1)性能描述性能描述反映的是系統(tǒng)的整體面貌及體系結構,它應該明確地或隱含的說明系統(tǒng)輸入/輸出及相關的中間狀態(tài)及其相互之間的關系.
2)功能特點系統(tǒng)應該完成的基本功能,應明確表述各項功能特點與系統(tǒng)輸入、輸出及中間狀態(tài)之間的關系.
3)技術指標評價系統(tǒng)質量的指標體系.
4)約束條件規(guī)定技術指標的適用范圍、系統(tǒng)的工作環(huán)境要求以及系統(tǒng)性能的缺陷和不足等.
采用的方法包括有限態(tài)自動機、統(tǒng)一化的規(guī)格語言或其它基于圖形的表示工具,作用是對軟硬件統(tǒng)一表示,使系統(tǒng)軟件、硬件功能折衷及系統(tǒng)功能可以方便地在硬件和軟件之間進行轉移,便于功能的劃分和綜合.
軟硬件功能劃分就是要確定哪些系統(tǒng)功能由硬件模塊實現(xiàn),哪些由軟件模塊來實現(xiàn),由功能分解算法根據(jù)一定的約束條件來確定.分解算法可以根據(jù)分解的起始點、分解的粒度、分解的自動化程度等不同特征進行分類.成本函數(shù)是進行軟硬件功能劃分方案選擇的依據(jù),成本函數(shù)考慮的主要因素有:軟件的執(zhí)行時間、硬件的成本、使用期的功耗、模塊間的并發(fā)性和重用性等.
成本函數(shù)描述如下:
功能劃分問題的本質其實就是一類組合優(yōu)化問題,模型和求解算法的選擇是解決軟硬件功能劃分問題的關鍵.目前常用的劃分算法有:免疫遺傳算法、遺傳算法、模擬退火算法、整數(shù)線性規(guī)劃算法、動態(tài)規(guī)劃算法、基因算法、貪婪算法等.
軟硬件綜合實現(xiàn)是指軟件系統(tǒng)、硬件系統(tǒng)的具體制作.設計結果經系統(tǒng)評價確認后,即可按設計要求精心系統(tǒng)制作.即按照前述工作的要求,定制硬件、設計軟件,并使它們能夠協(xié)調一致的工作.
在系統(tǒng)功能分解之后,組成嵌入式系統(tǒng)的各個構件的實現(xiàn)可利用相應的綜合工具,通過對分解后的功能描述的綜合處理來獲得.硬件構件的綜合可由硬件高層綜合、邏輯綜合、版圖綜合等幾個不同階段構成.軟件構件的綜合包括硬件高級綜合、編譯、匯編等幾個階段.接口綜合包括為硬件構件添加鎖存器、FIFOs、地址譯碼器,為軟件構件添加輸入/輸出操作、同步操作.確定系統(tǒng)采用的硬件模塊(如MCU,DSP,FPGA,存儲器,I/O接口等)、軟件模塊(如操作系統(tǒng),驅動程序,功能模塊等)和軟硬件模塊之間的通訊方式(如總線,共享存儲器,數(shù)據(jù)通道等)以及這些模塊的具體實現(xiàn)方法.
嵌入式產品競爭越來越激烈,只有縮短產品問世時間才能在激烈的競爭中取勝,因此必須在系統(tǒng)設計和開發(fā)過程中盡早發(fā)現(xiàn)系統(tǒng)中存在的各種問題和錯誤.由于嵌入式系統(tǒng)自身的特點,系統(tǒng)不僅對功能有特殊要求,同時對各種性能指標也有嚴格的限制,如果在系統(tǒng)設計開發(fā)完畢才對各種指標進行評價,那么一旦某些指標不滿足要求勢必會推遲系統(tǒng)問世的時間.
驗證的方法一般分為仿真驗證和形式化驗證.仿真驗證時用硬件描述語言完成硬件子系統(tǒng)的描述,用軟件來搭建硬件以達到系統(tǒng)軟件和硬件并行開發(fā)的目的,能夠完成系統(tǒng)的聯(lián)合調試,靈活的糾正軟件和硬件設計錯誤,避免人力和物力的浪費.形式化驗證方法通過運用數(shù)學手段來檢驗系統(tǒng)設計形式化描述的正確性,可分為規(guī)格說明驗證及實現(xiàn)驗證兩種.規(guī)格說明驗證是檢驗系統(tǒng)的高層模型是否具有某種抽象性質,實現(xiàn)驗證是檢驗通過綜合獲得的較為低級的系統(tǒng)模型是否與系統(tǒng)的高級模型保持一致,同時檢驗系統(tǒng)的低級模型是否滿足實現(xiàn)級的某些要求.
軟/硬件協(xié)同設計方法學的研究始于20世紀90年代初期,第一屆InternationalWorkshop on Hardware/Sof tware Co-design會議于1993年召開,它標志著軟/硬件協(xié)同設計方法學的研究正式展開,軟/硬件協(xié)同設計領域正式確立.軟/硬件協(xié)同設計不僅是一種設計技術,同時也是一種新的設計方法學,其核心問題是在設計過程中協(xié)調軟件子系統(tǒng)和硬件子系統(tǒng).
該方法利用VHDL特性,將系統(tǒng)功能描述成VHDL相互影響的并發(fā)進程,系統(tǒng)功能被映射到單獨的物理單元,其次是設計軟件進程.逐步分解操作以及對每種系統(tǒng)功能進行評估是這種方法的主要內容.協(xié)同設計過程采用VHDL的顯著優(yōu)點是比其它硬件描述語言更加方便.VHDL描述軟件的方法可以很方便地轉換成要研究的軟件開發(fā)內容.
FS M(Finite StateMachine)可以表示系統(tǒng)行為、硬件模型和軟件模型.其通信機制適合描述具有反饋特性的實時系統(tǒng).FS M的數(shù)學理論可用于正確性形式驗證、仿真、硬件中軟件的劃分和綜合,除了形式方法學以外,這種方法的另一個特點就是從規(guī)格說明到具體實現(xiàn)的轉換過程非常規(guī)范.由于狀態(tài)空間有限,這種方法僅適合小規(guī)模嵌入式控制系統(tǒng).
采用遺傳操作非重疊的遺傳算法,可以從解空間編碼、適應函數(shù)及個體選擇策略、交叉、變異策略、群體局部優(yōu)化等幾個方面對劃分算法問題進行分析,實現(xiàn)嵌入式系統(tǒng)的硬件/軟件劃分.該算法首先確定用于遺傳搜索及群體局部優(yōu)化所需的參數(shù),然后隨機生成用于遺傳操作滿足約束條件的初始解.每次遺傳操作前,均采用SA算法對其進行處理,獲得用于遺傳操作的局優(yōu)解集,遺傳操作在局優(yōu)解基礎上進行.利用遺傳算法解決硬件/軟件劃分問題的一個重要方面是確定評價各預選硬件/軟件方案性能的適應函數(shù),因為適應函數(shù)體現(xiàn)了個體在遺傳搜索過程中的繁殖能力,是選擇操作的依據(jù).
POL IS是面向控制反饋嵌入式系統(tǒng)的協(xié)同設計框架,它由微控制器和一些硬件協(xié)處理器組成了通用目標結構.POL IS建立在協(xié)同設計有限態(tài)自動機形式模型基礎上,它與傳統(tǒng)的有限態(tài)自動機(FS M)一樣,將一組輸入轉換成一組有限的狀態(tài)輸出,兩者的區(qū)別在于傳統(tǒng)并發(fā)FS M同步通信模型在CFS M中被一個有限、不為0、非常大的反饋時間模型取代,這種模型也稱為全局異步、局部同步.CFS M中每個元素模擬系統(tǒng)一個部件,而CFS M規(guī)格說明不偏向任何硬件和軟件的實現(xiàn),雖然每次CFS M狀態(tài)轉換兩者執(zhí)行相同的計算,但是硬件和軟件具有不同的延時特性.
本系統(tǒng)是基于嵌入式系統(tǒng)設計的自動跟蹤型機動車前照燈檢測儀[7],自動跟蹤型汽車前照燈檢測儀是集光、機、電技術于一體的專用儀器設備.可自動跟蹤光軸,利用圖像傳感器對燈光圖像進行采集,并利用數(shù)字圖像處理技術對燈光圖像進行處理,從而得到多個測量參數(shù),是建立在多學科基礎上的綜合技術.能夠測量出前照燈的高度,亮度,遠光近光的偏角等參數(shù),從而判斷出燈光合格與否.
根據(jù)汽車前照燈檢測儀的功能和設計要求,設計架構如圖3所示.
圖3 前照燈檢測儀設計架構圖
在最初的系統(tǒng)設計階段,采用UML建模語言作為系統(tǒng)級描述語言,來建立協(xié)同設計中各個時期的系統(tǒng)模型,并利用UML中約束的概念,來推動整個協(xié)同設計的進程[8].本系統(tǒng)的硬件部分包括圖像傳感器、外圍設備、信號采集、顯示、電機控制等;軟件設計主要包括圖像數(shù)據(jù)的采集程序,燈光圖像的處理程序,控制信號的采集,電機驅動程序等;設計主要包括信號的連接和時序邏輯的設計.在系統(tǒng)劃分之后,根據(jù)約束條件,使用VHDL來進行硬件描述,并逐步細化,直至RTL級、門級的實現(xiàn),用C語言和匯編語言完成系統(tǒng)初始化和應用程序的編寫,直至所有的硬件和軟件模塊都實現(xiàn).
嵌入式系統(tǒng)軟/硬件協(xié)同設計方法學是一個非常廣泛的研究課題,軟硬件協(xié)同設計作為系統(tǒng)級設計的支持技術,理論上和技術上還在不斷地發(fā)展和完善中.軟硬件協(xié)同設計克服了傳統(tǒng)設計方法中把軟件和硬件分開設計而帶來的種種弊端,通過挖掘軟硬件之間的協(xié)同性,達到系統(tǒng)高效工作的目的.通過協(xié)同設計,可以充分利用現(xiàn)有資源,縮短系統(tǒng)開發(fā)周期,降低系統(tǒng)成本,提高系統(tǒng)性能.協(xié)同設計技術在系統(tǒng)設計中的應用越來越廣泛,作用也將越來越重要.
[1]熊光澤,詹瑾瑜.嵌入式系統(tǒng)軟/硬件協(xié)同設計技術綜述[J].計算機應用,2006,26(4):757-760.
[2]白瑞林,無光霖,吉峰.基于平臺和中間件的嵌入式系統(tǒng)軟硬件協(xié)同設計[J].2005,34(4):104-107.
[3]潘新祥,胡習霜,韓立宏.軟硬件協(xié)同設計分析[J].指揮控制與仿真,2008,30(3):117-119.
[4]郭曉東,劉積仁.嵌入式系統(tǒng)的協(xié)同設計[J].計算機科學,1999,26(9):10-12.
[5]姚放吾.嵌入式系統(tǒng)的硬件/軟件協(xié)同設計[J].微計算機信息,2001,17(3):1-3.
[6]張江陵,鄭世玨,胡金柱.基于移動嵌入式系統(tǒng)硬/軟件協(xié)同設計的EHSC算法[J].計算機科學,2005,32(10): 210-213.
[7]康鴻雁.自動跟蹤型前照燈檢測儀控制系統(tǒng)研究[J].微計算機信息,2007,23(32):272-274.
[8]陳思功,秦曉.基于UML的軟硬件協(xié)同設計的模型分析方法[J].軟件學報,2003,14(1):103-109.
Research on Application of Hardware-software Co-design in Embedded System
KANG Hong-yan
(Department of Computer and Information Engineering,Heze University,Heze Shangdong 274015,China)
As an important way of embedded system development,Hardware/Software Co-design overcomes the limitations of traditional device method.According to the comprehensive analysis about hardware/software function,they are well-integrated.From the angle ofmethodology,this paper introduces the flow and some important techniques of hardware and sof tware co-design methodology based on embedded system.W ith thismethod,it can greatly improve the feasibility of the design idea,reduce the difficulty of work,lower the period of system design and improve the quality of design.Finally it explains the features of embedded system co-design with a concrete example.
embedded system;co-design;traditional design;automatic tester for headlamps
book=9,ebook=354
TP 206+.1
A
1673-2103(2010)05-0048-04
2010-05-11
菏澤學院科研項目(2007YA003)
康鴻雁(1975-),男,山東鄆城人,講師,碩士,研究方向:智能儀器儀表.