嵌入式軟件開發(fā)工具造就更靈活的芯片
接觸點
本文引用地址:http://butianyuan.cn/article/87624.htm要想使設(shè)計者能靈活地探索更多處理器體系結(jié)構(gòu),并推遲按照特定設(shè)備來確定設(shè)計,就需要半導(dǎo)體公司及其軟件工具合作伙伴采取措施。許多公司在其提供的處理器之間使用通用外設(shè)塊,并對每類外設(shè)支持一致的接口。為了幫助設(shè)計者配置和使用外設(shè),許多公司現(xiàn)在提供器件管理器、配置向?qū)А?a class="contentlabel" href="http://butianyuan.cn/news/listbylabel/label/處理器">處理器專家工具或可視化器件初始化工具,它們使設(shè)計者以更高的抽象級別操作,并避免了解如何把外設(shè)明確置入特定狀態(tài)的學(xué)習(xí)過程。該方法使設(shè)計者能更靈活地選用這些工具支持的器件,但它仍需要設(shè)計者了解硬件加速器或智能外設(shè)等特殊塊與普通塊之間在處理性能與功耗之間的因果關(guān)系。
在供選擇的芯片中支持靈活性的差異化方法包括 Microchip 公司的通用代碼基,它使設(shè)計者能在 16 比特 PIC 器件和 32 比特 PIC 器件之間遷移,并提供公共 API (應(yīng)用程序接口)來抽象體系結(jié)構(gòu)差異和表示虛擬外設(shè)。它還給予外設(shè)塊一個明確而一致的外觀、感覺與行為,并借助外設(shè)引腳選擇功能來提供重新映射 I/O 引腳的能力。
瑞薩科技公司(Renesas)發(fā)布了 RX 系列處理器,旨在統(tǒng)一來自三菱(Mitsubishi)和日立(Hitachi)的傳統(tǒng) 16 比特和 32 比特處理器之間的外設(shè) IP,作為這些體系結(jié)構(gòu)的擴展。EXREAL(Excellent Reliability Efficiency Agility Link)平臺是“母”(或稱“超集”)平臺,目標是使用通用軟件評估、開發(fā)、優(yōu)化和驗證技巧來開發(fā)專門處理器平臺,以便探索更多的體系結(jié)構(gòu)。
飛思卡爾公司(Freescale) Flexis 平臺提供的軟件開發(fā)環(huán)境涵蓋 8比特和32 比特體系結(jié)構(gòu),并支持在這些體系結(jié)構(gòu)之間上下遷移,由此嘗試在價格、性能、功率折中之間提供更多靈活性(圖 1)。該公司消費與工業(yè)微控制器業(yè)務(wù)全球產(chǎn)品營銷經(jīng)理 Jeff Bock 表示,50%的 Flexis 設(shè)計者一開始就知道自己將以哪個體系結(jié)構(gòu)為目標,25% 以這兩種體系結(jié)構(gòu)為目標,其余 25% 考察這兩種體系結(jié)構(gòu),并推遲自己的選擇,直到他們擁有應(yīng)用代碼,并能比較二者之間的差異。
德州儀器公司(TI)的 DaVinci 開發(fā)方法(圖2)是較早的 OMAP(開放多媒體應(yīng)用平臺)方法的進一步演進,它在芯片實現(xiàn)方面采取了最極端的立場。DaVinci 器件可以包括微處理器、微控制器、DSP、FPGA 甚至硬件加速器的任意組合。這種方法的一個結(jié)果是,雖然設(shè)計者可能會使用多顆異構(gòu)內(nèi)核,但軟件開發(fā)模型試圖通過 API 對實施進行抽象,以便在新芯片上市時設(shè)計者能更簡便地遷移到更好的芯片目標,而無須做太多移植工作。德州儀器公司 DSP 戰(zhàn)略營銷經(jīng)理 Greg Mar 指出,盡管設(shè)計者努力保護自己的軟件投資,但他們需要支持不同的“接觸點”(或稱“互動級”),這些不同接觸點甚至來自同一客戶,這給開發(fā)帶來了嚴峻挑戰(zhàn)。
接觸點對于任何嵌入式處理器供應(yīng)商都是大問題,這是因為,雖然一些設(shè)計者想在應(yīng)用層操作,這是API 和軟件投資保護的理想之選,但其它一些設(shè)計者想借助匯編語言編程在硬件抽象層等更低級別接觸系統(tǒng),向下一直到達芯片。這種情況造成了重大挑戰(zhàn),因為開發(fā)者在開發(fā)系統(tǒng)時想看到不同信息。
現(xiàn)代處理器系統(tǒng)及其周圍生態(tài)系統(tǒng)的一個關(guān)鍵因素是,它們使設(shè)計者能比以往任何時候都開展更多的探索。許多處理器提供評估板或演示板?,F(xiàn)代低成本評估工具包的一個主要目標是使設(shè)計者能迅速考察處理器系列,并確定它是否是自己項目的良好選擇。關(guān)注現(xiàn)代評估工具包細節(jié)就是為了使設(shè)計者能把硬件與縱向目標軟件集成起來,由此在幾分鐘內(nèi)就可開展工作。這些系統(tǒng)還為設(shè)計者節(jié)省了時間,這是由于它們能立即確認,當設(shè)計者首次把系統(tǒng)連接到自己的工作站時,系統(tǒng)實際上就在正確運行了,還由于它們能避免因開箱后工具包不能恰當工作而喪失故障處理機會。它們使設(shè)計者能探索更多處理選項,并使半導(dǎo)體公司能更多地接近設(shè)計者。
把處理器的運行實施交到設(shè)計者手中還意味著供應(yīng)商能提供差異化軟件,以便擴充、優(yōu)化平臺,并通過創(chuàng)建通用的優(yōu)化軟件庫(它們支持工具包代表的各種處理器選項)來更好地使平臺針對設(shè)計者的項目。使用集成軟件日益符合設(shè)計者的利益,這樣他們就能把過去學(xué)到的經(jīng)驗教訓(xùn)融合到處理器提供商提供的未來版本中。不僅使這種集成軟件保持原狀也符合處理器廠商的利益,這是因為在設(shè)計者考慮之前,它就是包括硬件和軟件分區(qū)的系統(tǒng)產(chǎn)品不可分割的一部分。
參考文獻
1. Cravotta, Robert, “EDN Microprocessor/Microcontroller Directory.”
2. Cravotta, Robert, “EDN DSP Directory.”
3. Cravotta, Robert, “Processing options,” EDN, Jan 19, 2006, pg 42.
--------------------------------------------------------------------------------
附文:軟件生產(chǎn)率
自從廠商推出首批匯編器為開發(fā)商簡化和加快早期處理器的編程以來,處理器體系結(jié)構(gòu)和軟件開發(fā)工具已經(jīng)發(fā)生了重大變化。匯編器過去基本上是把底層處理器體系結(jié)構(gòu)一對一映射到一套記憶法中,后者使人們更加簡便可靠地把邏輯語句轉(zhuǎn)換成機器代碼。隨后出現(xiàn)的高級語言編譯器的目標是對編程的低級別復(fù)雜性進行抽象,使程序員能夠重點專注于邏輯意圖,而非低級別編碼實現(xiàn)。
早期編譯器面臨的一個挑戰(zhàn)是,廠商在設(shè)計處理器體系結(jié)構(gòu)時,經(jīng)常是為了體系結(jié)構(gòu)團隊的利益,而非軟件團隊,這導(dǎo)致與手工優(yōu)化匯編方法相比,編譯器一般會生成相當差的代碼。表現(xiàn)差的部分原因在于,早期處理器體系結(jié)構(gòu)依賴于特殊資源結(jié)構(gòu),比如特殊功能寄存器和地址庫。為了高效率利用這些特殊資源,設(shè)計者必須建立并跟蹤一組假設(shè),以避免資源沖突,該沖突會導(dǎo)致不正確的系統(tǒng)行為。編程語言甚至不認識這些特殊資源,并且沒有標準方式讓編譯器知道應(yīng)用于每種特殊資源的種種假設(shè),因此編譯器必須建立最保守的一組假設(shè)來制造更安全但效率更低的代碼。許多現(xiàn)代編譯器都實行專有指令,它們使開發(fā)者能指引編譯器使用一組較松散的假設(shè)來生成更高效的代碼。
軟件生產(chǎn)率的下一個提高并非像匯編器和編譯器這樣的純粹軟件方式,它出現(xiàn)的原因是處理器體系結(jié)構(gòu)設(shè)計者開始與軟件工具開發(fā)者合作制造對編譯器更友好的體系結(jié)構(gòu)。通過使指令和資源交匯,編譯器在生成代碼時就能運用一組更好、更合理的假設(shè),并且編譯器技術(shù)就能足夠成熟,不再需要手工優(yōu)化。
許多現(xiàn)代編譯器很出色地把指令重新排序,以便與處理器的指令提取和執(zhí)行機制很好地配合,并最大限度縮短處理器停頓時間。然而,現(xiàn)代編譯器的問題依然是如何最好地分配和使用處理器的特殊資源,特別是那些對總線和存儲器訪問等系統(tǒng)其它部分固有的等待時間進行補償?shù)馁Y源。這些資源包括特殊總線、內(nèi)存、DMA 結(jié)構(gòu)等,它們使處理器在某些任務(wù)方面比其它處理器有優(yōu)勢。即使在今天,設(shè)計者通常也必須明確分配和宣布如何最佳使用這些資源。開發(fā)工具與編譯器不同,通常不包含若干特性實現(xiàn)上述目標,但這些信息經(jīng)常以應(yīng)用說明的形式供人們利用。這種情況為編譯器和軟件開發(fā)工具帶來了一個存在機會的領(lǐng)域,但尚不存在明顯方法完成這一任務(wù)。
軟件生產(chǎn)率的下一個提高來自集成開發(fā)環(huán)境,它們在單一環(huán)境中提供了各種工具,包括程序編輯器、解析器、調(diào)試器和項目管理器。這些環(huán)境已經(jīng)演進,因此能提供一致的方式為各種處理器目標開發(fā)軟件。它們使設(shè)計者不需要為每個項目全面學(xué)習(xí)使用不同的工具集和處理器。德州儀器公司的 DaVinci 和飛思卡爾公司的 Flexis 等一些開發(fā)環(huán)境正在發(fā)生演變,使設(shè)計者能在設(shè)計周期的后面改變目標處理器。
各種軟件開發(fā)工具繼續(xù)發(fā)展并提高軟件生產(chǎn)率,但每次提高都伴隨著硬件變化。分配了優(yōu)先權(quán)的硬件資源使操作系統(tǒng)更加高效。要想了解日益復(fù)雜的處理器器件內(nèi)部發(fā)生的事情,專用芯片上硬件調(diào)試資源至關(guān)重要。半導(dǎo)體公司不僅支持外設(shè)配置向?qū)椭O(shè)計者,而且還在自己產(chǎn)品線內(nèi)部采用通用的外設(shè)塊(或稱接口包裝器),以降低軟件開發(fā)工具和開發(fā)者必須應(yīng)對的復(fù)雜性。隨著用于實現(xiàn)處理器的晶體管數(shù)量的不斷增加,處理器將專門用于提高軟件生產(chǎn)率的晶體管數(shù)量也會不斷增加。
linux操作系統(tǒng)文章專題:linux操作系統(tǒng)詳解(linux不再難懂)
評論