解決軟硬件接口的嵌入式系統(tǒng)設(shè)計(jì)實(shí)例
為了評(píng)估最終系統(tǒng)軟件的性能,將列表1中的偽隨機(jī)碼正確轉(zhuǎn)換成C代碼并同時(shí)用于A、B系統(tǒng)中,然后利用內(nèi)部存儲(chǔ)器中的結(jié)構(gòu)模擬每個(gè)系統(tǒng)的硬件接口。代碼中應(yīng)避免使用位域,因?yàn)闃?biāo)準(zhǔn)C實(shí)現(xiàn)不能在限制性訪問的地址空間上正確工作。系統(tǒng)代碼模擬運(yùn)行于PowerPC,編譯工具采用的是Green Hills MultiC,目標(biāo)操作系統(tǒng)是VxWorks,編譯器設(shè)置在中級(jí)優(yōu)化度(目的是幫助調(diào)試,并允許設(shè)計(jì)工程師把每條匯編指令與每一行C代碼聯(lián)系起來)。
表1列出了偽隨機(jī)碼的每一行,并給出了每個(gè)系統(tǒng)實(shí)現(xiàn)所用到的匯編指令與功能調(diào)用數(shù)量。另外還對(duì)兩個(gè)實(shí)現(xiàn)所用的代碼執(zhí)行速度進(jìn)行測(cè)試。子程序升級(jí)系統(tǒng)B軸的速度要比系統(tǒng)A快5.3倍,這主要?dú)w功于任務(wù)阻塞與去阻塞功能調(diào)用的去除。要注意的是實(shí)際系統(tǒng)中的加速效果可能并不明顯,因?yàn)閷?shí)際的硬件訪問時(shí)間對(duì)總的執(zhí)行時(shí)間影響最大。
在實(shí)驗(yàn)中要提升兩個(gè)實(shí)現(xiàn)所用編譯器的優(yōu)化度,結(jié)果發(fā)現(xiàn)優(yōu)化度的提高對(duì)系統(tǒng)B無效,對(duì)系統(tǒng)A來說只是減少了很少的代碼,并且速度卻稍有降低。這樣的結(jié)果表明,系統(tǒng)B的硬件接口在軸域的資源訪問上非常接近內(nèi)部訪問的效能。
另外,為了對(duì)兩種實(shí)現(xiàn)所用到的硬件設(shè)備進(jìn)行評(píng)估,要用VHDL對(duì)硬件接口進(jìn)行編碼,然后用賽靈思的Webpack軟件進(jìn)行綜合,并把設(shè)計(jì)映射到賽靈思的Virtex FPGA中。采用Virtex系列芯片的結(jié)果是系統(tǒng)A要消耗56個(gè)功能片(slice),系統(tǒng)B要消耗85個(gè)功能片。V300E-PQ240器件總共具有3072個(gè)片,因此系統(tǒng)A占用可用資源的1.8%,系統(tǒng)B則占2.8%。9500系列器件的內(nèi)部資源更有限些,比如XC95288XL-PQ208,系統(tǒng)A將占用該器件可用資源的18%,系統(tǒng)B則占30%。
仔細(xì)考察這兩個(gè)設(shè)計(jì)發(fā)現(xiàn),系統(tǒng)B所用的額外資源中最主要的驅(qū)動(dòng)源是組合型軸尋址方案。為了驗(yàn)證這一結(jié)果,重新組織寄存器映射,以便將每個(gè)軸作為一個(gè)獨(dú)立資源使用,單個(gè)軸映射按地址位邊界對(duì)齊。這一變通的實(shí)現(xiàn)方式保留了系統(tǒng)B的所有軟件接口優(yōu)點(diǎn),同時(shí)減少了整體硬件器件的使用,Virtex系列器件的片利用率能降低2.3%,9500系列的利用率能降低22%。
硬件設(shè)計(jì)會(huì)極大地影響系統(tǒng)軟件實(shí)現(xiàn)的復(fù)雜性和質(zhì)量。一個(gè)好的硬件設(shè)計(jì)要求設(shè)計(jì)人員能根據(jù)硬件實(shí)現(xiàn)與最終軟件設(shè)計(jì)環(huán)境的復(fù)雜性做出決定,正確理解硬件接口設(shè)計(jì)對(duì)軟件開發(fā)流程的影響能極大地改進(jìn)系統(tǒng)質(zhì)量、性能和可靠性,同時(shí)減少系統(tǒng)開發(fā)的周期與成本。
linux操作系統(tǒng)文章專題:linux操作系統(tǒng)詳解(linux不再難懂)
評(píng)論